:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#030303;--fg:#fff0ed;--muted:#c8aaa5;--muted-2:#8f7370;--panel:#120609d6;--panel-strong:#2e070fe6;--panel-soft:#00000052;--line:#ffd6cf1f;--line-strong:#ffbfb73d;--red:#ef1f3b;--red-deep:#730916;--red-soft:#ef1f3b2e;--gold:#ffd782;--shadow:0 24px 80px #0000007a;--header-height:64px;--radius:8px}*{box-sizing:border-box}html{background:var(--bg);width:100%;min-width:320px;min-height:100%}body{background:var(--bg);min-height:100dvh;color:var(--fg);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}#root{min-height:100dvh}button,input{font:inherit}button{border:0}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.34)saturate(.68)}input{min-width:0;color:var(--fg);background:#00000061;border:1px solid #ffdcd624;border-radius:7px;outline:none;padding:.7rem .78rem}input:focus{border-color:#ffd7808a;box-shadow:0 0 0 3px #ffd7801f}img,svg{display:block}a{color:inherit}.site-shell{grid-template-rows:var(--header-height) minmax(0, 1fr);isolation:isolate;min-height:100dvh;display:grid;position:relative}.page-backdrop{z-index:-2;pointer-events:none;background:#020202;position:fixed;inset:0;overflow:hidden}.page-backdrop:before,.page-backdrop:after{content:"";position:absolute;inset:0}.page-backdrop:before{background-image:url(/assets/banner-upscaled.png);background-position:50% 20%;background-repeat:no-repeat;background-size:cover}.page-backdrop:after{background:linear-gradient(#0202023d,#020202b3 52%,#020202f0),linear-gradient(90deg,#020202a3,#02020229 50%,#020202a3)}.site-header{z-index:20;background:linear-gradient(#000000d1,#00000085);border-bottom:1px solid #ffc4c41f;position:sticky;top:0;box-shadow:0 18px 54px #00000038}.site-header-inner{height:var(--header-height);justify-content:space-between;align-items:center;gap:1rem;width:min(100%,1500px);margin-inline:auto;padding:0 1rem;display:flex}.brand-lockup,.header-actions{align-items:center;gap:.6rem;min-width:0;display:flex}.brand-lockup h1{color:var(--fg);margin:0;font-size:1.18rem;font-weight:950;line-height:1}.brand-mark{border:1px solid #ffeee22e;border-radius:7px;flex-shrink:0;width:2.25rem;height:2.25rem;box-shadow:0 8px 22px #0000005c,0 0 18px #e318302e}.app-main{width:100%;max-width:1500px;min-height:0;margin-inline:auto;padding:1rem}.app-main-room{max-width:none;padding-right:0}.loading-state{min-height:calc(100dvh - var(--header-height) - 2rem);color:var(--muted);place-items:center;font-weight:850;display:grid}.icon-button,.toast-close{width:2.45rem;height:2.45rem;color:var(--fg);background:#ffffff0e;border-radius:7px;flex-shrink:0;place-items:center;transition:background .16s,color .16s,transform .16s;display:inline-grid}.icon-button:hover,.toast-close:hover{color:#fff8f6;background:#ef1f3b2e;transform:translateY(-1px)}.header-sidebar-toggle{background:#05050580;border:1px solid #ffdcd61f}.header-sidebar-toggle[data-sidebar-open=true]{background:#4308129e;border-color:#fb718552;box-shadow:0 0 24px #ef1f3b24}.sidebar-toggle-icon{place-items:center;display:grid}.sidebar-toggle-icon-closed,.header-sidebar-toggle[data-sidebar-open=false] .sidebar-toggle-icon-open{display:none}.header-sidebar-toggle[data-sidebar-open=false] .sidebar-toggle-icon-closed{display:grid}.room-ticket{min-width:0;max-width:min(44vw,24rem);color:var(--fg);background:linear-gradient(#2d080ed1,#090305d1);border:1px solid #ffcccc29;border-radius:7px;align-items:center;gap:.5rem;padding:.45rem .62rem;display:inline-flex;box-shadow:0 12px 30px #00000047}.room-ticket span,.room-ticket em{color:var(--muted);text-transform:uppercase;font-size:.64rem;font-style:normal;font-weight:900}.room-ticket strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;font-weight:950;overflow:hidden}.primary-button,.secondary-button,.ghost-button{min-height:2.65rem;color:var(--fg);border-radius:7px;justify-content:center;align-items:center;gap:.5rem;padding:.62rem .8rem;font-weight:900;text-decoration:none;transition:border-color .16s,background .16s,transform .16s,box-shadow .16s;display:inline-flex}.primary-button{background:linear-gradient(#ef1f3bfa,#740815f0);border:1px solid #ffc3bc42;box-shadow:0 16px 34px #8b091747,inset 0 1px #ffffff29}.primary-button:disabled{color:#fff0ed94;box-shadow:none;background:#ffffff09;border-color:#ffdcd612}.secondary-button{background:#ffffff0f;border:1px solid #ffdcd624}.ghost-button{background:#0000003d;border:1px solid #ffdcd614}.primary-button:not(:disabled):hover,.secondary-button:not(:disabled):hover,.ghost-button:not(:disabled):hover{border-color:#ffdcd64d;transform:translateY(-1px)}.status-toast{z-index:50;color:#fff1f1;width:calc(100vw - 2rem);max-width:36rem;box-shadow:var(--shadow);background:#450a0af5;border:1px solid #fca5a56b;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem .875rem;display:grid;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.status-toast p{overflow-wrap:anywhere;margin:0}.home-layout{min-height:calc(100vh - var(--header-height) - 2rem);justify-content:center;align-items:center;padding:1rem 0;display:flex}.home-card{border:1px solid var(--line-strong);border-radius:var(--radius);width:min(100%,27rem);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#430812d6,#0a0305e0),#0009;justify-self:center;gap:1rem;padding:1rem;display:grid}.home-card h2{margin:0;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.02}.home-copy,.quiet-note{color:var(--muted);margin:0;line-height:1.45}.home-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.eyebrow,.panel-kicker{color:#fb7185;text-transform:uppercase;margin:0 0 .24rem;font-size:.7rem;font-weight:900}.join-form{gap:.62rem;display:grid}.join-form label{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:850}.recent-button{justify-self:start}.game-shell{width:100%;min-height:0;scroll-margin-top:calc(var(--header-height) + .8rem);padding-bottom:1.25rem;display:grid;position:relative}.game-body{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;min-height:0;display:grid}.game-stage{grid-template-columns:minmax(18rem,.86fr) minmax(24rem,1.14fr);justify-self:center;align-items:center;gap:clamp(1rem,2vw,2.15rem);width:min(100%,1140px);min-height:0;padding:clamp(.7rem,1.3vw,1rem) clamp(.55rem,1.2vw,1rem);display:grid;position:relative}.game-stage:before{z-index:-1;content:"";pointer-events:none;background:radial-gradient(at 62% 45%,#00000085,#0000 60%),linear-gradient(90deg,#00000014,#0000003d 52%,#00000014);border-radius:10px;position:absolute;inset:0}.wheel-column,.play-column{min-width:0;display:grid}.wheel-column{align-content:center;justify-items:center;gap:clamp(.62rem,1.2vw,.92rem);height:100%}.play-column{align-content:center;justify-items:center;gap:clamp(.68rem,1vw,.9rem);width:100%}.game-shell[data-phase=playing] .play-column,.game-shell[data-phase=roundOver] .play-column,.game-shell[data-phase=ended] .play-column{animation:.26s ease-out both game-phase-enter}.wheel-heading{text-align:center;background:radial-gradient(at 50% 100%,#d8122b1f,#0000 68%),linear-gradient(90deg,#0000,#ffd7800e,#0000);border:0;border-bottom:1px solid #ffd7802e;border-radius:0;align-self:end;place-items:center;gap:.18rem;width:min(100%,21rem);min-width:0;padding:.1rem .78rem .46rem;display:grid;box-shadow:0 10px 28px #0000001f,0 12px 30px #d8122b0b}.wheel-heading .panel-kicker{color:#ff8293;line-height:1}.wheel-title,.panel-title{overflow-wrap:anywhere;color:var(--fg);margin:0;font-size:1rem;font-weight:950;line-height:1.18}.wheel-orbit{filter:drop-shadow(0 34px 76px #000000ad)drop-shadow(0 0 30px #ffd7800e);background:0 0;border:0;justify-items:center;width:min(100%,32.5rem);display:grid;position:relative}.wheel-orbit:before{z-index:-1;content:"";filter:blur(12px);background:radial-gradient(circle,#00000061,#0202020a 62%,#0000 74%);border-radius:999px;position:absolute;inset:12% 8% 7%}.wheel-orbit .wheel-stage{width:min(100%,31.5rem)}.wheel-orbit-live{filter:drop-shadow(0 36px 80px #000000b3)drop-shadow(0 0 30px #ffd7801a)}.game-shell[data-phase=lobby] .game-stage{grid-template-columns:minmax(16rem,.74fr) minmax(26rem,1.26fr);gap:clamp(1.5rem,3.6vw,3.8rem);width:min(100%,1040px)}.game-shell[data-phase=lobby] .game-stage:before{background:radial-gradient(at 66% 44%,#00000075,#0000 60%),linear-gradient(90deg,#0000000f,#0003 52%,#0000000f)}.game-shell[data-phase=lobby] .wheel-column{opacity:.86;align-content:center;gap:.5rem}.game-shell[data-phase=lobby] .wheel-heading{opacity:.82;width:min(100%,18rem)}.game-shell[data-phase=lobby] .wheel-orbit{filter:drop-shadow(0 28px 62px #0009)drop-shadow(0 0 24px #ffd7800b);width:min(100%,29rem)}.game-shell[data-phase=lobby] .wheel-orbit .wheel-stage{width:min(100%,28rem)}.game-shell[data-phase=lobby] .turn-queue{display:none}.game-shell[data-phase=lobby] .play-column{align-content:center;gap:clamp(.72rem,1.1vw,.96rem)}.game-shell[data-phase=lobby] .puzzle-prompt,.game-shell[data-phase=lobby] .puzzle-stage{width:min(100%,36rem)}.game-shell[data-phase=roundOver] .game-stage,.game-shell[data-phase=ended] .game-stage{grid-template-columns:minmax(16rem,.72fr) minmax(27rem,1.28fr);gap:clamp(1.35rem,3vw,3.1rem);width:min(100%,1040px)}.game-shell[data-phase=roundOver] .game-stage:before,.game-shell[data-phase=ended] .game-stage:before{background:radial-gradient(at 68% 45%,#00000094,#0000 58%),radial-gradient(at 28% 52%,#ffd78014,#0000 56%),linear-gradient(90deg,#0000001f,#00000057 52%,#0000002e)}.game-shell[data-phase=roundOver] .wheel-column,.game-shell[data-phase=ended] .wheel-column{opacity:.74}.game-shell[data-phase=roundOver] .wheel-heading,.game-shell[data-phase=ended] .wheel-heading{opacity:.78}.game-shell[data-phase=roundOver] .wheel-orbit,.game-shell[data-phase=ended] .wheel-orbit{filter:drop-shadow(0 28px 62px #00000094)drop-shadow(0 0 22px #ffd7800a);width:min(100%,29rem)}.game-shell[data-phase=roundOver] .wheel-orbit .wheel-stage,.game-shell[data-phase=ended] .wheel-orbit .wheel-stage{width:min(100%,28rem)}.game-shell[data-phase=roundOver] .turn-queue,.game-shell[data-phase=ended] .turn-queue{display:none}.game-shell[data-phase=roundOver] .play-column,.game-shell[data-phase=ended] .play-column{gap:clamp(.68rem,1vw,.9rem)}.game-shell[data-phase=roundOver] .puzzle-prompt,.game-shell[data-phase=roundOver] .puzzle-stage,.game-shell[data-phase=ended] .puzzle-prompt,.game-shell[data-phase=ended] .puzzle-stage,.game-shell[data-phase=ended] .control-panel{width:min(100%,36rem)}.control-panel{contain:layout style;background:radial-gradient(at 12% 0,#d8122b1f,#0000 58%),linear-gradient(#100407a8,#030203cc);border:1px solid #d8122b38;border-radius:6px;justify-self:center;gap:.56rem;width:min(100%,36rem);min-width:0;padding:.66rem;display:grid;box-shadow:0 14px 34px #0003,inset 0 1px #ffd7800e}.panel-header{justify-content:space-between;align-items:flex-start;gap:.75rem;min-width:0;display:flex}.panel-header.compact{align-items:center}.solution-strip{color:var(--muted);background:linear-gradient(90deg,#ffd7801f,#0000001f 64%),#5c2d0014;border:1px solid #ffd7803d;border-radius:6px;margin:0;padding:.65rem;box-shadow:inset 3px 0 #ffd7803d}.solution-strip strong{color:var(--gold)}.game-message{overflow-wrap:anywhere;color:#ffe8ac;background:linear-gradient(90deg,#ffd78014,#0000000f 64%),#05020394;border:1px solid #ffd78029;border-left-color:#ffd7807a;border-radius:6px;width:min(100%,36rem);min-width:0;margin:-.08rem 0 0;padding:.5rem .68rem;font-size:clamp(.84rem,1vw,.94rem);font-weight:850;line-height:1.25;position:relative;box-shadow:inset 3px 0 #ffd7803d,0 10px 24px #00000024}.game-message-success{background:linear-gradient(90deg,#ffd7801f,#0000000f 64%),#05020394;border-left-color:#ffd780a3}.game-message-warning{color:#ffd6d6;background:linear-gradient(90deg,#ef1f3b24,#0000000f 64%),#05020394;border-left-color:#fb7185b3;box-shadow:inset 3px 0 #fb71853d,0 10px 24px #00000024}.turn-queue{justify-self:center;gap:.38rem;width:min(100%,30rem);margin-top:-.14rem;display:grid}.turn-queue>.panel-kicker{color:#fb7185b8;justify-self:center;font-size:.64rem}.queue-track{justify-content:center;align-items:start;gap:clamp(.58rem,1.8vw,.98rem);min-width:0;display:flex;position:relative}.queue-track:before{content:"";background:linear-gradient(90deg,#0000,#fb71852e,#ffd7802e,#0000);height:1px;position:absolute;top:1.08rem;left:2.4rem;right:2.4rem}.queue-card,.sidebar-person{align-items:center;gap:.62rem;min-width:0;display:flex}.queue-card{z-index:1;background:0 0;border:0;border-radius:0;flex:0 7.1rem;justify-items:center;gap:.3rem;max-width:7.6rem;padding:0;transition:transform .22s,opacity .22s;display:grid;position:relative}.queue-card-active{transform:translateY(-.16rem)}.queue-card-open{opacity:.46}.queue-step{width:1.12rem;height:1.12rem;color:var(--muted);background:#060405e6;border:1px solid #ffdcd629;border-radius:999px;place-items:center;font-size:.58rem;font-weight:950;display:grid;position:absolute;top:-.2rem;left:calc(50% + 1rem);transform:translate(-50%);box-shadow:0 7px 18px #00000061}.queue-card-active .queue-step{color:#ffe8ac;background:#482304e6;border-color:#ffd780ad;box-shadow:0 0 22px #ffd7802e,0 8px 22px #0000006b}.queue-card-next .queue-step{color:#ffe8ac;border-color:#ffd78085}.player-main strong{min-width:0;color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:900;line-height:1.12;display:block;overflow:hidden}.player-main em{color:var(--muted);text-transform:uppercase;font-size:.6rem;font-style:normal;font-weight:850;display:block}.avatar{color:#fff3ee;background:#ffffff14;border-radius:999px;flex-shrink:0;place-items:center;width:2rem;height:2rem;font-size:.78rem;font-weight:950;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.host-avatar{box-shadow:0 0 0 2px #ffd78033}.player-main{flex:1;min-width:0}.queue-card .avatar{z-index:1;background:#090708db;border:1px solid #ffdcd614;width:2.05rem;height:2.05rem;margin:0;box-shadow:0 10px 24px #00000057}.queue-card-active .avatar{border-color:#ffd78094;box-shadow:0 0 22px #ffd7802e,0 10px 24px #00000057}.queue-card-next .avatar{border-color:#ffd78066}.queue-card .player-main{justify-items:center;max-width:100%;display:grid}.queue-card .player-main strong,.queue-card .player-main em{text-align:center;max-width:100%}.empty-avatar{color:var(--muted-2);background:0 0;border:1px dashed #ffffff2e}.room-sidebar{contain:layout paint style;overscroll-behavior:contain;-webkit-backdrop-filter:none;backdrop-filter:none;backface-visibility:hidden;opacity:1;will-change:opacity, transform;background:#080204f7;border:0;border-left:1px solid #ffd6cf1f;border-radius:0;flex-direction:column;gap:.82rem;min-width:0;min-height:0;max-height:100%;padding:.96rem .82rem .84rem;display:flex;position:relative;overflow:hidden auto;transform:translateZ(0);box-shadow:inset 1px 0 #ffffff09}.room-sidebar[data-sidebar-open=false]{display:none}.sidebar-head{border-bottom:1px solid #ffd6cf1a;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.7rem;min-width:0;padding-bottom:.76rem;display:grid}.sidebar-title{min-width:0}.sidebar-title .panel-title{font-size:1.06rem;line-height:1.08}.sidebar-head-actions{flex-shrink:0;align-items:center;gap:.38rem;display:flex}.sidebar-status{color:#ffe8ac;text-transform:uppercase;background:#ffd7800f;border:1px solid #ffd78029;border-radius:6px;justify-content:center;align-items:center;gap:.34rem;min-height:2.18rem;padding:0 .5rem;font-size:.7rem;font-weight:900;display:inline-flex}.sidebar-status-live{background:#ffd78016;border-color:#ffd78047}.sidebar-section,.sidebar-actions,.sidebar-footer{gap:.62rem;display:grid}.sidebar-section>.panel-kicker{color:#fb7185b8;margin-bottom:-.22rem;font-size:.64rem}.sidebar-room-state{background:#1f0409ad;border:1px solid #ffd6cf1c;border-left-color:#d8122b61;border-radius:6px;padding:.74rem;box-shadow:inset 0 1px #ffd7800f}.sidebar-section:not(.sidebar-room-state){border-top:1px solid #ffd6cf14;padding-top:.68rem}.sidebar-state-card{background:0 0;border:0;border-radius:6px;gap:.46rem;padding:0;display:grid}.sidebar-state-card strong{color:var(--fg);font-size:1rem;font-weight:950;line-height:1.12}.sidebar-state-card em{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-style:normal;font-weight:900}.sidebar-state-ready{color:#ffe8ac}.sidebar-control-actions{grid-template-columns:minmax(0,1fr);gap:.5rem}.sidebar-control-actions .primary-button,.sidebar-control-actions .secondary-button{width:100%}.sidebar-room-state .quiet-note{font-size:.82rem}.sidebar-person{background:#00000024;border:1px solid #ffd6cf14;border-radius:6px;min-height:2.72rem;padding:.42rem .48rem}.sidebar-scores{gap:.3rem;display:grid}.sidebar-score{background:#0000001f;border:1px solid #ffd6cf0f;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;min-height:2.68rem;padding:.36rem .5rem;display:grid}.sidebar-score span{color:#fff4ef;background:#ffffff13;border-radius:999px;place-items:center;width:1.85rem;height:1.85rem;font-size:.7rem;font-weight:950;display:grid}.sidebar-score strong{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:900;line-height:1.1;overflow:hidden}.sidebar-score em{color:var(--gold);font-size:.8rem;font-style:normal;font-weight:950}.sidebar-score-active{background:#ffd78013;border-color:#ffd78047;box-shadow:inset 3px 0 #ffd78080}.sidebar-score-active span{color:#ffe8ac;background:#ffd78021}.sidebar-score-empty{opacity:.52;background:#ffffff02;border-color:#ffd6cf09}.sidebar-footer{border-top:1px solid #ffd6cf17;margin-top:auto;padding-top:.74rem}.sidebar-footer .secondary-button,.sidebar-footer .ghost-button{justify-content:flex-start;width:100%;min-height:2.45rem;padding-inline:.7rem}.action-topline,.turn-actions{min-width:0;display:grid}.action-topline{gap:.46rem}.turn-actions{gap:.5rem}.action-banner{min-height:2.82rem;color:var(--muted);background:linear-gradient(90deg,#ffd78014,#d8122b0e 42%,#00000014),#00000029;border:1px solid #ffd7801f;border-left-color:#ffd7806b;border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.68rem;padding:.5rem .62rem;display:grid}.action-banner svg{color:var(--gold);filter:drop-shadow(0 0 12px #ffd7802e)}.action-banner strong,.action-banner span{min-width:0;display:block}.action-banner strong{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;font-weight:950;line-height:1.12;overflow:hidden}.action-banner span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.14rem;font-size:.76rem;font-weight:800;overflow:hidden}.action-banner-live{background:radial-gradient(circle at 6%,#ffd78029,#0000 38%),linear-gradient(90deg,#5c2d0038,#2a070d1f 60%,#00000014);border-color:#ffd78052 #ffd78052 #ffd78052 #ffd780b3;box-shadow:inset 0 1px #ffd78014,0 0 22px #ffd7800e}.action-banner-live svg{color:var(--gold)}.readiness-track{background:#ffffff13;border-radius:999px;height:.28rem;overflow:hidden}.readiness-track span{border-radius:inherit;background:linear-gradient(90deg, #fb7185, var(--gold));height:100%;transition:width .22s;display:block}.game-shell[data-phase=roundOver] .readiness-track{background:#ffd78014;height:.22rem}.game-shell[data-phase=roundOver] .readiness-track span{background:linear-gradient(90deg,#fb7185b8,#ffd78075)}.letter-action,.vowel-action,.letter-form,.solve-form{gap:.5rem;display:grid}.letter-action,.vowel-action{border-top:1px solid #ffd7801a;padding-top:.5rem}.letter-form label,.solve-form label{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:850}.action-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.32rem;display:grid}.action-stats span{background:linear-gradient(#ffd78008,#0000 55%),0 0;border:0;border-bottom:1px solid #ffd78029;border-radius:0;gap:.1rem;padding:.28rem 0 .38rem;display:grid}.action-stats strong{color:var(--fg);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-weight:950;overflow:hidden}.action-stats em{color:var(--muted);text-transform:uppercase;font-size:.62rem;font-style:normal;font-weight:850}.action-input-row{grid-template-columns:minmax(4rem,4.8rem) minmax(0,1fr);gap:.5rem;display:grid}.letter-input{text-align:center;text-transform:uppercase;background:radial-gradient(circle at 50% 0,#ffd78014,#0000 58%),#00000047;border-color:#ffd7802e;min-height:2.5rem;font-size:1.1rem;font-weight:950}.letter-choice-grid,.vowel-buttons{gap:.32rem;display:grid}.letter-choice-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.vowel-buttons{grid-template-columns:repeat(5,minmax(0,1fr))}.vowel-action{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.letter-choice{min-height:1.95rem;color:var(--fg);background:linear-gradient(#ffffff09,#0000 60%),#ffffff07;border:1px solid #ffffff13;border-radius:5px;justify-content:center;align-items:center;font-size:.78rem;font-weight:950;transition:border-color .16s,background .16s,color .16s,transform .16s;display:inline-flex}.letter-choice:not(:disabled):hover{color:#fff7dc;background:#ffd7801f;border-color:#ffd7807a;transform:translateY(-1px)}.letter-choice-selected{color:#fff7dc;background:radial-gradient(circle at 50% 0,#ffd78038,#0000 62%),#fb71852e;border-color:#ffd780ad;box-shadow:0 0 18px #ffd7801a}.letter-choice-used{color:#ffffff4d;text-decoration:line-through;text-decoration-thickness:2px}.solve-form{border-top:1px solid #ffd7801a;grid-template-columns:minmax(0,1fr);padding-top:.5rem}.solve-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.5rem;display:grid}.solve-input{background:linear-gradient(#0000006b,#00000042),radial-gradient(circle at 10% 20%,#ffd7800e,#0000 46%);border-color:#ffdcd613;min-height:2.45rem;font-weight:800}.waiting-note{border-top:1px solid #ffd7801a;padding-top:.64rem}.solve-submit-button{min-width:6.7rem}.solve-submit-button:disabled{color:#fff0ed6b;background:#ffffff06;border-color:#ffdcd60e}.end-marker{color:#ffe8ac;justify-self:start;align-items:center;gap:.45rem;padding-inline:.08rem;font-size:.86rem;font-weight:850;display:inline-flex}.end-marker svg{color:var(--gold);filter:drop-shadow(0 0 12px #ffd78033)}.winner-card{background:linear-gradient(90deg,#ffd7801f,#0000 34%),linear-gradient(135deg,#ffd7802e,#4e0b1242 46%,#0003);border:1px solid #ffd78066;border-radius:7px;gap:.34rem;padding:.95rem 1rem;display:grid;position:relative;overflow:hidden;box-shadow:inset 3px 0 #ffd780a3,inset 0 1px #ffffff0e,0 16px 34px #00000038}.winner-card span,.winner-card em{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-style:normal;font-weight:900}.winner-card strong{overflow-wrap:anywhere;color:var(--gold);text-shadow:0 0 18px #ffd78029;font-size:clamp(1.28rem,2.1vw,1.7rem);font-weight:950;line-height:1.05}.winner-card em{color:#ffe7aa;letter-spacing:0}.wheel-stage{aspect-ratio:1;justify-content:center;align-items:center;width:min(100%,450px);margin-inline:auto;display:flex;position:relative}.wheel-frame,.wheel-face,.center-spin-button,.center-spin-art{aspect-ratio:1;border-radius:999px;position:relative}.wheel-frame{--wheel-inner-line:inset 0 0 0 1px #000000e6;isolation:isolate;background:radial-gradient(circle,#d8122b2e,#0000 57%),conic-gradient(from 22deg,#080305,#21050a 14%,#050505 31%,#4b0913 47%,#070404 62%,#2a050b 78%,#080305);width:100%;padding:clamp(4px,1.1vw,8px);box-shadow:0 34px 96px #000000ad,0 0 54px #d8122b38,inset 0 0 0 1px #ffd6a31a,inset 0 0 0 6px #000000a3}.wheel-frame:before,.wheel-frame:after,.wheel-face:before,.wheel-face:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}.wheel-frame:before{z-index:2;mix-blend-mode:screen;background:radial-gradient(circle,#0000 0 91%,#ffce8b24 93%,#0000 96%),radial-gradient(circle at 37% 18%,#ffead21f,#0000 18%),radial-gradient(circle,#0000 0 72%,#0000006b 100%);inset:clamp(4px,1.1vw,8px)}.wheel-frame:after{z-index:2;box-shadow:inset 0 0 0 2px #000000e6,inset 0 0 0 7px #2a030ad1,inset 0 0 22px #000000b3}.wheel-face{isolation:isolate;clip-path:circle(49.8%);background:radial-gradient(circle at center, #0a0a0a 0 17%, #0000008c 17.6%, transparent 19%), radial-gradient(circle at center, transparent 0 92%, #000000a8 95%, #000000eb 100%), conic-gradient(#d6a30e 0 15deg, transparent 15deg 360deg), repeating-conic-gradient(from 15deg, #d5112a 0 15deg, #050505 15deg 30deg);width:100%;box-shadow:var(--wheel-inner-line), inset 0 0 18px #00000080;transform:translateZ(0) rotate(var(--wheel-rotation,0deg));background-color:#050505;transition:transform 1.56s cubic-bezier(.08,.78,.12,1),filter .22s;overflow:hidden}.wheel-face:before{z-index:1;background:radial-gradient(circle at 40% 23%,#ffead61c,#0000 22%),linear-gradient(145deg,#fff0dc0b,#0000 34%,#00000052)}.wheel-face:after{z-index:3;box-shadow:inset 0 0 0 1px #000000eb,inset 0 0 0 4px #2a030a8a,inset 0 0 30px #0000008a}.wheel-labels{z-index:2;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.wheel-svg-number,.wheel-svg-special{font-variant-numeric:tabular-nums;letter-spacing:0;paint-order:stroke fill;stroke-linecap:round;stroke-linejoin:round;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:950}.wheel-svg-special{font-size:4.55px}.wheel-label-long-special .wheel-svg-special{font-size:4.05px}.wheel-label-dark{fill:#070304;stroke:#ffeed9c7;stroke-width:.24px}.wheel-label-light{fill:#fff4ec;stroke:#000000f5;stroke-width:.3px}.wheel-label-gold{fill:#080303;stroke:#fff5ded6;stroke-width:.24px}.wheel-pointer{z-index:30;pointer-events:none;filter:drop-shadow(0 10px 14px #00000080)drop-shadow(0 0 16px #ffe0b633);width:clamp(46px,9.4vw,64px);height:clamp(50px,9vw,66px);position:absolute;top:clamp(-22px,-3vw,-12px);left:50%;transform:translate(-50%)}.wheel-pointer:before,.wheel-pointer:after{content:"";position:absolute}.wheel-pointer:before{background:linear-gradient(90deg,#ffefdaf5,#cf132c 24%,#f03249 70%,#ffefdafa);border-radius:999px 999px 6px 6px;width:52%;height:34%;top:0;left:50%;transform:translate(-50%)}.wheel-pointer:after{clip-path:polygon(50% 100%,5% 0,95% 0);transform-origin:50% 8%;background:linear-gradient(90deg,#fff2e0fa 0 9%,#d3132d 10% 43%,#6a0715 44% 53%,#f12e45 54% 90%,#fff2e0fa 91% 100%);width:82%;height:79%;top:21%;left:50%;transform:translate(-50%)rotate(0)}.wheel-pointer span{z-index:1;opacity:.7;background:linear-gradient(#fff4e3d1,#ffd39c2e);border-radius:999px;width:6px;height:46%;position:absolute;top:34%;left:50%;transform:translate(-50%)}.center-spin-control{z-index:35;place-items:center;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.center-spin-button{background:#050505;border:0;place-items:center;width:clamp(100px,24%,138px);transition:box-shadow .22s,filter .22s,transform .22s;display:grid;overflow:hidden;box-shadow:0 0 0 5px #0000009e,0 0 0 9px #62081470,0 0 34px #ef1f3b4d,0 0 58px #ffd78014}.center-spin-button:not(:disabled):hover{filter:saturate(1.14)brightness(1.08);transform:scale(1.04);box-shadow:0 0 0 5px #000000a3,0 0 0 10px #9a13248a,0 0 52px #ef1f3b8a,0 0 86px #ffd7802e}.wheel-orbit-live .center-spin-button:not(:disabled){box-shadow:0 0 0 5px #00000094,0 0 0 9px #9a132461,0 0 48px #ef1f3b57,0 0 74px #ffd78024}.center-spin-control:is(:hover,:focus-within) .center-spin-glimmer{opacity:1;animation:1.15s ease-out infinite center-spin-shimmer}.center-spin-art{border-radius:inherit;width:100%;display:block;overflow:hidden}.center-spin-art>span{border-radius:inherit;position:absolute;inset:0}.center-spin-image{filter:saturate(1.08)contrast(1.08);background-image:url(/assets/pfp.webp);background-position:50%;background-size:cover;transition:filter .22s}.center-spin-control:is(:hover,:focus-within) .center-spin-image{filter:saturate(1.18)contrast(1.1)brightness(1.04)}.center-spin-shade{background:radial-gradient(circle at 45% 32%,#ffe6d624,#0000 28%),radial-gradient(circle at 50% 46%,#0000 0 76%,#0000004d 86%,#000c 100%)}.center-spin-glimmer{opacity:0;background:linear-gradient(115deg,#0000 24%,#ffe9ca80 44%,#ffffff3d 50%,#0000 68%);transition:opacity .15s;transform:translate(-145%)rotate(8deg)}.center-spin-rim{border:1px solid #ffdebe2e;inset:.12rem;box-shadow:inset 0 0 10px #ffdcbe1f,inset 0 0 24px #00000075}.center-spin-label{border-radius:inherit;opacity:0;pointer-events:none;place-items:center;transition:opacity .18s;display:grid;position:absolute;inset:0}.center-spin-control:is(:hover,:focus-within) .center-spin-label{opacity:1}.center-spin-label span{color:var(--fg);text-transform:uppercase;background:#000000b8;border:1px solid #ffcdcd59;border-radius:999px;align-items:center;gap:.38rem;padding:.5rem .75rem;font-size:.68rem;font-weight:950;display:inline-flex;box-shadow:0 8px 20px #00000061}.wheel-spinning{will-change:transform}.wheel-pointer-spinning:after{animation:.19s ease-in-out 8 wheel-pointer-tick}@keyframes wheel-pointer-tick{46%{transform:translate(-50%)rotate(-7deg)}72%{transform:translate(-50%)rotate(4deg)}}@keyframes center-spin-shimmer{0%{opacity:0;transform:translate(-145%)rotate(8deg)}18%,78%{opacity:1}to{opacity:0;transform:translate(145%)rotate(8deg)}}.puzzle-prompt{isolation:isolate;text-align:left;background:radial-gradient(at 18% 0,#d8122b24,#0000 62%),linear-gradient(#1f0409ad,#0602048a);border:1px solid #d8122b42;border-radius:6px;justify-self:center;justify-items:start;width:min(100%,34rem);min-width:0;padding:.58rem .9rem .68rem;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 28px #00000029,inset 0 1px #ffd78014}.puzzle-prompt .panel-kicker{z-index:1;color:#ff8293;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0 0 .32rem;padding:0;line-height:1;position:relative}.puzzle-prompt h2{z-index:1;max-width:32rem;color:var(--fg);overflow-wrap:anywhere;text-shadow:0 0 24px #ef1f3b3d,0 0 18px #ffd7801c,0 2px #0000006b;text-wrap:balance;margin:0;font-size:clamp(1.16rem,1.55vw,1.58rem);font-weight:950;line-height:1.08;position:relative}.puzzle-prompt:before,.puzzle-prompt:after{z-index:0;content:"";pointer-events:none;position:absolute}.puzzle-prompt:before{border:1px solid #ffd78014;border-radius:4px;inset:.36rem;box-shadow:inset 0 0 22px #0000003d}.puzzle-prompt:after{opacity:.74;background:linear-gradient(90deg,#0000,#ef1f3b80,#ffd78057,#ef1f3b80,#0000);height:1px;inset:auto .9rem .36rem}.puzzle-stage{width:100%;min-width:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;justify-items:center;gap:.48rem;padding:0;display:grid;container-type:inline-size}.letterboard-shell{--tile-size:clamp(1.3rem, 6.08cqw, 2.46rem);contain:layout style;background:radial-gradient(at 50% 42%,#d8122b1f,#0000 62%),linear-gradient(#120307f0,#030102f5);border:1px solid #ffd78033;border-radius:6px;justify-self:center;width:fit-content;max-width:100%;padding:clamp(.58rem,.9vw,.82rem);position:relative;overflow:hidden;box-shadow:0 22px 48px #0000003d,0 0 32px #d8122b1a,inset 0 1px #ffd7801a,inset 0 -1px #d8122b2e}.letterboard-shell:before{z-index:0;content:"";pointer-events:none;border:1px solid #ffd78011;border-radius:5px;position:absolute;inset:.36rem;box-shadow:inset 0 0 0 1px #d8122b14,inset 0 0 30px #00000061}.letterboard-shell:after{z-index:0;content:"";border-radius:inherit;opacity:.28;pointer-events:none;background:linear-gradient(100deg,#0000 0 30%,#fff4ec2e 48%,#ffd78017 54%,#0000 70%);width:38%;animation:3.6s ease-in-out infinite letterboard-shell-sheen;position:absolute;inset:-24% auto -24% -42%;transform:translate(-30%)skew(-10deg)}.letterboard{z-index:1;box-shadow:none;perspective:720px;background:0 0;border:0;border-radius:5px;gap:clamp(.18rem,.42vw,.34rem);padding:clamp(.14rem,.3vw,.24rem);display:grid;position:relative}.letterboard-row{grid-template-columns:repeat(13, var(--tile-size));min-height:var(--tile-size);justify-content:center;gap:clamp(.13rem,.32vw,.24rem);display:grid}.letterboard-slot{height:var(--tile-size);width:var(--tile-size);isolation:isolate;color:#fff6f1;font-size:clamp(1rem, calc(var(--tile-size) * .48), 1.62rem);letter-spacing:0;text-shadow:0 1px #0000005c;text-transform:uppercase;transform-origin:50% 100%;background:#060305d6;border:1px solid #ffd6cf3d;border-radius:6px;place-items:center;font-weight:950;line-height:1;transition:border-color .18s,background .18s,box-shadow .18s,color .18s,transform .18s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffe7e114,inset 0 -12px 16px #00000057,0 10px 18px #00000038}.letterboard-slot:before{content:"";border-radius:inherit;opacity:.86;pointer-events:none;background:linear-gradient(#fff4ec26,#0000 36%),radial-gradient(circle at 28% 18%,#ffffff1f,#0000 28%);position:absolute;inset:0}.letterboard-slot:after{content:"";opacity:.38;pointer-events:none;background:linear-gradient(90deg,#0000,#ffe8c06b,#0000);border-radius:999px;height:1px;position:absolute;inset:auto 16% .19rem}.letterboard-slot-hidden{background:linear-gradient(#fff4e32e,#0000 34%),radial-gradient(circle at 28% 16%,#ffe2d638,#0000 34%),linear-gradient(145deg,#f71734fa,#770618fc 58%,#0c0205fc),#5b0a15f2;border-color:#ffce8b52;box-shadow:inset 0 1px #ffe7e133,inset 0 -18px 22px #0000005c,inset 0 0 0 1px #ffd7800f,0 0 20px #d8122b2e,0 10px 18px #0000003d}.letterboard-slot-hidden:before{background:linear-gradient(#ffeee738,#0000 34%),linear-gradient(135deg,#0000 0 42%,#ffffff13 48%,#0000 56%),radial-gradient(circle at 32% 20%,#ffd6cf29,#0000 30%)}.letterboard-slot-lit{color:#140204;text-shadow:0 1px #fff6dcb8;background:radial-gradient(circle at 32% 16%,#fffdf6,#fff0bc 36%,#d8a70f 100%);border-color:#ffeec6f5;animation:.52s cubic-bezier(.16,1,.3,1) letterboard-reveal;box-shadow:inset 0 1px #fffaeffa,inset 0 -13px 20px #502b0a38,inset 0 0 0 1px #ffffff5c,0 0 30px #ffd78057,0 0 42px #d8122b1f,0 12px 22px #0003}.letterboard-slot-lit:before{opacity:.9;background:linear-gradient(#ffffffa8,#0000 42%),radial-gradient(circle at 30% 18%,#fffaebd1,#0000 30%)}.letterboard-slot-off{visibility:visible;opacity:.55;background:linear-gradient(#ffd78006,#0000 46%),#0003;border-color:#ffd7800e;box-shadow:inset 0 -8px 12px #00000029}.letterboard-slot-off:before{opacity:.1}.letterboard-slot-off:after{opacity:0}.letterboard-slot-space{opacity:.28;background:#0003;border-color:#ffd6cf06;box-shadow:inset 0 -10px 14px #00000029}.letterboard-slot-space:before,.letterboard-slot-space:after{display:none}.letterboard-slot-punctuation{color:#ffd7809e;background:linear-gradient(#ffd78009,#0000 40%),#0000006b;border-color:#ffd7801a;box-shadow:inset 0 1px #ffffff0f,inset 0 -10px 14px #00000052}@keyframes letterboard-reveal{0%{opacity:.78;transform:translateY(.06rem)scale(.94)}to{opacity:1;transform:none}}@keyframes letterboard-shell-sheen{0%,54%{opacity:0;transform:translate(-30%)skew(-10deg)}68%{opacity:.28}to{opacity:0;transform:translate(350%)skew(-10deg)}}@keyframes game-phase-enter{0%{opacity:.9;transform:translateY(.28rem)scale(.992)}to{opacity:1;transform:none}}@media (width>=1120px) and (height>=720px){.app-main-room{height:calc(100dvh - var(--header-height));padding:0;overflow:hidden}.game-shell{height:100%;padding-bottom:0}.game-body{grid-template-columns:minmax(0,1fr) clamp(18rem,22vw,21.5rem);height:100%}.game-stage{align-items:center;height:100%;min-height:0}.room-sidebar{gap:.58rem;height:100%;padding:.9rem .82rem .84rem}.room-sidebar[data-sidebar-open=false]{opacity:0;pointer-events:none;display:flex;transform:translate(100%)}.sidebar-section,.sidebar-actions,.sidebar-footer{gap:.5rem}.sidebar-room-state{padding-block:.58rem}.sidebar-score{padding-block:.3rem}.wheel-column,.play-column{min-height:0}.wheel-orbit .wheel-stage{width:min(100%, clamp(23rem, calc(100dvh - var(--header-height) - 17rem), 32rem))}.play-column{align-content:safe center;gap:.56rem;height:100%;max-height:100%;padding-right:.1rem;overflow:auto}.control-panel{gap:.62rem;padding:.62rem}.letter-choice-grid{grid-template-columns:repeat(11,minmax(0,1fr))}}@media (width<=1040px){.game-stage{grid-template-columns:minmax(0,1fr);gap:1.1rem}.room-sidebar{border-radius:var(--radius);border:1px solid #ffd6cf24;max-height:none;box-shadow:0 18px 54px #00000042,inset 1px 0 #ffffff08}.wheel-column{order:1}.play-column{order:2}.wheel-orbit .wheel-stage{width:min(82vw,32rem)}.queue-track{padding-bottom:.2rem;overflow-x:auto}.queue-card{min-width:11rem}.game-shell[data-phase=lobby] .game-stage{grid-template-columns:minmax(0,1fr);gap:1rem;width:min(100%,44rem)}.game-shell[data-phase=lobby] .wheel-orbit .wheel-stage{width:min(76vw,27rem)}.game-shell[data-phase=roundOver] .game-stage,.game-shell[data-phase=ended] .game-stage{grid-template-columns:minmax(0,1fr);gap:1rem;width:min(100%,44rem)}.game-shell[data-phase=roundOver] .wheel-orbit .wheel-stage,.game-shell[data-phase=ended] .wheel-orbit .wheel-stage{width:min(76vw,27rem)}}@media (width<=720px){.game-shell[data-phase=lobby] .wheel-column{order:2}.game-shell[data-phase=lobby] .play-column{order:1}.game-shell[data-phase=lobby] .wheel-heading{width:min(100%,16rem)}.game-shell[data-phase=roundOver] .wheel-column,.game-shell[data-phase=ended] .wheel-column{order:2}.game-shell[data-phase=roundOver] .play-column,.game-shell[data-phase=ended] .play-column{order:1}.game-shell[data-phase=roundOver] .wheel-heading,.game-shell[data-phase=ended] .wheel-heading{width:min(100%,16rem)}}@media (width<=640px){:root{--header-height:58px}.site-header{position:relative}.site-header-inner,.app-main{padding-inline:.75rem}.app-main{min-height:auto;padding-block:.7rem 1.5rem}.game-shell{gap:.62rem;padding-bottom:1.25rem}.brand-mark{width:2rem;height:2rem}.brand-lockup h1{max-width:8rem;font-size:1.06rem}.home-layout{align-content:start;padding-top:0}.puzzle-stage{padding:0}.control-panel{gap:.58rem;width:100%;padding:.65rem}.wheel-heading{align-items:center}.wheel-orbit .wheel-stage{width:min(82vw,21rem)}.letterboard-shell{--tile-size:clamp(1.04rem, 6.1cqw, 1.42rem);padding:.46rem}.letterboard,.letterboard-row{gap:.16rem}.letterboard-slot{font-size:clamp(.7rem, calc(var(--tile-size) * .42), .82rem);border-radius:4px}.letter-choice-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.action-banner{padding:.52rem .56rem}.action-banner strong{font-size:.92rem}.action-input-row{grid-template-columns:minmax(3.6rem,4.2rem) minmax(0,1fr)}.queue-track{gap:.45rem;overflow:visible}.queue-track:before{left:1.6rem;right:1.6rem}.queue-card{flex-basis:6.9rem;min-width:0;max-width:6.9rem}}@media (width<=430px){.site-header-inner{gap:.45rem}.brand-lockup h1{display:none}.header-actions{gap:.35rem}.room-ticket{max-width:calc(100vw - 5.7rem);padding:.42rem .48rem}.room-ticket span,.room-ticket em{display:none}.room-ticket strong{font-size:.82rem}.icon-button,.toast-close{width:2.25rem;height:2.25rem}.letter-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (height<=720px) and (width>=960px){.app-main{padding-block:.7rem}.wheel-orbit .wheel-stage{width:min(100%,30rem)}.control-panel{padding:.65rem}.puzzle-stage{padding:0}}@media (prefers-reduced-motion:reduce){.game-shell .play-column,.letterboard-shell:after,.letterboard-slot-lit,.wheel-pointer-spinning:after{animation:none!important}.wheel-face{transition-duration:1ms}}
