:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--menu-bg: #0a0d12;--menu-panel: rgba(18, 24, 32, .86);--menu-panel-strong: rgba(12, 16, 22, .96);--menu-text: #f8fafc;--menu-muted: #aab6c5;--menu-accent: #4dd8ff;--menu-accent-2: #86efac;--menu-danger: #fb7185;--theme-panel: rgba(18, 24, 32, .86);--theme-panel-strong: rgba(12, 16, 22, .96);--theme-text: #f8fafc;--theme-muted: #aab6c5;--theme-accent: #4dd8ff;--theme-danger: #fb7185}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:0;overflow:hidden}body{margin:0;min-width:0;min-height:0;background:linear-gradient(135deg,#080b11f5,#111827f0 52%,#0c0e15fa),#0a0d12;color:var(--menu-text)}button,input,select{font:inherit}button{border:0}.app-shell{height:100dvh;overflow:hidden}.menu{min-height:0;height:100dvh;padding:2rem;display:grid;grid-template-rows:auto 1fr;gap:1.25rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;justify-content:center}.brand-mark{width:3.4rem;height:3.4rem;border-radius:.7rem;background:#060a10c7;border:.0625rem solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 .0625rem #0000007a,0 .8rem 1.8rem #00000057}.brand-mark svg{width:100%;height:100%}.muted{color:var(--menu-muted)}.profile-pill{display:inline-flex;align-items:center;gap:.75rem;padding:.45rem .45rem .45rem .8rem;background:var(--menu-panel);border:.0625rem solid rgba(255,255,255,.08);border-radius:.5rem}.profile-pill strong{display:block;max-width:min(26vw,12rem);color:var(--menu-text);font-size:.95rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-action{width:2.6rem;height:2.6rem}.menu-grid{display:grid;grid-template-columns:minmax(27rem,.95fr) minmax(24rem,1.05fr);gap:1rem;align-items:stretch}.panel{background:var(--menu-panel);border:.0625rem solid rgba(255,255,255,.08);border-radius:.5rem;box-shadow:0 1rem 3rem #0000003d}.menu-panel{padding:1rem;display:grid;gap:1rem;align-content:start}.tabs,.segmented{display:flex;gap:.4rem;padding:.25rem;background:var(--menu-panel-strong);border-radius:.5rem;border:.0625rem solid rgba(255,255,255,.06)}.tabs button,.segmented button{min-height:2.4rem;padding:0 .8rem;border-radius:.4rem;background:transparent;color:var(--menu-muted);cursor:pointer;white-space:nowrap}.tabs button.active,.segmented button.active{background:#ffffff1a;color:var(--menu-text)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.section-title h2,.section-title h3{margin:0;font-size:1rem;letter-spacing:0}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.field{display:grid;gap:.35rem}.field label{font-size:.8rem;color:var(--menu-muted)}select,input[type=text],input[type=range]{width:100%}select,input[type=text]{min-height:2.7rem;color:var(--menu-text);background:#05080dbd;border:.0625rem solid rgba(255,255,255,.12);border-radius:.4rem;padding:0 .75rem;outline:none}input[type=range]{accent-color:var(--menu-accent)}.difficulty-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.75rem}.difficulty-value{min-width:2.5rem;text-align:center;color:var(--menu-text);background:#ffffff14;border-radius:.4rem;padding:.45rem .65rem}.actions{display:flex;flex-wrap:wrap;gap:.65rem}.button{min-height:2.8rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:0 1rem;border-radius:.45rem;color:#061018;background:var(--menu-accent);font-weight:700;cursor:pointer}.button.secondary{color:var(--menu-text);background:#ffffff1a;border:.0625rem solid rgba(255,255,255,.1)}.button.positive{background:var(--menu-accent-2)}.button:disabled{opacity:.55;cursor:not-allowed}.challenge-list{display:grid;gap:.65rem}.challenge-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.8rem;background:#ffffff0f;border:.0625rem solid rgba(255,255,255,.08);border-radius:.5rem}.challenge-main{min-width:0;display:grid;gap:.65rem}.challenge-heading{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.challenge-creator{min-width:0}.challenge-creator span,.challenge-metric span{display:block;color:var(--menu-muted);font-size:.75rem}.challenge-creator strong{display:block;color:var(--menu-text);font-size:1.1rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-token{flex:0 0 auto;max-width:10rem;padding:.25rem .45rem;color:var(--menu-accent);background:#4dd8ff1a;border:.0625rem solid rgba(77,216,255,.18);border-radius:.3rem;font-size:.76rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.challenge-metric{min-width:0;padding:.5rem .6rem;background:#ffffff14;border:.0625rem solid rgba(255,255,255,.08);border-radius:.35rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.challenge-metric strong{display:block;color:var(--menu-text);font-size:1rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-meta{color:var(--menu-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-runs-list{gap:.7rem}.my-run-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.75rem;background:linear-gradient(135deg,#ffffff1a,#ffffff09 44%,#0003),#ffffff0d;border:.0625rem solid rgba(255,255,255,.1);border-radius:.5rem}.my-run-mode-icon{width:3.3rem;height:3.3rem;display:grid;place-items:center;color:var(--menu-accent);background:#4dd8ff1c;border:.0625rem solid rgba(77,216,255,.22);border-radius:.45rem;box-shadow:inset 0 0 0 .0625rem #00000057}.my-run-mode-icon svg{width:2.15rem;height:2.15rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.my-run-summary{min-width:0;display:grid;gap:.55rem}.my-run-main{min-width:0;display:grid;gap:.15rem}.my-run-main strong{min-width:0;color:var(--menu-text);font-size:1.2rem;line-height:1.08;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-run-main span{min-width:0;color:var(--menu-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-run-facts{min-width:0;display:flex;flex-wrap:wrap;gap:.4rem}.my-run-facts span{min-width:0;max-width:100%;padding:.28rem .45rem;color:var(--menu-text);background:#00000038;border:.0625rem solid rgba(255,255,255,.08);border-radius:.3rem;font-size:.78rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-run-facts b{color:var(--menu-muted);font-weight:700}.my-run-action{width:3rem;height:3rem}.rank-link{background:none;border:none;padding:0;color:var(--menu-accent);font:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.rank-link:hover{color:var(--menu-text)}.share-token-link{min-width:0;max-width:100%;padding:.28rem .45rem;color:var(--menu-accent);background:#00000038;border:.0625rem solid rgba(77,216,255,.2);border-radius:.3rem;font-size:.78rem;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;line-height:1.15;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.share-token-link:hover{background:#4dd8ff14;border-color:#4dd8ff66}.preview-panel{position:relative;overflow:hidden;min-height:36rem;display:grid;align-items:end;padding:1rem;background:linear-gradient(180deg,transparent,rgba(0,0,0,.72)),var(--preview-image, none) center / cover}.preview-card{max-width:28rem;display:grid;gap:.75rem}.preview-card h2{margin:0;font-size:1.8rem;letter-spacing:0}.game-menu{position:relative;background:linear-gradient(90deg,#03070de0,#03070d8a,#03070de6),linear-gradient(180deg,#03070d3d,#03070dd1),var(--preview-image, none) center / cover,#0a0d12}.game-menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 .0625rem,transparent .0625rem .55rem),repeating-linear-gradient(90deg,rgba(255,255,255,.026) 0 .0625rem,transparent .0625rem .7rem);-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent)}.game-menu>*{position:relative;z-index:1}.menu-stage{min-height:0;display:grid;grid-template-columns:minmax(14rem,.92fr) minmax(25rem,34rem);gap:1.25rem;align-items:center}.menu-art{min-height:0;display:grid;align-items:center;padding:.6rem}.menu-art-board{position:relative;overflow:hidden;width:min(100%,clamp(14rem,31vw,30rem));max-height:calc(100dvh - 11.5rem);aspect-ratio:10 / 16;justify-self:center;display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;gap:clamp(.3rem,.8vw,.45rem);padding:clamp(.65rem,1vw,1rem);border:.18rem solid var(--menu-accent);border-radius:.35rem;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 16%,rgba(0,0,0,.68) 74%),#04080fb8;box-shadow:0 0 0 .35rem #000000b8,0 0 2.5rem #4dd8ff3d,0 1.5rem 5rem #00000094;transform:perspective(clamp(36rem,62vw,55rem)) rotateY(-7deg) rotateX(2deg)}.menu-art-board:before,.menu-art-board:after{content:"";position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;z-index:2;pointer-events:none}.menu-art-board:before{mix-blend-mode:screen}.menu-art-board:before{background:linear-gradient(118deg,transparent 37%,rgba(255,255,255,.72) 48%,transparent 59%);filter:blur(.08rem);opacity:0;transform:translate(-82%) translateY(18%) rotate(3deg);animation:board-glint 6.8s ease-in-out infinite}.menu-art-board:after{background:radial-gradient(circle at 24% 20%,rgba(255,255,255,.72) 0 .18rem,transparent .5rem),radial-gradient(circle at 72% 36%,rgba(134,239,172,.68) 0 .14rem,transparent .44rem),radial-gradient(circle at 58% 68%,rgba(77,216,255,.6) 0 .16rem,transparent .5rem),radial-gradient(circle at 34% 84%,rgba(255,255,255,.56) 0 .12rem,transparent .38rem);opacity:.12;transform:scale(.96);animation:board-sparkles 4.9s steps(1,end) infinite}.menu-art-board span{position:relative;z-index:1;min-width:0;border-radius:.16rem;background:#ffffff13;border:.0625rem solid rgba(255,255,255,.08)}.menu-art-board .lit{background:linear-gradient(135deg,var(--menu-accent),var(--menu-accent-2));border-color:#ffffff61;box-shadow:0 0 1rem #4dd8ff66}@keyframes board-glint{0%,42%,to{opacity:0;transform:translate(-82%) translateY(18%) rotate(3deg)}48%{opacity:.2}53%{opacity:.46}61%{opacity:0;transform:translate(82%) translateY(-12%) rotate(3deg)}}@keyframes board-sparkles{0%,17%{opacity:.08;transform:translateZ(0) scale(.94)}23%{opacity:.34;transform:translate3d(1.2%,-.8%,0) scale(1)}39%{opacity:.14;transform:translate3d(-.8%,.5%,0) scale(.98)}56%{opacity:.42;transform:translate3d(.7%,1.1%,0) scale(1.03)}74%{opacity:.1;transform:translate3d(-1%,-.4%,0) scale(.96)}86%{opacity:.28;transform:translate3d(1.4%,.6%,0) scale(1.01)}to{opacity:.08;transform:translateZ(0) scale(.94)}}@media (prefers-reduced-motion: reduce){.menu-art-board:before,.menu-art-board:after{animation:none;opacity:0}}.menu-stage .menu-panel{min-width:0;min-height:0;max-height:100%;align-content:start;gap:1.2rem;overflow:auto;padding:1.2rem;background:linear-gradient(180deg,#121820e6,#080b12e6),#0c1016e6;border-color:#ffffff24;box-shadow:inset 0 0 0 .125rem #00000057,0 1.2rem 3.5rem #00000075}.menu-nav{min-width:0;display:flex;justify-content:flex-start}.step-back{width:2.8rem;height:2.8rem}.step-stack,.media-stack{min-width:0;display:grid;gap:1rem}.choice-grid{min-width:0;display:grid;gap:.8rem}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-grid,.theme-grid,.sound-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-card{min-width:0;display:grid;gap:.4rem;align-content:start}.choice-card strong,.quick-action span,.ready-strip span{min-width:0;color:var(--menu-text);font-size:.88rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choice-card strong{text-align:center}.image-choice,.image-action{min-width:0;display:grid;place-items:center;color:var(--menu-text);background:linear-gradient(135deg,#ffffff29,#ffffff08 38%,#0000005c),#ffffff1a;border:.1rem solid rgba(255,255,255,.12);border-radius:.45rem;cursor:pointer;box-shadow:inset 0 0 0 .08rem #0000006b,0 .7rem 1.4rem #00000047}.image-choice{width:100%;aspect-ratio:1 / .78;min-height:5.4rem}.entry-grid .image-choice{min-height:8rem}.image-action{width:3rem;height:3rem;flex:0 0 auto}.image-choice:hover,.image-choice:focus-visible,.image-action:hover,.image-action:focus-visible{outline:none;border-color:color-mix(in srgb,var(--menu-accent) 70%,white);color:var(--menu-accent)}.image-choice.active{color:#061018;background:linear-gradient(135deg,#ffffff8c,#ffffff1f 42%,#00000024),var(--menu-accent);border-color:#ffffff80}.image-action.positive{color:#061018;background:linear-gradient(135deg,#ffffff61,#ffffff14),var(--menu-accent-2);border-color:#ffffff42}.image-action.secondary{color:var(--menu-text);background:linear-gradient(135deg,#ffffff21,#ffffff06),#ffffff17}.image-choice svg,.image-action svg{width:52%;height:52%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.entry-grid .image-choice svg{width:48%;height:48%}.difficulty-panel{display:grid;gap:.55rem;padding:.8rem;background:#ffffff13;border:.0625rem solid rgba(255,255,255,.1);border-radius:.45rem}.difficulty-panel label{color:var(--menu-muted);font-size:.78rem}.step-actions{display:flex;justify-content:flex-end}.media-section{display:grid;gap:.55rem}.theme-choice{background:linear-gradient(180deg,transparent 22%,rgba(0,0,0,.54)),var(--thumb-image, none) center / cover,#ffffff14}.theme-choice.active{background:linear-gradient(180deg,#ffffff14 0,#0000007a 76%),var(--thumb-image, none) center / cover,#ffffff14;box-shadow:inset 0 0 0 .12rem #ffffff8c,0 0 1.4rem color-mix(in srgb,var(--menu-accent) 45%,transparent)}.sound-card .image-choice{min-height:3.2rem;aspect-ratio:1 / .62}.audio-stack .media-section{gap:.45rem}.audio-stack .sound-grid{gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr))}.audio-stack .sound-card strong{font-size:.8rem}.ready-strip{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.7rem;background:#00000047;border:.0625rem solid rgba(255,255,255,.1);border-radius:.45rem}.start-action{width:3.35rem;height:3.35rem}.quick-actions{display:flex;flex-wrap:wrap;gap:.9rem}.quick-action{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem}.token-actions{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem}.token-field{padding-top:.2rem}@media (max-width: 58rem){.menu{padding:1rem}.menu-stage{grid-template-columns:1fr}.menu-art{display:none}.menu-stage .menu-panel{max-height:calc(100dvh - 6.8rem)}}@media (max-width: 38rem){.topbar{align-items:flex-start;flex-direction:column}.mode-grid,.theme-grid,.sound-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-card strong,.quick-action span,.ready-strip span{font-size:.82rem}.challenge-row{grid-template-columns:minmax(0,1fr)}.challenge-row .image-action{justify-self:end}.my-run-card{grid-template-columns:auto minmax(0,1fr)}.my-run-action{grid-column:2;justify-self:end}}.game-view{position:relative;height:100dvh;min-height:0;padding:1rem;display:grid;grid-template-columns:minmax(22rem,calc((100dvh - 10rem)/2 + 2rem)) clamp(22rem,38vw,44rem);justify-content:center;gap:1rem;overflow:hidden;background:linear-gradient(90deg,#0000007a,#00000014,#0000007a),linear-gradient(180deg,#02040852,#0204082e),var(--game-bg, none) center / cover fixed,#0a0d12;color:var(--theme-text)}.game-exit-button{position:fixed;top:1rem;right:1rem;z-index:20;width:2.75rem;height:2.75rem;display:inline-grid;place-items:center;color:var(--theme-text);background:var(--theme-panel-strong);border:.125rem solid rgba(255,255,255,.16);border-radius:.35rem;box-shadow:inset 0 0 0 .0625rem #00000085,0 .8rem 2rem #00000059;cursor:pointer}.game-exit-button:hover,.game-exit-button:focus-visible{color:#061018;background:var(--theme-danger);outline:none}.game-exit-button svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.game-table{position:relative;min-width:0;min-height:0;height:calc(100dvh - 2rem);display:flex;flex-direction:column;align-items:center;gap:.85rem;overflow:hidden}.modifier-warning-pulse-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:14;overflow:hidden;pointer-events:none}.modifier-warning-pulse{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(circle at 50% 56%,color-mix(in srgb,var(--theme-danger) 26%,transparent) 0%,color-mix(in srgb,var(--theme-accent) 8%,transparent) 28%,transparent 64%),linear-gradient(180deg,color-mix(in srgb,var(--theme-accent) 12%,transparent) 0%,transparent 72%);animation:modifier-warning-pulse .52s ease-out forwards}@keyframes modifier-warning-pulse{0%{opacity:.3;transform:scale(.985)}35%{opacity:.16}to{opacity:0;transform:scale(1.02)}}.modifier-banner-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:18;display:grid;place-items:center;pointer-events:none;padding:.8rem}.modifier-banner{max-width:min(100%,29rem);padding:.3rem 1.3rem;text-align:center;color:var(--theme-accent);font-size:clamp(1.5rem,4.4vh,2.5rem);font-weight:950;line-height:1;letter-spacing:0;text-transform:uppercase;opacity:0;text-shadow:0 0 .35rem rgba(255,255,255,.75),0 0 1.2rem color-mix(in srgb,var(--theme-accent) 85%,transparent),0 0 2.1rem color-mix(in srgb,var(--theme-danger) 45%,transparent);filter:saturate(1.4);animation:modifier-banner-fade 3s ease-out forwards}@keyframes modifier-banner-fade{0%{opacity:0;transform:translateY(.5rem) scale(.95)}14%{opacity:.95;transform:translateY(0) scale(1)}76%{opacity:.86}to{opacity:0;transform:translateY(-.35rem) scale(1.05)}}.hud-panel{min-width:0;min-height:0;max-height:calc(100dvh - 2rem);background:var(--theme-panel);border:.125rem solid rgba(255,255,255,.14);border-radius:.35rem;padding:.85rem;align-self:start;display:grid;gap:.8rem;overflow:hidden;box-shadow:inset 0 0 0 .125rem #0000005c,0 1rem 2.5rem #00000057}.piece-tray{flex-shrink:0;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;padding:.65rem .8rem;background:var(--theme-panel);border:.125rem solid rgba(255,255,255,.14);border-radius:.35rem;box-shadow:inset 0 0 0 .125rem #0000005c,0 1rem 2.5rem #00000047}.game-mode-icon{width:3.9rem;height:3.9rem;display:grid;place-items:center;color:var(--theme-accent);background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.1);border-radius:.25rem;box-shadow:inset 0 0 0 .0625rem #0000006b}.game-mode-icon svg{width:2.45rem;height:2.45rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.piece-strip{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:stretch}.piece-slot{min-width:0;display:grid;gap:.25rem;align-items:center;padding:.4rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.piece-slot span{color:var(--theme-muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.hold-slot{width:5.4rem}.next-slot{min-width:0}.next-pieces{min-width:0;display:grid;grid-template-columns:repeat(5,minmax(2.3rem,1fr));gap:.3rem}.piece-preview{width:100%;height:3rem;min-width:0;background:#02060a;border:.0625rem solid rgba(255,255,255,.1);border-radius:.18rem}.hold-preview{height:3.65rem}.hud-panel>section,.right-block{min-height:0}#right-hud{display:flex;flex-direction:column}.leaderboard-section{flex:0 0 auto}.hud-panel h2,.hud-panel h3{margin:0;font-size:1rem;letter-spacing:0}.stat-grid{display:grid;gap:.55rem}.stat{display:grid;gap:.15rem;padding:.65rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.stat span{color:var(--theme-muted);font-size:.78rem}.stat strong{font-size:1.25rem;line-height:1.1}.board-wrap{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;width:100%;overflow:visible}.board-frame{position:relative;height:100%;aspect-ratio:10 / 20;max-width:100%;border-radius:.35rem;padding:.72rem;background:linear-gradient(135deg,#ffffff42,#ffffff0a 18%,#0000009e 70%),var(--theme-panel-strong);border:.18rem solid var(--theme-accent);box-shadow:0 0 0 .28rem #000000bd,0 0 2rem color-mix(in srgb,var(--theme-accent) 45%,transparent),0 1.5rem 5rem #00000094}.board-frame:before,.board-frame:after{content:"";position:absolute;pointer-events:none;top:.28rem;right:.28rem;bottom:.28rem;left:.28rem;border:.0625rem solid rgba(255,255,255,.22);border-radius:.22rem}.board-frame:after{top:-.48rem;right:-.48rem;bottom:-.48rem;left:-.48rem;border-color:#000000b8;box-shadow:inset 0 0 0 .12rem #ffffff1a}canvas{position:relative;z-index:1;width:100%;height:100%;display:block;border-radius:.12rem}.leaderboard{display:grid;gap:.45rem}.leader-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.55rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem;color:var(--theme-text)}.game-info-section{display:grid;gap:.55rem}.stat-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.stat-compact>div,.controls-line{min-width:0;padding:.45rem .55rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.stat-compact span,.controls-line>span{display:block;color:var(--theme-muted);font-size:.72rem}.stat-compact strong{display:block;color:var(--theme-text);font-size:1.05rem;line-height:1.1;white-space:nowrap}.controls-line{display:grid;gap:.3rem}.controls-line strong{display:flex;flex-wrap:wrap;gap:.25rem}.ghost-grid{min-height:0;height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.55rem;overflow:hidden}.ghost-section{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.45rem;overflow:hidden}.ghost-card{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;padding:.45rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.1);border-radius:.28rem}.ghost-name{min-width:0;color:var(--theme-text);font-size:.78rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ghost-canvas{width:100%;height:100%;min-width:0;min-height:0;background:#02060a;border:.1rem solid var(--theme-accent);border-radius:.18rem}.token-box{-webkit-user-select:all;user-select:all;padding:.75rem;border-radius:.45rem;background:#ffffff1a;border:.0625rem dashed var(--theme-accent);color:var(--theme-text);overflow-wrap:anywhere}.error{color:var(--menu-danger)}.kbd{display:inline-grid;place-items:center;min-width:1.75rem;min-height:1.5rem;padding:0 .4rem;border-radius:.3rem;background:#ffffff1f;color:var(--theme-text);font-size:.8rem}.splash{height:100dvh;display:grid;place-items:center;padding:2rem}.splash-card{display:grid;gap:2.5rem;width:100%;max-width:24rem;padding:2.5rem 2rem;background:var(--menu-panel);border:.0625rem solid rgba(255,255,255,.1);border-radius:.75rem;box-shadow:0 0 0 .25rem #0006,0 2rem 6rem #00000085;animation:splash-in .45s cubic-bezier(.16,1,.3,1)}@keyframes splash-in{0%{opacity:0;transform:translateY(1.25rem) scale(.97)}to{opacity:1;transform:none}}.splash-brand{display:grid;gap:.6rem;text-align:center}.splash-ghost-icon{font-size:3.5rem;line-height:1;filter:drop-shadow(0 0 1.2rem rgba(77,216,255,.7));animation:ghost-float 3s ease-in-out infinite}@keyframes ghost-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.4rem)}}.splash-title{margin:0;font-size:3rem;font-weight:900;line-height:1;letter-spacing:-.02em}.splash-ghost{color:var(--menu-accent);text-shadow:0 0 1.5rem color-mix(in srgb,var(--menu-accent) 75%,transparent),0 0 3rem color-mix(in srgb,var(--menu-accent) 35%,transparent)}.splash-rix{color:var(--menu-accent-2);text-shadow:0 0 1.5rem color-mix(in srgb,var(--menu-accent-2) 75%,transparent),0 0 3rem color-mix(in srgb,var(--menu-accent-2) 35%,transparent)}.splash-tagline{margin:0;font-size:.85rem;color:var(--menu-muted)}.splash-form{display:grid;gap:.8rem}.splash-form label{font-size:.85rem;color:var(--menu-muted)}.splash-submit{width:3.2rem;height:3.2rem}.splash-submit-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem}.splash-submit-row span{min-width:0;color:var(--menu-text);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attack-progress-wrap{grid-column:1 / -1;padding:.55rem .6rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.attack-progress-bar-bg{height:.6rem;background:#ffffff12;border-radius:.5rem;overflow:hidden;box-shadow:inset 0 .05rem .15rem #00000080}.attack-progress-bar-fill{height:100%;border-radius:.5rem;background:linear-gradient(90deg,var(--menu-accent-2) 0%,var(--theme-accent) 100%);box-shadow:0 0 .4rem color-mix(in srgb,var(--theme-accent) 60%,transparent);transition:width .12s linear}.attack-progress-wrap.urgent .attack-progress-bar-fill{background:linear-gradient(90deg,#f59e0b 0%,var(--theme-danger) 100%);box-shadow:0 0 .5rem color-mix(in srgb,var(--theme-danger) 70%,transparent);animation:pulse-bar .4s ease-in-out infinite alternate}@keyframes pulse-bar{0%{opacity:.85}to{opacity:1}}.finish-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000ad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;animation:backdrop-in .25s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.finish-modal{background:var(--theme-panel-strong);border:.125rem solid rgba(255,255,255,.16);border-radius:.75rem;padding:1.5rem;min-width:20rem;max-width:30rem;width:90vw;display:grid;gap:1rem;box-shadow:0 0 0 .25rem #00000080,0 2rem 6rem #000000b8;animation:modal-in .3s cubic-bezier(.16,1,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(1.5rem) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.finish-modal-title{margin:0;font-size:1.4rem;letter-spacing:.02em;color:var(--theme-accent)}.finish-modal-result{font-size:2rem;font-weight:800;color:var(--theme-text);letter-spacing:.01em}.finish-modal-board{display:grid;gap:.35rem}.modal-leader-row{display:grid;grid-template-columns:2.8rem 1fr auto;align-items:center;gap:.55rem;padding:.5rem .65rem;background:#ffffff0d;border:.0625rem solid rgba(255,255,255,.07);border-radius:.3rem;color:var(--theme-text)}.modal-leader-row.modal-me{background:color-mix(in srgb,var(--theme-accent) 18%,transparent);border-color:color-mix(in srgb,var(--theme-accent) 60%,transparent);font-weight:700}.modal-rank{color:var(--theme-muted);font-size:.78rem;font-variant-numeric:tabular-nums}.modal-me .modal-rank{color:var(--theme-accent)}.modal-sep{text-align:center;color:var(--theme-muted);font-size:.75rem;letter-spacing:.15em;padding:.1rem 0}.finish-modal-back{justify-self:stretch;min-height:3rem;font-size:1rem}.modal-token-wrap{display:grid;gap:.35rem}.modal-token-label{font-size:.75rem;color:var(--theme-muted)}.modal-token{font-size:1rem;font-weight:700;letter-spacing:.04em}.pause-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;animation:backdrop-in .18s ease}.pause-modal{display:grid;gap:2.2rem;place-items:center;animation:pause-modal-in .28s cubic-bezier(.16,1,.3,1)}@keyframes pause-modal-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.pause-icon{display:flex;align-items:center;gap:.6rem}.pause-icon-bar{width:.58rem;height:3rem;border-radius:.22rem;background:var(--theme-accent, var(--menu-accent));box-shadow:0 0 1rem color-mix(in srgb,var(--theme-accent, var(--menu-accent)) 70%,transparent),0 0 2.4rem color-mix(in srgb,var(--theme-accent, var(--menu-accent)) 32%,transparent)}.pause-actions{display:flex;gap:1.6rem}.pause-btn{width:6rem;height:6rem;display:grid;place-items:center;border-radius:1rem;cursor:pointer;border:.15rem solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 .08rem #0000006b,0 1rem 2.5rem #0006;transition:transform .12s ease,box-shadow .12s ease}.pause-btn:hover,.pause-btn:focus-visible{outline:none;transform:scale(1.08)}.pause-btn svg{width:50%;height:50%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.pause-btn-resume{color:#061018;background:linear-gradient(135deg,#ffffff61,#ffffff14),var(--menu-accent-2);border-color:#ffffff47;box-shadow:inset 0 0 0 .08rem #00000061,0 0 1.4rem color-mix(in srgb,var(--menu-accent-2) 35%,transparent),0 1rem 2.5rem #0006}.pause-btn-resume svg{fill:currentColor;stroke:none}.pause-btn-resume:hover{box-shadow:inset 0 0 0 .08rem #00000061,0 0 2.4rem color-mix(in srgb,var(--menu-accent-2) 60%,transparent),0 1.5rem 3rem #00000080}.pause-btn-quit{color:var(--menu-danger);background:linear-gradient(135deg,#ffffff1f,#ffffff06),#fb71851f;border-color:#fb718561;box-shadow:inset 0 0 0 .08rem #00000061,0 0 .8rem color-mix(in srgb,var(--menu-danger) 15%,transparent),0 1rem 2.5rem #0006}.pause-btn-quit:hover{background:linear-gradient(135deg,#ffffff2e,#ffffff0d),#fb718547;box-shadow:inset 0 0 0 .08rem #00000061,0 0 1.8rem color-mix(in srgb,var(--menu-danger) 50%,transparent),0 1.5rem 3rem #00000080}.challenge-new-btn{width:100%;min-height:3.8rem;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:0 1.5rem;color:#061018;background:linear-gradient(135deg,#ffffff61,#ffffff14),var(--menu-accent-2);border:.1rem solid rgba(255,255,255,.26);border-radius:.5rem;cursor:pointer;font-size:1.1rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;box-shadow:inset 0 0 0 .08rem #0000006b,0 .7rem 1.4rem #00000047}.challenge-new-btn svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.challenge-new-btn:hover,.challenge-new-btn:focus-visible{outline:none;filter:brightness(1.1)}.challenge-carousel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem}.challenge-carousel-inner{min-width:0;display:grid;gap:.45rem}.challenge-nav-btn{flex-shrink:0;width:2.4rem;height:2.4rem;display:grid;place-items:center;color:var(--menu-text);background:#ffffff14;border:.0625rem solid rgba(255,255,255,.12);border-radius:.4rem;cursor:pointer}.challenge-nav-btn svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.challenge-nav-btn:hover,.challenge-nav-btn:focus-visible{outline:none;color:var(--menu-accent);border-color:#4dd8ff59}.challenge-counter{text-align:center;color:var(--menu-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.challenge-public-label{margin:0;font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--menu-muted);text-align:center}.challenge-card{display:grid;gap:.75rem;padding:1rem 1.1rem;background:#ffffff0f;border:.0625rem solid rgba(255,255,255,.08);border-radius:.5rem}.challenge-creator-name{display:block;font-size:1.05rem;color:var(--menu-text);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-metrics-row{display:grid;grid-template-columns:auto 1fr 1fr 1fr auto;align-items:stretch;gap:.45rem}.challenge-metrics-row .image-action{align-self:center}.challenge-mode-icon{min-width:2.6rem;display:grid;place-items:center;color:var(--menu-accent);background:#4dd8ff1a;border:.0625rem solid rgba(77,216,255,.2);border-radius:.4rem}.challenge-mode-icon svg{width:60%;height:60%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.game-view--mobile{display:flex;flex-direction:column;padding:0;gap:0;grid-template-columns:unset;justify-content:unset}.mobile-top{flex:0 0 auto;background:var(--theme-panel);border-bottom:.0625rem solid rgba(255,255,255,.08)}.mobile-top .attack-progress-wrap{grid-column:unset;padding:0;background:transparent;border:none;border-radius:0}.mobile-top .attack-progress-bar-bg{height:.2rem;border-radius:0}.mobile-hud-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem}.mobile-mode-icon{width:2.2rem;height:2.2rem;flex-shrink:0}.mobile-mode-icon svg{width:1.35rem;height:1.35rem}.mobile-stats{display:flex;gap:.6rem;flex-shrink:0}.mobile-stat{display:grid;gap:.05rem;text-align:center}.mobile-stat span{font-size:.58rem;color:var(--theme-muted);font-weight:700;text-transform:uppercase}.mobile-stat strong{font-size:.88rem;line-height:1;font-variant-numeric:tabular-nums}.mobile-pieces{flex:1;display:flex;gap:.45rem;align-items:center;justify-content:flex-end}.mobile-hold-slot,.mobile-next-slot{display:grid;gap:.12rem;align-content:start}.mobile-hold-slot span,.mobile-next-slot>span{font-size:.56rem;color:var(--theme-muted);font-weight:800;text-transform:uppercase;text-align:center}.mobile-hold-slot .hold-preview{width:2.6rem;height:1.9rem}.mobile-next-list{display:flex;gap:.18rem}.mobile-next-list .piece-preview{width:1.55rem;height:1.2rem}.mobile-play{flex:1 1 auto;min-height:0;display:flex;align-items:stretch}.game-view--mobile .game-table{flex:1 1 auto;min-width:0;min-height:0;height:auto;gap:0}.mobile-ghost-col{flex:0 0 4.5rem;min-height:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:.25rem;padding:.25rem;background:var(--theme-panel);border-left:.0625rem solid rgba(255,255,255,.08)}.mobile-ghost-col[hidden]{display:none}.mobile-ghost-card{min-height:0;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.1rem;padding:.2rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.2rem}.mobile-ghost-card .ghost-name{font-size:.55rem}.mobile-ghost-card .ghost-canvas{width:100%;height:100%;min-width:0;min-height:0}.game-view--mobile .game-exit-button{top:.4rem;right:auto;left:.4rem}.mobile-controls-host{flex:0 0 auto}.touch-controls{display:grid;grid-template-rows:1fr 1fr;background:var(--theme-panel-strong);border-top:.0625rem solid rgba(255,255,255,.1)}.tc-row{display:flex;border-bottom:.0625rem solid rgba(255,255,255,.06)}.tc-row:last-child{border-bottom:none}.tc-btn{flex:1;min-height:5rem;display:grid;place-items:center;background:transparent;border:none;border-right:.0625rem solid rgba(255,255,255,.06);color:var(--theme-text);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:background .07s ease,color .07s ease}.tc-btn:last-child{border-right:none}.tc-btn.tc-wide{flex:2}.tc-btn.tc-narrow{flex:1}.tc-btn svg{width:1.85rem;height:1.85rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.tc-narrow svg{width:1.55rem;height:1.55rem}.tc-btn.tc-active{background:#ffffff1c;color:var(--theme-accent)}
