:root{--bg: #150f28;--bg2: #1e1638;--panel: #261d47;--panel2: #2f2456;--ink: #f3eeff;--muted: #b3a6d9;--gold: #ffd166;--mint: #06d6a0;--line: #42356e;--red: #ff5470}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;background:var(--bg);color:var(--ink);height:100dvh;overflow:hidden;position:relative;touch-action:manipulation}.appMain{display:contents}#bgFx{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}#bgFx:before,#bgFx:after{content:"";position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.24}#bgFx:before{background:radial-gradient(circle,#7b5cff,transparent 60%);top:-25vmax;left:-15vmax;animation:blob1 26s ease-in-out infinite alternate}#bgFx:after{background:radial-gradient(circle,#06d6a0,transparent 60%);bottom:-28vmax;right:-18vmax;animation:blob2 31s ease-in-out infinite alternate}@keyframes blob1{to{transform:translate(9vmax,7vmax) scale(1.15)}}@keyframes blob2{to{transform:translate(-8vmax,-6vmax) scale(1.1)}}#btnNet{position:fixed;top:10px;right:12px;z-index:40;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:12px;width:42px;height:38px;font-size:1.05rem;cursor:pointer;line-height:1}#btnNet.on{border-color:var(--mint);box-shadow:0 0 12px #06d6a066}#btnSettings{position:fixed;top:10px;left:12px;z-index:40;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:12px;width:42px;height:38px;font-size:1.05rem;cursor:pointer;line-height:1;display:none}body[data-screen=home] #btnSettings{display:block}body[data-overlay=settings] #btnSettings,body[data-overlay=settings] #btnNet,body[data-overlay=settings] #roomTag,body[data-overlay=about] #btnSettings,body[data-overlay=about] #btnNet,body[data-overlay=about] #roomTag{display:none}#roomTag{position:fixed;top:14px;right:62px;z-index:40;font-size:.68rem;color:var(--muted);background:#1e1638eb;border:1px solid var(--line);border-radius:9px;padding:4px 9px;display:none;white-space:nowrap}#roomTag b{color:var(--gold);letter-spacing:2px}#fx{position:fixed;inset:0;z-index:80;pointer-events:none}.toast{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:10px 12px 10px 16px;font-size:.8rem;font-weight:700;box-shadow:0 14px 40px #00000080;max-width:min(92vw,420px);white-space:nowrap}.toast[hidden]{display:none}:root[data-motion=reduced] #bgFx:before,:root[data-motion=reduced] #bgFx:after,:root[data-motion=reduced] .hero h1,:root[data-motion=reduced] .gCard,:root[data-motion=reduced] .statusBar.ok{animation:none}@media(prefers-reduced-motion:reduce){:root:not([data-motion=full]) #bgFx:before,:root:not([data-motion=full]) #bgFx:after,:root:not([data-motion=full]) .hero h1,:root:not([data-motion=full]) .gCard,:root:not([data-motion=full]) .statusBar.ok{animation:none}}@media(orientation:landscape)and (max-height:600px){#scrPlay .inner{max-width:none;display:grid;gap:6px 12px;grid-template-columns:1fr clamp(270px,38vw,380px);grid-template-rows:auto 1fr;grid-template-areas:"board top" "board side"}#scrPlay .topbar{grid-area:top}#scrPlay .boardArea{grid-area:board}#scrPlay .sidePanel{grid-area:side;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px}#scrHome .inner,#scrHub .inner{max-width:760px}}.screen{display:none;position:relative;z-index:1;height:100dvh;flex-direction:column;align-items:center;padding:12px 14px calc(12px + env(safe-area-inset-bottom));overflow:hidden}.screen.on{display:flex}.inner{width:100%;max-width:560px;height:100%;display:flex;flex-direction:column;gap:10px;min-height:0}#scrHome .inner{justify-content:center;gap:14px;overflow:auto}.hero{text-align:center;margin-bottom:2px}.hero h1{font-size:clamp(1.7rem,7vw,2.4rem);margin:0;letter-spacing:.5px;background:linear-gradient(110deg,#ffd166 20%,#fff3c4,#06d6a0,#ffd166 80%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 6s ease-in-out infinite}@keyframes shine{0%,to{background-position:0% 0}50%{background-position:100% 0}}.hero p{margin:6px 0 0;color:var(--muted);font-size:.82rem}.secT{font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin:4px 2px 0}.diffCards{display:flex;gap:8px}.dCard{flex:1;background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:12px 8px;text-align:center;cursor:pointer;transition:.15s;position:relative}.dCard .ic{font-size:1.5rem}.dCard .nm{font-weight:800;font-size:.9rem;margin-top:3px}.dCard .ds{font-size:.62rem;color:var(--muted);margin-top:3px;line-height:1.3}.dCard.on{transform:translateY(-2px)}.dCard[data-d="0"].on{border-color:#67e8b0;box-shadow:0 6px 20px #06d6a040}.dCard[data-d="1"].on{border-color:#ffd166;box-shadow:0 6px 20px #ffd16640}.dCard[data-d="2"].on{border-color:#ff5f9e;box-shadow:0 6px 20px #ff5f9e47}.sizeRow{display:flex;gap:8px}.sPill{flex:1;background:var(--panel);border:1.5px solid var(--line);border-radius:12px;padding:9px 4px;text-align:center;cursor:pointer;font-weight:800;font-size:.8rem;transition:.15s}.sPill .sub{display:block;font-size:.6rem;color:var(--muted);font-weight:600;margin-top:2px}.sPill.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.bigBtn{border:none;border-radius:14px;padding:15px;font-size:1rem;font-weight:800;cursor:pointer;width:100%}.bigBtn.primary{background:linear-gradient(135deg,#ffd166,#ffb703);color:#3a2a00;box-shadow:0 8px 24px #ffb7034d}.bigBtn.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:12px;font-size:.88rem}.homeFoot{text-align:center;font-size:.66rem;color:var(--muted)}.topbar{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding-right:52px}body.inRoom .topbar{padding-right:160px}.backBtn{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:11px;width:40px;height:38px;font-size:1rem;cursor:pointer;flex:0 0 auto}.topbar .tt{font-weight:800;font-size:1.02rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .tt small{display:block;font-size:.64rem;color:var(--muted);font-weight:600}.miniPills{display:flex;gap:5px;flex:0 0 auto}.mp{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:5px 9px;font-size:.68rem;font-weight:800;cursor:pointer;color:var(--muted)}.gameGrid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start;padding-bottom:6px}.gCard{background:var(--panel);border:1.5px solid var(--line);border-radius:15px;padding:11px 10px;cursor:pointer;transition:transform .08s;display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden;box-shadow:0 10px 26px #0006,inset 0 1px #ffffff0f;animation:cardIn .45s cubic-bezier(.2,.9,.3,1.2) backwards;animation-delay:calc(var(--i, 0) * 60ms)}.gCard:active{transform:scale(.97)}@keyframes cardIn{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:none}}.gCard:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--ac, #888);opacity:.9}.gCard .gi{font-size:1.6rem;line-height:1}.gCard .gn{font-weight:800;font-size:.9rem}.gCard .gt{font-size:.63rem;color:var(--muted);line-height:1.3;min-height:2.2em}.gProg{display:flex;gap:3.5px;margin-top:2px}.gProg i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line)}.gProg i.d{background:var(--ac, #888);border-color:var(--ac, #888)}#scrPlay .inner{gap:8px}.goal{font-size:.74rem;color:var(--muted);text-align:center;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:6px 10px;line-height:1.35;flex:0 0 auto}.goal b{color:var(--ink)}.boardArea{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}canvas#board{border-radius:14px;touch-action:manipulation;display:block;box-shadow:0 10px 32px #00000073;cursor:pointer}.statusBar{font-size:.78rem;text-align:center;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font-weight:700;flex:0 0 auto}.statusBar.ok{background:linear-gradient(135deg,#06d6a0,#04a37b);color:#043;border-color:#06d6a0;animation:pop .4s ease}@keyframes pop{0%{transform:scale(.94);opacity:.4}60%{transform:scale(1.02)}to{transform:scale(1)}}.defiRow{display:flex;align-items:center;gap:8px;justify-content:center;flex:0 0 auto}.nav{width:38px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:.95rem;font-weight:800;cursor:pointer;flex:0 0 auto}.dots{display:flex;gap:6px;justify-content:center}.dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);cursor:pointer;transition:.12s}.dot.done{background:var(--mint);border-color:var(--mint)}.dot.cur{border-color:var(--gold);box-shadow:0 0 0 2px #ffd16659}.controls{display:flex;gap:7px;justify-content:center;align-items:center;flex-wrap:wrap;flex:0 0 auto}button.btn{border:none;border-radius:11px;padding:10px 15px;font-size:.84rem;font-weight:800;cursor:pointer;background:var(--panel2);color:var(--ink);border:1px solid var(--line)}button.btn:active{transform:translateY(1px)}button.btn.primary{background:linear-gradient(135deg,#ffd166,#ffb703);color:#3a2a00;border:none}.pillGroups{display:flex;gap:10px;justify-content:center;flex:0 0 auto;flex-wrap:wrap}.seg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{background:var(--panel);color:var(--muted);border:none;padding:6px 10px;font-weight:800;cursor:pointer;font-size:.7rem}.seg button.on{background:var(--gold);color:#3a2a00}.metaChips{font-size:.7rem;color:var(--muted);text-align:center;font-weight:700;flex:0 0 auto}.metaChips b{color:var(--gold)}#scrSettings,#scrAbout{position:fixed;inset:0;z-index:50}#scrSettings.on,#scrAbout.on{background:var(--bg)}#scrSettings .inner,#scrAbout .inner{justify-content:flex-start;gap:12px}.setList{display:flex;flex-direction:column;gap:9px;overflow:auto;min-height:0;padding-bottom:6px}.setRow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;min-height:56px}.setRow.sub{padding:8px 14px;min-height:48px}.setRow.col{flex-direction:column;align-items:stretch;gap:10px}.setRow.sub.off{opacity:.45}.setLabel{display:flex;align-items:center;gap:11px;min-width:0}.setIc{font-size:1.3rem;flex:0 0 auto;line-height:1}.setNm{font-weight:800;font-size:.9rem}.setDs{font-size:.64rem;color:var(--muted);margin-top:2px;line-height:1.3}.setRow.danger .setNm{color:#ffb3c1}#setVolume{width:130px;max-width:46%;accent-color:var(--gold);cursor:pointer}.setSeg{align-self:stretch}.setSeg button{flex:1;padding:11px 8px;font-size:.74rem}.setFoot{text-align:center;font-size:.62rem;color:var(--muted);padding:2px 0;flex:0 0 auto}.btn.danger{background:#ff547024;border-color:var(--red);color:#ffd7de}.btn.danger.armed{background:var(--red);color:#fff;border-color:var(--red)}.switch{position:relative;width:52px;height:44px;padding:0;border:none;background:none;cursor:pointer;flex:0 0 auto}.switch:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:52px;height:30px;border-radius:15px;background:var(--panel2);border:1px solid var(--line);transition:.18s}.switch:after{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--muted);transition:.18s}.switch.on:before{background:linear-gradient(135deg,#06d6a0,#04a37b);border-color:#06d6a0}.switch.on:after{left:26px;background:#eafff8}.switch:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:14px}.aboutLink{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:.66rem;cursor:pointer;padding:8px;margin:-6px auto 0}.aboutCard{background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px}.aboutCard h3{margin:0 0 6px;font-size:.9rem}.aboutCard p{margin:0 0 8px;font-size:.74rem;color:var(--muted);line-height:1.5}.aboutCard p:last-child{margin-bottom:0}.aboutCard b{color:var(--ink)}.aboutVer{color:var(--gold);font-weight:700}.modal{position:fixed;inset:0;background:#0a0714bf;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.hidden{display:none!important}.modalCard{position:relative;width:100%;max-width:340px;background:var(--panel2);border:1px solid var(--line);border-radius:18px;padding:20px 16px 16px;box-shadow:0 24px 70px #0000008c}.modalCard h2{margin:0 0 6px;font-size:1.05rem}.modalX{position:absolute;top:8px;right:12px;background:none;border:none;color:var(--muted);font-size:1.5rem;cursor:pointer;line-height:1}.ninfo{font-size:.72rem;color:var(--muted);margin:0 0 12px;line-height:1.45}.btnW{width:100%;margin:4px 0;text-align:center}.joinRow{display:flex;gap:6px;margin-top:6px}.joinRow input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:10px;font-size:1.05rem;font-weight:800;letter-spacing:4px;text-align:center;text-transform:uppercase}.nstatus{font-size:.72rem;color:var(--gold);text-align:center;min-height:1em;margin-top:10px}.code{color:var(--gold);letter-spacing:4px;font-weight:800}.nbig{font-size:1rem;text-align:center;margin:6px 0 12px;font-weight:800}.modalCard.rules{max-width:390px;max-height:92dvh;overflow:auto;padding:18px 16px 14px}.modalCard.rules h2{display:flex;align-items:center;gap:8px;font-size:1.15rem;margin-bottom:2px}.ruTag{font-size:.68rem;color:var(--muted);margin:0 0 10px}.ruBody h3{font-size:.78rem;color:var(--gold);margin:12px 0 4px;letter-spacing:.3px}.ruBody p{font-size:.78rem;line-height:1.5;margin:0;color:var(--ink)}.ruBody ul{margin:2px 0 0;padding-left:16px}.ruBody li{font-size:.76rem;line-height:1.5;color:var(--ink);margin:3px 0}.ruBody b{color:var(--gold)}.ruDefi{margin-top:12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:.74rem;line-height:1.45}.ruDefi b{color:var(--mint)}.ruDemo{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 4px}.ruDemo .dCol{display:flex;flex-direction:column;align-items:center;gap:4px}.ruDemo canvas{width:132px;height:132px;border-radius:10px;box-shadow:0 4px 14px #0006}.ruDemo .lbl{font-size:.64rem;color:var(--muted);font-weight:700}.ruDemo .arr{font-size:1.3rem;color:var(--gold)}
