.click-burst{position:fixed;z-index:1000;top:0;left:0;width:0;height:0;pointer-events:none}.click-burst>i{position:absolute;top:0;left:0;display:block}.click-burst-star{width:11px;height:11px;margin:-5.5px 0 0 -5.5px;animation:click-burst-star .48s cubic-bezier(.34,1.56,.64,1) forwards}.click-burst-star svg{display:block;width:100%;height:100%;fill:var(--fill)}@keyframes click-burst-star{0%{transform:translate(0) scale(.2) rotate(0);opacity:1}65%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(50deg);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.5) rotate(80deg);opacity:0}}.click-burst-ring{width:44px;height:44px;margin:-22px 0 0 -22px;border:3px solid var(--ring);border-radius:50%;opacity:0;animation:click-burst-ring .52s cubic-bezier(.2,.7,.3,1) forwards}.click-burst-ring+.click-burst-ring{animation-delay:90ms}@keyframes click-burst-ring{0%{transform:scale(.15);opacity:1}to{transform:scale(1);opacity:0}}.click-burst-pixel{width:4px;height:4px;margin:-2px 0 0 -2px;background:var(--fill);animation:click-burst-pixel .42s steps(4,end) forwards}@keyframes click-burst-pixel{0%{transform:translate(0);opacity:1}75%{opacity:1}to{transform:translate(var(--dx),var(--dy));opacity:0}}@media(prefers-reduced-motion:reduce){.click-burst{display:none}}.toffie,.toffie-mark{--toffie-line: var(--line, #36304f);--toffie-body: #d6432f;--toffie-sun: #ffc24b;--toffie-mint: #44d5ae;--toffie-cream: #fff8ef;--toffie-screen: #1e1a30;--toffie-pink: var(--pink, #ff8fc8);--toffie-sky: var(--sky, #5aa9ff);--toffie-glare: rgba(255, 255, 255, .08)}.toffie{--toffie-size: 180px;display:inline-grid;place-items:center;width:var(--toffie-size);max-width:100%;aspect-ratio:220 / 230}.toffie-mark{display:block;flex:none}.toffie__svg{width:100%;height:auto;overflow:visible}.toffie__body-group,.toffie__arm,.toffie__foot,.toffie__joystick,.toffie__screen-group,.toffie__shadow,.toffie__sparkles,.toffie__hearts,.toffie__question,.toffie__lost-eyes{transform-box:fill-box}.toffie .toffie__body-group{transform-origin:50% 88%;animation:toffie-idle 2.6s cubic-bezier(.34,1.35,.64,1) infinite}.toffie .toffie__shadow{transform-origin:center;animation:toffie-shadow-breathe 2.6s ease-in-out infinite}.toffie .toffie__eye{transform-box:fill-box;transform-origin:center;animation:toffie-blink 4.8s linear infinite}.toffie .toffie__face{display:none}.toffie .toffie__face--idle{display:block}.toffie .toffie__sparkles,.toffie .toffie__hearts,.toffie .toffie__question{opacity:0}.toffie--wave .toffie__arm--right{transform-origin:18% 82%;animation:toffie-wave .62s cubic-bezier(.36,.07,.19,.97) 4 alternate}.toffie--wave .toffie__body-group{animation:toffie-wave-body 1.25s ease-in-out infinite}.toffie--cheer .toffie__face--idle,.toffie--correct .toffie__face--idle,.toffie--win .toffie__face--idle{display:none}.toffie--cheer .toffie__face--happy,.toffie--correct .toffie__face--happy,.toffie--win .toffie__face--happy{display:block}.toffie--cheer .toffie__body-group,.toffie--correct .toffie__body-group{animation:toffie-cheer .78s cubic-bezier(.2,.8,.25,1) infinite}.toffie--cheer .toffie__arm--left,.toffie--correct .toffie__arm--left{transform-origin:82% 45%;animation:toffie-arm-up-left .78s ease-in-out infinite}.toffie--cheer .toffie__arm--right,.toffie--correct .toffie__arm--right{transform-origin:18% 82%;animation:toffie-arm-up-right .78s ease-in-out infinite}.toffie--cheer .toffie__sparkles,.toffie--correct .toffie__sparkles,.toffie--win .toffie__sparkles{opacity:1;animation:toffie-spark .55s ease-in-out infinite alternate}.toffie--thinking .toffie__face--idle{display:none}.toffie--thinking .toffie__face--thinking{display:block}.toffie--thinking .toffie__body-group{animation:toffie-think 2.2s ease-in-out infinite}.toffie--thinking .toffie__joystick{transform-origin:50% 100%;animation:toffie-joystick .9s ease-in-out infinite alternate}.toffie--wrong .toffie__face--idle{display:none}.toffie--wrong .toffie__face--wrong{display:block}.toffie--wrong .toffie__body-group{animation:toffie-wobble .48s cubic-bezier(.36,.07,.19,.97) 3}.toffie--win .toffie__body-group{animation:toffie-win 1s cubic-bezier(.2,.9,.2,1) infinite}.toffie--win .toffie__arm--left{transform-origin:82% 45%;animation:toffie-arm-up-left .5s ease-in-out infinite alternate}.toffie--win .toffie__arm--right{transform-origin:18% 82%;animation:toffie-arm-up-right .5s ease-in-out infinite alternate}.toffie--surprised .toffie__face--idle,.toffie--love .toffie__face--idle,.toffie--wink .toffie__face--idle,.toffie--dizzy .toffie__face--idle,.toffie--spin .toffie__face--idle{display:none}.toffie--surprised .toffie__face--surprised,.toffie--love .toffie__face--love,.toffie--wink .toffie__face--wink,.toffie--dizzy .toffie__face--dizzy,.toffie--spin .toffie__face--happy{display:block}.toffie--surprised .toffie__body-group{animation:toffie-hop .7s cubic-bezier(.2,.8,.25,1) 1}.toffie--surprised .toffie__arm--left{transform-origin:82% 45%;animation:toffie-arm-up-left .7s ease-in-out 1}.toffie--surprised .toffie__arm--right{transform-origin:18% 82%;animation:toffie-arm-up-right .7s ease-in-out 1}.toffie--love .toffie__body-group{animation:toffie-sway 1.1s ease-in-out infinite}.toffie--love .toffie__hearts{opacity:1;transform-origin:center;animation:toffie-hearts 1.1s ease-in-out infinite}.toffie--wink .toffie__body-group{animation:toffie-tilt .9s cubic-bezier(.34,1.35,.64,1) 1 forwards}.toffie--wink .toffie__arm--right{transform-origin:18% 82%;animation:toffie-wave .3s ease-in-out 4 alternate}.toffie--dizzy .toffie__body-group{animation:toffie-dizzy 1.2s ease-in-out infinite}.toffie--dizzy .toffie__screen-group{transform-origin:center;animation:toffie-dizzy-screen .6s ease-in-out infinite alternate}.toffie--spin .toffie__body-group{transform-origin:50% 50%;animation:toffie-spin .8s cubic-bezier(.45,0,.2,1) 1}.toffie--spin .toffie__sparkles{opacity:1;animation:toffie-spark .4s ease-in-out infinite alternate}.toffie--lost .toffie__face--idle{display:none}.toffie--lost .toffie__face--lost{display:block}.toffie--lost .toffie__body-group{animation:toffie-look 3.6s ease-in-out infinite}.toffie--lost .toffie__lost-eyes{animation:toffie-look-eyes 3.6s ease-in-out infinite}.toffie--lost .toffie__arm--right{transform-origin:18% 82%;animation:toffie-scratch 3.6s ease-in-out infinite}.toffie--lost .toffie__question{opacity:1;transform-origin:50% 100%;animation:toffie-question 1.8s ease-in-out infinite}.toffie--reduced-motion *{animation:none!important}@media(prefers-reduced-motion:reduce){.toffie *{animation:none!important}}@keyframes toffie-idle{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.008,.992)}}@keyframes toffie-shadow-breathe{0%,to{transform:scaleX(1);opacity:.22}50%{transform:scaleX(.92);opacity:.17}}@keyframes toffie-blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.08)}}@keyframes toffie-wave{0%{transform:rotate(-8deg)}to{transform:rotate(24deg)}}@keyframes toffie-wave-body{0%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(-2deg) translateY(-2px)}}@keyframes toffie-cheer{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(5px) scale(1.04,.94)}60%{transform:translateY(-11px) scale(.96,1.06)}}@keyframes toffie-arm-up-left{0%,to{transform:rotate(0)}50%{transform:rotate(28deg) translate(-2px,-7px)}}@keyframes toffie-arm-up-right{0%,to{transform:rotate(0)}50%{transform:rotate(-26deg) translate(2px,-7px)}}@keyframes toffie-think{0%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(-2.5deg) translate(-2px,-2px)}}@keyframes toffie-joystick{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes toffie-wobble{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-7px) rotate(-3deg)}40%{transform:translate(6px) rotate(3deg)}60%{transform:translate(-4px) rotate(-2deg)}80%{transform:translate(3px) rotate(1deg)}}@keyframes toffie-win{0%,to{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(5px) rotate(-2deg) scale(1.05,.93)}55%{transform:translateY(-15px) rotate(3deg) scale(.94,1.08)}75%{transform:translateY(-5px) rotate(-2deg) scale(1.02,.98)}}@keyframes toffie-spark{0%{transform:scale(.82) rotate(-4deg);opacity:.45}to{transform:scale(1.08) rotate(4deg);opacity:1}}@keyframes toffie-hop{0%,to{transform:translateY(0) scale(1)}20%{transform:translateY(6px) scale(1.06,.92)}45%{transform:translateY(-22px) scale(.94,1.08)}70%{transform:translateY(2px) scale(1.03,.97)}}@keyframes toffie-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-3px)}}@keyframes toffie-hearts{0%,to{transform:translateY(0) scale(.9)}50%{transform:translateY(-6px) scale(1.08)}}@keyframes toffie-tilt{0%{transform:rotate(0)}to{transform:rotate(-6deg)}}@keyframes toffie-dizzy{0%,to{transform:rotate(0) translate(0)}25%{transform:rotate(-5deg) translate(-4px)}75%{transform:rotate(5deg) translate(4px)}}@keyframes toffie-dizzy-screen{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes toffie-spin{0%{transform:scaleX(1)}25%{transform:scaleX(.1) translateY(-8px)}50%{transform:scaleX(-1) translateY(-12px)}75%{transform:scaleX(.1) translateY(-8px)}to{transform:scaleX(1)}}@keyframes toffie-look{0%,12%,44%,60%,92%,to{transform:rotate(0) translate(0)}20%,36%{transform:rotate(-4deg) translate(-3px)}68%,84%{transform:rotate(4deg) translate(3px)}}@keyframes toffie-look-eyes{0%,12%,44%,60%,92%,to{transform:translate(0)}20%,36%{transform:translate(-7px)}68%,84%{transform:translate(7px)}}@keyframes toffie-scratch{0%,44%,60%,to{transform:rotate(0)}47%,53%{transform:rotate(9deg)}50%,56%{transform:rotate(-2deg)}}@keyframes toffie-question{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-5px) rotate(8deg)}}.toffie-buddy{position:relative;display:inline-block;line-height:0}.toffie-buddy-button{display:block;padding:0;border:0;border-radius:40%;background:none;box-shadow:none;line-height:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.toffie-buddy-button:hover{background:none}.toffie-buddy-button:active{transform:scale(.96);box-shadow:none}.toffie-buddy-bubble{position:absolute;z-index:1;right:80%;top:12%;width:max-content;max-width:var(--toffie-bubble-max, 240px);padding:8px 14px;background:var(--surface-raised);color:var(--text);border:var(--border-w) solid var(--line);border-radius:18px;box-shadow:3px 4px 0 var(--ledge-soft);font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.25;text-align:center;text-wrap:balance;transform-origin:100% 100%;opacity:0;visibility:hidden;transform:scale(.6);pointer-events:none}.toffie-buddy-bubble:after{content:"";position:absolute;right:-9px;bottom:12px;width:14px;height:14px;background:inherit;border-right:var(--border-w) solid var(--line);border-bottom:var(--border-w) solid var(--line);transform:rotate(-45deg)}.toffie-buddy-bubble.is-shown{opacity:1;visibility:visible;transform:scale(1);transition:transform .18s cubic-bezier(.34,1.56,.64,1),opacity .12s ease}.toffie-buddy--roam{--buddy-x: .5;position:absolute;bottom:10px;left:calc(var(--buddy-x) * 100%);transform:translate(calc(var(--buddy-x) * -100%));transition:left .5s cubic-bezier(.34,1.3,.64,1),transform .5s cubic-bezier(.34,1.3,.64,1)}.toffie-buddy--roam .toffie{animation:toffie-buddy-hop .5s cubic-bezier(.2,.8,.25,1)}.toffie-buddy--roam .toffie-buddy-bubble{top:auto;right:auto;bottom:calc(100% + 6px);left:calc(var(--buddy-x) * 100%);transform-origin:calc(var(--buddy-x) * 100%) 100%;translate:calc(var(--buddy-x) * -100%) 0}.toffie-buddy--roam .toffie-buddy-bubble:after{right:auto;bottom:-9px;left:clamp(12px,calc(var(--buddy-w) / 2 - var(--buddy-x) * var(--buddy-w) + var(--buddy-x) * 100% - 7px),calc(100% - 26px));transform:rotate(45deg)}@keyframes toffie-buddy-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-18px)}}@media(prefers-reduced-motion:reduce){.toffie-buddy-bubble.is-shown{transition:none}.toffie-buddy-button:active{transform:none}.toffie-buddy--roam{transition:none}}:root{--font-display: "Fredoka", ui-rounded, system-ui, sans-serif;--font-body: "Nunito", ui-rounded, "Segoe UI", system-ui, -apple-system, sans-serif;--border-w: 2.5px;--radius: 22px;--radius-sm: 14px;--radius-pill: 999px;color-scheme:light;--bg: #fff8ef;--blob-1: #ffe6c9;--blob-2: #d6f3ea;--blob-3: #e4ecff;--surface: #ffffff;--surface-sunk: #fff8ef;--surface-raised: #ffffff;--hover: #fff3e6;--text: #36304f;--text-body: #4a4566;--text-soft: #7b7596;--text-faint: #b6b1c6;--line: #36304f;--ledge: rgba(54, 48, 79, .85);--ledge-soft: rgba(54, 48, 79, .16);--primary: #d6432f;--primary-d: #a8301f;--on-primary: #ffffff;--success: #44d5ae;--success-d: #29b994;--selected: #ffc24b;--selected-d: #eba62a;--on-accent: #36304f;--danger: #ffe2d4;--danger-d: #e85b4c;--on-danger: #9e2a1b;--muted-fill: #f0ebf7;--link: #2b6fc0;--focus: #5aa9ff;--focus-ring: rgba(90, 169, 255, .3);--pink: #ff8fc8;--sky: #5aa9ff;--grape: #a98bff;--warning-text: #8a5a00;--error-text: #b3261e;--shadow-card: 4px 5px 0 rgba(54, 48, 79, .14), 0 14px 28px rgba(54, 48, 79, .08);--shadow-float: 0 14px 30px rgba(54, 48, 79, .1);--toast-bg: #36304f;--toast-text: #ffffff;--scrim: rgba(54, 48, 79, .45)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #1e1a30;--blob-1: rgba(255, 122, 107, .18);--blob-2: rgba(68, 213, 174, .14);--blob-3: rgba(90, 169, 255, .16);--surface: #2b2544;--surface-sunk: #231e38;--surface-raised: #3a3358;--hover: #443c66;--text: #fff8ef;--text-body: #d9d3ee;--text-soft: #a9a1c8;--text-faint: #8a83a8;--line: #0e0b1a;--ledge: #0e0b1a;--ledge-soft: #0e0b1a;--primary: #ffc24b;--primary-d: #b8861e;--on-primary: #1e1a30;--success: #44d5ae;--success-d: #1f9e7c;--selected: #ff7a6b;--selected-d: #c9503f;--on-accent: #1e1a30;--danger: #4a2130;--danger-d: #0e0b1a;--on-danger: #ffb3a8;--muted-fill: #3a3358;--link: #8ec5ff;--focus: #5aa9ff;--focus-ring: rgba(90, 169, 255, .4);--warning-text: #ffc24b;--error-text: #ff9f93;--shadow-card: 4px 5px 0 rgba(0, 0, 0, .35), 0 14px 28px rgba(0, 0, 0, .3);--shadow-float: 0 14px 30px rgba(0, 0, 0, .35);--toast-bg: #fff8ef;--toast-text: #1e1a30;--scrim: rgba(10, 8, 20, .6)}}:root[data-theme=dark]{color-scheme:dark;--bg: #1e1a30;--blob-1: rgba(255, 122, 107, .18);--blob-2: rgba(68, 213, 174, .14);--blob-3: rgba(90, 169, 255, .16);--surface: #2b2544;--surface-sunk: #231e38;--surface-raised: #3a3358;--hover: #443c66;--text: #fff8ef;--text-body: #d9d3ee;--text-soft: #a9a1c8;--text-faint: #8a83a8;--line: #0e0b1a;--ledge: #0e0b1a;--ledge-soft: #0e0b1a;--primary: #ffc24b;--primary-d: #b8861e;--on-primary: #1e1a30;--success: #44d5ae;--success-d: #1f9e7c;--selected: #ff7a6b;--selected-d: #c9503f;--on-accent: #1e1a30;--danger: #4a2130;--danger-d: #0e0b1a;--on-danger: #ffb3a8;--muted-fill: #3a3358;--link: #8ec5ff;--focus: #5aa9ff;--focus-ring: rgba(90, 169, 255, .4);--warning-text: #ffc24b;--error-text: #ff9f93;--shadow-card: 4px 5px 0 rgba(0, 0, 0, .35), 0 14px 28px rgba(0, 0, 0, .3);--shadow-float: 0 14px 30px rgba(0, 0, 0, .35);--toast-bg: #fff8ef;--toast-text: #1e1a30;--scrim: rgba(10, 8, 20, .6)}:root{--cursor-glove: url(/cursors/glove.png) 11 2;--cursor-glove-press: url(/cursors/glove-press.png) 11 5;--cursor-sticker: url(/cursors/sticker.png) 12 4;--cursor-sticker-press: url(/cursors/sticker-press.png) 12 4;--cursor-pixel: url(/cursors/pixel.png) 9 1;--cursor-pixel-press: url(/cursors/pixel-press.png) 9 3;--cursor-default: auto;--cursor-default-active: auto;--cursor-pointer: pointer;--cursor-pointer-active: pointer}@supports (cursor: image-set(url(/cursors/glove.png) 1x) 1 1,auto){:root{--cursor-glove: image-set(url(/cursors/glove.png) 1x, url(/cursors/glove@2x.png) 2x) 11 2;--cursor-glove-press: image-set(url(/cursors/glove-press.png) 1x, url(/cursors/glove-press@2x.png) 2x) 11 5;--cursor-sticker: image-set(url(/cursors/sticker.png) 1x, url(/cursors/sticker@2x.png) 2x) 12 4;--cursor-sticker-press: image-set(url(/cursors/sticker-press.png) 1x, url(/cursors/sticker-press@2x.png) 2x) 12 4;--cursor-pixel: image-set(url(/cursors/pixel.png) 1x, url(/cursors/pixel@2x.png) 2x) 9 1;--cursor-pixel-press: image-set(url(/cursors/pixel-press.png) 1x, url(/cursors/pixel-press@2x.png) 2x) 9 3}}@media(pointer:fine){:root:not([data-cursor]),:root[data-cursor=glove]{--cursor-hand: var(--cursor-glove);--cursor-hand-press: var(--cursor-glove-press)}:root[data-cursor=sticker]{--cursor-hand: var(--cursor-sticker);--cursor-hand-press: var(--cursor-sticker-press)}:root[data-cursor=pixel]{--cursor-hand: var(--cursor-pixel);--cursor-hand-press: var(--cursor-pixel-press)}:root:not([data-cursor=system]){--cursor-default: var(--cursor-hand), auto;--cursor-default-active: var(--cursor-hand-press), auto;--cursor-pointer: var(--cursor-hand), pointer;--cursor-pointer-active: var(--cursor-hand-press), pointer}}*{box-sizing:border-box}html{cursor:var(--cursor-default)}html:active{cursor:var(--cursor-default-active)}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(900px 600px at 8% -8%,var(--blob-1) 0,transparent 55%),radial-gradient(820px 560px at 102% 4%,var(--blob-2) 0,transparent 55%),radial-gradient(760px 600px at 50% 116%,var(--blob-3) 0,transparent 55%)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--text-faint) transparent}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-track{margin:var(--radius-sm)}.dialog::-webkit-scrollbar-track,.card::-webkit-scrollbar-track{margin:var(--radius)}html::-webkit-scrollbar-track,body::-webkit-scrollbar-track{margin:0}::-webkit-scrollbar-thumb{background:var(--text-faint);background-clip:padding-box;border:3px solid transparent;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-soft)}::-webkit-scrollbar-thumb:active{background-color:var(--primary)}::-webkit-scrollbar-button{display:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:.2px}a{color:inherit;text-decoration:none}button,input{font:inherit}button{border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);padding:.7rem 1.15rem;cursor:var(--cursor-pointer);background:var(--surface-raised);color:var(--text);font-weight:800;box-shadow:0 4px 0 var(--ledge);transition:transform .05s ease,box-shadow .05s ease,background .15s ease}button svg{flex-shrink:0}button:hover{background:var(--hover)}button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ledge)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}a[href],summary,select,input:is([type=checkbox],[type=radio],[type=range]){cursor:var(--cursor-pointer)}button:not(:disabled):active,a[href]:active,summary:active,select:active,label:active,input:is([type=checkbox],[type=radio],[type=range]):not(:disabled):active{cursor:var(--cursor-pointer-active)}input:not([type=checkbox],[type=radio],[type=range],[type=button],[type=submit],[type=color],[type=file]),textarea,[contenteditable=true]{cursor:text}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d)}.primary:hover{background:var(--primary);filter:brightness(1.06)}.primary:active{box-shadow:0 1px 0 var(--primary-d)}.secondary{background:var(--surface-raised)}.danger{background:var(--danger);color:var(--on-danger);box-shadow:0 4px 0 var(--danger-d)}.danger:hover{background:var(--danger);filter:brightness(1.04)}.danger:active{box-shadow:0 1px 0 var(--danger-d)}input{width:100%;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);padding:.8rem 1rem;background:var(--surface);color:var(--text);font-weight:700;outline:none}input::placeholder{color:var(--text-faint);font-weight:600}input:focus{box-shadow:0 0 0 4px var(--focus-ring)}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-main{flex:1 0 auto}.topbar{height:64px;display:flex;align-items:center;gap:8px;padding:0 24px;border-bottom:var(--border-w) solid var(--line);background:var(--surface)}.music-control{position:relative;display:inline-flex}.music-panel{position:absolute;z-index:30;top:calc(100% + 10px);right:0;width:min(280px,calc(100vw - 32px));padding:14px;display:flex;flex-direction:column;gap:12px;animation:dialog-pop .16s cubic-bezier(.34,1.56,.64,1)}.music-credits,.how-to-play-link{align-self:center;padding:0;border:0;background:none;box-shadow:none;font-size:.85rem;font-weight:700}.music-credits:hover,.how-to-play-link:hover{background:none}.music-credits:active,.how-to-play-link:active{transform:none;box-shadow:none}.credits-dialog{max-height:calc(100dvh - 32px);overflow-y:auto}.theme-toggle,.music-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0}.logout{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem}.brand{display:inline-flex;align-items:center;gap:10px;margin-right:auto;font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.2px;color:var(--text);text-decoration:none}.brand-accent{color:var(--primary)}.results-hero .toffie{margin-bottom:4px}.center-page{width:min(680px,calc(100% - 32px));margin:10vh auto;text-align:center}.loading-screen{display:grid;justify-items:center;align-content:center;gap:14px;text-align:center;animation:loading-appear .3s ease-out .15s both}div.loading-screen{height:100%;min-height:200px;padding:24px}.loading-label{margin:0;display:inline-flex;align-items:baseline;gap:8px;font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text)}.loading-inline{display:flex;align-items:center;gap:10px;margin:0;color:var(--text-soft);font-weight:700}.loading-dots{display:inline-flex;gap:5px}.loading-dots>span{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--line);background:var(--primary);animation:loading-dot 1s cubic-bezier(.34,1.35,.64,1) infinite}.loading-dots>span:nth-child(2){background:var(--selected);animation-delay:.15s}.loading-dots>span:nth-child(3){background:var(--success);animation-delay:.3s}@keyframes loading-dot{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}@keyframes loading-appear{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.loading-screen,.loading-dots>span{animation:none}}.legal-page{width:min(760px,calc(100% - 32px));box-sizing:border-box;margin:32px auto;padding:32px clamp(20px,5vw,48px);color:var(--text-body);line-height:1.6}.legal-page h1{margin:4px 0;color:var(--text);font-size:clamp(2rem,6vw,3rem);line-height:1.1}.legal-page h2{margin:28px 0 8px;color:var(--text);font-size:1.3rem}.legal-page p,.legal-page ul{margin:0 0 12px}.legal-page ul{display:grid;gap:8px;padding-left:1.25rem}.legal-page strong{color:var(--text)}.legal-page a,.legal-note a,.site-footer a{color:var(--link);font-weight:700;text-decoration:underline;text-underline-offset:2px}.about-playground{position:relative;height:210px;margin:16px 0 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface-sunk);padding:0 12px}.about-playground-floor{position:absolute;inset:12px 12px 0}.legal-note{margin:0;color:var(--text-soft);font-size:.85rem}.site-footer{display:flex;justify-content:center;gap:20px;padding:8px 16px 24px;font-size:.85rem}.site-footer a{color:var(--text-soft)}.back-to-room{position:fixed;z-index:28;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));max-width:min(320px,calc(100% - 32px));min-height:52px;display:flex;align-items:center;gap:10px;padding:8px 18px 8px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d),var(--shadow-float);text-decoration:none;animation:dialog-pop .18s cubic-bezier(.34,1.56,.64,1)}.back-to-room:hover{filter:brightness(1.06)}.back-to-room:active{transform:translateY(3px);box-shadow:0 1px 0 var(--primary-d)}.back-to-room>svg{flex:none;width:22px;height:22px}.back-to-room-text{display:grid;min-width:0;line-height:1.15}.back-to-room-label{font-family:var(--font-display);font-weight:700}.back-to-room-name{overflow:hidden;font-size:.8rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.app-shell:has(.back-to-room) .site-footer{padding-bottom:88px}.voice-dock{position:fixed;z-index:28;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:min(400px,calc(100% - 32px));display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 6px 6px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:0 4px 0 var(--ledge),var(--shadow-float);animation:dialog-pop .18s cubic-bezier(.34,1.56,.64,1)}.voice-dock.speaking{outline:2px solid var(--success);outline-offset:1px;animation:speaking-pulse 1.2s ease-in-out infinite}.voice-dock-room{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.voice-dock-room>svg{flex:none;width:22px;height:22px;color:var(--success-d)}.voice-dock-text{display:grid;min-width:0;line-height:1.15}.voice-dock-name{overflow:hidden;font-family:var(--font-display);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.voice-dock-status{font-size:.8rem;font-weight:700;color:var(--text-soft)}.voice-dock-actions{display:flex;gap:6px}.voice-dock-button{width:44px;height:44px;display:grid;place-items:center;padding:0;box-shadow:0 3px 0 var(--ledge)}.voice-dock-button[aria-pressed=true]{background:var(--selected);color:var(--on-accent)}.voice-dock-button.hang-up{background:var(--danger);color:var(--on-danger);box-shadow:0 3px 0 var(--danger-d)}.voice-dock-unlock{flex-basis:100%;min-height:44px;background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d)}.app-shell:has(.voice-dock) .site-footer{padding-bottom:96px}@media(prefers-reduced-motion:reduce){.voice-dock,.voice-dock.speaking{animation:none}}.room-notice{display:grid;justify-items:center;gap:16px;padding:32px 24px}.room-notice h1,.room-notice p{margin:0}.room-notice-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}.card{background:var(--surface);border:var(--border-w) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.auth-card{padding:32px;display:grid;gap:16px}.auth-provider{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.auth-card h1{font-size:clamp(2.2rem,6vw,4.5rem);font-weight:700;line-height:1.05;margin:10px 0 18px}.eyebrow{color:var(--text-soft);font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.not-found .eyebrow{margin:0 0 -8px}.muted{color:var(--text-soft)}.stack{display:grid;gap:12px}.notice{color:var(--warning-text);font-weight:700;overflow-wrap:anywhere}.error{color:var(--error-text);font-weight:700}.home-dash{width:min(1200px,calc(100% - 32px));margin:32px auto 48px;display:grid;gap:24px}.home-banner{--home-toffie-size: 280px;position:relative;overflow:hidden;min-height:250px;box-sizing:border-box;padding:36px calc(var(--home-toffie-size) + 100px) 36px 48px;display:flex;align-items:center;background:var(--selected);color:var(--on-accent);border:var(--border-w) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.home-banner-text{position:relative;display:grid;justify-items:start;gap:10px}.home-banner .eyebrow{margin:0;color:inherit}.home-banner h1{margin:0;font-size:clamp(2.4rem,5.2vw,4rem);font-weight:700;line-height:1}.home-banner p{margin:0;font-size:1.1rem;font-weight:700}.home-banner .primary{margin-top:8px}.home-banner-stage{position:absolute;right:70px;bottom:-70px;width:calc(var(--home-toffie-size) + 10px);aspect-ratio:1;border-radius:50%;background:var(--surface-sunk);border:var(--border-w) solid var(--line)}.home-banner .toffie-buddy{position:absolute;right:74px;bottom:calc(var(--home-toffie-size) * -.3)}.home-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}.home-cards.two{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.home-shelf{display:grid;gap:12px}.home-shelf .game-picker>li.muted,.game-picker>li.loading-row{grid-column:1 / -1}.home-cards.two .home-shelf{align-self:start}.home-card{padding:24px;grid-auto-rows:min-content}.home-card-head{display:flex;align-items:center;gap:12px}.home-card-head.spread{justify-content:space-between}.home-card-head h2,.home-shelf h2{margin:0;font-size:1.5rem;font-weight:600}.home-card-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm)}.home-card-icon.create{background:var(--primary);color:var(--on-primary)}.home-card-icon.join{background:var(--sky);color:var(--on-accent)}.home-card-link{font-weight:800;font-size:.9rem}.home-card-note{margin:0;font-weight:600;font-size:.9rem}.home-card-action{width:100%}.home-active{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px}.home-active-info{display:grid;gap:8px;min-width:0}.home-card-icon.active{background:var(--success);color:var(--on-accent)}.home-active-name{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:600;overflow-wrap:anywhere}.home-active-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.home-active-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-weight:800;font-size:.8rem}.home-active-tag svg{width:16px;height:16px}.home-active-tag.live{background:var(--selected);color:var(--on-accent)}.home-active-actions{display:flex;flex-wrap:wrap;gap:12px}@media(max-width:800px){.home-active{grid-template-columns:1fr}.home-active-actions>*{flex:1}}.code-input{min-height:64px;font-family:var(--font-display);font-size:1.7rem;font-weight:600;letter-spacing:.18em;text-align:center;text-transform:uppercase;background:var(--surface-sunk)}.code-input::placeholder{letter-spacing:.18em}@media(max-width:1080px)and (min-width:801px){.home-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.home-cards>:last-child:nth-child(3){grid-column:1 / -1}}.room-shell{width:min(1500px,calc(100% - 28px));margin:18px auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;height:calc(100vh - 100px);position:relative}.room-header{grid-column:1 / -1;padding:14px 20px;display:flex;align-items:center;gap:16px}.room-title{min-width:0;margin-right:auto}.room-title .eyebrow{margin:0 0 2px}.room-title h1{margin:0;font-size:1.5rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite{display:flex;align-items:center;gap:10px}.copy-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d);min-width:7.5rem}.copy-link:hover{background:var(--primary);filter:brightness(1.06)}.copy-link:active{box-shadow:0 1px 0 var(--primary-d)}.copy-link.copied{background:var(--success);color:var(--on-accent);box-shadow:0 4px 0 var(--success-d)}.copy-link.failed{background:var(--danger);color:var(--on-danger);box-shadow:0 4px 0 var(--danger-d)}.sheet-toggle,.sheet-close,.sheet-backdrop{display:none}.game-panel{position:relative;grid-column:1;padding:24px;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.game-panel h2{margin:0}.social-panel{grid-column:2;grid-row:2;padding:20px;display:flex;flex-direction:column;gap:16px;min-height:0;outline:none}.panel-section{display:flex;flex-direction:column;min-height:0}.players-section{flex:0 1 auto;max-height:45%}.chat-section{flex:1 1 0;border-top:var(--border-w) dashed var(--text-faint);padding-top:16px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-heading h2{margin:0;font-size:1.15rem;font-weight:600}.panel-heading h2 .muted{font-family:var(--font-body);font-weight:700;font-size:.85rem;margin-left:4px}.section-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;margin-left:-6px;padding:0 8px 0 6px;border-color:transparent;background:transparent;box-shadow:none;font:inherit;color:inherit}.section-toggle:hover{background:var(--muted-fill)}.section-toggle:active{transform:none;box-shadow:none}.section-caret{transition:transform .15s ease}.panel-icon-button{position:relative;display:grid;place-items:center;width:36px;height:36px;padding:0;box-shadow:0 2px 0 var(--ledge-soft)}.panel-icon-button:active{box-shadow:0 1px 0 var(--ledge-soft);transform:translateY(1px)}.panel-rail{display:none}@media(min-width:801px)and (min-height:501px){.players-collapsed .section-caret{transform:rotate(-90deg)}.players-collapsed .member-list{display:none}.players-collapsed .players-section{max-height:none}.room-shell.panel-collapsed{grid-template-columns:minmax(0,1fr) auto}.room-shell.has-video.panel-collapsed{grid-template-columns:auto minmax(0,1fr) auto}.panel-collapsed .social-panel{padding:12px 8px}.panel-collapsed .panel-section{display:none}.panel-collapsed .panel-rail{display:flex;flex-direction:column;align-items:center;gap:12px}.rail-stat{width:44px;height:auto;min-height:44px;padding:6px 0;gap:2px;border-radius:var(--radius-sm);font-size:.75rem}.rail-stat .unread-badge{top:-8px;right:-8px}}.chat-log{flex:1;min-height:72px;margin-top:12px;padding:10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);overscroll-behavior:contain}.chat-log:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.chat-empty{margin:auto;font-size:.9rem;font-weight:700}.chat-message{padding:6px 10px 8px;border-radius:var(--radius-sm);background:var(--surface);border:2px solid var(--ledge-soft)}.chat-message.own{border-color:var(--selected)}.chat-meta{display:flex;align-items:center;gap:8px;min-height:28px;font-size:.85rem}.chat-meta strong{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-guest-tag{flex-shrink:0;margin-left:-4px}.chat-meta time{flex-shrink:0;white-space:nowrap;color:var(--text-soft);font-size:.75rem;font-weight:700}.chat-body{margin:0;color:var(--text-body);font-weight:600;overflow-wrap:anywhere}.chat-deleted{display:flex;align-items:center;gap:6px;color:var(--text-soft);font-style:italic}.chat-deleted svg{flex-shrink:0}.chat-delete{margin-left:auto;display:grid;place-items:center;width:28px;height:28px;padding:0;border-width:2px;box-shadow:none;color:var(--text-soft)}.chat-delete:active{transform:none;box-shadow:none}@media(hover:hover){.chat-delete{opacity:0}.chat-message:hover .chat-delete,.chat-delete:focus-visible{opacity:1}}.chat-system{margin:0;align-self:center;display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 12px;border-radius:var(--radius-pill);background:var(--muted-fill);color:var(--text-soft);font-size:.8rem;font-weight:800;text-align:center}.chat-system svg{flex-shrink:0}.chat-composer{display:flex;gap:8px;margin-top:10px}.chat-composer input{min-width:0;padding:.65rem .9rem}.chat-send{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;padding:0}.chat-cooldown{margin:8px 0 0;font-size:.85rem;font-weight:700;color:var(--warning-text)}.cooldown-count{font-weight:800;font-variant-numeric:tabular-nums}.code{font-family:var(--font-display);font-weight:700;letter-spacing:.18em;padding:6px 12px;background:var(--selected);color:var(--on-accent);border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);box-shadow:0 3px 0 var(--selected-d)}.member-list{min-height:58px;display:grid;align-content:start;gap:8px;overflow:auto;margin:14px 0 0;padding:2px 2px 6px}.member{padding:10px 12px;display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:800}.member small{display:block;color:var(--text-soft);font-weight:600;margin-top:2px}.member small.ready{display:flex;align-items:center;gap:4px;color:var(--success-d);font-weight:800}.dot{width:10px;height:10px;border-radius:50%;background:var(--text-faint)}.dot.online{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 25%,transparent)}.dot.reconnecting{background:var(--selected)}.dot.away{background:var(--text-faint)}.member-more{display:grid;place-items:center;width:32px;height:32px;padding:0;box-shadow:0 2px 0 var(--ledge-soft)}.member-more:active{box-shadow:0 1px 0 var(--ledge-soft);transform:translateY(1px)}.member-more svg{width:18px;height:18px}.member-volume{flex-direction:column;align-items:stretch;gap:10px;cursor:var(--cursor-pointer)}.member-volume-label{display:flex;align-items:center;gap:8px}.member-volume-label output{margin-left:auto;font-weight:700}.member-volume input{width:100%;padding:0;border:0;background:none;accent-color:var(--primary)}.member-options-actions{display:flex;gap:10px;margin-top:12px}.member-options-actions button,.room-actions button{display:inline-flex;align-items:center;gap:6px}.member-options-actions button{flex:1;justify-content:center}.room-actions{display:grid;gap:10px;margin-top:20px}.room-actions h3{margin:0;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft)}.settings-code{display:inline-block;margin-top:6px;padding:3px 10px;font-family:var(--font-display);font-weight:700;letter-spacing:.18em;background:var(--selected);color:var(--on-accent);border:var(--border-w) solid var(--line);border-radius:var(--radius-pill)}.close-room-row{margin-top:10px}.close-room-row button{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap;padding:.5rem .85rem;font-size:.85rem}.settings-invite{display:grid;gap:12px;padding:14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.settings-invite-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-invite .settings-code{margin-top:0;padding:6px 14px;font-size:1.2rem;box-shadow:0 3px 0 var(--selected-d)}.room-actions .invite-new{font-size:.8rem;padding:.4rem .75rem;box-shadow:0 2px 0 var(--ledge-soft)}.room-actions .invite-new:active{box-shadow:0 1px 0 var(--ledge-soft);transform:translateY(1px)}.invite-link-field{display:grid;gap:4px;font-size:.8rem;font-weight:700;color:var(--text-soft)}.invite-link-field input{width:100%;box-sizing:border-box;min-height:40px;padding:0 12px;border:2px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 .85rem ui-monospace,Menlo,Consolas,monospace;text-overflow:ellipsis}.invite-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invite-copy .copy-code{justify-content:center;min-height:44px;font-size:.9rem}.settings-invite>small{font-weight:600}.copy-code.copied{background:var(--success);color:var(--on-accent);box-shadow:0 4px 0 var(--success-d)}.copy-code.failed{background:var(--danger);color:var(--on-danger);box-shadow:0 4px 0 var(--danger-d)}.room-actions button{flex-shrink:0;padding:.5rem .85rem;font-size:.85rem}.guest-note{margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.85rem}.guest-chip{white-space:nowrap;display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);border:var(--border-w) solid var(--line);background:var(--muted-fill);color:var(--text);font-weight:800;font-size:.75rem}.hostless-chip{white-space:nowrap;display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);border:var(--border-w) solid var(--line);background:var(--selected);color:var(--on-accent);font-weight:800;font-size:.75rem}.guest-tag{color:var(--text-soft);font-weight:600}.locked-badge{display:inline-flex;align-items:center;gap:4px;color:var(--on-danger)}.locked-badge svg{width:14px;height:14px}.dialog{width:min(420px,calc(100% - 32px));padding:24px;border-radius:24px;color:var(--text)}.dialog::backdrop{background:var(--scrim)}.dialog[open]{animation:dialog-pop .18s cubic-bezier(.34,1.56,.64,1)}.dialog h2{margin:0 0 8px;font-size:1.3rem;font-weight:600}.dialog p{margin:0 0 16px;font-weight:600}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dialog-close{flex:none;margin:-10px -10px 0 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@keyframes dialog-pop{0%{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.setting-row small{display:block;margin-top:2px;font-weight:600}.stepper{display:flex;align-items:center;gap:10px;margin:0;padding:0;border:0;min-width:0}.stepper button{display:grid;place-items:center;width:44px;height:44px;padding:0}.stepper output{min-width:2ch;text-align:center;font-family:var(--font-display);font-size:1.4rem;font-weight:700}.toast{position:fixed;z-index:40;left:50%;bottom:96px;transform:translate(-50%);max-width:calc(100% - 32px);background:var(--toast-bg);color:var(--toast-text);border:var(--border-w) solid var(--line);padding:10px 18px;border-radius:var(--radius-pill);font-weight:800;font-size:.9rem;box-shadow:var(--shadow-float);text-align:center}.toast.error{background:var(--danger);color:var(--on-danger)}.control-bar{grid-column:1 / -1;padding:10px;display:flex;justify-content:center;gap:10px}.control{display:flex;align-items:center;gap:8px;min-height:44px;box-shadow:0 3px 0 var(--ledge-soft)}.control:active{box-shadow:0 1px 0 var(--ledge-soft)}.control[aria-disabled=true]{opacity:.55;cursor:var(--cursor-default)}.control[aria-disabled=true]:hover{background:var(--surface-raised)}.control[aria-disabled=true]:active{transform:none;box-shadow:0 3px 0 var(--ledge-soft)}.control[aria-expanded=true]{background:var(--selected);color:var(--on-accent);box-shadow:0 3px 0 var(--selected-d)}.control-bar .control{position:relative}.unread-badge{position:absolute;top:-8px;right:-6px;min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.72rem;font-weight:800;line-height:1}.react-control{position:relative;display:flex}.reaction-tray{position:absolute;z-index:25;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);display:flex;gap:6px;margin:0;min-width:0;padding:8px;border-radius:var(--radius-pill);animation:dialog-pop .16s cubic-bezier(.34,1.56,.64,1)}.reaction-tray button{display:grid;place-items:center;width:48px;height:48px;padding:0;font-size:1.5rem;box-shadow:0 3px 0 var(--ledge-soft)}.reaction-tray button:disabled{opacity:.45;cursor:not-allowed}.reaction-cooldown{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);margin:0;white-space:nowrap;font-size:.85rem;font-weight:700;color:var(--warning-text)}.reaction-tray button:active{box-shadow:0 1px 0 var(--ledge-soft)}.reaction-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.floating-reaction{position:absolute;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:2px;transform:translate(-50%);animation:reaction-float 2.4s ease-out forwards}.floating-emoji{font-size:2.6rem;line-height:1;filter:drop-shadow(0 3px 0 var(--ledge-soft))}.floating-name{max-width:10rem;padding:2px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-size:.72rem;font-weight:800}@keyframes reaction-float{0%{opacity:0;transform:translate(-50%) scale(.6)}12%{opacity:1;transform:translate(-50%,-24px) scale(1.1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-260px) scale(1)}}@keyframes reaction-fade{0%,to{opacity:0}15%,80%{opacity:1}}.control.leave{margin-left:12px;background:var(--danger);color:var(--on-danger);box-shadow:0 3px 0 var(--danger-d)}@media(min-width:801px)and (max-width:1000px){.control-bar .control-label{display:none}.control-bar .control{min-width:56px;justify-content:center}.control-bar .leave{margin-left:0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.reconnect-banner{position:absolute;z-index:30;top:10px;left:50%;transform:translate(-50%);background:var(--toast-bg);color:var(--toast-text);border:var(--border-w) solid var(--line);padding:10px 18px;border-radius:var(--radius-pill);font-weight:800;font-size:.9rem;box-shadow:var(--shadow-float)}@media(max-width:800px){.home-dash{margin-top:20px;gap:16px}.home-cards,.home-cards.two{grid-template-columns:1fr;gap:16px}.home-banner{--home-toffie-size: 190px;align-items:start;min-height:0;padding:28px 24px calc(var(--home-toffie-size) * .8)}.home-banner-stage{right:24px}.home-banner .toffie-buddy{right:28px;--toffie-bubble-max: 140px}}@media(max-width:800px),(max-height:500px){.room-shell{width:calc(100% - 16px);margin:8px auto;grid-template-columns:1fr;gap:8px;height:calc(100dvh - 80px)}.room-header{padding:10px 12px;gap:8px;flex-wrap:wrap}.room-title{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.room-title h1{font-size:1.2rem;min-width:0;max-width:100%}.guest-note{margin:0}.invite{flex:1;min-width:0}.invite .code{padding:4px 8px;font-size:.85rem;letter-spacing:.08em;box-shadow:0 2px 0 var(--selected-d)}.copy-link,.sheet-toggle{padding:.55rem .8rem;min-width:0;min-height:44px}.sheet-toggle{display:inline-flex;gap:6px;align-items:center}.game-panel{padding:14px}.social-panel{grid-column:auto;grid-row:auto;position:fixed;z-index:20;left:0;right:0;bottom:0;max-height:75dvh;min-height:45dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-bottom:0;border-radius:24px 24px 0 0;transform:translateY(100%);visibility:hidden;transition:transform .2s ease,visibility 0s .2s}.sheet-open .social-panel{transform:none;visibility:visible;transition:transform .2s ease}.players-section{flex:1 1 auto;max-height:none}.chat-section{flex:1 1 auto;border-top:0;padding-top:0}.sheet-players .chat-section,.sheet-chat .players-section{display:none}.sheet-close{display:grid;place-items:center;min-width:44px;min-height:44px;padding:.5rem}.panel-collapse,.section-caret{display:none}.section-toggle{margin-left:0;padding:0;cursor:default}.section-toggle:hover{background:transparent}.sheet-backdrop{position:fixed;z-index:15;inset:0;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .2s}.sheet-open .sheet-backdrop{display:block;opacity:1;pointer-events:auto}.control-bar{padding:6px;gap:6px;justify-content:space-between}.control-bar .control{flex:1;justify-content:center;padding:.6rem .4rem}.control-label{display:none}.control-bar .leave{margin-left:0}.react-control{flex:1;position:static}.react-control .control{flex:1;justify-content:center}.control-bar{position:relative}.reaction-tray{left:50%;bottom:calc(100% + 8px);gap:4px;padding:6px}.reaction-tray button{width:44px;height:44px;font-size:1.35rem}}.account-nav{display:flex;align-items:center;gap:8px}.nav-link,.button-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem .9rem;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text);font-weight:800;box-shadow:0 4px 0 var(--ledge);transition:transform .05s ease,box-shadow .05s ease,background .15s ease}.nav-link:hover,.button-link:hover{background:var(--hover)}.nav-link:active,.button-link:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ledge)}.nav-link[aria-current=page]{background:var(--selected);color:var(--on-accent);box-shadow:0 4px 0 var(--selected-d)}.button-link{min-height:0;padding:.4rem .9rem;font-size:.85rem;box-shadow:0 2px 0 var(--ledge-soft)}.join-card .button-link{min-height:44px;justify-content:center;font-size:1rem;box-shadow:0 4px 0 var(--ledge)}.guest-notes{display:grid;gap:6px}.guest-notes p{margin:0}.account-menu{display:none}.menu-toggle{position:relative;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.menu-dot{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border:2px solid var(--line);border-radius:50%;background:var(--primary)}.account-menu-panel{position:absolute;z-index:30;top:calc(100% + 8px);right:16px;width:min(280px,calc(100vw - 32px));padding:10px;display:grid;gap:8px;animation:dialog-pop .16s cubic-bezier(.34,1.56,.64,1)}.account-menu-user{min-width:0;display:flex;align-items:center;gap:10px;padding:6px 8px 12px;border-bottom:2px dashed var(--text-faint)}.account-menu-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.menu-item{width:100%;min-height:44px;padding:.5rem .75rem;display:flex;align-items:center;justify-content:flex-start;gap:10px;border:var(--border-w) solid transparent;border-radius:var(--radius-sm);background:transparent;box-shadow:none;color:var(--text);font-weight:800;text-decoration:none}.menu-item:hover{background:var(--hover)}.menu-item:active{transform:none}.menu-item[aria-current=page]{border-color:var(--line);background:var(--selected);color:var(--on-accent)}@media(max-width:900px){.topbar{position:relative}.account-nav.signed-in{display:none}.account-menu{display:inline-flex}}@media(prefers-reduced-motion:reduce){.account-menu-panel{animation:none}}.nav-badge{min-width:22px;height:22px;padding:0 6px;display:inline-grid;place-items:center;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.75rem;line-height:1}.menu-item .nav-badge{margin-left:auto}.avatar{--avatar-size: 44px;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0;display:inline-grid;place-items:center;border:var(--border-w) solid var(--line);border-radius:50%;object-fit:cover;background:var(--muted-fill);color:var(--on-accent);font-family:var(--font-display);font-weight:700;font-size:calc(var(--avatar-size) * .45);line-height:1}.avatar.sm{--avatar-size: 28px;border-width:2px}.avatar.lg{--avatar-size: 96px;box-shadow:3px 4px 0 var(--ledge-soft)}.avatar.tone-1{background:#ffc24b}.avatar.tone-2{background:#44d5ae}.avatar.tone-3{background:#ff9f8f}.avatar.tone-4{background:#8ec5ff}.avatar.tone-5{background:#c9b3ff}.avatar[class*=tone-]{color:#36304f}.page-column{width:min(760px,calc(100% - 32px));margin:32px auto 48px;display:grid;gap:18px}.page-title{margin:0;font-size:clamp(2rem,5vw,2.8rem);font-weight:700}.page-card{padding:22px 24px}.page-card h2{margin:0 0 14px;font-size:1.25rem;font-weight:600}.page-card>p{margin:12px 0 0}.danger-zone h2{color:var(--error-text)}.danger-zone>p:first-of-type{margin-top:0}.danger-zone>div{margin-top:16px}.credit-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.credit-list li{padding:12px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--text-body);line-height:1.5}.credit-list strong{color:var(--text)}.credit-list a,.music-credits,.how-to-play-link{color:var(--link);text-decoration:underline}.credit-list small{display:block;font-weight:700}.add-friend{display:flex;gap:10px}.add-friend input{flex:1;min-width:0}.add-friend button{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.success-text{color:var(--success-d);font-weight:800}.empty-note{font-weight:600}.empty-note a{color:var(--link);text-decoration:underline}.person-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.person-row{padding:10px 12px;display:flex;align-items:center;gap:12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.person-text{flex:1;min-width:0;display:grid;gap:2px}.person-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.person-name:hover{text-decoration:underline}.person-text small{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--text-soft);font-weight:600}.person-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px}.person-actions button{font-size:.8rem;padding:.4rem .8rem;box-shadow:0 2px 0 var(--ledge-soft)}.person-actions .danger{box-shadow:0 2px 0 var(--danger-d)}.person-actions button:active{transform:translateY(1px);box-shadow:0 1px 0 var(--ledge-soft)}.online-label{display:inline-flex;align-items:center;gap:6px}.pending-label{font-size:.85rem;font-weight:800}.profile-header{padding:24px;display:flex;align-items:center;flex-wrap:wrap;gap:20px}.profile-identity{flex:1;min-width:200px}.profile-identity h1{margin:0;font-size:clamp(1.8rem,5vw,2.4rem);font-weight:700;overflow-wrap:anywhere}.profile-handle{margin:2px 0 8px;display:flex;align-items:center;gap:4px;font-weight:800;color:var(--text-body);overflow-wrap:anywhere}.copy-username.icon-button{width:32px;height:32px;flex:none;border-width:2px;box-shadow:none;color:var(--text-soft)}.copy-username.icon-button:active{transform:none;box-shadow:none}.copy-username.copied{color:var(--success-d)}.copy-username.failed{color:var(--error-text)}.player-name-button{display:inline;padding:0;border:0;border-radius:4px;background:none;box-shadow:none;color:inherit;font:inherit;text-align:inherit;text-decoration:underline dotted;text-underline-offset:3px}.player-name-button:hover{background:none;text-decoration:underline solid}.player-name-button:active{transform:none;box-shadow:none}.player-card-identity{display:flex;align-items:center;gap:16px;margin-bottom:16px}.player-card-identity>div{min-width:0}.player-card-identity h2{overflow-wrap:anywhere}.player-card-dialog .profile-handle,.player-card-dialog .player-card-level{margin:0}.player-card-profile-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:800}.player-card-profile-link:hover{text-decoration:underline}.person-avatar-link{display:inline-flex;flex-shrink:0;border-radius:50%}@media(max-width:380px){.player-card-identity .avatar.lg{--avatar-size: 72px}}.profile-meta{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-weight:700}.profile-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.profile-actions button{display:inline-flex;align-items:center;gap:.4rem}.profile-actions .error{flex-basis:100%;margin:0}.friends-label{display:inline-flex;align-items:center;gap:6px;color:var(--success-d);font-weight:800}.edit-profile-toggle{display:flex;justify-content:flex-end}.edit-profile-toggle button{display:inline-flex;align-items:center;gap:.4rem}.profile-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:6px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.profile-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-width:0;min-height:44px;padding:.5rem .75rem;border-color:transparent;background:transparent;box-shadow:none;color:var(--text-body)}.profile-tabs button:hover{background:var(--hover)}.profile-tabs button:active{transform:none}.profile-tabs button[aria-selected=true]{border-color:var(--line);background:var(--selected);box-shadow:0 3px 0 var(--selected-d);color:var(--on-accent)}.profile-tab-panel{display:grid;gap:18px}@media(max-width:520px){.profile-tabs{border-radius:var(--radius)}.profile-tabs button{flex-direction:column;gap:2px;padding:.4rem .25rem;border-radius:var(--radius-sm);font-size:.8rem}}.field{display:grid;gap:6px;font-weight:800}.field small{font-weight:600}.placeholder-note{display:flex;align-items:center;gap:14px;padding:16px;border:var(--border-w) dashed var(--text-faint);border-radius:var(--radius-sm);color:var(--text-soft)}.placeholder-note p{margin:0;font-weight:600}.room-row .person-name{white-space:normal}.invite-friends{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.35rem .8rem;font-size:.8rem;white-space:nowrap;box-shadow:0 2px 0 var(--ledge-soft)}.invite-friends svg{width:16px;height:16px}.invite-friends:active{transform:translateY(1px);box-shadow:0 1px 0 var(--ledge-soft)}.invite-friends-dialog{width:min(480px,calc(100% - 32px))}.invite-friends-dialog .person-list{max-height:min(50vh,420px);overflow:auto;padding:2px}.person-note{font-size:.8rem;font-weight:700;overflow-wrap:anywhere}.icon-button{display:grid;place-items:center;width:44px;height:44px;padding:0}.invite-stack{position:fixed;z-index:45;top:76px;right:16px;width:min(360px,calc(100% - 32px));display:grid;gap:10px}.invite-card{padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-float);animation:dialog-pop .18s cubic-bezier(.34,1.56,.64,1)}.invite-card p{flex:1;margin:0;font-weight:600;overflow-wrap:anywhere}.invite-card-actions{display:flex;gap:8px}@media(max-width:800px),(max-height:500px){.invite-friends{min-height:44px}}@media(max-width:560px){.topbar{gap:6px;padding:0 16px}.brand-word{display:none}.account-nav{gap:6px}.nav-label{display:none}.nav-link,.logout{min-height:44px;padding:.4rem .7rem}.page-column{margin-top:20px}.page-card,.profile-header{padding:18px 16px}.add-friend{flex-direction:column}.add-friend button{justify-content:center}.person-row{flex-wrap:wrap}.person-actions,.profile-actions{flex-basis:100%}.invite-stack{top:auto;bottom:16px}}@media(max-height:500px){.topbar{height:52px;padding:0 16px}.room-shell{height:calc(100dvh - 68px)}.room-header{flex-wrap:nowrap;padding:6px 10px}.room-title{flex:1 1 auto}.room-title .eyebrow{display:none}.invite{flex:0 0 auto}}.game-panel{align-content:start;gap:16px}.game-panel.playing{grid-template-rows:auto minmax(0,1fr)}.game-panel:has(>.wait-banner){grid-template-rows:auto auto minmax(0,1fr)}.game-panel.results{display:block;overflow-y:auto}.game-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-panel-header .eyebrow{margin:0 0 2px}.game-panel-actions{display:flex;align-items:center;gap:8px}.ready-toggle{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.ready-toggle.is-ready{background:var(--success);color:var(--on-accent);box-shadow:0 4px 0 var(--success-d)}.wait-banner{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;padding:10px 16px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);box-shadow:0 4px 0 var(--selected-d);font-family:var(--font-display);font-size:1.05rem;font-weight:600;text-align:center;overflow-wrap:anywhere;animation:dialog-pop .3s cubic-bezier(.34,1.56,.64,1) both}.wait-banner strong{font-weight:700}.wait-banner-icon{display:inline-grid;flex:0 0 auto;place-items:center;width:30px;height:30px;border:2px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font-size:1.1rem}.wait-banner-icon svg{animation:wait-flip 2.4s ease-in-out infinite}@keyframes wait-flip{0%,70%{transform:rotate(0)}85%,to{transform:rotate(180deg)}}.end-game,.pause-game{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.game-paused{display:grid;place-items:center;min-height:100%;padding:16px}.game-paused-card{display:grid;justify-items:center;gap:8px;width:min(360px,100%);padding:22px 24px 24px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);text-align:center;animation:dialog-pop .25s ease-out}.game-paused-card h3{margin:0;font-family:var(--font-display);font-size:1.6rem}.game-paused-card p{margin:0}.game-paused-card .primary{display:inline-flex;align-items:center;gap:.4rem;margin-top:6px;min-height:44px}.game-paused-toffie{position:relative;display:inline-grid}.game-paused-icon{position:absolute;right:-6px;bottom:2px;display:grid;place-items:center;width:32px;height:32px;border:var(--border-w) solid var(--line);border-radius:50%;background:var(--selected);color:var(--on-accent);font-size:.95rem;box-shadow:0 3px 0 var(--selected-d)}@media(max-width:480px){.pause-game{min-width:44px;justify-content:center}.pause-game-label{display:none}}@media(max-height:500px){.game-paused{padding:8px}.game-paused-card{gap:4px;padding:12px 18px 14px}.game-paused-toffie{display:none}.game-paused-card h3{font-size:1.25rem}}.game-stage{min-height:0;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface-sunk);overflow:auto}.game-countdown{--countdown-toffie: 96px;position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:16px;border-radius:inherit;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none}.game-countdown.go{animation:countdown-out .9s ease-in forwards}.game-countdown-card{display:grid;justify-items:center;gap:4px;min-width:min(280px,100%);padding:18px 28px 22px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);text-align:center;animation:dialog-pop .25s ease-out}.game-countdown-eyebrow{margin:4px 0 0;color:var(--text-soft);font-weight:800;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}.game-countdown-beat{--beat: var(--sky);margin:0;font-family:var(--font-display);font-size:clamp(4rem,14vw,6.5rem);font-weight:700;line-height:1;color:var(--beat);-webkit-text-stroke:var(--border-w) var(--line);paint-order:stroke fill;text-shadow:0 5px 0 var(--line);animation:countdown-beat 1s ease-out both}.game-countdown-beat.beat-2{--beat: var(--selected)}.game-countdown-beat.beat-1{--beat: var(--pink)}.game-countdown-beat.beat-ready{--beat: var(--grape);font-size:clamp(2.2rem,8vw,3.4rem);animation:countdown-ready .4s ease-out both}@keyframes countdown-ready{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.game-countdown-beat.beat-go{--beat: var(--success);font-size:clamp(2.6rem,9vw,4rem);animation-duration:.9s}@keyframes countdown-beat{0%{opacity:0;transform:scale(.4) rotate(-8deg)}18%{opacity:1;transform:scale(1.18) rotate(3deg)}32%{transform:scale(1) rotate(0)}85%{opacity:1;transform:scale(1)}to{opacity:.2;transform:scale(.85)}}@keyframes countdown-out{0%,55%{opacity:1}to{opacity:0}}.game-message{height:100%;min-height:200px;display:grid;place-items:center;padding:24px;text-align:center;color:var(--text-soft);font-weight:700}.game-picker{list-style:none;margin:0;padding:0;display:grid;align-content:start;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}.game-panel .game-picker{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;margin:-10px -10px 0;padding:10px 10px 8px}.game-tile{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:0 4px 0 var(--ledge-soft)}.game-settings-button{position:absolute;top:-10px;right:-10px;z-index:1;width:36px;height:36px;box-shadow:0 3px 0 var(--ledge)}.game-settings-button:after{content:"";position:absolute;inset:-5px;border-radius:50%}.game-settings-button svg{width:20px;height:20px;transform:rotate(var(--gear-turn, 0deg));transition:transform .2s ease}.game-settings-button:hover:not(:disabled){--gear-turn: 45deg}.game-options{display:grid;gap:14px}.game-option{min-width:0;margin:0;padding:0;border:0}.game-option-label{margin-bottom:6px;padding:0;color:var(--text-soft);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.game-option-chips{display:flex;flex-wrap:wrap;gap:6px}.option-chip{position:relative;cursor:var(--cursor-pointer)}.option-chip input{position:absolute;opacity:0;pointer-events:none}.option-chip .option-chip-face{display:inline-block;padding:4px 12px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-weight:800;font-size:.9rem;transition:transform .1s ease}.option-chip:hover .option-chip-face{background:var(--hover)}.option-chip input:checked+.option-chip-face{background:var(--selected);box-shadow:0 3px 0 var(--selected-d);color:var(--on-accent);transform:translateY(-1px)}.option-chip input:focus-visible+.option-chip-face{outline:3px solid var(--focus);outline-offset:2px}.option-chip input:disabled+.option-chip-face{opacity:.6;cursor:var(--cursor-default)}.game-option-hint{font-weight:700}.game-tile.soon{border-style:dashed;box-shadow:none;background:transparent}.game-tile-icon{flex-shrink:0;display:grid;place-items:center;width:52px;height:52px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--selected);color:var(--on-accent)}.game-tile-icon svg{width:30px;height:30px}.game-tile.soon .game-tile-icon{background:var(--muted-fill);color:var(--text-soft)}.game-tile-text{flex:1;min-width:0;display:grid;gap:2px}.game-tile-text strong{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.game-tile-text small{font-weight:600}.game-tile-text .how-to-play-link{justify-self:start;margin-top:2px}.how-to-play-dialog{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.how-to-play-dialog h3{margin:16px 0 6px;font-size:1rem}.how-to-play-dialog p{margin-bottom:0}.how-to-play-goal{color:var(--text);font-size:1.05rem}.how-to-play-steps{display:grid;gap:12px;margin:14px 0 0;padding-left:1.4rem;color:var(--text-body);font-weight:600}.how-to-play-shot{display:block;width:min(100%,220px);margin-top:8px;padding:0;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);box-shadow:0 4px 0 var(--ledge-soft);overflow:hidden;cursor:zoom-in}.how-to-play-shot:hover{background:var(--surface-sunk);transform:translateY(-2px)}.how-to-play-shot img{display:block;width:100%;height:auto}.shot-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:0;background:#141024;color:var(--on-accent);overflow:hidden}.shot-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.shot-viewer::backdrop{background:#141024f5}.shot-viewer-bar{display:flex;align-items:center;justify-content:space-between}.shot-viewer-count{font-weight:800;color:#fff}.shot-viewer-figure{min-height:0;width:min(100%,600px);margin:0;justify-self:center;display:grid;grid-template-rows:minmax(0,max-content) auto;align-content:center;gap:12px}.shot-viewer-stage{min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y;-webkit-user-select:none;user-select:none}.shot-viewer-stage img{display:block;width:auto;height:auto;max-width:min(100%,520px);max-height:100%;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.shot-viewer-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.shot-viewer-footer figcaption{justify-self:center;max-width:460px;color:#fff;font-weight:600;text-align:center;overflow-wrap:anywhere}.shot-viewer-nav{width:48px;height:48px}.shot-viewer-nav:disabled{opacity:0}@media(max-width:480px){.shot-viewer{padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left))}.shot-viewer-footer{gap:8px}.shot-viewer-footer figcaption{font-size:.9rem}.shot-viewer-nav{width:44px;height:44px}}.how-to-play-list{margin:0;padding-left:1.2rem;color:var(--text-body);font-weight:600}.game-tile:has(>.game-tile-body){container-type:inline-size}.game-tile-body{flex:1;min-width:0;align-self:stretch;display:flex;align-items:center;gap:12px}@container (max-width: 340px){.game-tile-body{flex-wrap:wrap;align-content:space-between}.game-tile-body>.primary{flex:1 0 100%}}.tap-race{display:grid;justify-items:center;align-content:center;gap:18px;min-height:100%;padding:20px}.tap-race-status{min-height:2.5rem;font-family:var(--font-display);font-size:1.4rem}.tap-timer{display:inline-flex;align-items:center;gap:6px;font-weight:600}.tap-button{display:grid;place-items:center;gap:2px;width:min(220px,60vw);aspect-ratio:1;border-radius:50%;border-width:4px;background:var(--primary);color:var(--on-primary);box-shadow:0 8px 0 var(--primary-d);font-family:var(--font-display);font-size:2rem;touch-action:manipulation;-webkit-user-select:none;user-select:none}.tap-button svg{width:56px;height:56px}.tap-button small{font-family:var(--font-body);font-size:.95rem;font-weight:800}.tap-button:hover{background:var(--primary);filter:brightness(1.06)}.tap-button:active{transform:translateY(6px);box-shadow:0 2px 0 var(--primary-d)}.tap-button:disabled{opacity:.7}.tap-spectating{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--text-soft);font-weight:700}.tap-tracks{list-style:none;margin:0;padding:0;width:min(520px,100%);display:grid;gap:8px}.tap-tracks li{display:grid;grid-template-columns:minmax(0,8rem) 1fr 2.5rem;align-items:center;gap:10px;font-weight:700}.tap-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tap-count{text-align:right;font-variant-numeric:tabular-nums}.tap-track,.progress-track{display:block;height:14px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--muted-fill);overflow:hidden}.tap-fill,.progress-fill{display:block;height:100%;border-radius:var(--radius-pill);background:var(--success);transition:width .15s ease-out}.tap-tracks li.self .tap-fill{background:var(--primary)}.falling-letters{--fl-tile: 46px;--fl-toffie: 64px;display:grid;grid-template-rows:auto auto minmax(160px,1fr) auto auto;gap:10px;height:100%;padding:14px}.fl-hud{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.fl-toffie{flex-shrink:0}.fl-hearts{--fl-heart: 26px;display:inline-flex;gap:2px}.fl-hearts.small{--fl-heart: 16px}.fl-hearts svg{width:var(--fl-heart);height:var(--fl-heart)}.fl-hearts .full{color:var(--primary)}.fl-hearts .empty{color:var(--text-faint)}.fl-stat{display:grid;line-height:1.1}.fl-stat small,.fl-target small{color:var(--text-soft);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.fl-stat strong{font-family:var(--font-display);font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums}.fl-target{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;margin-left:auto;padding:4px 12px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);font-weight:800}.fl-status{margin:0;min-height:1.8rem;text-align:center;font-family:var(--font-display);font-size:1.2rem}.fl-phase{color:var(--text-soft);font-size:1rem;font-weight:600}.fl-watching{display:inline-flex;align-items:center;gap:8px;color:var(--text-soft);font-family:var(--font-body);font-size:1rem;font-weight:700}.fl-target>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-stage{position:relative;min-height:160px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(to top,var(--danger) 0 22%,transparent 22%),var(--surface);overflow:hidden}.fl-stage.shake{animation:fl-shake .35s ease}.fl-sky{position:absolute;inset:8px 8px 14px}.fl-ground{position:absolute;left:0;right:0;bottom:0;height:10px;border-top:var(--border-w) solid var(--line);background:var(--selected)}.fl-tile{position:absolute;display:inline-flex;align-items:center;justify-content:center;gap:1px;min-width:var(--fl-tile);height:var(--fl-tile);padding:0 6px;transform:translate(-50%);border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:0 4px 0 var(--ledge);color:var(--text);font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;animation:fl-enter .18s cubic-bezier(.34,1.56,.64,1)}.fl-tile.attack{background:var(--selected);box-shadow:0 4px 0 var(--selected-d);color:var(--on-accent)}.fl-tile.word{padding:0 10px;font-size:1.15rem;letter-spacing:.04em;white-space:nowrap}.fl-tile.locked{z-index:1;border-color:var(--primary);box-shadow:0 4px 0 var(--primary-d),0 0 0 3px var(--focus-ring)}.fl-typed{color:var(--success-d);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:3px}.fl-tile.attack .fl-typed{color:var(--on-accent);opacity:.55}.fl-settings{margin-left:auto;padding:4px 12px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--muted-fill);color:var(--text-soft);font-size:.8rem;font-weight:800;white-space:nowrap}.fl-tile svg{width:16px;height:16px}.fl-tile.danger{box-shadow:0 4px 0 var(--danger-d);animation:fl-danger .3s ease-in-out infinite alternate}.fl-tile.missed{background:var(--danger);color:var(--on-danger);box-shadow:none;opacity:.8;animation:none}.fl-tile.popped{background:var(--success);color:var(--on-accent);box-shadow:none;animation:fl-pop .26s ease-out forwards}.fl-banner,.fl-callout,.fl-attack-flash,.fl-incoming,.fl-ready{position:absolute;left:50%;margin:0;transform:translate(-50%);white-space:nowrap;pointer-events:none;font-family:var(--font-display);font-weight:700}.fl-banner{top:10px;padding:4px 16px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--toast-bg);color:var(--toast-text);font-size:1.05rem;letter-spacing:.04em;animation:fl-flash 1.4s ease forwards}.fl-incoming{top:46px;display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-size:.95rem}.fl-callout{bottom:26%;font-size:1.6rem;color:var(--text);text-shadow:0 2px 0 var(--surface),0 -2px 0 var(--surface),2px 0 0 var(--surface),-2px 0 0 var(--surface);animation:fl-float .9s ease-out forwards}.fl-callout.hot,.fl-callout.good{color:var(--primary)}.fl-callout.bad{color:var(--danger-d)}.fl-attack-flash{top:40%;display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--primary);box-shadow:0 4px 0 var(--primary-d);color:var(--on-primary);font-size:1.1rem;animation:fl-flash 1.3s ease forwards}.fl-packet{display:inline-flex;animation:fl-attack-send .6s ease-in .2s both}.fl-ready{top:45%;color:var(--text-soft);font-family:var(--font-body);font-weight:800}.fl-keypad{display:none;gap:6px;min-width:0;margin:0;padding:0;border:0;touch-action:manipulation}@media(pointer:coarse){.fl-keypad{display:grid}}.fl-keyrow{display:flex;justify-content:center;gap:4px}.fl-key{flex:1 1 0;max-width:44px;min-height:46px;padding:0;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:1.15rem;touch-action:manipulation;-webkit-user-select:none;user-select:none}.fl-players{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:6px}.fl-player-row,.fl-follow{display:grid;grid-template-columns:minmax(0,1fr) auto 2rem;align-items:center;gap:8px;width:100%;padding:6px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700;text-align:left}.fl-follow{box-shadow:none;cursor:var(--cursor-pointer)}.fl-follow[aria-pressed=true]{background:var(--selected);color:var(--on-accent);box-shadow:none}.fl-players li.self .fl-player-row{border-width:var(--border-w)}.fl-players li.out{opacity:.55}.fl-player-name{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-player-target{flex-shrink:0;width:16px;height:16px;color:var(--primary)}.fl-player-score{text-align:right;font-variant-numeric:tabular-nums}@keyframes fl-enter{0%{opacity:0;scale:.6}}@keyframes fl-danger{0%{rotate:-4deg}to{rotate:4deg}}@keyframes fl-pop{to{opacity:0;scale:1.5}}@keyframes fl-shake{0%,to{translate:0}20%{translate:-8px 0}40%{translate:7px 0}60%{translate:-5px 0}80%{translate:3px 0}}@keyframes fl-float{0%{opacity:0;translate:0 10px}20%{opacity:1;translate:0}80%{opacity:1}to{opacity:0;translate:0 -14px}}@keyframes fl-flash{0%{opacity:0;scale:.85}12%{opacity:1;scale:1}80%{opacity:1}to{opacity:0}}@keyframes fl-attack-send{to{opacity:0;translate:60px -40px;scale:.6}}.wts{display:grid;align-content:start;gap:12px;height:100%;overflow-y:auto;padding:14px}.wts-hud{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.wts-round{font-family:var(--font-display);font-size:1.15rem;font-weight:700}.wts-pressure{padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--surface-sunk)}.wts-pressure.pressure{background:var(--selected);color:var(--on-accent)}.wts-pressure.panic{background:var(--primary);color:var(--on-primary);animation:wts-throb 1s ease-in-out infinite alternate}.wts-timer{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:2px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-family:var(--font-display);font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.wts-continue .wts-timer{margin-left:6px;padding:0 8px;font-size:1rem}.wts-timer.urgent{background:var(--primary);color:var(--on-primary);animation:wts-throb .5s ease-in-out infinite alternate}.wts-panic{margin:0;padding:6px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--danger);color:var(--text);font-weight:800;text-align:center}.wts-word-card{display:grid;justify-items:center;gap:2px;width:100%;min-height:88px;padding:12px 16px;border-radius:var(--radius);background:repeating-linear-gradient(-45deg,var(--surface-raised) 0 12px,var(--surface-sunk) 12px 24px);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.wts-word-card.shown{background:var(--selected);color:var(--on-accent);box-shadow:0 1px 0 var(--selected-d);translate:0 3px}.wts-word-label{font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.wts-word{font-family:var(--font-display);font-size:clamp(1.6rem,6vw,2.2rem);letter-spacing:.04em}.wts-word-hidden{display:inline-flex;align-items:center;gap:6px;font-weight:800}.wts-spectating,.wts-ghost-note,.wts-count{display:inline-flex;align-items:center;gap:6px;margin:0}.wts-ghost-note{padding:8px 12px;border:2px dashed var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}.wts-stage{display:grid;gap:10px;padding:14px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.wts-stage p{margin:0}.wts-stage-text{display:grid;gap:2px}.wts-stage-text strong{font-family:var(--font-display);font-size:1.4rem}.wts-reveal-pop strong,.wts-ousted strong{animation:wts-pop .4s cubic-bezier(.34,1.56,.64,1)}.wts-challenge{display:grid;gap:2px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.wts-challenge .eyebrow{margin:0}.wts-challenge strong{font-family:var(--font-display);font-size:1.3rem}.wts-rule{display:block;margin:0;font-weight:800;color:var(--text-soft)}.wts-clue-form{display:grid;gap:6px}.wts-clue-row{display:flex;gap:8px}.wts-clue-row input{flex:1;min-width:0;min-height:48px;font-size:1.1rem}.wts-locked{display:inline-flex;align-items:center;gap:6px;font-weight:700}.wts-ok{color:var(--success-d)}.wts-turn{display:grid;gap:2px;font-weight:800}.wts-ready{min-height:48px}.wts-ousted{display:grid;justify-items:center;gap:4px;padding:8px 0;text-align:center;font-weight:800}.wts-ousted strong{font-family:var(--font-display);font-size:2rem}.wts-ousted strong.spy{color:var(--primary)}.wts-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin:0;padding:0;list-style:none}.wts-player-body,.wts-player-button{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"avatar name" "avatar clues" "badges badges";align-items:center;gap:2px 8px;width:100%;height:100%;padding:8px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);text-align:left;font-weight:700}.wts-player-button{background:var(--surface-raised);box-shadow:0 4px 0 var(--line)}.wts-player-button[aria-pressed=true]{background:var(--selected);color:var(--on-accent);box-shadow:0 4px 0 var(--selected-d)}.wts-player .avatar{grid-area:avatar}.wts-player .wts-name{grid-area:name;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wts-player-clues{grid-area:clues;display:flex;flex-wrap:wrap;gap:4px;min-height:1.4em}.wts-badges{grid-area:badges;display:flex;flex-wrap:wrap;gap:4px}.wts-badges:empty{display:none}.wts-player.active .wts-player-body{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary)}.wts-player.out .wts-player-body{opacity:.6}.wts-clue{padding:0 8px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-weight:800;overflow-wrap:break-word}.wts-clue.passed{border-style:dashed;color:var(--text-soft);font-weight:700}.wts-chip,.wts-role-chip{display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:2px solid var(--line);border-radius:var(--radius-pill);font-size:.8rem;font-weight:800}.wts-chip.done{background:var(--success);color:var(--on-accent)}.wts-chip.turn,.wts-role-chip.spy,.wts-final-roles li.spy .wts-role-chip{background:var(--primary);color:var(--on-primary)}.wts-history{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.wts-history summary{padding:10px 12px;font-weight:800;cursor:pointer}.wts-history>ol{display:grid;gap:10px;margin:0;padding:0 12px 12px;list-style:none}.wts-history p{margin:4px 0 0}.wts-history-clues{display:flex;flex-wrap:wrap;gap:4px 12px;margin:4px 0 0;padding:0;list-style:none}.wts-history-clues li{display:inline-flex;align-items:center;gap:4px}.wts-history-name{font-weight:700}.wts-interrogation{display:grid;gap:6px;padding:10px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--selected);color:var(--on-accent)}.wts-history .wts-interrogation{margin-top:6px;border-width:2px}.wts-interrogation-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:800}.wts-interrogation q{font-family:var(--font-display);font-size:1.1rem}.wts-answer{justify-self:start;padding:0 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-weight:800}.wts-answer.passed{border-style:dashed;color:var(--text-soft)}.wts-interrogate summary{display:inline-flex;align-items:center;gap:6px;font-weight:800;cursor:pointer}.wts-pick-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wts-pick{min-height:44px}.wts-ghost{display:grid;gap:8px}.wts-ghost-pick{display:grid;gap:4px;padding:8px 12px;border:2px dashed var(--line);border-radius:var(--radius-sm);color:var(--text-soft)}.wts-ghost-pick .wts-pick-row{margin-top:2px}.wts-final{display:grid;gap:12px}.wts-final h4{margin:0 0 4px}.wts-final ul,.wts-final ol{margin:0;padding-left:1.2em}.wts-final-banner{margin:0;padding:12px;border:var(--border-w) solid var(--line);border-radius:var(--radius);font-family:var(--font-display);font-size:clamp(1.8rem,7vw,2.6rem);text-align:center;animation:wts-pop .4s cubic-bezier(.34,1.56,.64,1)}.wts-final-banner.civilians{background:var(--success);color:var(--on-accent)}.wts-final-banner.spies{background:var(--primary);color:var(--on-primary)}.wts-final>p{margin:0;text-align:center}.wts-final-words{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wts-final-words>div{display:grid;justify-items:center;padding:10px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.wts-final-words strong{font-family:var(--font-display);font-size:1.4rem;text-align:center}.wts-final .wts-final-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;padding:0;list-style:none}.wts-final-roles li{display:flex;align-items:center;gap:8px;padding:6px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}.wts-final-roles .wts-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wts-final-score{font-family:var(--font-display)}.wts-final-section{padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.wts-continue{justify-self:center;min-height:48px}@media(max-width:520px){.wts{padding:10px}.wts-players{grid-template-columns:1fr;gap:6px}.wts-player-body,.wts-player-button{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar name badges" "avatar clues badges"}.wts-badges{justify-content:flex-end}}.wts-players.compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}.wts-players.compact .wts-player-body,.wts-players.compact .wts-player-button{gap:0 6px;padding:4px 8px;font-size:.92rem}.wts.pressure-tense .wts-stage{border-color:var(--selected-d)}.wts.pressure-pressure .wts-stage{border-color:var(--selected-d);box-shadow:0 0 0 3px var(--selected),var(--shadow-card)}.wts.pressure-panic .wts-stage{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary),var(--shadow-card)}.wts-pressure-note{padding:6px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--selected);color:var(--on-accent);font-weight:800}.wts-pressure-note.panic{background:var(--primary);color:var(--on-primary)}@keyframes wts-pop{0%{opacity:0;scale:.6}}@keyframes wts-throb{to{scale:1.08}}@media(prefers-reduced-motion:reduce){.wts-pressure.panic,.wts-timer.urgent,.wts-reveal-pop strong,.wts-ousted strong,.wts-final-banner{animation:none}}:root{--tier-bronze: #d98c4a;--tier-bronze-d: #9c5a26;--tier-silver: #c9d1dc;--tier-silver-d: #8591a3;--tier-gold: #ffc24b;--tier-gold-d: #c98a12;--tier-platinum: #9fe6de;--tier-platinum-d: #3fa79b;--tier-diamond: #b9a6ff;--tier-diamond-d: #6a4fd8}.level-bar{display:grid;gap:8px}.level-bar-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.level-chip{padding:3px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-family:var(--font-display);font-weight:600}.level-xp{font-weight:700;font-variant-numeric:tabular-nums}.level-bar .progress-track{height:18px}.xp-fill{background:linear-gradient(90deg,var(--success),var(--selected));transition:width 1.2s cubic-bezier(.22,1,.36,1)}.badge-medal{--tier: var(--muted-fill);--tier-d: var(--text-faint);position:relative;flex-shrink:0;display:grid;place-items:center;width:56px;height:56px;border:var(--border-w) solid var(--line);border-radius:50%;background:var(--tier);color:var(--line);box-shadow:inset 0 0 0 4px var(--tier-d),0 3px 0 var(--ledge-soft);overflow:hidden}.badge-medal svg{width:var(--medal-icon, 26px);height:var(--medal-icon, 26px)}.badge-medal.sm{--medal-icon: 18px;width:36px;height:36px;box-shadow:inset 0 0 0 3px var(--tier-d)}.badge-medal.lg{width:76px;height:76px}.badge-medal.tier-locked{color:var(--text-soft)}.badge-medal.tier-bronze{--tier: var(--tier-bronze);--tier-d: var(--tier-bronze-d)}.badge-medal.tier-silver{--tier: var(--tier-silver);--tier-d: var(--tier-silver-d)}.badge-medal.tier-gold,.badge-medal.tier-platinum,.badge-medal.tier-diamond{box-shadow:inset 0 0 0 3px var(--tier-d),inset 0 0 0 6px var(--tier),inset 0 0 0 8px var(--tier-d),0 3px 0 var(--ledge-soft)}.badge-medal.tier-gold{--tier: var(--tier-gold);--tier-d: var(--tier-gold-d)}.badge-medal.tier-platinum{--tier: var(--tier-platinum);--tier-d: var(--tier-platinum-d)}.badge-medal.tier-diamond{--tier: var(--tier-diamond);--tier-d: var(--tier-diamond-d)}.badge-medal.tier-platinum:after,.badge-medal.tier-diamond:after{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.65) 50%,transparent 60%);animation:medal-shine 3.5s ease-in-out infinite}@keyframes medal-shine{0%{transform:translate(-60%)}60%,to{transform:translate(60%)}}.tier-label{display:inline-block;padding:0 8px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--muted-fill);color:var(--text);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}.tier-text-bronze{background:var(--tier-bronze);color:#36304f}.tier-text-silver{background:var(--tier-silver);color:#36304f}.tier-text-gold{background:var(--tier-gold);color:#36304f}.tier-text-platinum{background:var(--tier-platinum);color:#36304f}.tier-text-diamond{background:var(--tier-diamond);color:#36304f}.badge-progress{display:grid;gap:4px}.badge-progress small{font-weight:700;font-variant-numeric:tabular-nums}.badge-progress .progress-fill{transition:width 1.2s cubic-bezier(.22,1,.36,1)}.tier-fill-locked,.tier-fill-bronze{background:var(--tier-bronze)}.tier-fill-silver{background:var(--tier-silver-d)}.tier-fill-gold{background:var(--tier-gold)}.tier-fill-platinum{background:var(--tier-platinum-d)}.tier-fill-diamond{background:var(--tier-diamond)}.match-results{position:relative;display:grid;gap:18px}.results-head{container:results-head / inline-size;position:relative}.results-hero{position:relative;text-align:center;padding:6px 56px 0}.results-hero .eyebrow{margin:0}.results-hero h2{margin:6px 0 4px;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.05;outline:none}.results-title-accent{color:var(--primary)}.results-duration{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:700;color:var(--text-soft)}@container results-head (max-width: 640px){.results-corner-button{width:44px;padding:0}.results-topbar-label{display:none}.results-hero{padding-inline:48px}}@media(max-height:500px){.results-hero .toffie{width:96px}}.confetti{--confetti-blue: #5b8cff;--confetti-pink: #ff7ac8;--popper: 76px;--popper-inset: 14px;--mouth-x: calc(var(--popper-inset) + var(--popper) * .93);--mouth-y: calc(var(--popper-inset) + var(--popper) * .61);position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:calc(100% - var(--mouth-y));left:var(--mouth-x);animation:confetti-drift var(--dur) cubic-bezier(.1,.75,.35,1) var(--delay) both}.confetti-piece.right{left:calc(100% - var(--mouth-x))}.confetti-fall{display:block;animation:confetti-arc var(--dur) var(--delay) both}.confetti-bit{display:block;width:calc(10px * var(--size));height:calc(14px * var(--size));border:2px solid var(--line);border-radius:3px;background:var(--selected);animation:confetti-flutter var(--spin-dur) linear infinite}.confetti-bit.dot{height:calc(10px * var(--size));border-radius:50%}.confetti-bit.ribbon{width:calc(5px * var(--size));height:calc(20px * var(--size));border-width:1.5px;border-radius:2px}.confetti-bit.reverse{animation-direction:reverse}.confetti-bit.c1{background:var(--primary)}.confetti-bit.c2{background:var(--success)}.confetti-bit.c3{background:var(--confetti-blue)}.confetti-bit.c4{background:var(--confetti-pink)}@keyframes confetti-drift{0%{transform:translate(0)}to{transform:translate(var(--dx))}}@keyframes confetti-arc{0%{transform:translateY(0);opacity:0;animation-timing-function:cubic-bezier(.15,.7,.4,1)}2%,85%{opacity:1}28%{transform:translateY(var(--peak));animation-timing-function:cubic-bezier(.45,0,.8,.6)}to{transform:translateY(calc(var(--peak) + 70vh));opacity:0}}@keyframes confetti-flutter{0%{transform:perspective(300px) rotate3d(var(--ax),var(--ay),.3,0)}to{transform:perspective(300px) rotate3d(var(--ax),var(--ay),.3,360deg)}}.popper{--off-x: -90px;position:absolute;bottom:var(--popper-inset);left:var(--popper-inset);width:var(--popper);height:var(--popper);transform-origin:50% 90%;rotate:40deg;animation:popper-enter .36s cubic-bezier(.3,1.5,.5,1) both,popper-exit .42s ease-in var(--exit) forwards}.popper.right{--off-x: 90px;left:auto;right:var(--popper-inset);rotate:-40deg}.popper-body{position:relative;width:100%;height:100%;transform-origin:50% 90%;animation:popper-windup .34s ease-in-out calc(var(--pop1) - .34s),popper-pop .42s ease-out var(--pop1)}.popper.twice .popper-body{animation:popper-windup .34s ease-in-out calc(var(--pop1) - .34s),popper-pop .42s ease-out var(--pop1),popper-windup .3s ease-in-out calc(var(--pop2) - .3s),popper-pop .42s ease-out var(--pop2)}.popper svg{display:block;width:100%;height:100%;overflow:visible}.popper-cone{fill:var(--primary)}.popper-stripe{fill:var(--selected)}.popper-rim{fill:var(--success)}.popper-cone,.popper-stripe,.popper-rim{stroke:var(--line);stroke-width:2.5;stroke-linejoin:round}.popper-load{fill:var(--confetti-blue);stroke:var(--line);stroke-width:1.5;animation:popper-empty 60ms linear var(--pop1) forwards}.popper-load circle{fill:var(--confetti-pink)}.popper-string{fill:none;stroke:var(--line);stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:top;animation:popper-string .28s ease-in var(--pop1) forwards}.popper-puff{position:absolute;top:23%;left:50%;width:130%;aspect-ratio:1;border:3px solid var(--selected);border-radius:50%;background:radial-gradient(circle,rgb(255 255 255 / .9) 0 30%,transparent 32%);opacity:0;animation:popper-puff .46s ease-out var(--pop1)}.popper.twice .popper-puff{animation:popper-puff .46s ease-out var(--pop1),popper-puff .46s ease-out var(--pop2)}@keyframes popper-enter{0%{translate:var(--off-x) 90px}to{translate:0 0}}@keyframes popper-exit{to{translate:var(--off-x) 90px;opacity:0}}@keyframes popper-windup{0%,to{transform:none}30%{transform:rotate(-7deg) scaleY(.94)}65%{transform:rotate(6deg) scaleY(.88)}}@keyframes popper-pop{0%{transform:none}14%{transform:translateY(9px) scale(1.18,.78)}45%{transform:translateY(-4px) scale(.92,1.1)}to{transform:none}}@keyframes popper-puff{0%{opacity:1;transform:translate(-50%,-50%) scale(.2)}to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}@keyframes popper-string{to{opacity:0;transform:translateY(10px) rotate(35deg)}}@keyframes popper-empty{to{opacity:0}}@media(max-width:480px){.confetti{--popper: 58px}}.results-body{container-type:inline-size;display:grid;gap:14px}.results-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}@container (min-width: 600px){.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.results-grid.has-awards .results-rankings{grid-column:1 / -1}}@container (min-width: 900px){.results-grid.has-awards{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}.results-grid.has-awards .results-rankings{grid-column:auto}.results-grid:not(.has-awards){grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}.results-card{padding:16px 18px;box-shadow:0 4px 0 var(--ledge-soft)}.results-card h3{margin:0 0 12px;font-size:1.1rem;font-weight:600}.results-card h3.results-card-title{display:flex;align-items:center;gap:8px;font-size:1.2rem}.results-card-title svg{width:24px;height:24px;color:var(--primary)}.results-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin-bottom:12px}.results-card-head h3.results-card-title{margin:0}.results-card-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:800;font-size:.9rem;color:var(--text-body);text-decoration:none}.results-card-link:hover{color:var(--text);text-decoration:underline}.results-rankings{container-type:inline-size}.rankings{list-style:none;margin:0;padding:0;display:grid}.rank-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"rank avatar name xp" "rank avatar score xp";align-items:center;column-gap:10px;padding:8px 10px;border:2px solid transparent;border-radius:var(--radius-sm);font-weight:800}.rank-row+.rank-row{border-top-color:var(--surface-sunk);border-radius:0}.rank-row.self{border-color:var(--line);border-radius:var(--radius-sm);background:var(--selected);color:var(--on-accent);box-shadow:0 3px 0 var(--selected-d)}.rank-row.self+.rank-row{border-top-color:transparent}@container (min-width: 380px){.rank-row{grid-template-columns:auto auto minmax(0,1fr) auto auto;grid-template-areas:"rank avatar name score xp"}.rank-xp{min-width:4.5em}}.rank-chip{grid-area:rank;display:grid;place-items:center;width:30px;height:30px;border:2px solid var(--line);border-radius:50%;background:var(--surface-raised);color:var(--text);font-family:var(--font-display);font-weight:700}.rank-row.rank-1 .rank-chip{background:var(--tier-gold);color:#36304f}.rank-row.rank-2 .rank-chip{background:var(--tier-silver);color:#36304f}.rank-row.rank-3 .rank-chip{background:var(--tier-bronze);color:#36304f}.rank-row .avatar{grid-area:avatar}.rank-name{grid-area:name;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-you{font-size:.8rem;font-weight:600;opacity:.75}.rank-score{grid-area:score;font-size:.85rem;font-weight:700;color:var(--text-body)}.rank-xp{grid-area:xp;text-align:right;font-size:.85rem;color:var(--primary);font-variant-numeric:tabular-nums}.rank-row.self .rank-score,.rank-row.self .rank-xp{color:inherit}.results-awards{display:flex;flex-direction:column}.award-stage{flex:1;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-areas:"prev hex next" "text text text";align-items:center;align-content:center;gap:8px}.award-slide{grid-area:text;display:grid;justify-items:center;gap:2px;text-align:center}.award-hex{grid-area:hex;justify-self:center;position:relative;display:grid;place-items:center;width:84px;height:84px;color:var(--tier-gold);filter:drop-shadow(0 3px 0 #c9503f)}.award-hex>svg:first-child{position:absolute;inset:0;width:100%;height:100%;fill:#ff7a6b;stroke:var(--line);stroke-width:3;stroke-linejoin:round}.award-hex>svg:last-child{position:relative;width:40px;height:40px;filter:drop-shadow(1.5px 0 0 var(--line)) drop-shadow(-1.5px 0 0 var(--line)) drop-shadow(0 1.5px 0 var(--line)) drop-shadow(0 -1.5px 0 var(--line))}.award-name{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.award-winner{font-weight:800}.award-slide small{font-weight:600}.award-step{display:grid;place-items:center;width:44px;height:44px;padding:0}.award-step.prev{grid-area:prev}.award-step.next{grid-area:next}.award-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}.award-dots span{width:10px;height:10px;border:2px solid var(--line);border-radius:50%;background:var(--surface-sunk)}.award-dots span.on{background:var(--primary)}.your-progress{display:grid;align-content:start;gap:10px}.your-progress h3{margin-bottom:0}.xp-gained{margin:0;font-family:var(--font-display);font-size:2.2rem;font-weight:700;line-height:1;color:var(--text);text-shadow:3px 3px 0 var(--success)}.xp-lines{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-weight:700;color:var(--text-body)}.xp-lines li{display:flex;justify-content:space-between;gap:8px}.level-up{justify-self:start;margin:0;padding:4px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-family:var(--font-display);font-weight:600;animation:dialog-pop .3s cubic-bezier(.34,1.56,.64,1) .9s both}.streak-line{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:700;color:var(--text-body)}.badge-deltas{list-style:none;margin:0;padding:0;display:grid;gap:10px}@container (min-width: 600px){.badge-deltas{grid-template-columns:repeat(3,minmax(0,1fr))}}.badge-deltas li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.badge-delta-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}.unlock-pill{padding:0 8px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--success);color:var(--on-accent);font-size:.75rem;font-weight:800;animation:dialog-pop .3s cubic-bezier(.34,1.56,.64,1) 1.2s both}.results-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding-bottom:4px}.results-actions button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-width:220px}@media(max-width:560px){.results-actions{flex-direction:column;align-items:stretch}.results-actions button{min-width:0}}.results-topbar{position:absolute;inset:0 0 auto;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}.results-topbar>*{pointer-events:auto}.results-topbar-end{display:flex;gap:8px}.results-corner-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px}.featured-badges{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.featured-badges li{display:inline-flex;align-items:center;gap:8px;padding:3px 12px 3px 3px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-weight:800;font-size:.9rem}.streak-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:16px 0 0}.streak-stats>div{padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.streak-stats dt{display:flex;align-items:center;gap:6px;color:var(--text-soft);font-size:.8rem;font-weight:800}.streak-stats dd{margin:2px 0 0;font-family:var(--font-display);font-size:1.5rem;font-weight:600}.streak-stats small{font-family:var(--font-body);font-size:.8rem;font-weight:700}.badge-hint{margin:-6px 0 12px;font-weight:600}.page-card>.cursor-hint{margin:-6px 0 12px;font-weight:600}.cursor-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;border:0}@media(max-width:520px){.cursor-picker{grid-template-columns:1fr}}@media(pointer:fine){.cursor-option[data-cursor-preview=glove]{--cursor-pointer: var(--cursor-glove), pointer;--cursor-pointer-active: var(--cursor-glove-press), pointer}.cursor-option[data-cursor-preview=sticker]{--cursor-pointer: var(--cursor-sticker), pointer;--cursor-pointer-active: var(--cursor-sticker-press), pointer}.cursor-option[data-cursor-preview=pixel]{--cursor-pointer: var(--cursor-pixel), pointer;--cursor-pointer-active: var(--cursor-pixel-press), pointer}.cursor-option[data-cursor-preview=system]{--cursor-pointer: pointer;--cursor-pointer-active: pointer}}.cursor-option{position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:0 4px 0 var(--ledge-soft);cursor:var(--cursor-pointer);transition:transform .08s ease,background .15s ease}.cursor-option:hover{background:var(--hover);transform:translateY(-2px)}.cursor-option:has(input:checked){background:var(--selected);color:var(--on-accent);box-shadow:0 4px 0 var(--selected-d)}.cursor-option:has(input:checked) .cursor-option-description{color:var(--on-accent)}.cursor-option:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.cursor-option input{position:absolute;opacity:0;pointer-events:none}.cursor-option-art{display:grid;flex-shrink:0;place-items:center;width:72px;height:72px;border:2px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text)}.cursor-option-art img{display:block;width:64px;height:64px}.cursor-option-art.pixel img{image-rendering:pixelated}.cursor-option-text{display:grid;gap:2px;min-width:0}.cursor-option-text strong{font-family:var(--font-display);font-weight:600;font-size:1.05rem}.cursor-option-check{flex-shrink:0;width:24px;height:24px;margin-left:auto}@media(prefers-reduced-motion:reduce){.cursor-option{transition:none}.cursor-option:hover{transform:none}}.badge-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px}.badge-card{display:flex;align-items:flex-start;gap:12px;padding:12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.badge-card.locked{border-style:dashed}.badge-card-text{flex:1;min-width:0;display:grid;gap:4px;justify-items:start}.badge-card-text .badge-progress{width:100%}.badge-card-text small.muted{font-weight:600}.feature-toggle{width:40px;height:40px;box-shadow:0 2px 0 var(--ledge-soft)}.feature-toggle[aria-pressed=true]{background:var(--selected);color:var(--on-accent);box-shadow:0 2px 0 var(--selected-d)}.match-row .person-name{white-space:normal}.match-stats{display:flex;align-items:center;gap:12px;margin-left:auto;font-weight:800;white-space:nowrap}.match-xp{color:var(--text)}@media(max-width:800px),(max-height:500px){.game-panel-header h2{font-size:1.15rem}.end-game,.pause-game,.ready-toggle{min-height:44px;padding:.5rem .8rem}.game-tile .primary{min-height:44px}.tap-race{padding:12px;gap:12px}.tap-button{width:min(170px,48vw)}.tap-tracks li{grid-template-columns:minmax(0,6rem) 1fr 2rem}.falling-letters{--fl-tile: 40px;--fl-toffie: 40px;padding:10px;gap:8px}.fl-status{min-height:1.4rem;font-size:1rem}.fl-key{min-height:40px}.fl-players{display:flex;overflow-x:auto}.fl-players li{flex:0 0 auto}.fl-player-row,.fl-follow{grid-template-columns:minmax(0,7rem) auto 1.5rem;padding:4px 8px}.fl-hud .fl-hearts{--fl-heart: 22px}.fl-stat strong{font-size:1.25rem}.fl-tile{font-size:1.35rem}.results-actions button{min-height:44px}}@media(max-width:560px){.match-stats{margin-left:0}}@media(prefers-reduced-motion:reduce){button,.section-caret,.social-panel,.sheet-open .social-panel,.sheet-backdrop{transition:none}.dialog[open],.reaction-tray,.invite-card,.wait-banner,.wait-banner-icon svg{animation:none}.nav-link,.button-link,.game-settings-button svg{transition:none}.nav-link:active,.button-link:active{transform:none}.floating-reaction{animation:reaction-fade 2s linear forwards}button:active{transform:none}.confetti,.badge-medal:after{display:none}.progress-fill,.tap-fill,.xp-fill,.badge-progress .progress-fill{transition:none}.level-up,.unlock-pill,.game-countdown-card,.game-countdown-beat,.game-paused-card,.fl-stage.shake,.fl-tile,.fl-tile.danger,.fl-tile.popped,.fl-packet,.fl-callout,.fl-banner,.fl-attack-flash{animation:none}}.room-shell.has-video{grid-template-columns:auto minmax(0,1fr) 360px}.has-video .game-panel{grid-column:2;grid-row:2}.has-video .social-panel{grid-column:3}.control[aria-pressed=true],.control.camera.on,.control.in-voice{background:var(--success);color:var(--on-accent);box-shadow:0 3px 0 var(--success-d)}.control.in-voice[aria-expanded=true]{background:var(--selected);box-shadow:0 3px 0 var(--selected-d)}.voice-control{position:relative;display:flex}.voice-panel{position:absolute;z-index:25;bottom:calc(100% + 12px);left:0;width:min(320px,calc(100vw - 32px));padding:14px;display:flex;flex-direction:column;gap:12px;animation:dialog-pop .16s cubic-bezier(.34,1.56,.64,1)}.voice-status{margin:0;color:var(--text-soft);font-size:.85rem;font-weight:700}.voice-toggle,.leave-voice,.music-switch{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;box-shadow:0 3px 0 var(--ledge-soft)}.voice-toggle[aria-pressed=true],.music-switch[aria-pressed=true]{background:var(--selected);color:var(--on-accent);box-shadow:0 3px 0 var(--selected-d)}.device-select{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:800}.device-select select{min-height:40px;padding:.4rem .6rem;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--text);font:inherit;font-weight:600}.voice-volumes{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.voice-volumes legend{padding:0;margin-bottom:4px;font-size:.8rem;font-weight:800}.volume-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;font-size:.85rem;font-weight:700}.volume-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.volume-row input{padding:0;border:0;background:none;accent-color:var(--primary)}.member.has-voice{grid-template-columns:10px 1fr 40px auto}.member.has-options{grid-template-columns:10px 1fr 32px}.member.has-voice.has-options{grid-template-columns:10px 1fr 40px 32px}.voice-state{display:inline-flex;justify-content:flex-end;gap:4px;color:var(--text-soft)}.member.speaking,.video-tile.speaking{outline:2px solid var(--success);outline-offset:1px;animation:speaking-pulse 1.2s ease-in-out infinite}.member.speaking .voice-state{color:var(--success-d)}@keyframes speaking-pulse{50%{outline-color:color-mix(in srgb,var(--success) 40%,transparent)}}.video-strip{grid-column:1;grid-row:2;width:220px;min-height:0;padding:12px;display:flex;flex-direction:column;gap:10px}.video-strip.collapsed{width:auto;padding:12px 8px;align-items:center}.video-rail-toggle{width:44px;height:auto;min-height:44px;padding:6px 0;gap:2px;border-radius:var(--radius-sm);font-size:.75rem}.video-strip-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.video-strip-heading h2{margin:0;display:inline-flex;align-items:center;gap:6px;font-size:1.15rem}.video-strip-heading .video-strip-count{font-family:var(--font-body);font-size:.85rem;font-weight:700}.video-tiles{list-style:none;margin:0;padding:3px 3px 6px;display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}.video-tile{position:relative;flex:0 0 auto;width:100%;aspect-ratio:4 / 3;overflow:hidden;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.video-tile.pinned{border-color:var(--primary)}.video-tile video{display:block;width:100%;height:100%;object-fit:cover}.video-tile video.mirror{transform:scaleX(-1)}.video-placeholder{display:grid;place-items:center;width:100%;height:100%;font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--text-soft)}.video-placeholder.note{font-family:var(--font-body);font-size:.8rem;font-weight:800}.video-name{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-size:.72rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.video-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px}.video-actions button{display:grid;place-items:center;width:32px;height:32px;padding:0;border-width:2px;background:var(--surface);box-shadow:none}.video-actions button:active{transform:none}@media(hover:hover){.video-actions{opacity:0}.video-tile:hover .video-actions,.video-actions:focus-within{opacity:1}}.audio-unlock{position:fixed;z-index:30;top:12px;left:50%;transform:translate(-50%);background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d);font-weight:800}@media(max-width:800px),(max-height:500px){.control-bar{gap:4px}.voice-control{flex:1;position:static}.voice-control .control{flex:1;justify-content:center}.voice-panel{left:8px;right:8px;width:auto;bottom:calc(100% + 8px);max-height:60dvh;overflow-y:auto}.room-shell.has-video{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto}.has-video .game-panel{grid-column:1;grid-row:3}.has-video .social-panel{grid-column:auto;grid-row:auto}.video-actions button{width:36px;height:36px}}.video-ribbon{grid-column:1;grid-row:2;min-width:0;padding:6px;display:flex;align-items:stretch;gap:6px;border-radius:18px}.video-ribbon .video-tiles{flex:1;min-width:0;flex-direction:row;gap:8px;padding:3px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.video-ribbon .video-tile{width:auto;height:72px}.video-ribbon .video-name{left:3px;bottom:3px;max-width:calc(100% - 6px);padding:1px 6px;font-size:.66rem}.video-ribbon .video-actions{top:3px;right:3px;gap:2px}.video-ribbon .video-actions button{width:30px;height:30px}.ribbon-fold{flex:none;width:40px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:var(--radius-sm);font-size:.75rem;box-shadow:none}.video-ribbon.collapsed{padding:0;border-radius:var(--radius-pill)}.ribbon-toggle{width:100%;min-height:48px;padding:4px 6px 4px 14px;display:flex;align-items:center;gap:10px;border:0;border-radius:var(--radius-pill);background:transparent;box-shadow:none;text-align:left}.ribbon-toggle:active{transform:none;box-shadow:none}.ribbon-faces{flex:none;display:flex;padding-left:8px}.ribbon-faces span{display:grid;place-items:center;width:28px;height:28px;margin-left:-8px;border:2px solid var(--surface);border-radius:var(--radius-pill);background:var(--surface-raised);font-size:.75rem;font-weight:800}.ribbon-faces .speaking{box-shadow:0 0 0 2.5px var(--success)}.ribbon-status{flex:1;min-width:0;overflow:hidden;font-size:.85rem;font-weight:700;color:var(--text-body);white-space:nowrap;text-overflow:ellipsis}.ribbon-status strong{color:var(--text);font-weight:800}.ribbon-caret{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-pill);background:var(--muted-fill)}.camera-sheet-backdrop{position:fixed;z-index:25;inset:0;background:var(--scrim)}.camera-sheet{position:fixed;z-index:26;left:0;right:0;bottom:0;max-width:720px;max-height:85dvh;margin:0 auto;box-sizing:border-box;padding:16px 16px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;display:flex;flex-direction:column;gap:14px;border:var(--border-w) solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;background:var(--surface);animation:camera-sheet-in .2s ease}@keyframes camera-sheet-in{0%{transform:translateY(100%)}}.camera-sheet .video-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:visible}.camera-sheet>*{flex-shrink:0}.camera-sheet-empty{margin:0;padding:12px 0;text-align:center}.camera-sheet .sheet-primary{min-height:48px;background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-d)}@media(max-height:500px){.camera-sheet .video-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.member.speaking,.video-tile.speaking,.voice-panel,.music-panel,.camera-sheet{animation:none}}.switch-row{margin-top:10px;cursor:var(--cursor-pointer)}.switch-row input[type=checkbox]{appearance:none;flex-shrink:0;position:relative;width:52px;height:30px;padding:0;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--muted-fill);cursor:var(--cursor-pointer);transition:background .15s}.switch-row input[type=checkbox]:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border:2px solid var(--line);border-radius:50%;background:var(--surface);transition:transform .15s}.switch-row input[type=checkbox]:checked{background:var(--success)}.switch-row input[type=checkbox]:checked:after{transform:translate(22px)}.switch-row input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.room-actions .switch-row{margin-top:0}.room-actions .music-credits{justify-self:center;padding:0}.music-volume input[type=range]{flex:0 1 180px;min-width:0;padding:0;border:0;background:none;accent-color:var(--primary)}.music-volume input[type=range]:disabled{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.switch-row input[type=checkbox],.switch-row input[type=checkbox]:after{transition:none}}.letter-lock{--cube-ink: #36304f;position:relative;container-type:inline-size;display:flex;flex-direction:column;min-height:100%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.letter-lock .tone-0{--cube-tone: #ffc24b}.letter-lock .tone-1{--cube-tone: #44d5ae}.letter-lock .tone-2{--cube-tone: #7cbcff}.letter-lock .tone-3{--cube-tone: #ff8fc8}.letter-lock .tone-4{--cube-tone: #b9a1ff}.letter-lock .tone-5{--cube-tone: #ff9a7a}.ll-wait{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:40px 0;font-weight:800}.ll-body{--cube-size: clamp(84px, 24cqi, 128px);--cube-half: calc(var(--cube-size) / 2);flex:1 0 auto;display:grid;align-content:start;gap:6px;width:100%;max-width:1120px;margin:0 auto;padding:8px 10px 10px}.ll-side,.ll-play{display:contents}.ll-keys{order:10}@container (min-width: 600px){.ll-body{--cube-size: clamp(116px, 20cqi, 160px);grid-template-columns:minmax(200px,.8fr) minmax(0,1.4fr);grid-template-rows:auto 1fr;align-content:stretch;gap:12px 20px;padding:14px 16px 16px}.ll-hud{grid-column:1 / -1}.ll-side{display:grid;align-content:start;gap:10px}.ll-play{display:grid;align-content:center;justify-items:center;gap:14px;min-width:0}.ll-keys{order:0}}@container (min-width: 900px){.ll-body{--cube-size: clamp(140px, 16cqi, 184px);grid-template-columns:minmax(200px,1fr) minmax(360px,2fr) minmax(200px,1fr);grid-template-rows:auto auto 1fr}.ll-side{display:contents}.ll-side>.ll-target{grid-column:1;grid-row:2;align-self:start}.ll-side>.ll-keys{grid-column:1;grid-row:3;align-self:start}.ll-side>.ll-opponents{grid-column:3;grid-row:2 / span 2;align-self:start;align-content:start}.ll-play{grid-column:2;grid-row:2 / span 2}}.ll-hud{position:relative;display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:10px;min-height:34px}.ll-hud p{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.ll-hud-round strong{font-family:var(--font-display);font-size:1.2rem}.ll-score{font-family:var(--font-display);font-size:1.3rem;font-variant-numeric:tabular-nums}.ll-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:.8rem;font-weight:800}.ll-chip svg{width:16px;height:16px}.ll-chip.streak{background:var(--selected);color:var(--on-accent)}.ll-chip.streak.hot{background:var(--primary);color:var(--on-primary)}.ll-clock{display:flex;align-items:center;gap:8px;font-weight:800}.ll-clock-bar{flex:1;height:12px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.ll-clock-bar span{display:block;height:100%;background:var(--ll-clock-fill, var(--success));transform-origin:left center;transition:transform .1s linear}.ll-clock.urgent{--ll-clock-fill: var(--danger-d)}.ll-clock.grace{--ll-clock-fill: var(--selected)}.ll-clock-num{min-width:2ch;font-variant-numeric:tabular-nums;text-align:right}.ll-grace{position:absolute;inset:-2px 0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:4px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-family:var(--font-display);font-size:1.15rem;animation:ll-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ll-grace strong{min-width:1.5ch;font-size:1.4rem}.ll-target{display:grid;grid-template-columns:auto auto;justify-content:center;justify-items:center;align-items:center;gap:2px 14px;padding:8px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);animation:ll-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ll-target>.ll-modifier,.ll-target-hint{grid-column:1 / -1}.ll-target-image{font-size:2.4rem;line-height:1.1}@container (min-width: 600px){.ll-target{grid-template-columns:1fr;padding:12px 16px}.ll-target-image{font-size:3.4rem}}.ll-target-word{font-family:var(--font-display);font-size:clamp(1.5rem,7cqi,2.2rem);letter-spacing:.14em}.ll-target-blanks{display:flex;gap:6px;padding:6px 0}.ll-target-blanks span{width:18px;height:24px;border-bottom:4px solid var(--line)}.ll-target-hint{font-weight:800;color:var(--text-soft)}.ll-opponents{display:flex;gap:6px;margin:0;padding:0 0 2px;overflow-x:auto;list-style:none;scrollbar-width:none;transition:opacity .15s ease}@container (min-width: 600px){.ll-opponents{display:grid;overflow:visible}}.ll-opponent{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:2px 8px;max-width:220px;padding:4px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}@container (min-width: 600px){.ll-opponent{max-width:none}}.ll-opponent.self{background:var(--surface);font-weight:800}.ll-opponent.solved{border-color:var(--success-d)}.ll-opponent-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ll-opponent-status{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--text-soft)}.ll-opponent.solved .ll-opponent-status{color:var(--success-d)}.ll-opponent.penalized .ll-opponent-status{color:var(--error-text)}.ll-opponent-status svg{width:16px;height:16px}.ll-opponent-score{min-width:4ch;font-variant-numeric:tabular-nums;text-align:right}.ll-progress{grid-column:1 / -1;height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--muted-fill)}.ll-progress span{display:block;height:100%;border-radius:inherit;background:var(--success);transition:width .2s ease}.ll-focus-area{position:relative;display:grid;place-items:center;width:100%;min-height:calc(var(--cube-size) + 96px)}@container (min-width: 600px){.ll-focus-area{min-height:calc(var(--cube-size) + 110px)}}.ll-hint{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:800;color:var(--text-soft)}.ll-stamp{display:grid;justify-items:center;gap:2px;margin:0;font-family:var(--font-display);font-size:1.6rem;color:var(--success-d);animation:ll-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ll-stamp svg{width:40px;height:40px}.ll-stamp small{font-family:var(--font-body);font-size:.9rem;color:var(--text-soft)}.cube-focus{display:grid;grid-template-columns:minmax(0,1fr) var(--cube-size) minmax(0,1fr);grid-template-areas:". up ." "left cube right" "cancel down lock";align-items:center;gap:6px 10px;width:min(100%,calc(var(--cube-size) + 320px));margin-inline:auto}.cube-turn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:52px;min-height:40px;padding:.25rem .7rem}.cube-turn-preview{font-family:var(--font-display);font-size:1rem;color:var(--text-soft)}.cube-turn-up{grid-area:up;justify-self:center}.cube-turn-down{grid-area:down;justify-self:center}.cube-turn-left{grid-area:left;justify-self:end}.cube-turn-right{grid-area:right;justify-self:start}.cube-cancel{grid-area:cancel;justify-self:end;display:inline-grid;place-items:center;width:44px;height:44px;padding:0}.cube-lock{grid-area:lock;justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;background:var(--selected);color:var(--on-accent);box-shadow:0 4px 0 var(--selected-d)}.cube-lock:hover{background:var(--selected)}.cube-lock:not(:disabled):active{box-shadow:0 1px 0 var(--selected-d)}.cube-lift{grid-area:cube;z-index:2}.cube-stage{position:relative;width:var(--cube-size);height:var(--cube-size);perspective:800px;touch-action:none;cursor:var(--cursor-pointer)}.cube-stage.disabled{cursor:not-allowed}.cube-base{position:absolute;inset:0;border-radius:20px;background:var(--line);translate:0 9px}.cube-pivot{position:absolute;inset:0;transform:translateZ(calc(-1 * var(--cube-half)));transform-style:preserve-3d}.cube{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}.cube-face{position:absolute;inset:0;display:grid;place-items:center;border:3px solid var(--line);border-radius:20px;background:var(--cube-tone);color:var(--cube-ink);font-family:var(--font-display);font-weight:700;line-height:1;backface-visibility:hidden;-webkit-backface-visibility:hidden}.letter-lock .cube-face{font-size:calc(var(--cube-size) * .56)}.cube-face:not(.front){filter:brightness(.9)}.cube-face.front{transform:translateZ(var(--cube-half))}.cube-face.back{transform:rotateY(180deg) translateZ(var(--cube-half))}.cube-face.top{transform:rotateX(90deg) translateZ(var(--cube-half))}.cube-face.bottom{transform:rotateX(-90deg) translateZ(var(--cube-half))}.cube-face.left{transform:rotateY(-90deg) translateZ(var(--cube-half))}.cube-face.right{transform:rotateY(90deg) translateZ(var(--cube-half))}.cube-face>span{rotate:var(--face-turn, none)}.cube-upright[data-drag-axis=x] .cube-face.back{--face-turn: 180deg}.ll-flash{position:absolute;top:50%;left:50%;z-index:3;margin:0;padding:6px 16px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-display);font-size:1.3rem;white-space:nowrap;translate:-50% -50%;animation:ll-flash 1.4s ease forwards;pointer-events:none}.ll-flash.correct{background:var(--success);color:var(--on-accent)}.ll-flash.wrong{background:var(--danger);color:var(--on-danger)}.ll-board{display:grid;width:100%;grid-template-columns:repeat(var(--ll-count),minmax(0,56px));justify-content:center;gap:clamp(4px,1.6cqi,10px)}@container (min-width: 600px){.ll-board{grid-template-columns:repeat(var(--ll-count),minmax(0,64px))}}.ll-board.shake{animation:ll-shake .36s ease}.ll-slot{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border-style:dashed;border-radius:var(--radius-sm);background:var(--cube-tone);color:var(--cube-ink);font-family:var(--font-display);font-size:clamp(1.1rem,6cqi,2.2rem);font-weight:700;line-height:1}.ll-slot:hover{background:var(--cube-tone);filter:brightness(1.05)}.ll-slot:disabled{opacity:1;cursor:var(--cursor-default)}.ll-slot-letter{opacity:.5}.ll-slot.locked{border-style:solid}.ll-slot.locked .ll-slot-letter{opacity:1}.ll-slot.focused{border-color:var(--text-faint);background:transparent;box-shadow:none}.ll-slot.solved{border-color:var(--success-d);box-shadow:0 4px 0 var(--success-d)}.ll-slot-lock{position:absolute;top:4px;right:4px;width:12px;height:12px}.letter-lock.focusing .ll-opponents{opacity:.6}.letter-lock.focusing .ll-slot:not(.focused){filter:saturate(.75)}.ll-actions{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.ll-bell{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:160px;min-height:52px;font-family:var(--font-display);font-size:1.35rem}.ll-bell svg{width:26px;height:26px}.ll-bell.nudge{animation:ll-shake .36s ease}.ll-bell-note{font-weight:700;color:var(--text-soft)}@container (max-width: 599px){.ll-bell-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.ll-keys{margin:0;font-size:.8rem;text-align:center}@media(hover:none){.ll-keys{display:none}}.ll-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:16px;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ll-results,.ll-blitz-card{display:grid;gap:8px;width:min(420px,100%);padding:18px;animation:ll-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ll-results h3,.ll-blitz-card h3{margin:0;font-family:var(--font-display);font-size:1.7rem;letter-spacing:.06em}.ll-results .eyebrow{margin:0}.ll-results-rows{display:grid;gap:6px;margin:0;padding:0;list-style:none}.ll-results-rows li{display:grid;grid-template-columns:var(--ll-row-cols, 3ch minmax(0, 1fr) auto 4.5ch);align-items:center;gap:8px;padding:6px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}.ll-blitz-card{--ll-row-cols: minmax(0, 1fr) auto}.ll-results-rows li.self{background:var(--surface);font-weight:800}.ll-results-rows li.place-1{border-color:var(--selected-d);background:var(--selected);color:var(--on-accent)}.ll-results-rows li.missed{color:var(--text-soft)}.ll-place{font-family:var(--font-display)}.ll-results-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ll-results-time,.ll-results-points{font-variant-numeric:tabular-nums;text-align:right}.ll-blitz-card{justify-items:center;text-align:center}.ll-blitz-card p{margin:0;font-weight:700}.ll-blitz-icon{width:56px;height:56px;color:var(--primary)}.ll-blitz-count{font-family:var(--font-display);font-size:3rem;line-height:1}.ll-blitz-card .ll-results-rows{width:100%}@keyframes ll-card-in{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}@keyframes ll-shake{0%,to{translate:0}20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:2px 0}}@keyframes ll-flash{0%{opacity:0;transform:translateY(10px) scale(.9)}15%{opacity:1;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.ll-target,.ll-grace,.ll-stamp,.ll-flash,.ll-board.shake,.ll-bell.nudge,.ll-results,.ll-blitz-card{animation:none}.ll-clock-bar span,.ll-progress span,.ll-opponents{transition:none}}.face-flip{--cube-ink: #36304f;position:relative;container-type:inline-size;display:flex;flex-direction:column;min-height:100%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.face-flip .tone-0{--cube-tone: #ffc24b}.face-flip .tone-1{--cube-tone: #44d5ae}.face-flip .tone-2{--cube-tone: #7cbcff}.face-flip .tone-3{--cube-tone: #ff8fc8}.face-flip .tone-4{--cube-tone: #b9a1ff}.face-flip .tone-5{--cube-tone: #ff9a7a}.ff-wait{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:40px 0;font-weight:800}.ff-body{--cube-size: clamp(84px, 24cqi, 128px);--cube-half: calc(var(--cube-size) / 2);flex:1 0 auto;display:grid;align-content:start;gap:6px;width:100%;max-width:1120px;margin:0 auto;padding:8px 10px 10px}.ff-side,.ff-play{display:contents}.ff-keys{order:10}@container (min-width: 600px){.ff-body{--cube-size: clamp(104px, 15cqi, 136px);grid-template-columns:minmax(200px,.8fr) minmax(0,1.4fr);grid-template-rows:auto 1fr;align-content:stretch;gap:12px 20px;padding:14px 16px 16px}.ff-hud{grid-column:1 / -1}.ff-side{display:grid;align-content:start;gap:10px}.ff-play{display:grid;grid-template-columns:auto auto;grid-template-areas:"focus focus" "board actions";align-content:center;justify-content:center;align-items:center;justify-items:center;gap:14px 22px;min-width:0}.ff-focus-area{grid-area:focus}.ff-play>.ff-board{grid-area:board}.ff-play>.ff-actions{grid-area:actions;max-width:180px}.ff-keys{order:0}}@container (min-width: 900px){.ff-body{--cube-size: clamp(120px, 13cqi, 156px);grid-template-columns:minmax(200px,1fr) minmax(360px,2fr) minmax(200px,1fr);grid-template-rows:auto auto 1fr}.ff-side{display:contents}.ff-side>.ff-target{grid-column:1;grid-row:2;align-self:start}.ff-side>.ff-keys{grid-column:1;grid-row:3;align-self:start}.ff-side>.ff-opponents{grid-column:3;grid-row:2 / span 2;align-self:start;align-content:start}.ff-play{grid-column:2;grid-row:2 / span 2}}.ff-hud{position:relative;display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:10px;min-height:34px}.ff-hud p{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.ff-hud-round strong{font-family:var(--font-display);font-size:1.2rem}.ff-score{font-family:var(--font-display);font-size:1.3rem;font-variant-numeric:tabular-nums}.ff-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:.8rem;font-weight:800}.ff-chip svg{width:16px;height:16px}.ff-chip.streak{background:var(--selected);color:var(--on-accent)}.ff-chip.streak.hot{background:var(--primary);color:var(--on-primary)}.ff-clock{display:flex;align-items:center;gap:8px;font-weight:800}.ff-clock-bar{flex:1;height:12px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.ff-clock-bar span{display:block;height:100%;background:var(--ff-clock-fill, var(--success));transform-origin:left center;transition:transform .1s linear}.ff-clock.urgent{--ff-clock-fill: var(--danger-d)}.ff-clock.grace{--ff-clock-fill: var(--selected)}.ff-clock-num{min-width:2ch;font-variant-numeric:tabular-nums;text-align:right}.ff-grace{position:absolute;inset:-2px 0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:4px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-family:var(--font-display);font-size:1.15rem;animation:ff-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ff-grace strong{min-width:1.5ch;font-size:1.4rem}.ff-target{display:grid;grid-template-columns:auto auto;justify-content:center;justify-items:center;align-items:center;gap:2px 14px;padding:8px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);animation:ff-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ff-target>.ff-modifier,.ff-target-hint{grid-column:1 / -1}.ff-face{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;width:clamp(84px,26cqi,112px);aspect-ratio:1}@container (min-width: 600px){.ff-target{grid-template-columns:1fr;padding:12px 16px}.ff-face{width:clamp(120px,18cqi,160px)}}.ff-face-tile{display:grid;place-items:center;border:2px solid var(--line);border-radius:10px;background:var(--cube-tone);color:var(--cube-ink)}.ff-face-tile svg{width:88%;height:88%}.ff-face-tile.blank{border-style:dashed;background:var(--surface-sunk);color:var(--text-soft);font-family:var(--font-display);font-size:1.6rem}.ff-target-face{display:grid;justify-items:center}.ff-target-hint{font-weight:800;color:var(--text-soft)}.ff-opponents{display:flex;gap:6px;margin:0;padding:0 0 2px;overflow-x:auto;list-style:none;scrollbar-width:none;transition:opacity .15s ease}@container (min-width: 600px){.ff-opponents{display:grid;overflow:visible}}.ff-opponent{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:2px 8px;max-width:220px;padding:4px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}@container (min-width: 600px){.ff-opponent{max-width:none}}.ff-opponent.self{background:var(--surface);font-weight:800}.ff-opponent.solved{border-color:var(--success-d)}.ff-opponent-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-opponent-status{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--text-soft)}.ff-opponent.solved .ff-opponent-status{color:var(--success-d)}.ff-opponent.penalized .ff-opponent-status{color:var(--error-text)}.ff-opponent-status svg{width:16px;height:16px}.ff-opponent-score{min-width:4ch;font-variant-numeric:tabular-nums;text-align:right}.ff-progress{grid-column:1 / -1;height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--muted-fill)}.ff-progress span{display:block;height:100%;border-radius:inherit;background:var(--success);transition:width .2s ease}.ff-focus-area{position:relative;display:grid;place-items:center;width:100%;min-height:calc(var(--cube-size) + 96px)}@container (min-width: 600px){.ff-focus-area{min-height:calc(var(--cube-size) + 110px)}}.ff-hint{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:800;color:var(--text-soft)}.ff-stamp{display:grid;justify-items:center;gap:2px;margin:0;font-family:var(--font-display);font-size:1.6rem;color:var(--success-d);animation:ff-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ff-stamp svg{width:40px;height:40px}.ff-stamp small{font-family:var(--font-body);font-size:.9rem;color:var(--text-soft)}.ff-flash{position:absolute;top:50%;left:50%;z-index:3;margin:0;padding:6px 16px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-display);font-size:1.3rem;white-space:nowrap;translate:-50% -50%;animation:ff-flash 1.4s ease forwards;pointer-events:none}.ff-flash.correct{background:var(--success);color:var(--on-accent)}.ff-flash.wrong{background:var(--danger);color:var(--on-danger)}.ff-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(4px,1.2cqi,8px);justify-self:center;width:clamp(168px,52cqi,232px)}@container (min-width: 600px){.ff-board{width:clamp(150px,20cqi,200px)}}.ff-board.shake{animation:ff-shake .36s ease}.ff-board.matched{animation:ff-bounce .42s cubic-bezier(.34,1.56,.64,1)}.ff-slot{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border-style:dashed;border-radius:var(--radius-sm);background:var(--cube-tone);color:var(--cube-ink)}.ff-slot:hover{background:var(--cube-tone);filter:brightness(1.05)}.ff-slot:disabled{opacity:1;cursor:var(--cursor-default)}.ff-slot-piece{display:grid;place-items:center;width:100%;height:100%;opacity:.55}.ff-slot-piece svg{width:84%;height:84%}.ff-slot.locked{border-style:solid}.ff-slot.locked .ff-slot-piece{opacity:1}.ff-slot.focused{border-color:var(--text-faint);background:transparent;box-shadow:none}.ff-slot.solved{border-color:var(--success-d);box-shadow:0 4px 0 var(--success-d)}.ff-slot-lock{position:absolute;top:6px;right:6px;width:14px;height:14px}.ff-actions{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.ff-bell{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:160px;min-height:52px;font-family:var(--font-display);font-size:1.35rem}.ff-bell svg{width:26px;height:26px}.ff-bell.nudge{animation:ff-shake .36s ease}.ff-bell-note{font-weight:700;color:var(--text-soft)}@container (max-width: 599px){.ff-bell-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.face-flip .cube-face>span,.face-flip .cube-turn-preview{display:grid;place-items:center}.face-flip .cube-face>span{width:100%;height:100%}.face-flip .cube-face svg{width:86%;height:86%}.face-flip .cube-turn-preview{width:26px;height:26px;border:2px solid var(--line);border-radius:6px;background:#fff4dc;color:var(--cube-ink)}.face-flip .cube-turn-preview svg{width:100%;height:100%}.face-flip.focusing .ff-opponents{opacity:.6}.face-flip.focusing .ff-slot:not(.focused){filter:saturate(.75)}.ff-keys{margin:0;font-size:.8rem;text-align:center}@media(hover:none){.ff-keys{display:none}}.ff-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:16px;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ff-results,.ff-frenzy-card{display:grid;gap:8px;width:min(420px,100%);padding:18px;animation:ff-card-in .35s cubic-bezier(.34,1.56,.64,1)}.ff-results h3,.ff-frenzy-card h3{margin:0;font-family:var(--font-display);font-size:1.7rem;letter-spacing:.06em}.ff-results-face{justify-self:center}.ff-results .eyebrow{margin:0}.ff-results-rows{display:grid;gap:6px;margin:0;padding:0;list-style:none}.ff-results-rows li{display:grid;grid-template-columns:3ch minmax(0,1fr) auto 4.5ch;align-items:center;gap:8px;padding:6px 10px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}.ff-frenzy-card .ff-results-rows li{grid-template-columns:minmax(0,1fr) auto}.ff-results-rows li.self{background:var(--surface);font-weight:800}.ff-results-rows li.place-1{border-color:var(--selected-d);background:var(--selected);color:var(--on-accent)}.ff-results-rows li.missed{color:var(--text-soft)}.ff-place{font-family:var(--font-display)}.ff-results-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-results-time,.ff-results-points{font-variant-numeric:tabular-nums;text-align:right}.ff-frenzy-card{justify-items:center;text-align:center}.ff-frenzy-card p{margin:0;font-weight:700}.ff-frenzy-icon{width:56px;height:56px;color:var(--primary)}.ff-frenzy-count{font-family:var(--font-display);font-size:3rem;line-height:1}.ff-frenzy-card .ff-results-rows{width:100%}@keyframes ff-card-in{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}@keyframes ff-shake{0%,to{translate:0}20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:2px 0}}@keyframes ff-bounce{0%,to{transform:none}35%{transform:translateY(-10px) scale(1.04)}65%{transform:translateY(2px) scale(.99)}}@keyframes ff-flash{0%{opacity:0;transform:translateY(10px) scale(.9)}15%{opacity:1;transform:none}75%{opacity:1}to{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.ff-target,.ff-grace,.ff-stamp,.ff-flash,.ff-board.shake,.ff-board.matched,.ff-bell.nudge,.ff-results,.ff-frenzy-card{animation:none}.ff-clock-bar span,.ff-progress span,.ff-opponents{transition:none}}.cube-count{position:relative;container:cube-count / size;height:100%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.cc-body{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(min-content,1fr) auto auto;gap:8px;height:100%;max-width:1080px;margin:0 auto;padding:8px 10px 12px}@container cube-count (min-width: 720px){.cc-body{grid-template-columns:minmax(0,1fr) minmax(220px,280px);grid-template-areas:"hud hud" "stage side" "under side";grid-template-rows:auto minmax(min-content,1fr) auto;gap:10px 20px;padding:14px 16px 16px}.cc-hud{grid-area:hud}.cc-stage{grid-area:stage}.cc-under{grid-area:under}.cc-side{grid-area:side;align-self:start}}.cc-hud{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:10px;min-height:34px}.cc-hud p{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.cc-hud-round strong{font-family:var(--font-display);font-size:1.2rem}.cc-score{font-family:var(--font-display);font-size:1.3rem;font-variant-numeric:tabular-nums}.cc-score small{font-size:.8rem}.cc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:.8rem;font-weight:800;white-space:nowrap}.cube-count .cc-chip svg{width:16px;height:16px}.cc-chip.streak,.cc-challenge{background:var(--selected);color:var(--on-accent)}.cc-chip.streak.hot{background:var(--primary);color:var(--on-primary)}.cc-clock{display:flex;align-items:center;gap:8px;font-weight:800}.cc-clock-bar{flex:1;height:12px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.cube-count .cc-clock-bar span{display:block;height:100%;background:var(--cc-clock-fill, var(--success));transform-origin:left center;transition:transform .1s linear}.cc-clock.look{--cc-clock-fill: var(--sky)}.cc-clock.urgent{--cc-clock-fill: var(--danger-d)}.cc-clock-num{min-width:3ch;font-variant-numeric:tabular-nums;text-align:right}.cc-stage{--cc-pile-top: 46px;--cc-pile-bottom: 14px;position:relative;display:grid;place-items:center;min-height:240px;padding:14px;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.cc-stage-tags{position:absolute;top:10px;left:10px;z-index:1;display:flex;flex-wrap:wrap;gap:6px}.cc-wait{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:800;color:var(--text-soft)}.cc-pile{position:absolute;top:var(--cc-pile-top);left:16px;width:calc(100% - 32px);height:calc(100% - var(--cc-pile-top) - var(--cc-pile-bottom))}.cc-shadow{fill:var(--line);opacity:.1}.cc-face{stroke:var(--line);stroke-width:2.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill-opacity .2s ease,stroke-opacity .2s ease}.cc-cube.ghost .cc-face{fill-opacity:.1;stroke:var(--text-soft);stroke-opacity:.55}.cc-cube.current{transform-box:fill-box;transform-origin:center;animation:cc-pop .26s cubic-bezier(.34,1.56,.64,1)}.cc-badge{animation:cc-badge-in .2s cubic-bezier(.34,1.56,.64,1)}.cc-badge circle{fill:var(--primary);stroke:var(--line);stroke-width:2.5px;vector-effect:non-scaling-stroke}.cc-badge text{fill:var(--on-primary);font-family:var(--font-display);font-size:.4px;font-weight:700}.cc-total{position:absolute;top:8px;left:50%;margin:0;padding:4px 18px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-family:var(--font-display);font-size:1.5rem;white-space:nowrap;translate:-50% 0;animation:cc-card-in .35s cubic-bezier(.34,1.56,.64,1)}.cc-card{display:grid;justify-items:center;gap:8px;text-align:center;animation:cc-card-in .35s cubic-bezier(.34,1.56,.64,1)}.cc-card .eyebrow{margin:0}.cc-card-level{margin:0;font-family:var(--font-display);font-size:2.4rem;line-height:1}.cc-card .cc-challenge{gap:6px;padding:5px 16px;font-size:1.05rem}.cc-card .cc-challenge svg{width:20px;height:20px}.cc-card-hint{margin:0;font-weight:700;color:var(--text-body)}.cc-card-ready{margin:6px 0 0;font-weight:800;color:var(--text-soft)}.cc-card-bar{width:min(220px,60cqi);height:10px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.cube-count .cc-card-bar span{display:block;height:100%;background:var(--primary);transform-origin:left center;transition:transform .1s linear}.cc-answer{display:grid;justify-items:center;gap:10px;width:min(340px,100%)}.cc-prompt{margin:0;font-family:var(--font-display);font-size:1.4rem}.cc-display-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%}.cc-display{display:grid;place-items:center;min-height:clamp(50px,11cqh,72px);border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-family:var(--font-display);font-size:clamp(2rem,7cqh,2.8rem);line-height:1;font-variant-numeric:tabular-nums}.cc-display.empty{color:var(--text-faint)}.cc-display.locked{display:inline-flex;align-items:center;gap:12px;min-width:150px;margin:0;padding:0 22px;background:var(--selected);color:var(--on-accent);animation:cc-card-in .3s cubic-bezier(.34,1.56,.64,1)}.cc-display.locked svg{width:30px;height:30px}.cc-step{display:grid;place-items:center;width:clamp(44px,8cqh,52px);height:clamp(44px,8cqh,52px);padding:0}.cube-count .cc-step svg{width:22px;height:22px}.cc-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}.cc-key{display:grid;place-items:center;min-height:clamp(44px,7.5cqh,56px);padding:0;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:1.5rem;font-weight:600}.cc-key.zero{grid-column:span 2}.cube-count .cc-key svg{width:24px;height:24px}.cc-lock{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:clamp(48px,9cqh,56px);font-family:var(--font-display);font-size:1.35rem}.cube-count .cc-lock svg{width:22px;height:22px}.cc-answer-note{margin:0;font-weight:800;color:var(--text-soft)}.cc-under{display:grid;align-content:start;justify-items:center;min-height:44px}.cc-under:empty{display:none}.cc-note{margin:0;font-family:var(--font-display);font-size:1.25rem;color:var(--text-body)}.cc-result{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;margin:0;padding:6px 16px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);font-weight:700;text-align:center;animation:cc-card-in .35s cubic-bezier(.34,1.56,.64,1)}.cube-count .cc-result svg{width:22px;height:22px}.cc-result strong{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.cc-result.correct{background:var(--success);color:var(--on-accent)}.cc-result.wrong{background:var(--danger);color:var(--on-danger)}.cc-result.missed{background:var(--muted-fill)}.cc-result-points{font-family:var(--font-display);font-size:1.25rem}.cc-result .cc-chip{background:var(--surface);color:var(--text)}.cc-side{display:grid;align-content:start;gap:8px}.cc-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:0;padding:0;list-style:none}@container cube-count (min-width: 720px){.cc-players{grid-template-columns:minmax(0,1fr)}}.cc-player{container:cc-row / inline-size;display:grid;grid-template-columns:minmax(4.5em,1fr) minmax(0,max-content) minmax(4ch,max-content);align-items:center;gap:8px;min-height:40px;padding:4px 12px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:700}.cc-player.self{background:var(--surface);font-weight:800}.cc-player.correct{border-color:var(--success-d)}.cc-player-name{display:flex;align-items:center;gap:6px;min-width:0}.cc-player-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-player-streak{display:inline-flex;flex:none;align-items:center;gap:2px;color:var(--primary);font-size:.85rem;font-weight:800}.cube-count .cc-player-streak svg{width:14px;height:14px}.cc-player-status{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;white-space:nowrap;font-size:.9rem;color:var(--text-soft);font-variant-numeric:tabular-nums}.cube-count .cc-player-status svg{flex:none;width:16px;height:16px}.cc-player.locked .cc-player-status,.cc-player.correct .cc-player-status,.cc-player.wrong .cc-player-status{color:var(--text)}.cc-player.correct .cc-player-status svg{color:var(--success-d)}.cc-player.wrong .cc-player-status svg{color:var(--error-text)}.cc-player-points{margin-left:4px}@container cube-count (max-width: 479px){.cc-player{gap:6px;padding:4px 10px}}@container cc-row (max-width: 250px){.cube-count[data-stage=reveal] .cc-player-streak{display:none}.cc-status-text,.cc-player-points{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.cc-player-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;text-align:right}.cc-keys{margin:0;font-size:.8rem;text-align:center}@media(hover:none){.cc-keys{display:none}}@container cube-count (max-height: 440px) and (min-width: 520px){.cc-body{grid-template-columns:minmax(0,1fr) minmax(200px,38%);grid-template-areas:"stage hud" "stage under" "stage side";grid-template-rows:auto auto minmax(0,1fr);gap:6px 12px;padding:6px 10px 8px}.cc-hud{grid-area:hud;min-height:28px}.cc-stage{--cc-pile-top: 8px;--cc-pile-bottom: 8px;grid-area:stage;min-height:0;padding:8px}.cc-under{grid-area:under;min-height:0}.cc-side{grid-area:side;min-height:0;overflow-y:auto}.cc-players{grid-template-columns:minmax(0,1fr)}.cc-player{min-height:34px}.cc-keys{display:none}.cc-stage-tags{top:6px;left:6px}.cc-total{top:6px;padding:2px 12px;font-size:1.1rem}.cc-card{gap:4px}.cc-card-level{font-size:1.7rem}.cc-note{font-size:1.05rem}.cc-result{padding:4px 10px;border-radius:var(--radius-sm);font-size:.9rem}.cc-result .cc-chip,.cc-hud .cc-chip.streak{display:none}.cube-count[data-stage=answer] .cc-body{grid-template-areas:"hud hud" "stage stage";grid-template-rows:auto minmax(min-content,1fr)}.cube-count[data-stage=answer] .cc-side{display:none}.cc-answer:not(.locked){grid-template-columns:minmax(150px,.9fr) minmax(0,1.7fr) minmax(96px,.6fr);grid-template-areas:"prompt keys lock" "display keys lock";align-items:center;gap:6px 12px;width:min(680px,100%)}.cc-answer:not(.locked) .cc-prompt{grid-area:prompt;font-size:1.1rem}.cc-answer:not(.locked) .cc-display-row{grid-area:display;gap:6px}.cc-step{width:40px;height:40px}.cc-display{min-height:48px;font-size:2rem}.cc-keypad{grid-area:keys;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.cc-key{min-height:42px;font-size:1.2rem}.cc-key.zero{grid-column:auto}.cc-key.erase{grid-column:span 2}.cc-lock{grid-area:lock;flex-direction:column;height:100%;min-height:90px;padding:8px;font-size:1.1rem}}@keyframes cc-card-in{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}@keyframes cc-pop{0%,to{transform:none}45%{transform:scale(1.12)}}@keyframes cc-badge-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.cc-card,.cc-total,.cc-result,.cc-display.locked,.cc-cube.current,.cc-badge{animation:none}.cc-face,.cube-count .cc-clock-bar span,.cube-count .cc-card-bar span{transition:none}}.draw-guess{position:relative;container:draw-guess / size;height:100%}.dg-body{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(min-content,1fr) auto auto;grid-template-areas:"hud" "stage" "controls" "side";gap:8px;height:100%;max-width:1180px;margin:0 auto;padding:8px 10px 12px}.dg-hud{grid-area:hud}.dg-stage{grid-area:stage}.dg-controls{grid-area:controls}.dg-side{grid-area:side}.dg-hud{position:relative;display:grid;gap:4px}.dg-hud-top{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:10px;min-height:32px}.dg-hud p{margin:0}.dg-hud-turn{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;min-width:0}.dg-hud-turn strong{font-family:var(--font-display);font-size:1.15rem;white-space:nowrap}.dg-hud-drawer{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;font-size:.85rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.dg-ico{flex:none}.dg-hud-me{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.dg-my-score{font-family:var(--font-display);font-size:1.25rem;font-variant-numeric:tabular-nums}.dg-my-score small{font-size:.8rem}.dg-hud-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 10px;min-height:34px}.dg-headline{font-family:var(--font-display);font-size:1.15rem;text-align:center}.dg-secret strong{font-size:1.3rem;letter-spacing:.02em;text-transform:uppercase}.dg-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:.8rem;font-weight:800;white-space:nowrap}.dg-chip.medium{background:var(--selected);color:var(--on-accent)}.dg-chip.hard{background:var(--primary);color:var(--on-primary)}.dg-streak{display:inline-flex;align-items:center;gap:2px;padding:0 7px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-size:.8rem;font-weight:800}.dg-ico-14{width:14px;height:14px}.dg-hint{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-family:var(--font-display);font-size:1.2rem;text-transform:uppercase}.dg-hint-word{display:inline-flex;gap:5px}.dg-slot{display:inline-grid;place-items:end center;width:.9em;height:1.3em}.dg-slot.blank,.dg-slot.shown{border-bottom:3px solid currentColor}.dg-slot.shown{color:var(--link)}.dg-clock{display:flex;align-items:center;gap:6px;font-weight:800}.dg-clock-bar{flex:1;height:12px;overflow:hidden;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.draw-guess .dg-clock-bar span{display:block;height:100%;background:var(--dg-clock-fill, var(--success));transform-origin:left center;transition:transform .25s linear}.dg-clock.urgent{--dg-clock-fill: var(--danger-d)}.dg-clock-num{min-width:2ch;font-variant-numeric:tabular-nums;text-align:right}.dg-clock.urgent .dg-clock-num{color:var(--error-text)}.dg-celebrate{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;overflow:hidden;border:var(--border-w) solid var(--line);border-radius:var(--radius);background:var(--success);color:var(--on-accent);box-shadow:var(--shadow-card);font-family:var(--font-display);font-size:1.35rem;text-align:center;pointer-events:none;animation:dg-pop .35s cubic-bezier(.2,1.4,.4,1) both}.dg-celebrate.first,.dg-celebrate.streak{background:var(--selected)}.dg-celebrate.info{background:var(--surface-raised);color:var(--text);font-size:1.1rem}.dg-celebrate.perfect{background:var(--primary);color:var(--on-primary);font-size:1.6rem;letter-spacing:.03em}.dg-ico-26{width:26px;height:26px}.dg-confetti{position:absolute;inset:0}.dg-confetti i{position:absolute;top:50%;left:calc(4% + var(--i) * 8%);width:8px;height:12px;border-radius:2px;background:var(--selected);animation:dg-confetti 1.1s ease-out both;animation-delay:calc(var(--i) * 25ms)}.dg-confetti i:nth-child(3n){background:var(--success)}.dg-confetti i:nth-child(3n+1){background:var(--sky)}.dg-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0}.dg-paper-box{container:dg-paper / size;display:grid;place-items:center;min-height:max(180px,min(calc((100cqw - 20px)*.75),calc(100cqh - 240px)))}.dg-paper{position:relative;width:min(100cqw,calc(100cqh * 4 / 3));aspect-ratio:4 / 3;overflow:hidden;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-card)}.dg-canvas{display:block;width:100%;height:100%}.dg-canvas.editable{cursor:crosshair;touch-action:none}.draw-guess:is([data-phase=choose],[data-phase=countdown]) .dg-paper{width:100%;height:100%;aspect-ratio:auto}.dg-paper-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:10px;overflow:auto;background:var(--surface)}.dg-wait{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--text-soft);font-weight:800;text-align:center}.dg-full{position:absolute;right:8px;bottom:8px;left:8px;margin:0;padding:4px 10px;border-radius:var(--radius-pill);background:var(--toast-bg);color:var(--toast-text);font-size:.85rem;font-weight:800;text-align:center}.dg-picker{display:grid;gap:8px;width:min(460px,100%);text-align:center}.dg-picker p{margin:0}.dg-picker-title{font-family:var(--font-display);font-size:1.2rem}.dg-picker-list{display:grid;gap:8px}.dg-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 12px 6px 16px;text-align:left}.dg-choice strong{font-family:var(--font-display);font-size:1.1rem;text-transform:uppercase}.dg-picker-note{font-size:.85rem}.dg-reveal{position:absolute;top:8px;left:50%;z-index:2;display:grid;justify-items:center;gap:2px;width:max-content;max-width:calc(100% - 16px);padding:6px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-float);text-align:center;transform:translate(-50%);animation:dg-drop .3s ease-out both}.dg-reveal p{margin:0}.dg-reveal-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 8px}.dg-reveal-was{color:var(--text-soft);font-size:.8rem;font-weight:800;text-transform:uppercase}.dg-reveal-prompt{font-family:var(--font-display);font-size:1.25rem;line-height:1.1;text-transform:uppercase}.dg-chip.perfect{background:var(--primary);color:var(--on-primary)}.dg-reveal-summary{font-size:.85rem;font-weight:700}.dg-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.dg-swatch,.dg-tool{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border-radius:var(--radius-sm)}.dg-swatch{background:var(--swatch);color:#fff}.dg-swatch:hover{background:var(--swatch)}.dg-swatch.selected,.dg-tool.selected{outline:3px solid var(--line);outline-offset:2px}.dg-tool.selected{background:var(--selected);color:var(--on-accent)}.dg-swatch-check{width:22px;height:22px;filter:drop-shadow(0 0 2px rgba(0,0,0,.7))}.dg-dot{display:block;border-radius:50%;background:currentColor}.dg-brush{grid-column:1 / -1;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px;width:100%;max-width:360px;min-height:44px}.dg-brush-preview{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--line);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.dg-brush-preview .dg-dot{width:var(--dot);height:var(--dot);background:var(--ink)}.dg-brush-preview .dg-dot.eraser{box-shadow:0 0 0 1px var(--line)}.dg-brush input[type=range]{width:100%;min-width:0;min-height:44px;margin:0;padding:0;border:0;background:none;accent-color:var(--primary);cursor:pointer}.dg-guess{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.dg-guess input{min-width:0;min-height:44px;font-size:1rem}.dg-guess .dg-guess-send{gap:6px;min-height:44px}.dg-close{position:absolute;bottom:calc(100% + 6px);left:8px;margin:0;padding:2px 12px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-weight:800;animation:dg-pop .3s ease-out both}.dg-guess-note{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin:0;padding:6px 12px;border-radius:var(--radius-sm);background:var(--surface-sunk);font-weight:800;text-align:center}.dg-guess-note.solved{background:var(--success);color:var(--on-accent)}.dg-side{display:grid;min-width:0}.dg-side summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 4px;font-weight:800;cursor:pointer;list-style:none}.dg-side summary::-webkit-details-marker{display:none}.dg-side[open] .dg-caret{transform:rotate(180deg)}.dg-side-body{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0;height:100%}.dg-feed{display:grid;grid-template-rows:auto minmax(0,1fr);gap:4px;min-height:0}.dg-solved{display:flex;align-items:center;gap:6px;margin:0;color:var(--success-d);font-size:.85rem;font-weight:800}.dg-feed-list{min-height:60px;max-height:140px;margin:0;padding:6px 10px;overflow-y:auto;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);list-style:none;font-size:.9rem}.dg-feed-item{overflow-wrap:anywhere}.dg-feed-item.close .dg-chip.close{margin-left:6px;padding:0 8px;background:var(--selected);color:var(--on-accent);font-size:.72rem;vertical-align:1px}.dg-feed-empty{display:flex;align-items:center;gap:6px}.dg-scores{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 8px;margin:0;padding:0;list-style:none}.dg-score{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;min-height:36px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface)}.dg-score.self{background:var(--selected);color:var(--on-accent)}.dg-score.solved{border-color:var(--success-d)}.dg-score-name{display:flex;align-items:center;gap:4px;min-width:0}.dg-score-label{min-width:3ch;overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.dg-score-status{display:inline-flex;gap:2px}.dg-ico-18{width:18px;height:18px}.dg-score.solved .dg-score-status{color:var(--success-d)}.dg-score.self.solved .dg-score-status{color:var(--on-accent)}.dg-score-points{font-family:var(--font-display);font-variant-numeric:tabular-nums}@container draw-guess (min-width: 720px) and (min-height: 441px){.dg-body{grid-template-columns:minmax(0,1fr) minmax(220px,290px);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"hud hud" "stage side" "controls side";gap:10px 18px;padding:12px 16px 14px}.dg-paper-box{min-height:180px}.dg-side{min-height:0}.dg-side summary{display:none}.dg-feed-list{max-height:none}.dg-scores{grid-template-columns:minmax(0,1fr)}}@container draw-guess (max-height: 440px) and (min-width: 520px){.dg-body{grid-template-columns:auto minmax(200px,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"stage hud" "stage controls" "stage side";gap:6px 12px;padding:6px 10px 8px}.dg-hud-top{min-height:28px}.dg-hud-line{min-height:0}.dg-hud-count,.dg-hud-line .dg-chip{display:none}.dg-headline,.dg-hint{font-size:1rem}.dg-secret strong,.dg-celebrate{font-size:1.05rem}.dg-celebrate.perfect{font-size:1.2rem}.dg-stage{grid-template-columns:auto auto;grid-template-rows:minmax(0,1fr);align-items:start;height:100%}.dg-paper-box{height:100%;min-height:0;aspect-ratio:4 / 3}.dg-tools{grid-template-columns:repeat(4,44px);gap:4px;align-content:start;max-height:100%;overflow-y:auto;grid-auto-flow:row dense}.dg-brush{grid-column:span 3;gap:4px}.dg-paper-box{min-height:0}.dg-reveal{top:4px;padding:2px 10px}.dg-reveal-prompt{font-size:1rem}.dg-reveal-was,.dg-chip.perfect,.dg-reveal-summary{display:none}.draw-guess:is([data-phase=choose],[data-phase=countdown]) .dg-body{grid-template-columns:minmax(0,1.2fr) minmax(200px,1fr)}.draw-guess:is([data-phase=choose],[data-phase=countdown]) .dg-stage{grid-template-columns:minmax(0,1fr)}.draw-guess:is([data-phase=choose],[data-phase=countdown]) .dg-paper-box{width:100%;aspect-ratio:auto}.dg-picker{gap:4px}.dg-picker-title,.dg-picker-note{display:none}.dg-choice{min-height:44px;padding:4px 8px 4px 12px}.dg-choice strong{font-size:.95rem}.dg-side{min-height:0;overflow-y:auto}.dg-side summary{display:none}.dg-feed-list{min-height:44px;max-height:90px}.dg-scores{grid-template-columns:minmax(0,1fr)}.dg-score{min-height:32px}.dg-guess-label{display:none}}@keyframes dg-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes dg-drop{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@keyframes dg-confetti{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(-60px) rotate(260deg)}}@media(prefers-reduced-motion:reduce){.dg-celebrate,.dg-reveal,.dg-close{animation:none}.dg-confetti{display:none}.draw-guess .dg-clock-bar span{transition:none}}.draw-guess.reduced .dg-confetti{display:none}.app-shell:has(.room-shell.game-focus)>.topbar,.game-focus .room-header{display:none}.room-shell.game-focus{grid-template-rows:minmax(0,1fr) auto;height:calc(100vh - 36px)}.game-focus .social-panel,.game-focus.has-video .video-strip,.game-focus.has-video .game-panel{grid-row:1}@media(max-width:800px),(max-height:500px){.room-shell.game-focus{height:calc(100dvh - 16px)}}.leaderboard-page{width:min(1040px,calc(100% - 32px))}.leaderboard-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.leaderboard-header p{margin:6px 0 0}.scope-toggle{min-width:0;margin:0;display:flex;gap:4px;padding:5px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk)}.scope-toggle .scope-option{min-height:44px;padding:.45rem 1rem;border-color:transparent;background:transparent;box-shadow:none;color:var(--text-body)}.scope-toggle .scope-option:hover{background:var(--hover)}.scope-toggle .scope-option:active{transform:none}.scope-toggle .scope-option[aria-pressed=true]{border-color:var(--line);background:var(--selected);box-shadow:0 3px 0 var(--selected-d);color:var(--on-accent)}.leaderboard-empty{display:grid;justify-items:center;gap:8px;text-align:center}.leaderboard-podium{padding:32px 32px 0;overflow:hidden}.leaderboard-podium ol{margin:0;padding:0;list-style:none;display:flex;justify-content:center;align-items:flex-end;gap:20px}.podium-spot{flex:0 1 260px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.podium-spot.place-1{--tier: var(--tier-gold);--tier-d: var(--tier-gold-d);--bar-h: 260px}.podium-spot.place-2{--tier: var(--tier-silver);--tier-d: var(--tier-silver-d);--bar-h: 190px}.podium-spot.place-3{--tier: var(--tier-bronze);--tier-d: var(--tier-bronze-d);--bar-h: 140px}.podium-crown{width:44px;height:34px;fill:var(--tier-gold);stroke:var(--line);stroke-width:2.5px;stroke-linejoin:round}.podium-spot .avatar.lg{--avatar-size: 76px}.podium-spot.place-1 .avatar.lg{--avatar-size: 96px;box-shadow:0 0 0 6px var(--tier-gold)}.leaderboard-player{min-width:0;display:flex;flex-direction:column}.leaderboard-name{max-width:100%;overflow:hidden;color:var(--text);font-weight:800;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.leaderboard-name:hover{text-decoration:underline}.leaderboard-username{max-width:100%;overflow:hidden;color:var(--text-soft);font-size:.8rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.leaderboard-level{padding:3px 12px;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:.85rem;font-weight:800;white-space:nowrap}.leaderboard-xp{text-align:right;color:var(--text-body);font-weight:800;font-variant-numeric:tabular-nums}.podium-spot .leaderboard-player{align-items:center;max-width:100%}.podium-spot .leaderboard-name{font-family:var(--font-display);font-size:1.3rem;font-weight:600}.podium-spot.place-1 .leaderboard-name{font-size:1.5rem;font-weight:700}.podium-bar{align-self:stretch;height:var(--bar-h);margin-top:8px;padding-top:16px;display:flex;flex-direction:column;align-items:center;gap:4px;border:var(--border-w) solid var(--line);border-bottom:none;border-radius:18px 18px 0 0;background:var(--tier);box-shadow:inset 0 -10px 0 var(--tier-d);color:#36304f}.podium-rank{font-family:var(--font-display);font-size:4.5rem;font-weight:700;line-height:1}.place-1 .podium-rank{font-size:5.75rem}.podium-xp{padding:0 8px;font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums}.leaderboard-badges{margin:0;padding:0;list-style:none;display:flex;gap:6px}.leaderboard-list-card{--lb-cols: 56px 44px minmax(0, 1fr) 120px 84px 110px;padding:20px 24px 24px;display:grid;gap:10px}.leaderboard-columns{display:grid;grid-template-columns:var(--lb-cols);column-gap:14px;padding:0 18px;color:var(--text-soft);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.leaderboard-columns span:nth-child(2){grid-column:span 2}.leaderboard-columns span:last-child{text-align:right}.leaderboard-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.leaderboard-row{min-height:64px;padding:8px 16px;display:grid;grid-template-columns:var(--lb-cols);align-items:center;column-gap:14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.leaderboard-row.is-me{background:var(--selected);box-shadow:0 4px 0 var(--selected-d)}.leaderboard-row.is-me,.leaderboard-row.is-me .leaderboard-name,.leaderboard-row.is-me .leaderboard-username,.leaderboard-row.is-me .leaderboard-xp{color:var(--on-accent)}.leaderboard-row .leaderboard-level{justify-self:start;background:var(--surface);color:var(--text)}.podium-spot.place-1 .leaderboard-level{background:var(--primary);color:var(--on-primary);box-shadow:0 3px 0 var(--primary-d)}.leaderboard-row .badge-medal.sm{--medal-icon: 15px;width:30px;height:30px}.leaderboard-rank{font-family:var(--font-display);font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}.your-spot-divider{margin:6px 0;display:flex;align-items:center;gap:12px;color:var(--text-soft);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.your-spot-divider:before,.your-spot-divider:after{content:"";flex:1;border-top:var(--border-w) dashed var(--text-faint)}.leaderboard-more{justify-self:center;margin-top:8px}@media(max-width:900px){.leaderboard-list-card{--lb-cols: 40px 44px minmax(0, 1fr) 110px 76px 90px}}@media(max-width:720px){.leaderboard-header{align-items:stretch}.scope-toggle{width:100%}.scope-toggle .scope-option{flex:1;padding:.45rem .5rem}.leaderboard-podium{padding:20px 10px 0}.leaderboard-podium ol{gap:8px}.podium-spot{gap:6px}.podium-spot.place-1{--bar-h: 150px}.podium-spot.place-2{--bar-h: 112px}.podium-spot.place-3{--bar-h: 84px}.podium-crown{width:32px;height:24px}.podium-spot .avatar.lg{--avatar-size: 52px}.podium-spot.place-1 .avatar.lg{--avatar-size: 64px;box-shadow:0 0 0 4px var(--tier-gold)}.podium-spot .leaderboard-name,.podium-spot.place-1 .leaderboard-name{font-size:.95rem}.podium-spot .leaderboard-username{display:none}.podium-spot .leaderboard-level{padding:1px 8px;font-size:.75rem}.podium-spot .leaderboard-badges{gap:3px}.podium-spot .badge-medal.sm,.leaderboard-row .badge-medal.sm{--medal-icon: 11px;width:22px;height:22px;border-width:2px;box-shadow:inset 0 0 0 2px var(--tier-d)}.podium-bar{padding-top:10px;border-radius:14px 14px 0 0;box-shadow:inset 0 -8px 0 var(--tier-d)}.podium-rank{font-size:2.6rem}.place-1 .podium-rank{font-size:3.2rem}.podium-xp{font-size:.7rem}.leaderboard-list-card{padding:14px 12px 18px}.leaderboard-columns{display:none}.leaderboard-row{padding:8px 12px;grid-template-columns:28px 40px minmax(0,1fr) auto;grid-template-areas:"rank avatar player level" "rank avatar badges xp";column-gap:10px;row-gap:4px}.leaderboard-row .leaderboard-rank{grid-area:rank;font-size:1.15rem}.leaderboard-row .avatar{--avatar-size: 40px;grid-area:avatar}.leaderboard-row .leaderboard-player{grid-area:player}.leaderboard-row .leaderboard-username{display:none}.leaderboard-row .leaderboard-badges{grid-area:badges;gap:3px}.leaderboard-row .leaderboard-level{grid-area:level;justify-self:end;padding:1px 8px;font-size:.75rem}.leaderboard-row .leaderboard-xp{grid-area:xp;font-size:.8rem}}.your-spot-empty{margin:6px 0 0;text-align:center;font-weight:700}.admin-page>*{min-width:0}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.admin-header p{margin:6px 0 0}.admin-refresh{display:inline-flex;align-items:center;gap:8px}.admin-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-tile{padding:16px 18px;min-width:0}.admin-tile .eyebrow{margin:0}.admin-tile-value{margin:4px 0 2px;font-family:var(--font-display);font-size:2.2rem;font-weight:700;line-height:1.1;color:var(--text)}.admin-tile-note{margin:0;font-size:.85rem}.admin-chart{margin:0}.admin-chart-readout{margin-bottom:10px;font-weight:800;color:var(--text)}.admin-chart-plot{position:relative;padding-top:20px}.admin-chart-max{position:absolute;top:0;left:0;font-size:.8rem;font-weight:700}.admin-bars{display:flex;align-items:stretch;gap:2px;height:160px;border-top:1px dashed var(--ledge-soft);border-bottom:2px solid var(--line);touch-action:pan-y}.admin-bar{flex:1 1 0;min-width:0;display:flex;align-items:flex-end;cursor:var(--cursor-pointer)}.admin-bar-fill{width:100%;border-radius:4px 4px 0 0;background:var(--primary);opacity:.7}.admin-bar[data-active=true] .admin-bar-fill{opacity:1;background:var(--primary-d)}.admin-chart-axis{display:flex;justify-content:space-between;margin-top:6px;font-size:.8rem;font-weight:700}.admin-table-toggle{margin-top:16px}.admin-table-toggle summary{font-weight:800}.admin-table-scroll{overflow-x:auto;margin-top:10px}.admin-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.admin-table th,.admin-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--ledge-soft);white-space:nowrap}.admin-table :is(thead th,tbody th){text-align:left}.admin-table thead th{color:var(--text-soft);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.admin-table thead th:not(:first-child){text-align:right}@media(max-width:720px){.admin-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:360px){.admin-tile-value{font-size:1.8rem}.admin-bars{height:120px}}.admin-feedback-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.page-card .admin-feedback-head h2{margin:0}.admin-feedback-filter select{max-width:100%;min-height:44px;padding:.5rem .9rem;border:var(--border-w) solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text);font:inherit;font-weight:800}.admin-distribution{display:inline-grid;gap:2px;width:96px;vertical-align:middle}.admin-distribution-bar{display:block;height:5px;border-radius:3px;background:var(--muted-fill);overflow:hidden}.admin-distribution-fill{display:block;height:100%;background:var(--selected-d)}.admin-stars{display:inline-flex;gap:1px;color:var(--selected-d)}.admin-feedback-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.admin-feedback-item{display:grid;gap:4px;padding:12px 14px;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk);min-width:0}.admin-feedback-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.admin-feedback-meta time{margin-left:auto;font-size:.85rem;font-weight:700}.admin-feedback-comment{margin:0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.admin-table-toggle .admin-feedback-list{margin-top:10px}.share-challenge{display:contents}.share-challenge>button[aria-busy=true]{cursor:progress}.share-dialog[open]{display:grid;gap:12px;text-align:left}.share-dialog .dialog-header h2{margin:0}.share-dialog .share-menu-text{margin:0;color:var(--text-body);overflow-wrap:anywhere}.rate-dialog[open]{display:grid;gap:12px;width:min(440px,calc(100vw - 32px));text-align:left}.rate-dialog .dialog-header h2,.rate-dialog-text{margin:0}.share-copy{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.share-copy.copied{background:var(--success);color:var(--on-accent)}.share-copy.failed{background:var(--danger);color:var(--on-danger)}.share-intents{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.share-intents .button-link{width:100%;min-height:44px;justify-content:center;font-size:.9rem}.challenge-page h1{font-size:clamp(1.6rem,5vw,2.6rem);line-height:1.15;overflow-wrap:anywhere}.challenge-page .eyebrow{overflow-wrap:anywhere}.challenge-tagline{font-family:var(--font-display);font-size:1.2rem;color:var(--text-body)}.challenge-stats{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.challenge-stats>div{min-width:110px;padding:8px 14px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunk)}.challenge-stats dt{color:var(--text-soft);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.challenge-stats dd{margin:2px 0 0;display:inline-flex;align-items:center;gap:4px;font-weight:800;color:var(--text);overflow-wrap:anywhere}.challenge-crown{color:var(--selected-d)}.challenge-page .room-notice-actions .primary{display:inline-flex;align-items:center;gap:.4rem}.challenge-note{font-size:.9rem}@media(max-width:480px){.challenge-page{padding:24px 16px}.challenge-page .room-notice-actions{flex-direction:column;align-items:stretch;width:100%}.challenge-page .room-notice-actions>*{justify-content:center}}@media(max-height:500px)and (orientation:landscape){.challenge-page{margin:16px auto;gap:10px}}.game-tile.challenged{background:var(--surface);border-color:var(--line);box-shadow:0 0 0 3px var(--selected),0 4px 0 var(--ledge-soft)}.challenge-badge{position:absolute;top:-12px;left:12px;display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--selected);color:var(--on-accent);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.game-picker:has(.challenged){padding-top:18px}.feedback-form{display:grid;gap:10px}.page-card>.feedback-hint{margin:-6px 0 12px}.star-rating{display:flex;flex-wrap:wrap;gap:2px}.star-rating .star{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-sm);color:var(--text-faint);font-size:32px;cursor:var(--cursor-pointer);transition:transform .1s ease,color .1s ease}.star-rating .star.on{color:var(--selected-d)}.star-rating .star input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:inherit}.star-rating .star:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:1px}.star-rating .star:has(input:disabled){cursor:not-allowed;opacity:.7}@media(hover:hover){.star-rating .star:hover{transform:scale(1.12)}}.feedback-comment{width:100%;min-height:84px;resize:vertical;border:var(--border-w) solid var(--line);border-radius:var(--radius-sm);padding:.7rem .9rem;background:var(--surface);color:var(--text);font:inherit;font-weight:700;outline:none}.feedback-comment::placeholder{color:var(--text-faint);font-weight:600}.feedback-comment:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.feedback-form .error{margin:0}.feedback-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.feedback-locked{margin:0;font-weight:700;text-align:right}.feedback-status{margin-right:auto;color:var(--text-soft);font-weight:800}@media(prefers-reduced-motion:reduce){.star-rating .star{transition:none}.star-rating .star:hover{transform:none}}
