@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-devanagari-700-normal-D37Te3iF.woff2) format("woff2"),url(/assets/baloo-2-devanagari-700-normal-CEIF4sJg.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-vietnamese-700-normal-h4tlcePq.woff2) format("woff2"),url(/assets/baloo-2-vietnamese-700-normal-DoF59Mjc.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-ext-700-normal-Mlh7kdab.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-700-normal-D6LeXASg.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2) format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-devanagari-800-normal-BURIY0wZ.woff2) format("woff2"),url(/assets/baloo-2-devanagari-800-normal-YLp1oUqR.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-vietnamese-800-normal-ConLnEgt.woff2) format("woff2"),url(/assets/baloo-2-vietnamese-800-normal-GQACmpuv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2) format("woff2"),url(/assets/baloo-2-latin-ext-800-normal-D-iCxxqE.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2) format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2) format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2) format("woff2"),url(/assets/nunito-vietnamese-400-normal-DtOtW02z.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2) format("woff2"),url(/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fff9ef;--surface: #ffffff;--ink: #23263b;--ink-muted: #6b7089;--coral: #ff6b6b;--coral-deep: #f04e4e;--sunshine: #ffd93d;--sunshine-deep: #f0b429;--teal: #4ecdc4;--teal-deep: #35b8af;--violet: #845ec2;--violet-deep: #6c46a8;--grass: #6bcb77;--grass-deep: #4faf5c;--orange: #ff9f43;--tile-correct: #6bcb77;--tile-present: #ffc93c;--tile-absent: #e3e4ec;--tile-empty-border: #d9dae6;--line: #ece7dc;--shadow-sm: rgba(35, 38, 59, .08);--shadow-md: rgba(35, 38, 59, .12);--shadow-lg: rgba(35, 38, 59, .18);--radius-s: 10px;--radius-m: 14px;--radius-l: 20px;--font-display: "Baloo 2", "Comic Sans MS", system-ui, sans-serif;--font-body: "Nunito", system-ui, sans-serif;--bounce: cubic-bezier(.34, 1.56, .64, 1);--speed-fast: .18s;--speed-med: .35s}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(38rem 26rem at 110% -12%,rgba(255,217,61,.16),transparent 60%),radial-gradient(34rem 24rem at -14% 112%,rgba(78,205,196,.13),transparent 60%),radial-gradient(28rem 22rem at 108% 108%,rgba(255,107,107,.09),transparent 60%);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased;overscroll-behavior:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.05;margin:0}p{margin:0}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0;touch-action:manipulation}input,select{font-family:inherit}img{max-width:100%}::selection{background:var(--sunshine);color:var(--ink)}:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:6px}.app-shell{max-width:1080px;margin:0 auto;padding:16px 16px 40px;position:relative;z-index:1}.app-fit{height:100vh;height:100dvh;display:flex;flex-direction:column;padding-bottom:14px}.app-fit>.topbar{flex:none}.app-fit>.screen{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.screen{animation:screen-in .45s var(--bounce) both}@keyframes screen-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.muted{color:var(--ink-muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.center{text-align:center}.title-xl{font-size:clamp(2.6rem,8vw,4.2rem)}.title-lg{font-size:clamp(1.6rem,5vw,2.2rem)}.title-md{font-size:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:1rem;padding:11px 20px;border-radius:var(--radius-m);background:var(--surface);color:var(--ink);box-shadow:0 3px #23263b1a,0 6px 14px var(--shadow-sm);border:2px solid transparent;transition:transform var(--speed-fast) var(--bounce),box-shadow var(--speed-fast) ease,filter var(--speed-fast) ease;user-select:none;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.03);box-shadow:0 5px #23263b1a,0 10px 20px var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(1px) scale(.98);box-shadow:0 1px #23263b1a}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 2px #23263b0f}.btn-primary{background:var(--coral);color:#fff;box-shadow:0 4px 0 var(--coral-deep),0 10px 18px #ff6b6b59}.btn-primary:hover:not(:disabled){box-shadow:0 6px 0 var(--coral-deep),0 14px 22px #ff6b6b59}.btn-grass{background:var(--grass);color:#fff;box-shadow:0 4px 0 var(--grass-deep),0 10px 18px #6bcb7759}.btn-teal{background:var(--teal);color:#103c39;box-shadow:0 4px 0 var(--teal-deep),0 10px 18px #4ecdc459}.btn-violet{background:var(--violet);color:#fff;box-shadow:0 4px 0 var(--violet-deep),0 10px 18px #845ec259}.btn-sunshine{background:var(--sunshine);color:var(--ink);box-shadow:0 4px 0 var(--sunshine-deep),0 10px 18px #ffd93d66}.btn-ghost{background:transparent;box-shadow:none;border:2px dashed var(--tile-empty-border);color:var(--ink-muted)}.btn-ghost:hover:not(:disabled){border-color:var(--violet);color:var(--violet);box-shadow:none}.btn-lg{font-size:1.25rem;padding:15px 30px;border-radius:var(--radius-l)}.btn-block{width:100%}.card{background:var(--surface);border-radius:var(--radius-l);box-shadow:0 2px #23263b0d,0 10px 26px var(--shadow-sm);padding:20px;border:2px solid rgba(35,38,59,.04)}.card-hover{transition:transform var(--speed-med) var(--bounce),box-shadow var(--speed-med) ease;cursor:pointer}.card-hover:hover{transform:translateY(-3px) rotate(-.3deg);box-shadow:0 4px #23263b0d,0 16px 32px var(--shadow-md)}.wordmark{display:inline-flex;align-items:baseline;font-family:var(--font-display);font-weight:800;letter-spacing:.01em;line-height:1;user-select:none}.wordmark .wm-letter{display:inline-block;animation:wm-bounce 2.4s ease-in-out infinite;text-shadow:0 3px 0 rgba(35,38,59,.08)}@keyframes wm-bounce{0%,60%,to{transform:translateY(0)}25%{transform:translateY(-12%) rotate(-3deg)}40%{transform:translateY(3%) rotate(2deg)}}.wordmark .wm-flag{display:inline-block;margin-left:10px;animation:wm-wave 1.6s ease-in-out infinite;transform-origin:bottom left}@keyframes wm-wave{0%,to{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}.text-input{width:100%;padding:12px 16px;font-size:1rem;font-weight:600;color:var(--ink);background:var(--surface);border:2px solid var(--tile-empty-border);border-radius:var(--radius-m);transition:border-color var(--speed-fast) ease,box-shadow var(--speed-fast) ease}.text-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px #4ecdc438}.text-input::placeholder{color:var(--ink-muted);opacity:.7;font-weight:400}.code-input{letter-spacing:.55em;text-transform:uppercase;text-align:center;font-family:var(--font-display);font-weight:800;font-size:1.9rem;padding:14px 16px 14px calc(16px + .55em)}.seg{display:flex;gap:4px;background:#f4efe4;padding:4px;border-radius:var(--radius-m)}.seg-btn{flex:1;padding:8px 10px;border-radius:var(--radius-s);font-weight:800;font-size:.92rem;color:var(--ink-muted);transition:background var(--speed-fast) ease,color var(--speed-fast) ease,transform var(--speed-fast) var(--bounce),box-shadow var(--speed-fast) ease;text-align:center}.seg-btn:hover:not(.active){color:var(--ink)}.seg-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 6px var(--shadow-sm),0 2px #23263b12;transform:scale(1.04)}.stepper{display:inline-flex;align-items:center;gap:12px;background:#f4efe4;border-radius:var(--radius-m);padding:4px}.step-btn{width:36px;height:36px;border-radius:var(--radius-s);background:var(--surface);font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--violet);box-shadow:0 2px 4px var(--shadow-sm);transition:transform var(--speed-fast) var(--bounce),color var(--speed-fast) ease}.step-btn:hover:not(:disabled){transform:scale(1.12)}.step-btn:disabled{opacity:.4;cursor:not-allowed}.step-value{min-width:44px;text-align:center;font-family:var(--font-display);font-weight:800;font-size:1.15rem}.switch{position:relative;width:52px;height:30px;border-radius:999px;background:#e5dfd0;transition:background var(--speed-med) ease;flex-shrink:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px var(--shadow-md);transition:transform var(--speed-med) var(--bounce)}.switch.on{background:var(--grass)}.switch.on:after{transform:translate(22px)}.range{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:999px;background:linear-gradient(to right,var(--teal) 0%,var(--teal) var(--fill, 50%),#ede8db var(--fill, 50%),#ede8db 100%);outline:none}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--surface);border:3px solid var(--teal);box-shadow:0 3px 8px var(--shadow-md);cursor:grab;transition:transform var(--speed-fast) var(--bounce)}.range::-webkit-slider-thumb:hover{transform:scale(1.15)}.range::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--surface);border:3px solid var(--teal);box-shadow:0 3px 8px var(--shadow-md);cursor:grab}.range:disabled::-webkit-slider-thumb{border-color:var(--tile-empty-border);cursor:not-allowed}.avatar{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;color:#fff;overflow:hidden;flex-shrink:0;box-shadow:inset 0 -3px #00000024,0 3px 8px var(--shadow-sm);border:2px solid #fff}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:56px;height:56px;font-size:1.4rem}.player-chip{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border-radius:var(--radius-l);border:2px solid var(--line);transition:border-color var(--speed-fast) ease,transform var(--speed-med) var(--bounce),box-shadow var(--speed-med) ease;animation:chip-in .4s var(--bounce) both}@keyframes chip-in{0%{opacity:0;transform:scale(.85) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.player-chip.ready{border-color:var(--grass);background:linear-gradient(135deg,rgba(107,203,119,.1),var(--surface) 55%);box-shadow:0 6px 16px #6bcb772e}.player-chip.offline{opacity:.5;filter:grayscale(.6)}.chip-kick{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:.8rem;font-weight:900;color:#fff;background:var(--coral);display:inline-flex;align-items:center;justify-content:center;transition:transform var(--speed-fast) var(--bounce),filter var(--speed-fast) ease}.chip-kick:hover{transform:scale(1.12);filter:brightness(1.08)}.player-name{font-weight:800;font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.02em}.badge-host{background:#ffd93d59;color:#8a6d00}.badge-you{background:#4ecdc440;color:#14615b}.ready-check{margin-left:auto;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:900;flex-shrink:0}.ready-check.on{background:var(--grass);color:#fff;animation:check-pop .35s var(--bounce)}.ready-check.off{background:#f0ecdf;color:var(--ink-muted)}@keyframes check-pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}.lobby-grid{display:grid;gap:16px}.code-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:linear-gradient(120deg,var(--violet),#a97fe0);border-radius:var(--radius-l);padding:16px 20px;color:#fff;box-shadow:0 4px 0 var(--violet-deep),0 14px 28px #845ec259}.code-digits{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,6vw,2.4rem);letter-spacing:.3em;text-shadow:0 2px 0 rgba(0,0,0,.18);user-select:all}.copy-btn{background:#fff3;border:2px solid rgba(255,255,255,.5);color:#fff;font-weight:800;padding:8px 16px;border-radius:var(--radius-m);transition:background var(--speed-fast) ease,transform var(--speed-fast) var(--bounce)}.copy-btn:hover{background:#ffffff52;transform:scale(1.05)}.settings-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.summary-cell{background:#faf6ec;border-radius:var(--radius-m);padding:10px 12px;border:1px dashed var(--tile-empty-border)}.summary-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.summary-value{font-family:var(--font-display);font-weight:700;font-size:1.02rem}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.mode-card{text-align:left;background:#faf6ec;border:2px solid var(--line);border-radius:var(--radius-m);padding:12px;transition:border-color var(--speed-fast) ease,transform var(--speed-fast) var(--bounce),background var(--speed-fast) ease,box-shadow var(--speed-fast) ease}.mode-card:hover:not(:disabled){transform:translateY(-2px)}.mode-card.active{border-color:var(--violet);background:linear-gradient(150deg,#845ec21f,#faf6ec 65%);box-shadow:0 8px 18px #845ec233;transform:scale(1.03)}.mode-card:disabled{cursor:default}.mode-emoji{font-size:1.5rem;line-height:1}.mode-name{font-family:var(--font-display);font-weight:700;font-size:.98rem;margin-top:6px}.mode-desc{font-size:.74rem;color:var(--ink-muted);margin-top:3px;line-height:1.35}.mode-card.random .mode-emoji{animation:slow-spin 7s linear infinite;display:inline-block}@keyframes slow-spin{to{transform:rotate(360deg)}}.board-wrap{display:flex;justify-content:center}.board{display:flex;flex-direction:column;gap:6px;width:min(100%,calc(var(--cols, 5) * var(--tile-max, 56px) + (var(--cols, 5) - 1) * 6px));touch-action:manipulation}.tile-row{display:grid;gap:6px;grid-template-columns:repeat(var(--cols, 5),var(--track, 56px))}.tile{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:clamp(13px,4.6vmin,29px);text-transform:uppercase;aspect-ratio:1;border-radius:calc(var(--radius-m) * .7);background:var(--surface);border:2px solid var(--tile-empty-border);color:var(--ink);user-select:none;transition:border-color var(--speed-fast) ease,background var(--speed-fast) ease,transform .12s var(--bounce)}@supports (width: 1cqi){.board{container-type:inline-size}.tile{font-size:calc((100cqi - (var(--cols, 5) - 1) * 6px) / var(--cols, 5) * .52)}}.tile.filled{border-color:#b9bac9;animation:tile-pop .14s var(--bounce)}.tile.pending{opacity:.55;border-style:dashed}@keyframes tile-pop{0%{transform:scale(.82)}60%{transform:scale(1.12)}to{transform:scale(1)}}.tile.correct{background:var(--tile-correct);border-color:var(--tile-correct);color:#fff}.tile.present{background:var(--tile-present);border-color:var(--tile-present);color:var(--ink)}.tile.absent{background:var(--tile-absent);border-color:var(--tile-absent);color:var(--ink-muted)}.tile.flip-in{animation:tile-flip .5s ease both}@keyframes tile-flip{0%{transform:rotateX(0) scale(1)}45%{transform:rotateX(90deg) scale(1.06)}to{transform:rotateX(0) scale(1)}}.row-shake{animation:row-shake .45s ease}@keyframes row-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.answer-tile{background:var(--violet);border-color:var(--violet);color:#fff}.answer-reveal .tile{font-size:29px;animation:tile-flip .5s ease both}.rival-card{text-align:left}.mini-board{display:flex;flex-direction:column;gap:3px;margin-top:10px}.mini-row{display:flex;gap:3px;justify-content:center}.mini-board .tile{width:24px;height:24px;font-size:13px;aspect-ratio:auto;border-width:1px;border-radius:5px;animation:none}.mini-board .tile.flip-in{animation:none}.rival-nav{width:26px;height:26px;font-size:.7rem}.mini-empty{margin-top:10px;padding:12px 0;text-align:center;font-weight:700;opacity:.55;font-size:.8rem}.kbd{display:grid;gap:6px;width:100%;max-width:520px;margin:14px auto 0;user-select:none}.kbd-row{display:flex;gap:6px}.key{flex:1;min-width:0;height:clamp(48px,11vw,62px);border-radius:9px;background:#e8e3d8;font-family:var(--font-display);font-weight:700;font-size:clamp(1rem,4vw,1.15rem);text-transform:uppercase;display:flex;align-items:center;justify-content:center;color:var(--ink);box-shadow:0 2px #23263b1f;transition:transform .08s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.key:hover{filter:brightness(.96)}.key:active,.key.pressed{transform:translateY(2px) scale(.95);box-shadow:0 0 #0000}.key.wide{flex:1.6;font-size:.8rem;background:var(--violet);color:#fff;box-shadow:0 2px 0 var(--violet-deep)}.key.enter-key{flex:1.8;background:var(--grass);box-shadow:0 2px 0 var(--grass-deep)}.key.correct{background:var(--tile-correct);color:#fff;box-shadow:0 2px 0 var(--grass-deep)}.key.present{background:var(--tile-present);box-shadow:0 2px 0 var(--sunshine-deep)}.key.absent{background:var(--tile-absent);color:#a2a4b8;box-shadow:0 2px #cbccd9}.timer-ring{position:relative;width:128px;height:128px;margin:0 auto}.timer-ring svg{transform:rotate(-90deg);display:block}.ring-track{stroke:#efe9da}.ring-fill{stroke-linecap:round;transition:stroke .4s ease,stroke-width .3s ease}.timer-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;pointer-events:none}.timer-sec{font-family:var(--font-display);font-weight:800;font-size:2.1rem;line-height:1;font-variant-numeric:tabular-nums}.timer-label{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.timer-ring.warn .ring-fill{stroke-width:13}.timer-ring.danger{animation:ring-pulse 1s ease-in-out infinite}.timer-ring.danger .timer-sec{color:var(--coral)}@keyframes ring-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.timer-flash{animation:timer-flash .5s var(--bounce)}@keyframes timer-flash{0%{transform:scale(1)}40%{transform:scale(1.18);filter:hue-rotate(-20deg) saturate(1.6)}to{transform:scale(1)}}.rail{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0}.rail-collapsible{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.rail-collapsible::-webkit-scrollbar{display:none}.rail-card{background:var(--surface);border-radius:var(--radius-l);box-shadow:0 2px #23263b0d,0 10px 26px var(--shadow-sm);padding:14px;border:2px solid rgba(35,38,59,.04)}.rail-title{font-family:var(--font-display);font-weight:800;font-size:.95rem;display:flex;align-items:center;gap:6px;margin-bottom:10px}.lb-list{display:flex;flex-direction:column;gap:8px}.lb-entry{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-m);background:#faf6ec;border:2px solid transparent;will-change:transform}.lb-entry.me{border-color:var(--teal);background:linear-gradient(135deg,#4ecdc424,#faf6ec 70%)}.lb-entry.first{background:linear-gradient(135deg,#ffd93d4d,#faf6ec 75%)}.lb-rank{font-family:var(--font-display);font-weight:800;font-size:.85rem;color:var(--ink-muted);width:20px;text-align:center;flex-shrink:0}.lb-avatar{width:28px;height:28px;font-size:.72rem}.lb-main{min-width:0;flex:1}.lb-name{font-weight:800;font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-sub{font-size:.7rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.lb-points{font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--violet);flex-shrink:0}.thinking-dots span{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:var(--ink-muted);animation:dot-blink 1.2s infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-blink{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1.15)}}.lb-entry.just-solved{animation:solve-glow 1.2s ease}@keyframes solve-glow{0%{background:var(--grass);transform:scale(1.05)}to{background:#faf6ec;transform:scale(1)}}.play-layout{display:grid;grid-template-columns:minmax(320px,480px) minmax(280px,360px);grid-template-rows:minmax(0,1fr);justify-content:center;gap:20px}.play-board-col{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.play-board-col .board-wrap{min-height:0}.play-board-col .board{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.play-board-col .board::-webkit-scrollbar{display:none}.play-status{text-align:center;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--ink-muted);min-height:1.4em}.solved-banner{background:linear-gradient(120deg,var(--grass),#8ade93);color:#fff;border-radius:var(--radius-m);padding:10px 16px;text-align:center;font-family:var(--font-display);font-weight:800;box-shadow:0 8px 18px #6bcb7759;animation:banner-drop .5s var(--bounce) both}@keyframes banner-drop{0%{transform:translateY(-16px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.round-pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface);padding:6px 14px;border-radius:999px;font-family:var(--font-display);font-weight:700;font-size:.85rem;box-shadow:0 4px 12px var(--shadow-sm);border:2px solid var(--line)}.rail-toggle{display:none}@media (max-width: 819px){.play-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.rail{order:-1}.play-board-col .kbd{margin-top:auto}.rail-collapsible{display:grid;gap:12px;max-height:min(45dvh,430px)}.rail-toggle{display:flex;width:100%;justify-content:space-between;align-items:center;background:var(--surface);border-radius:var(--radius-m);padding:10px 14px;font-family:var(--font-display);font-weight:700;font-size:.9rem;box-shadow:0 4px 12px var(--shadow-sm);border:2px solid var(--line)}.rail-toggle .chev{transition:transform var(--speed-med) var(--bounce)}.rail-toggle.open .chev{transform:rotate(180deg)}.rail-collapsible.closed{display:none}}.countdown-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:radial-gradient(circle at 50% 42%,#fff9efe0,#fff9eff5);backdrop-filter:blur(4px);pointer-events:all}.count-num{font-family:var(--font-display);font-weight:800;font-size:clamp(7rem,30vw,12rem);line-height:1;animation:count-zoom .9s var(--bounce) both;text-shadow:0 6px 0 rgba(35,38,59,.08),0 20px 40px var(--shadow-md)}.count-num.go{font-size:clamp(4.5rem,20vw,8rem);animation:go-pop .8s var(--bounce) both}.count-hint{font-family:var(--font-display);font-weight:700;color:var(--ink-muted);animation:fade-pulse 1.4s ease-in-out infinite}@keyframes count-zoom{0%{transform:scale(.2);opacity:0}45%{transform:scale(1.15);opacity:1}to{transform:scale(.92);opacity:.85}}@keyframes go-pop{0%{transform:scale(.3) rotate(-6deg);opacity:0}40%{transform:scale(1.25) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes fade-pulse{0%,to{opacity:.5}50%{opacity:1}}.modal-backdrop{position:fixed;inset:0;z-index:90;background:#23263b66;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;animation:backdrop-in .25s ease both}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--paper);border-radius:var(--radius-l);box-shadow:0 24px 60px #23263b59;width:min(560px,100%);max-height:min(86vh,720px);max-height:min(86dvh,720px);overflow-y:auto;padding:22px;animation:modal-in .35s var(--bounce) both}@keyframes modal-in{0%{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.modal-close{width:34px;height:34px;border-radius:50%;background:#f0ebde;font-size:1rem;font-weight:800;color:var(--ink-muted);display:flex;align-items:center;justify-content:center;transition:transform var(--speed-fast) var(--bounce),background var(--speed-fast) ease}.modal-close:hover{background:var(--coral);color:#fff;transform:rotate(90deg)}.sheet-section{margin-bottom:18px}.sheet-label{font-family:var(--font-display);font-weight:700;font-size:.92rem;margin-bottom:8px;display:flex;justify-content:space-between;align-items:baseline}.sheet-hint{font-size:.72rem;color:var(--ink-muted);font-family:var(--font-body);font-weight:600}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}.toast-wrap{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{background:var(--ink);color:#fff;font-weight:700;font-size:.9rem;padding:10px 18px;border-radius:999px;box-shadow:0 12px 28px #23263b59;animation:toast-in .35s var(--bounce) both;display:flex;align-items:center;gap:8px;max-width:100%}.toast.error{background:var(--coral-deep)}.toast.good{background:var(--grass-deep)}.toast.out{animation:toast-out .3s ease both}@keyframes toast-in{0%{opacity:0;transform:translateY(18px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(10px) scale(.92)}}.results-hero{text-align:center;padding:26px 16px 18px}.spotlight-winner{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,7vw,3rem);background:linear-gradient(100deg,var(--coral) 10%,var(--sunshine-deep) 45%,var(--teal-deep) 85%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 rgba(35,38,59,.08));animation:winner-pop .6s var(--bounce) .15s both}@keyframes winner-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.answer-line{margin-top:10px;font-weight:700;color:var(--ink-muted)}.report-word{margin-top:10px;padding:4px 10px;background:none;border:none;color:var(--ink-muted);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;opacity:.8}.report-word:hover:enabled{opacity:1;text-decoration:underline}.report-word:disabled{cursor:default;opacity:.55}.podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:18px auto 8px;max-width:460px}.podium-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;animation:podium-drop .7s var(--bounce) both}.podium-block{width:100%;border-radius:var(--radius-m) var(--radius-m) 4px 4px;display:flex;align-items:flex-start;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:#fffffff2;padding-top:8px;text-shadow:0 2px 0 rgba(0,0,0,.15)}.podium-step.p1 .podium-block{height:104px;background:linear-gradient(160deg,var(--sunshine),var(--sunshine-deep));box-shadow:0 10px 22px #ffd93d73;animation-delay:.35s}.podium-step.p2 .podium-block{height:76px;background:linear-gradient(160deg,#c3cad6,#9aa3b5);box-shadow:0 8px 18px #9aa3b573;animation-delay:.22s}.podium-step.p3 .podium-block{height:58px;background:linear-gradient(160deg,#e0995c,#c47a3d);box-shadow:0 8px 18px #c47a3d66;animation-delay:.1s}.podium-step.p1{animation-delay:.35s}.podium-step.p2{animation-delay:.22s}.podium-step.p3{animation-delay:.1s}@keyframes podium-drop{0%{transform:translateY(-140vh) rotate(4deg)}70%{transform:translateY(6px) rotate(-1deg)}to{transform:translateY(0) rotate(0)}}.medal{font-size:1.6rem;filter:drop-shadow(0 3px 4px var(--shadow-md))}.result-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-m);background:var(--surface);border:2px solid var(--line);animation:result-slide .5s var(--bounce) both;transition:transform var(--speed-fast) var(--bounce),box-shadow var(--speed-fast) ease}.result-row:hover{transform:translate(4px)}.result-row.me{border-color:var(--teal);background:linear-gradient(135deg,rgba(78,205,196,.12),var(--surface) 65%)}@keyframes result-slide{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.xp-chip{margin-left:auto;background:#845ec224;color:var(--violet-deep);font-family:var(--font-display);font-weight:800;font-size:.85rem;padding:4px 10px;border-radius:999px;flex-shrink:0;font-variant-numeric:tabular-nums}.points-chip{background:#ffd93d4d;color:#8a6d00;font-family:var(--font-display);font-weight:800;font-size:.8rem;padding:3px 9px;border-radius:999px;flex-shrink:0}.stat-sub{font-size:.72rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.award-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.award-pill{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:800;padding:2px 9px;border-radius:999px;white-space:nowrap;box-shadow:inset 0 -1px #23263b0f;animation:chip-in .4s var(--bounce) both}.host-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.waiting-note{text-align:center;color:var(--ink-muted);font-weight:700;padding:10px;animation:fade-pulse 2s ease-in-out infinite}.standings-table{width:100%;border-collapse:separate;border-spacing:0 8px}.standings-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);text-align:left;padding:0 10px;font-weight:800}.standings-table td{background:var(--surface);padding:10px;font-weight:700;font-size:.92rem}.standings-table tr td:first-child{border-radius:var(--radius-m) 0 0 var(--radius-m)}.standings-table tr td:last-child{border-radius:0 var(--radius-m) var(--radius-m) 0;text-align:right}.standings-table tr.me-row td{background:linear-gradient(135deg,rgba(78,205,196,.14),var(--surface) 70%)}.rank-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-display);font-weight:800;font-size:.8rem;padding:3px 10px;border-radius:999px;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.18)}.xp-bar-wrap{width:100%}.xp-track{height:16px;border-radius:999px;background:#efe9da;overflow:hidden;box-shadow:inset 0 2px 4px #23263b14}.xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--grass));transition:width .9s var(--bounce);position:relative}.xp-fill:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-55deg,rgba(255,255,255,.22) 0 8px,transparent 8px 16px);animation:xp-stripes 1.2s linear infinite}@keyframes xp-stripes{to{background-position-x:27px}}.xp-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:.78rem;font-weight:700;color:var(--ink-muted)}.react-bar{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.react-btn{font-size:1.25rem;width:42px;height:38px;border-radius:var(--radius-m);background:#faf6ec;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;transition:transform var(--speed-fast) var(--bounce),background var(--speed-fast) ease,border-color var(--speed-fast) ease}.react-btn:hover{transform:translateY(-3px) scale(1.12);background:var(--surface);border-color:var(--teal)}.react-btn:active{transform:scale(.9)}.reaction-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:40}.reaction-bubble{position:absolute;bottom:-8px;display:flex;flex-direction:column;align-items:center;gap:2px;animation:bubble-rise 2.6s ease-in forwards}.reaction-bubble .rb-emoji{font-size:1.9rem;filter:drop-shadow(0 4px 6px var(--shadow-md))}.reaction-bubble .rb-name{font-size:.66rem;font-weight:800;color:var(--ink-muted);background:#ffffffd9;border-radius:999px;padding:1px 7px;white-space:nowrap}@keyframes bubble-rise{0%{transform:translateY(0) scale(.4);opacity:0}12%{transform:translateY(-12%) scale(1.15);opacity:1}25%{transform:translateY(-22%) scale(1)}to{transform:translateY(-46vh) scale(.9);opacity:0}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;min-height:48px}.topbar-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:40px;height:40px;border-radius:var(--radius-m);background:var(--surface);box-shadow:0 3px 8px var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;transition:transform var(--speed-fast) var(--bounce),background var(--speed-fast) ease}.icon-btn:hover{transform:translateY(-2px) scale(1.06)}.icon-btn.muted-on{background:#f0ebde;opacity:.75}.conn-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.conn-dot.open{background:var(--grass);box-shadow:0 0 0 3px #6bcb7740}.conn-dot.connecting{background:var(--sunshine-deep);animation:fade-pulse 1s infinite}.conn-dot.closed{background:var(--coral)}.home-wrap{display:flex;flex-direction:column;align-items:center;gap:22px;padding-top:4vh}.home-tagline{font-weight:700;color:var(--ink-muted);font-size:1.02rem;text-align:center}.home-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,340px));gap:16px;width:100%;justify-content:center}.home-card{display:flex;flex-direction:column;gap:12px;align-items:stretch}.home-card-icon{font-size:2rem}.room-list-card{width:min(420px,100%);display:flex;flex-direction:column;gap:10px}.room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.room-list-row{display:flex;align-items:center;gap:10px;padding:8px 2px}.room-list-row+.room-list-row{border-top:1px solid var(--line)}.room-list-code{font-weight:800;letter-spacing:.12em;font-variant-numeric:tabular-nums}.demo-tiles{display:flex;gap:5px;justify-content:center}.demo-tiles .tile{width:38px;height:38px;font-size:1.1rem;border-radius:9px;aspect-ratio:auto;animation:chip-in .45s var(--bounce) both}.howto-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.howto-list li{display:flex;gap:12px;align-items:flex-start;font-weight:600;line-height:1.45}.howto-emoji{font-size:1.4rem;flex-shrink:0;line-height:1.2}.footer-credit{text-align:center;color:var(--ink-muted);font-size:.8rem;font-weight:700;margin-top:26px;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.stat-cell{background:#faf6ec;border-radius:var(--radius-m);padding:14px 10px;text-align:center;border:2px solid var(--line)}.stat-num{font-family:var(--font-display);font-weight:800;font-size:1.6rem;line-height:1.1}.stat-cap{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.tier-big{display:flex;align-items:center;gap:12px}.tier-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:800;color:#fff;padding:6px 14px;border-radius:999px;text-shadow:0 1px 0 rgba(0,0,0,.2);box-shadow:0 6px 14px var(--shadow-md)}.confetti-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:200}.auth-error-banner{position:fixed;top:0;left:0;right:0;z-index:200;background:#c0392b;color:#fff;font-size:.8rem;font-weight:600;padding:8px 16px;text-align:center;word-break:break-all}.conn-lost{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:110;background:var(--ink);color:#fff;font-weight:700;font-size:.82rem;padding:8px 16px;border-radius:999px;display:flex;align-items:center;gap:8px;box-shadow:0 10px 24px #23263b59;animation:toast-in .3s var(--bounce) both}.spin{display:inline-block;animation:slow-spin 1.1s linear infinite}.divider{height:2px;background:var(--line);border:none;border-radius:2px;margin:14px 0;opacity:.7}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.grow{flex:1;min-width:0}.spinner{width:42px;height:42px;border-radius:50%;border:5px solid #efe9da;border-top-color:var(--coral);animation:slow-spin .9s linear infinite;margin:0 auto}.boot-screen{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.wordmark .wm-letter,.wordmark .wm-flag,.timer-ring.danger,.countdown-overlay .count-num,.countdown-overlay .count-hint,.xp-fill:after,.mode-card.random .mode-emoji,.demo-tiles .tile,.spin,.thinking-dots span{animation:none!important}}@media (min-width: 820px){.app-fit{padding:8px 16px 10px}.app-fit>.topbar{min-height:40px;margin-bottom:6px}.play-board-col{gap:8px}.play-board-col .board{--tile-max: min(56px, calc(13.7vh - 24px) )}.kbd{gap:4px;margin:4px auto 0}.kbd-row{gap:4px}.key{height:clamp(28px,5.8vh,38px);border-radius:6px;font-size:.78rem}}.results-list{gap:8px;margin:14px auto;max-width:520px}.end-reactions{margin-top:14px}@media (min-width: 820px){.app-fit .end-screen>.results-hero{padding:10px 16px 4px}.app-fit .end-screen>.card{padding:12px 16px}.app-fit .spotlight-winner{font-size:clamp(1.4rem,4.6vh,1.9rem)}.app-fit .tile-row.answer-reveal{--track: 46px}.app-fit .podium-block{font-size:1.05rem;padding-top:3px}.app-fit .podium-step.p1 .podium-block{height:58px}.app-fit .podium-step.p2 .podium-block{height:42px}.app-fit .podium-step.p3 .podium-block{height:32px}.app-fit .result-row{padding:5px 10px}.app-fit .standings-table{border-spacing:0 5px}.app-fit .standings-table td{padding:6px 10px}.app-fit .host-actions .btn{padding:9px 18px;font-size:.95rem}}
