:root{--nc-bg:#0b0b1a;--nc-surface:#16162e;--nc-tile:#22223f;--nc-text:#e8e8ff;--nc-yellow:#b8c7d9;--nc-green:#38c6ff;--nc-blue:#e05cff;--nc-purple:#ffb020;--nc-mint:#00e5a8;--nc-red:#ff3d6e;--nc-ease-out:cubic-bezier(.22,1,.36,1);--nc-ease-back:cubic-bezier(.34,1.56,.64,1)}.nc-tile{transition:transform .12s var(--nc-ease-out),background-color .12s,box-shadow .16s,color .12s}.nc-tile.is-selected{box-shadow:0 0 0 3px var(--nc-mint),0 0 12px var(--nc-mint);background:#3a3a6a;transform:scale(.96)}.nc-tile.is-deselecting{animation:nc-deselect .14s var(--nc-ease-out)}@keyframes nc-deselect{0%{transform:scale(.96)}60%{transform:scale(1.03)}to{transform:scale(1)}}.nc-shake{animation:.42s cubic-bezier(.36,.07,.19,.97) both nc-shake}@keyframes nc-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.nc-wrong{box-shadow:0 0 0 2px var(--nc-red),0 0 14px var(--nc-red)!important}.nc-oneaway{animation:.3s ease-in-out 2 nc-pulse}@keyframes nc-pulse{0%,to{box-shadow:0 0 0 0 var(--nc-purple);transform:scale(1)}50%{box-shadow:0 0 0 4px var(--nc-purple),0 0 22px var(--nc-purple);transform:scale(1.04)}}.nc-collapse{animation:nc-collapse .26s var(--nc-ease-out) forwards}@keyframes nc-collapse{to{opacity:0;filter:blur(2px);transform:scale(.6)}}.nc-banner{text-align:center;color:#0b0b1a;background:var(--tier);box-shadow:0 0 calc(var(--glow,12px)) var(--tier),0 0 calc(var(--glow,12px)*2) var(--tier);animation:nc-merge .42s var(--nc-ease-back) both;border-radius:10px;padding:14px;font-weight:800;position:relative;overflow:hidden}.nc-banner .nc-members{opacity:.85;font-size:.85em;font-weight:500}@keyframes nc-merge{0%{opacity:0;filter:brightness(2);transform:scaleX(.25)scaleY(.6)}60%{opacity:1}to{filter:none;transform:none}}.nc-banner:after{content:"";pointer-events:none;animation:nc-scan var(--scan,.5s) linear .12s both;background:linear-gradient(#0000 0,#ffffffbf 50%,#0000 100%) 0 0/100% 30% no-repeat;position:absolute;inset:0}@keyframes nc-scan{0%{background-position:0 -40%}to{background-position:0 140%}}.nc-banner:before{content:"";pointer-events:none;opacity:.12;background:repeating-linear-gradient(0deg,#000 0 1px,#0000 1px 3px);position:absolute;inset:0}.nc-tier-yellow{--tier:var(--nc-yellow);--glow:8px;--scan:.45s}.nc-tier-green{--tier:var(--nc-green);--glow:12px;--scan:.5s}.nc-tier-blue{--tier:var(--nc-blue);--glow:16px;--scan:.55s}.nc-tier-purple{--tier:var(--nc-purple);--glow:24px;--scan:.65s;animation:nc-merge .52s var(--nc-ease-back) both,nc-flare .9s ease-out .4s}.nc-tier-blue{animation:nc-merge .45s var(--nc-ease-back) both,nc-flare .7s ease-out .38s}@keyframes nc-flare{0%{box-shadow:0 0 var(--glow) var(--tier)}30%{box-shadow:0 0 calc(var(--glow)*3) var(--tier),0 0 calc(var(--glow)*5) var(--tier)}to{box-shadow:0 0 var(--glow) var(--tier),0 0 calc(var(--glow)*2) var(--tier)}}.nc-shock{border-radius:inherit;border:2px solid var(--tier);pointer-events:none;animation:nc-shock .7s var(--nc-ease-out) forwards;position:absolute;inset:0}@keyframes nc-shock{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.25,1.8)}}.nc-particles{pointer-events:none;z-index:9999;position:fixed;inset:0}.nc-dim{filter:grayscale(.8)brightness(.45);opacity:.85;transition:filter .8s,opacity .8s}@media (prefers-reduced-motion:reduce){.nc-tile,.nc-dim{transition-duration:1ms!important}.nc-shake,.nc-oneaway,.nc-collapse,.nc-tile.is-deselecting{animation:none!important}.nc-banner,.nc-tier-blue,.nc-tier-purple{animation:.2s linear both nc-fade!important}.nc-banner:after,.nc-shock{display:none}@keyframes nc-fade{0%{opacity:0}to{opacity:1}}}:root{--bg:#04080d;--fg:#d8f3ff;--accent:#00e5a8;--warn:#ff9f1c;--bad:#ff3b5c;--panel:#0b1620;--edge:#163042;--common:var(--nc-yellow);--rare:var(--nc-green);--epic:var(--nc-blue);--legendary:var(--nc-purple);--nc-red:var(--bad);--spring:cubic-bezier(.34,1.56,.64,1);--out:cubic-bezier(.22,1,.36,1);--sait:var(--discord-safe-area-inset-top,env(safe-area-inset-top,0px));--saib:var(--discord-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--sail:var(--discord-safe-area-inset-left,env(safe-area-inset-left,0px));--sair:var(--discord-safe-area-inset-right,env(safe-area-inset-right,0px))}@font-face{font-family:Orbitron;src:url(/fonts/Orbitron.ttf)format("truetype");font-weight:400 900;font-display:swap}*{box-sizing:border-box}html,body{overscroll-behavior:none;min-height:100%;margin:0}body{background:radial-gradient(circle at 50% -20%,#0d2a33 0%,var(--bg) 55%) fixed,var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:ui-monospace,Cascadia Code,Menlo,Consolas,monospace}body:before{content:"";pointer-events:none;background-image:linear-gradient(#00e5a80d 1px,#0000 1px),linear-gradient(90deg,#00e5a80d 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0}body:after{content:"";pointer-events:none;opacity:0;position:fixed;inset:0;box-shadow:inset 0 0 90px 12px #ff3b5c8c}body.hit:after{animation:hit .5s var(--out)}@keyframes hit{30%{opacity:1}to{opacity:0}}#app{max-width:600px;margin:0 auto;padding:12px 12px 28px;position:relative}button{touch-action:manipulation;font-family:inherit}.logo{letter-spacing:.12em;font-family:Orbitron,sans-serif;font-size:clamp(18px,5vw,24px);font-weight:900}.logo .a{color:var(--accent);text-shadow:0 0 12px #00e5a8b3}.logo.big{animation:pop .7s var(--spring) both;font-size:clamp(30px,10vw,52px)}.lobby{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:92vh;display:flex}.tag{opacity:.75;max-width:30ch;animation:rise .5s var(--out) .1s both;margin:0}.streak-pill{border:1px solid var(--edge);background:var(--panel);animation:rise .5s var(--out) .2s both;border-radius:999px;padding:8px 16px}.streak-pill.hot{border-color:var(--warn);box-shadow:0 0 18px #ff9f1c59}.streak-pill span{opacity:.6}.lobby .btn{animation:rise .5s var(--out) .3s both}.lobby .btn+.btn{animation-delay:.38s}.hint{opacity:.8;font-size:11px}.hint .t-common{color:var(--common)}.hint .t-rare{color:var(--rare)}.hint .t-epic{color:var(--epic)}.hint .t-legendary{color:var(--legendary)}.hint b{font-weight:800}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.bar{justify-content:space-between;align-items:center;height:44px;display:flex}.right{align-items:center;gap:6px;display:flex}.streak-mini{color:var(--warn);font-weight:700}.icon{border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--fg);cursor:pointer;transition:transform .18s var(--spring),border-color .2s;border-radius:12px;font-size:18px}.icon:hover{border-color:var(--accent);transform:translateY(-2px)}.icon:active{transform:scale(.88)}.status{grid-template-columns:1fr 1fr;gap:12px;height:22px;margin:8px 0 12px;display:grid}.meter{letter-spacing:.18em;align-items:center;gap:8px;font-size:10px;display:flex}.lbl{opacity:.7}.cnt{opacity:.8;min-width:24px}.cells{flex:1;grid-template-columns:repeat(4,1fr);gap:3px;display:grid}.cells i{background:#132532;border-radius:3px;height:10px;transition:background .35s,box-shadow .35s}.cells i.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.cells i.on.lvl2{background:var(--warn);box-shadow:0 0 8px var(--warn)}.cells i.on.lvl1{background:var(--bad);box-shadow:0 0 8px var(--bad);animation:1s infinite blink}@keyframes blink{50%{opacity:.45}}.prog{background:#132532;border-radius:99px;flex:1;height:10px;overflow:hidden}.prog i{background:linear-gradient(90deg,var(--common),var(--rare),var(--epic),var(--legendary));transform-origin:0;height:100%;transition:transform .6s var(--spring);display:block}.solved{gap:8px;display:grid}.row-slot{min-height:64px}.row-slot.grid4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.nc-banner{border-radius:14px;flex-direction:column;justify-content:center;gap:2px;min-height:64px;padding:11px 12px;display:flex}.nc-banner.static{animation:none}.nc-banner.static:after{display:none}.nc-title{text-transform:uppercase;letter-spacing:.04em;font-size:14px}.nc-members{font-size:12px}.nc-banner.revealed{opacity:.75;filter:saturate(.6)}.solved:not(:empty){margin-bottom:8px}.grid{grid-template-columns:repeat(4,1fr);gap:8px;padding:2px;display:grid;overflow:hidden}.tile{border:1px solid var(--edge);height:clamp(60px,17vw,84px);color:var(--fg);cursor:pointer;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;will-change:transform;transition:transform .22s var(--spring),box-shadow .18s var(--out),background .15s,color .15s;animation:tin .45s var(--spring) both;animation-delay:calc(var(--i)*22ms);background:linear-gradient(#12283a,#0b1824);border-radius:14px;padding:4px;font-size:clamp(10px,2.7vw,14px);font-weight:700;line-height:1.15;position:relative;box-shadow:0 4px #061018}.tile.long{font-size:clamp(8px,2.2vw,12px)}@media (hover:hover){.tile:hover{transform:translateY(-3px);box-shadow:0 7px #061018,0 0 14px #00e5a840}}.tile:active{transition-duration:60ms;transform:translateY(3px)scale(.96);box-shadow:0 1px #061018}.tile.is-selected{background:var(--accent);color:#012;transform:translateY(-4px)scale(1.02);box-shadow:0 6px #00805e,0 0 18px #00e5a88c}.tile.is-selected:active{transform:translateY(0)scale(.97)}@keyframes tin{0%{opacity:0;transform:scale(.7)translateY(10px)}to{opacity:1;transform:none}}.actions{justify-content:center;gap:8px;height:46px;margin:14px 0 6px;display:flex}.btn{background:var(--panel);border:1px solid var(--edge);height:44px;color:var(--fg);cursor:pointer;letter-spacing:.05em;transition:transform .2s var(--spring),box-shadow .15s,border-color .2s,opacity .2s;border-radius:14px;padding:0 18px;font-size:13px;font-weight:800;box-shadow:0 4px #061018}@media (hover:hover){.btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}}.btn:active:not(:disabled){transition-duration:60ms;transform:translateY(3px);box-shadow:0 1px #061018}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);color:#012;border-color:var(--accent);box-shadow:0 4px #00805e}.btn.primary:not(:disabled){animation:1.6s ease-in-out infinite ready}@keyframes ready{50%{box-shadow:0 4px #00805e,0 0 18px #00e5a899}}.btn.huge{height:56px;padding:0 28px;font-size:16px}.micro{text-align:center;opacity:.6;min-height:18px;font-size:12px}.toast{bottom:calc(18px + var(--saib));opacity:0;background:var(--panel);border:1px solid var(--accent);color:var(--fg);z-index:10000;pointer-events:none;text-align:center;max-width:92vw;transition:transform .35s var(--spring),opacity .2s;border-radius:14px;padding:10px 16px;font-size:13px;font-weight:700;position:fixed;left:50%;transform:translate(-50%,20px)scale(.9)}.toast.show{opacity:1;transform:translate(-50%)scale(1)}.toast.bad{border-color:var(--bad)}.toast.near{border-color:var(--warn);color:#ffe2b8}.toast.common{border-color:var(--common)}.toast.rare{border-color:var(--rare)}.toast.epic{border-color:var(--epic)}.toast.legendary{border-color:var(--legendary);color:var(--legendary)}.results{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#02060ab8;place-items:center;padding:12px;animation:.3s both fade;display:grid;position:fixed;inset:0;overflow:auto}.results.out{animation:.25s reverse both fade}@keyframes fade{0%{opacity:0}to{opacity:1}}.rcard{background:var(--panel);border:1px solid var(--edge);text-align:center;width:min(94vw,460px);animation:pop .55s var(--spring) both;border-radius:22px;padding:22px 18px}.results.win .rcard{border-color:var(--accent);box-shadow:0 0 40px #00e5a840}.rhead h2{letter-spacing:.08em;color:var(--accent);text-shadow:0 0 18px #00e5a899;animation:pop .6s var(--spring) .15s both;margin:0;font-family:Orbitron,sans-serif;font-size:clamp(26px,8vw,38px);font-weight:800}.results.lose .rhead h2{color:var(--bad);text-shadow:0 0 18px #ff3b5c80}.rhead p{opacity:.8;font-size:13px}.stats{grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0;display:grid}.stat,.compare,.rcard pre,.codename,.ractions{animation:rise .45s var(--out) both;animation-delay:calc(.3s + var(--d)*90ms)}.stat{border:1px solid var(--edge);background:#081219;border-radius:14px;padding:10px 4px}.stat b{font-size:20px;display:block}.stat span{opacity:.65;letter-spacing:.06em;font-size:10px}.stat.streak.up b{animation:flame .8s var(--spring) .9s both}@keyframes flame{0%{transform:scale(1)}40%{transform:scale(1.5)rotate(-6deg)}to{transform:none}}.bar2{background:#132532;border-radius:99px;height:12px;overflow:hidden}.bar2 i{height:100%;width:var(--w);background:var(--accent);animation:grow 1s var(--out) .8s both;display:block}@keyframes grow{0%{width:0}}.compare p{margin:8px 0;font-size:13px}.rcard pre{text-align:left;border:1px solid var(--edge);background:#061018;border-radius:12px;padding:10px 14px;font-family:inherit;font-size:12px;line-height:1.5;display:inline-block}.codename{font-size:13px}.codename small{opacity:.65}.ractions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}footer{text-align:center;opacity:.4;font-size:11px}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}.board{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(60px,17vw,84px);gap:8px;padding:2px;display:grid}.board .tile{height:auto}.slot{grid-column:1/-1;min-height:0}.slot.grid4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slot>.nc-banner{height:100%;min-height:0}.slot .nc-title{font-family:Orbitron,sans-serif;font-size:clamp(11px,3vw,15px);font-weight:700}.row3{animation:rise .5s var(--out) .38s both;flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.next{opacity:.8;margin:0;font-size:13px}.next span{opacity:.6}.next.small{opacity:.65;margin-top:12px;font-size:12px}.rhead h2.sm{font-size:clamp(20px,6vw,28px)}.hist{text-align:left;gap:6px;margin:6px 0 12px;display:grid}.hrow{animation:rise .45s var(--out) both;animation-delay:calc(.2s + var(--d)*70ms);grid-template-columns:76px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.hrow i{width:var(--w);background:var(--accent);color:#012;text-align:right;min-width:22px;animation:grow .9s var(--out) .4s both;border-radius:6px;padding:3px 6px;font-style:normal;font-weight:800;display:block}.hrow i.l{background:var(--bad);color:#fff}.tabs{justify-content:center;gap:6px;margin:12px 0;display:flex}.tab{font:inherit;border:1px solid var(--edge);color:var(--fg);cursor:pointer;background:#081219;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.tab.on{background:var(--accent);color:#012;border-color:var(--accent)}.lb{text-align:left;gap:6px;max-height:46vh;margin:0 0 12px;padding:0;list-style:none;display:grid;overflow:auto}.lb li{border:1px solid var(--edge);animation:rise .4s var(--out) both;animation-delay:calc(var(--d)*45ms);background:#081219;border-radius:12px;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:grid}.lb li.me{border-color:var(--accent);box-shadow:0 0 12px #00e5a840}.lb li .v{opacity:.7;font-size:12px}.lb li.empty{text-align:center;opacity:.7;display:block}.lb .n{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.logo-img{filter:drop-shadow(0 0 18px #3dc8ff59);width:min(86vw,460px);height:auto;animation:pop .7s var(--spring) both}.nc-oneaway{box-shadow:0 0 0 4px var(--legendary),0 0 22px var(--legendary)!important}.bars{grid-auto-rows:clamp(56px,15vw,84px);gap:8px;padding:0 2px;display:grid}.bars:not(:empty){margin-bottom:8px}.board{grid-auto-rows:max(48px,clamp(60px,17vw,84px))}.tile{min-width:48px;min-height:48px}@media (width<=600px) and (orientation:portrait){#app{min-height:100dvh;padding:calc(8px + var(--sait)) calc(10px + var(--sair)) calc(10px + var(--saib)) calc(10px + var(--sail));flex-direction:column;display:flex}.status{order:1;margin-top:auto;margin-bottom:8px}.board{order:2}.actions{order:3}.micro{order:4}.bars{grid-auto-rows:clamp(52px,14vw,72px)}.actions{margin:12px 0 4px}.micro{min-height:16px;margin:0}.lobby{min-height:calc(100dvh - 24px)}.toast{top:42%;bottom:auto}}@media (height<=680px) and (orientation:portrait){.micro{display:none}.board{grid-auto-rows:56px;gap:6px}.bars{grid-auto-rows:50px;gap:6px}}.lb .av{vertical-align:middle;border-radius:50%;flex:none;width:24px;height:24px;margin-right:6px}.privacy{opacity:.75;font-size:12px}.lobby-mute{top:calc(10px + var(--sait));position:absolute;right:10px}.upsell{z-index:80;opacity:0;pointer-events:none;justify-content:center;align-items:flex-end;padding:0;transition:opacity .2s;display:flex;position:fixed;inset:0}.upsell.show{opacity:1;pointer-events:auto}.upsell.out{opacity:0}.upsell-scrim{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#02060ab8;border:0;position:absolute;inset:0}.upsell-sheet{background:var(--panel);border:1px solid var(--edge);width:min(100vw,480px);max-height:min(78vh,560px);padding:14px 18px calc(22px + var(--saib));text-align:center;transition:transform .35s var(--spring);border-bottom:0;border-radius:22px 22px 0 0;position:relative;overflow:auto;transform:translateY(24px);box-shadow:0 -12px 40px #00000073}.upsell.show .upsell-sheet{transform:none}.upsell-handle{background:var(--edge);border-radius:99px;width:42px;height:4px;margin:4px auto 14px}.upsell-sheet h2{letter-spacing:.08em;color:var(--accent);text-shadow:0 0 12px #00e5a859;margin:0 0 8px;font-family:Orbitron,sans-serif;font-size:clamp(16px,4.5vw,20px);font-weight:900}.upsell-sheet p{opacity:.9;margin:0 0 10px;font-size:13px;line-height:1.45}.upsell-note{opacity:.55!important;font-size:11px!important}.upsell-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.upsell-actions .btn{width:100%}
