@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.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:Sora;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/sora-latin-ext-500-normal-B5KKQIFO.woff2) format("woff2"),url(/assets/sora-latin-ext-500-normal-DwxUJRqY.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:Sora;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/sora-latin-500-normal-01eiPEn0.woff2) format("woff2"),url(/assets/sora-latin-500-normal-w58xtEt9.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:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-ext-600-normal-Cue1zdhl.woff2) format("woff2"),url(/assets/sora-latin-ext-600-normal-DLOJK0Ta.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:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-600-normal-Cdg4DaK0.woff2) format("woff2"),url(/assets/sora-latin-600-normal-1_7fyUAY.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:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sora-latin-ext-700-normal-DM0oy5s8.woff2) format("woff2"),url(/assets/sora-latin-ext-700-normal-Oc7uZIYt.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:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sora-latin-700-normal-9waGdLWo.woff2) format("woff2"),url(/assets/sora-latin-700-normal-BKPfQAnC.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{color-scheme:dark;--spy-color-canvas: #0d1020;--spy-color-canvas-elevated: #11162a;--spy-color-surface: #181e36;--spy-color-surface-raised: #222a47;--spy-color-surface-pressed: #2b3556;--spy-color-border: #384260;--spy-color-border-strong: #596788;--spy-color-text: #f7f8ff;--spy-color-text-muted: #b9c1d8;--spy-color-text-subtle: #8d98b5;--spy-color-primary: #7451d5;--spy-color-primary-hover: #8564e4;--spy-color-on-primary: #ffffff;--spy-color-cyan: #5bd7ea;--spy-color-on-cyan: #082c35;--spy-color-amber: #f5bd5e;--spy-color-on-amber: #3d2700;--spy-color-danger: #ff8a97;--spy-color-on-danger: #47000d;--spy-color-success: #70d6a1;--spy-color-focus: #a98cff;--spy-font-display: "Sora", "Arial", sans-serif;--spy-font-body: "Inter", "Arial", sans-serif;--spy-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--spy-space-1: .25rem;--spy-space-2: .5rem;--spy-space-3: .75rem;--spy-space-4: 1rem;--spy-space-5: 1.25rem;--spy-space-6: 1.5rem;--spy-space-8: 2rem;--spy-space-10: 2.5rem;--spy-space-12: 3rem;--spy-space-16: 4rem;--spy-radius-control: .75rem;--spy-radius-card: 1.25rem;--spy-radius-pill: 999px;--spy-shadow-card: 0 .75rem 2.5rem rgb(0 0 0 / .26);--spy-shadow-focus: 0 0 0 .25rem rgb(169 140 255 / .32);--spy-transition-fast: .16s ease-out;--spy-content-width: 42rem;--spy-layout-width: 72rem;--spy-page-gutter: 1rem;--tg-safe-area-inset-top: 0px;--tg-safe-area-inset-right: 0px;--tg-safe-area-inset-bottom: 0px;--tg-safe-area-inset-left: 0px;--spy-safe-area-top: max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top));--spy-safe-area-right: max(env(safe-area-inset-right, 0px), var(--tg-safe-area-inset-right));--spy-safe-area-bottom: max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom));--spy-safe-area-left: max(env(safe-area-inset-left, 0px), var(--tg-safe-area-inset-left))}*,*:before,*:after{box-sizing:border-box}html{background:var(--spy-color-canvas);color:var(--spy-color-text);font-family:var(--spy-font-body);text-size-adjust:100%}body{min-block-size:100dvh;margin:0;overflow-x:hidden;background:var(--spy-color-canvas);color:var(--spy-color-text);font-size:1rem;line-height:1.5}button,input,textarea,select{font:inherit}button,[role=button]{touch-action:manipulation}a{color:inherit}:focus-visible{outline:.1875rem solid var(--spy-color-focus);outline-offset:.1875rem}.spy-page{min-block-size:100dvh;padding-block:max(var(--spy-space-4),var(--spy-safe-area-top)) max(var(--spy-space-4),var(--spy-safe-area-bottom));padding-inline:max(var(--spy-page-gutter),var(--spy-safe-area-left)) max(var(--spy-page-gutter),var(--spy-safe-area-right))}.spy-shell{inline-size:min(100%,var(--spy-layout-width));margin-inline:auto}.spy-content{inline-size:min(100%,var(--spy-content-width));margin-inline:auto}.spy-stack{display:grid;gap:var(--spy-space-4)}.spy-stack[data-gap=tight]{gap:var(--spy-space-2)}.spy-stack[data-gap=roomy]{gap:var(--spy-space-8)}.spy-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spy-space-3)}.spy-card{container-type:inline-size;border:1px solid var(--spy-color-border);border-radius:var(--spy-radius-card);background:var(--spy-color-surface);box-shadow:var(--spy-shadow-card)}.spy-card[data-tone=quiet]{box-shadow:none;background:var(--spy-color-canvas-elevated)}.spy-card[data-tone=live]{border-color:color-mix(in srgb,var(--spy-color-cyan) 50%,var(--spy-color-border))}.spy-card[data-tone=private]{border-color:color-mix(in srgb,var(--spy-color-primary) 52%,var(--spy-color-border))}.spy-card__body{padding:clamp(var(--spy-space-4),4vw,var(--spy-space-6))}.spy-eyebrow{margin:0;color:var(--spy-color-cyan);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.spy-title{margin:0;font-family:var(--spy-font-display);font-size:clamp(1.75rem,7vw,3.75rem);font-weight:700;letter-spacing:-.04em;line-height:1.1}.spy-subtitle{max-inline-size:65ch;margin:0;color:var(--spy-color-text-muted);font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.6}.spy-button{display:inline-flex;min-block-size:2.75rem;align-items:center;justify-content:center;gap:var(--spy-space-2);border:1px solid transparent;border-radius:var(--spy-radius-control);padding-inline:var(--spy-space-4);background:var(--spy-color-primary);color:var(--spy-color-on-primary);cursor:pointer;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;transition:background-color var(--spy-transition-fast),border-color var(--spy-transition-fast),color var(--spy-transition-fast),opacity var(--spy-transition-fast),transform var(--spy-transition-fast)}.spy-button:hover{background:var(--spy-color-primary-hover)}.spy-button:active{transform:scale(.98)}.spy-button[data-variant=secondary]{border-color:var(--spy-color-border-strong);background:transparent;color:var(--spy-color-text)}.spy-button[data-variant=secondary]:hover{background:var(--spy-color-surface-raised)}.spy-button[data-variant=ghost]{background:transparent;color:var(--spy-color-text-muted)}.spy-button[data-variant=ghost]:hover{background:var(--spy-color-surface-raised);color:var(--spy-color-text)}.spy-button[data-variant=danger]{background:var(--spy-color-danger);color:var(--spy-color-on-danger)}.spy-button:disabled,.spy-button[aria-disabled=true]{cursor:not-allowed;opacity:.48;transform:none}.spy-button--block{inline-size:100%}.spy-input{display:block;min-block-size:2.75rem;inline-size:100%;border:1px solid var(--spy-color-border-strong);border-radius:var(--spy-radius-control);padding-inline:var(--spy-space-3);background:var(--spy-color-canvas-elevated);color:var(--spy-color-text)}.spy-input::placeholder{color:var(--spy-color-text-subtle)}.spy-input:focus{border-color:var(--spy-color-focus);box-shadow:var(--spy-shadow-focus);outline:none}.spy-status{display:inline-flex;min-block-size:1.75rem;align-items:center;gap:var(--spy-space-2);border-radius:var(--spy-radius-pill);padding-inline:var(--spy-space-3);background:var(--spy-color-surface-raised);color:var(--spy-color-text-muted);font-size:.8125rem;font-weight:700}.spy-status:before{inline-size:.5rem;block-size:.5rem;flex:none;border-radius:50%;background:currentColor;content:""}.spy-status[data-state=live]{color:var(--spy-color-cyan)}.spy-status[data-state=host]{color:var(--spy-color-amber)}.spy-status[data-state=danger]{color:var(--spy-color-danger)}.spy-timer,.spy-code{font-family:var(--spy-font-mono);font-variant-numeric:tabular-nums;letter-spacing:.06em}.spy-sticky-action{position:sticky;inset-block-end:0;z-index:10;padding-block:var(--spy-space-3) max(var(--spy-space-3),var(--spy-safe-area-bottom));background:var(--spy-color-canvas)}.spy-skip-link{position:fixed;z-index:100;inset-block-start:var(--spy-space-3);inset-inline-start:var(--spy-space-3);transform:translateY(-160%);border-radius:var(--spy-radius-control);padding:var(--spy-space-3) var(--spy-space-4);background:var(--spy-color-text);color:var(--spy-color-canvas);font-weight:700;text-decoration:none}.spy-skip-link:focus{transform:translateY(0)}.spy-visually-hidden{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@container (min-width: 48rem){.spy-card__body{padding:var(--spy-space-8)}}@media(min-width:37.5rem){:root{--spy-page-gutter: 1.5rem}}@media(min-width:64rem){:root{--spy-page-gutter: 2rem}}:root{color-scheme:dark;--game-background: #070e1b;--game-surface: #101b2c;--game-surface-strong: #152238;--game-surface-muted: #0b1626;--game-surface-hover: #14243a;--game-border: #293a54;--game-border-strong: #3a4f70;--game-text: #f5f7fb;--game-text-muted: #bac4d4;--game-text-subtle: #91a0b5;--game-primary: #8c65f6;--game-primary-hover: #a789fa;--game-primary-foreground: #ffffff;--game-cyan: #62d7eb;--game-cyan-surface: #102f40;--game-amber: #f1c46f;--game-success: #73d8ad;--game-danger: #f49aa7;--game-danger-surface: #351d29;--game-focus: #c4b5fd;--game-radius: 22px;--game-radius-sm: 14px;--game-radius-lg: 30px;--game-purple: var(--game-primary);--game-shadow-sm: 0 10px 28px rgba(0, 0, 0, .16);--game-shadow-md: 0 20px 55px rgba(0, 0, 0, .22);--game-control-height: 50px;--motion-fast: .16s;--motion-base: .24s;--motion-ease: cubic-bezier(.22, 1, .36, 1);--safe-top: var(--spy-safe-area-top, max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top, 0px)));--safe-bottom: var(--spy-safe-area-bottom, max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px)));font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--game-background);scroll-behavior:smooth}body{min-width:320px;min-height:100dvh;margin:0;background:var(--game-background);color:var(--game-text)}button,input,select,textarea{font:inherit}button{border:0}button:not(:disabled),label:has(input:not(:disabled)){cursor:pointer}button:focus-visible,input:focus-visible,label:focus-within{outline:3px solid var(--game-focus);outline-offset:3px}.game-shell{position:relative;min-height:100dvh;padding:calc(var(--safe-top) + 14px) clamp(12px,3vw,36px) calc(var(--safe-bottom) + 24px);isolation:isolate}.game-frame{width:min(100%,1040px);margin:0 auto;animation:frame-enter .36s var(--motion-ease) both}.skip-link{position:fixed;z-index:20;top:8px;left:8px;padding:12px 16px;border-radius:var(--game-radius-sm);background:var(--game-primary);color:var(--game-primary-foreground);transform:translateY(-150%);transition:transform .18s ease-out}.skip-link:focus{transform:translateY(0)}.app-header{display:grid;align-items:center;justify-content:center;justify-items:center;gap:10px;min-height:64px;margin-bottom:16px;padding:14px clamp(14px,3vw,22px);border:1px solid rgba(58,79,112,.72);border-radius:var(--game-radius);background:#101b2ceb;box-shadow:var(--game-shadow-sm);text-align:center}.app-header__brand-row,.app-header__status-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-width:0}.brand-mark,.local-status,.count-badge,.private-indicator,.private-strip__title,.text-button,.button,.room-code-card,.section-title-row,.settings-heading,.speaker-card__body,.phase-step,.result-list li,.vote-card{display:flex;align-items:center}.brand-mark{gap:10px;font-family:Sora,Inter,sans-serif;font-size:clamp(1rem,2vw,1.125rem);font-weight:700;letter-spacing:-.02em}.brand-mark__glyph{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--game-border);border-radius:50%;color:var(--game-cyan);background:#62d7eb1a;box-shadow:inset 0 1px #ffffff14,0 8px 24px #00000029}.status-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--game-border);border-radius:999px;color:var(--game-text-muted);background:var(--game-surface-muted);font-size:.75rem;font-weight:600;line-height:1.25}.status-chip--action,.status-chip--voice{min-height:44px;cursor:pointer;transition:border-color var(--motion-fast) ease-out,color var(--motion-fast) ease-out,background-color var(--motion-fast) ease-out}.status-chip--action:hover,.status-chip--action:focus-visible,.status-chip--voice:hover,.status-chip--voice:focus-visible{border-color:var(--game-cyan);color:var(--game-cyan)}.status-chip--voice,.status-chip--connected{border-color:#2c6756}.status-chip--voice{color:var(--game-cyan)}.status-chip--connecting,.status-chip--offline{border-color:#765d2e;color:var(--game-amber)}.status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--game-text-subtle)}.status-chip--connected .status-dot{background:var(--game-success);box-shadow:0 0 0 4px #73d8ad1a}.status-chip--connecting .status-dot,.status-chip--offline .status-dot{background:var(--game-amber);box-shadow:0 0 0 4px #f1c46f1a}.exit-button{min-height:44px;color:var(--game-text-subtle)}.phase-progress{margin-bottom:22px;padding:14px clamp(12px,3vw,18px);border:1px solid rgba(41,58,84,.82);border-radius:var(--game-radius);background:#0b1626b8}.phase-progress__summary{display:grid;justify-items:center;gap:2px;margin-bottom:12px;text-align:center}.phase-progress__summary span{color:var(--game-text-subtle);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.phase-progress__summary strong{font-family:Sora,Inter,sans-serif;font-size:.9375rem}.phase-steps{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;padding:0;margin:0;list-style:none}.phase-step{position:relative;flex-direction:column;justify-content:center;gap:6px;min-width:0;min-height:34px;padding:0;color:var(--game-text-subtle);font-size:.6875rem;font-weight:600;line-height:1.2;text-align:center}.phase-step:after{position:absolute;z-index:-1;top:14px;right:50%;left:-50%;height:1px;background:var(--game-border);content:""}.phase-step:first-child:after{display:none}.phase-step__dot{position:relative;z-index:1;display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:1px solid currentColor;border-radius:50%;background:var(--game-surface-muted);font-size:.6875rem}.phase-step--complete,.phase-step--complete:after{color:var(--game-success)}.phase-step--complete:after{background:#73d8ad7a}.phase-step--current{color:var(--game-text)}.phase-step__dot--current{border-color:var(--game-primary);background:var(--game-primary);color:var(--game-primary-foreground);box-shadow:0 0 0 5px #8c65f61f}.phase-step__label{display:none}.game-content{outline:none}.game-content[data-transitioning=true] .screen-stage{pointer-events:none}.screen{width:min(100%,820px);margin:0 auto;text-align:center}.screen--discussion{width:min(100%,1000px)}.hero-copy,.screen-heading,.result-hero{margin-bottom:24px}.screen-heading{display:grid;align-items:center;justify-content:center;justify-items:center;gap:16px;text-align:center}.screen-heading>div:first-child{min-width:0;display:grid;justify-items:center}.screen-heading--centered,.result-hero{text-align:center}.eyebrow,.panel-label,.role-label{margin:0 0 6px;color:var(--game-cyan);font-size:.75rem;font-weight:700;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}h1,h2,p{margin-top:0}h1,h2,h3{font-family:Sora,Inter,sans-serif}h1{margin-bottom:10px;font-size:clamp(2rem,8vw,3.75rem);line-height:1.08;letter-spacing:-.045em}h1[tabindex="-1"]:focus{outline:none}h2{margin:0;font-size:clamp(1.125rem,3.4vw,1.375rem);line-height:1.25;letter-spacing:-.025em}.screen-lead,.demo-note,.field-hint,.player-row__meta,.speaker-card p,.role-card__hidden p,.result-list li>span>span{color:var(--game-text-muted);font-size:.9375rem;line-height:1.55}.screen-lead{max-width:58ch;margin-right:auto;margin-bottom:0;margin-left:auto}.panel,.role-card,.private-strip,.timer-card{border:1px solid var(--game-border);border-radius:var(--game-radius);background:var(--game-surface);box-shadow:var(--game-shadow-sm),inset 0 1px #ffffff06}.panel{padding:clamp(18px,4vw,28px);text-align:center}.entry-panel,.create-flow{display:grid;gap:24px}.create-flow{width:100%}.field{display:grid;gap:8px;color:var(--game-text);font-size:.875rem;font-weight:600;justify-items:center;text-align:center}.field input,.field textarea,.field select{width:100%;min-height:var(--game-control-height);padding:12px 16px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);outline:none;background:var(--game-surface-muted);color:var(--game-text);font-size:1rem;text-align:center;transition:border-color var(--motion-fast) ease-out,background-color var(--motion-fast) ease-out,box-shadow var(--motion-fast) ease-out}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:42px;background-image:linear-gradient(45deg,transparent 50%,var(--game-text-muted) 50%),linear-gradient(135deg,var(--game-text-muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.field textarea{min-height:132px;resize:vertical;line-height:1.45}.field input::placeholder,.field textarea::placeholder{color:var(--game-text-subtle)}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{border-color:var(--game-focus);box-shadow:0 0 0 4px #c4b5fd29}.field--error input,.field--error textarea,.field--error select{border-color:var(--game-danger);background:color-mix(in srgb,var(--game-danger) 10%,var(--game-surface-muted));box-shadow:0 0 0 4px #f18c9a24}.field .field-error{color:var(--game-danger);font-weight:600}.field small{color:var(--game-text-muted);font-size:.75rem;font-weight:400;line-height:1.35}.entry-action,.join-block{display:grid;justify-items:center;gap:14px;text-align:center}.entry-action{padding-top:24px;border-top:1px solid var(--game-border)}.mode-picker{display:grid;gap:10px;width:min(100%,680px);padding:0;border:0;text-align:center}.mode-picker legend{margin-bottom:2px;color:var(--game-text);font-size:.875rem;font-weight:700}.mode-option{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface-muted);cursor:pointer;text-align:center;transition:border-color var(--motion-fast) ease-out,background-color var(--motion-fast) ease-out,box-shadow var(--motion-fast) ease-out}.mode-option:hover{border-color:var(--game-border-strong)}.mode-option--active{border-color:var(--game-purple);background:color-mix(in srgb,var(--game-purple) 12%,var(--game-surface-muted));box-shadow:inset 0 0 0 1px #8c65f629}.mode-option input{width:18px;height:18px;margin:0;accent-color:var(--game-purple)}.mode-option span{display:grid;gap:2px;justify-items:center}.mode-option small{color:var(--game-text-muted);font-size:.75rem;font-weight:400;line-height:1.35}.entry-action h2{margin-bottom:6px}.entry-action p{margin-bottom:0;color:var(--game-text-muted);font-size:.9375rem}.divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;color:var(--game-text-subtle);font-size:.8125rem}.divider:before,.divider:after{height:1px;background:var(--game-border);content:""}.field-hint{min-height:22px;margin:-6px 0 0}.button,.icon-button,.text-button{min-height:var(--game-control-height);transition:background-color var(--motion-fast) ease-out,border-color var(--motion-fast) ease-out,color var(--motion-fast) ease-out,box-shadow var(--motion-fast) ease-out,opacity var(--motion-fast) ease-out;touch-action:manipulation}.icon-button.exit-button{width:44px;height:44px;min-width:44px;min-height:44px}.button{justify-content:center;gap:10px;width:min(100%,360px);padding:12px 20px;border:1px solid transparent;border-radius:var(--game-radius-sm);font-weight:700;line-height:1.25}.button--full{width:min(100%,360px)}.button--primary{background:var(--game-primary);color:var(--game-primary-foreground);box-shadow:0 10px 24px #8c65f642,inset 0 1px #ffffff24}.button--primary:hover:not(:disabled){background:var(--game-primary-hover);box-shadow:0 14px 30px #8c65f657,inset 0 1px #ffffff29}.button--primary:active:not(:disabled),.button--secondary:active:not(:disabled),.text-button:active,.icon-button:active{opacity:.9}.button--secondary{border-color:var(--game-border);background:var(--game-surface-muted);color:var(--game-text)}.button--secondary:hover:not(:disabled){border-color:var(--game-cyan);background:var(--game-surface-strong)}.button--inline{flex:0 0 auto;width:fit-content}.button:disabled{cursor:not-allowed;opacity:.46}.button--danger{border:1px solid #7d4051;background:var(--game-danger-surface);color:var(--game-danger)}.button--danger:hover:not(:disabled){border-color:var(--game-danger);background:#442332}.button-spinner{display:inline-block;width:18px;height:18px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-rotate .7s linear infinite}.demo-note{margin:18px auto 0;max-width:54ch;color:var(--game-text-subtle);text-align:center}.icon-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--game-text-muted);font-size:.875rem;font-weight:600}.icon-button:hover,.text-button:hover{border-color:var(--game-border);color:var(--game-text)}.room-code-card{flex-direction:column;justify-content:center;gap:16px;margin-bottom:16px;text-align:center}.room-code{display:block;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(1.55rem,7vw,2.25rem);font-variant-numeric:tabular-nums;letter-spacing:.08em}.lobby-settings,.roster-panel,.round-picker,.result-summary,.results-roster{margin-bottom:16px}.settings-heading,.section-title-row{justify-content:center;flex-wrap:wrap;gap:16px;text-align:center}.settings-heading>div,.section-title-row>div{display:grid;justify-items:center;text-align:center}.tag,.count-badge{display:inline-flex;align-items:center;gap:6px;width:fit-content;min-height:28px;padding:4px 9px;border:1px solid var(--game-border);border-radius:999px;color:var(--game-text-muted);font-size:.75rem;font-weight:700;white-space:nowrap}.tag--host{border-color:#765d2e;color:var(--game-amber)}.tag--danger{border-color:#703748;color:var(--game-danger)}.tag--success{border-color:#336850;color:var(--game-success)}.settings-note{margin:14px 0 0;color:var(--game-text-muted);font-size:.8125rem}.trend-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}.trend-option{display:grid;min-height:96px;align-content:center;justify-items:center;gap:5px;padding:14px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface-muted);color:var(--game-text);text-align:center;transition:border-color var(--motion-fast) ease-out,background-color var(--motion-fast) ease-out,box-shadow var(--motion-fast) ease-out}.trend-option span{color:var(--game-text-muted);font-size:.75rem;line-height:1.35}.trend-option:hover:not(:disabled),.trend-option--selected{border-color:var(--game-primary);background:color-mix(in srgb,var(--game-primary) 12%,var(--game-surface-muted))}.trend-option--selected{box-shadow:inset 0 0 0 1px #8c65f629}.trend-skeleton{min-height:96px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface-muted);opacity:.62;animation:skeleton-pulse 1.25s ease-in-out infinite}.trend-fallback{display:grid;grid-column:1 / -1;justify-items:center;gap:10px;padding:16px;border:1px dashed var(--game-border-strong);border-radius:var(--game-radius-sm)}.trend-fallback p{margin:0;color:var(--game-text-muted);font-size:.8125rem;line-height:1.5}.lobby-settings-editor{display:grid;gap:14px;margin-top:16px}.lobby-settings-editor .button{justify-self:center}.settings-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:20px 0 0}.settings-list div{min-width:0;padding:12px;border-radius:var(--game-radius-sm);background:var(--game-surface-muted)}.settings-list dt,.secret-details dt{margin-bottom:4px;color:var(--game-text-subtle);font-size:.75rem}.settings-list dd,.secret-details dd{margin:0;color:var(--game-text);font-weight:700}.roster,.result-list{display:grid;gap:8px;padding:0;margin:18px 0 0;list-style:none}.player-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:auto auto;align-items:center;gap:10px;min-height:70px;padding:10px 12px;border:1px solid transparent;border-radius:var(--game-radius-sm);background:var(--game-surface-muted);transition:background-color var(--motion-fast) ease-out,border-color var(--motion-fast) ease-out}.player-row:hover{border-color:var(--game-border);background:var(--game-surface-hover)}.player-row__identity{display:grid;grid-column:2;grid-row:1;min-width:0;gap:2px;justify-items:center;text-align:center}.player-row__identity strong,.vote-card__name strong,.result-list strong{overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.player-row__meta{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.75rem}.player-row>.avatar{grid-column:1;grid-row:1 / span 2;justify-self:end}.player-row>.tag{grid-column:2;grid-row:2;justify-self:center}.player-row__balance{grid-column:3;grid-row:1 / span 2;width:40px}.avatar{display:grid;flex:0 0 auto;width:40px;height:40px;place-items:center;border:1px solid #34516e;border-radius:50%;background:#16304c;color:var(--game-cyan);font-size:.8125rem;font-weight:700}.avatar--large{width:56px;height:56px;font-size:1rem}.presence{display:inline-block;width:8px;height:8px;border-radius:50%}.presence--ready{background:var(--game-success)}.presence--waiting{background:var(--game-amber)}.sticky-action{position:sticky;bottom:0;z-index:2;display:grid;justify-items:center;gap:8px;padding:16px 12px calc(10px + var(--safe-bottom));border-top:1px solid var(--game-border);background:#070e1bf0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.action-hint{max-width:52ch;margin:0;color:var(--game-text-subtle);font-size:.75rem;line-height:1.45;text-align:center}.screen--role{max-width:560px}.role-card{min-height:320px;padding:clamp(24px,7vw,40px);margin-bottom:16px;background:var(--game-surface-strong);perspective:1000px;transform-style:preserve-3d}.private-indicator{justify-content:center;gap:8px;color:var(--game-cyan);font-size:.8125rem;font-weight:700}.role-card__content{margin-top:clamp(32px,10vw,72px)}.role-label{color:var(--game-text-muted)}.role-name{display:block;margin-bottom:28px;color:var(--game-primary-hover);font-family:Sora,Inter,sans-serif;font-size:clamp(2.5rem,13vw,4.75rem);line-height:1;letter-spacing:-.06em}.secret-details{display:grid;gap:12px;margin:0}.secret-details div{padding-top:12px;border-top:1px solid var(--game-border)}.secret-details dd{font-size:1rem;line-height:1.4}.role-card__hidden{display:grid;min-height:230px;place-content:center;justify-items:center;gap:16px;color:var(--game-text-muted);text-align:center}.role-card__hidden p{max-width:35ch;margin:0}.role-card--handoff{border-color:#3d4e78;background:var(--game-surface-muted)}.pass-handoff .screen-heading{margin-bottom:8px}.pass-handoff .sticky-action{position:static}.stacked-actions{display:grid;justify-items:center;gap:10px}.role-readiness{display:grid;gap:14px;margin-bottom:16px}.role-readiness__heading{display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;gap:12px}.role-readiness__heading>div{display:grid;justify-items:center;gap:4px}.role-readiness__heading h2{font-size:clamp(1rem,3.8vw,1.25rem)}.role-readiness__heading>strong{display:grid;min-width:52px;min-height:40px;place-items:center;border:1px solid var(--game-border-strong);border-radius:999px;color:var(--game-cyan);background:var(--game-cyan-surface);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.role-readiness__track{width:100%;height:8px;overflow:hidden;border-radius:999px;background:var(--game-surface-muted)}.role-readiness__bar{display:block;width:100%;height:100%;border-radius:inherit;transform-origin:left center;background:var(--game-success)}.timer-card{position:relative;display:grid;flex:0 0 auto;margin-left:0;min-width:104px;padding:10px 12px;border-color:#285969;background:var(--game-cyan-surface);color:var(--game-cyan);text-align:center;box-shadow:0 12px 32px #0a455933}.timer-card span{color:var(--game-text-muted);font-size:.6875rem;font-weight:600}.timer-card .timer-card__pulse{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;color:inherit;background:currentColor}.timer-card strong{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.25rem;font-variant-numeric:tabular-nums;letter-spacing:.03em}.timer-card--urgent{border-color:#765d2e;color:var(--game-amber)}.timer-card--critical{border-color:var(--game-danger);color:var(--game-danger);box-shadow:0 0 0 4px #f49aa714}.timer-card--role{width:fit-content;margin:0 auto 20px;text-align:center}.discussion-layout,.discussion-main{display:grid;gap:16px}.speaker-card__body,.private-strip,.vote-fieldset,.result-list,.roster,.discussion-roster{text-align:center}.speaker-card__body{flex-direction:column;justify-content:center;gap:14px}.speaker-card__body>div{display:grid;justify-items:center;min-width:0}.speaker-card h2{margin-bottom:4px}.speaker-card p{margin-bottom:0}.discussion-topic{border-color:#3d4e78;background:var(--game-surface-muted)}.discussion-topic h2{margin:4px 0 8px;font-size:clamp(1.1rem,3vw,1.35rem);line-height:1.35}.discussion-topic,.speaker-card,.result-summary,.results-roster,.spy-guess{text-align:center}.discussion-topic p,.phase-hint{margin:0;color:var(--game-text-muted);font-size:.875rem;line-height:1.45}.phase-hint{padding:14px 16px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface-muted);text-align:center}.private-strip{display:grid;grid-template-columns:1fr;justify-items:center;gap:12px;padding:16px;border-color:#285969;background:var(--game-cyan-surface)}.private-strip__title{justify-content:center;gap:8px;color:var(--game-cyan);font-size:.8125rem;font-weight:700}.private-strip__values{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:100%;gap:10px}.private-strip__value{display:grid;align-content:center;gap:2px;min-height:68px;padding:10px 12px;border:1px solid rgba(85,216,237,.12);border-radius:var(--game-radius-sm);background:#07101e47}.private-strip__value--accent{border-color:#8c65f673}.private-strip__value span,.private-strip>p{margin:0;color:var(--game-text-muted);font-size:.8125rem}.private-strip__value strong{color:var(--game-text)}.private-strip .text-button{justify-self:center;min-height:44px;color:var(--game-cyan)}.discussion-roster{align-self:start}.roster--compact{gap:6px}.roster--compact .player-row{min-height:50px}.roster--compact .player-row__meta,.roster--compact .tag{font-size:.6875rem}.vote-fieldset{padding:0;margin:0;border:0}.vote-fieldset legend{margin-bottom:14px;color:var(--game-text);font-family:Sora,Inter,sans-serif;font-size:1rem;font-weight:600}.vote-grid{display:grid;gap:10px}.vote-card{position:relative;gap:12px;min-height:64px;padding:10px;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface);transition:border-color var(--motion-fast) ease-out,background-color var(--motion-fast) ease-out,box-shadow var(--motion-fast) ease-out}.vote-card:hover{border-color:#5c769b;box-shadow:0 10px 22px #00000029}.vote-card--selected{border-color:var(--game-primary);background:#211d40;box-shadow:0 0 0 1px #8b5cf62e,0 12px 26px #472f9133}.vote-card input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;cursor:pointer;opacity:0}.vote-card__name{display:grid;min-width:0;gap:2px}.vote-card__name span{color:var(--game-text-muted);font-size:.75rem}.vote-card__marker{display:grid;width:24px;height:24px;place-items:center;margin-left:auto;border:1px solid var(--game-border);border-radius:50%;color:var(--game-primary-foreground)}.vote-card__marker>span{display:grid;place-items:center}.vote-card--selected .vote-card__marker{border-color:var(--game-primary);background:var(--game-primary)}.selection-summary{min-height:24px;margin:14px 0 0;color:var(--game-text-muted);font-size:.875rem}.spy-guess-toggle{margin-top:16px}.spy-guess{margin-top:16px;border-color:#703748;background:var(--game-danger-surface)}.spy-guess h2{margin-bottom:14px}.vote-waiting{display:grid;justify-items:center;gap:14px;padding:clamp(32px,8vw,48px) 24px;color:var(--game-cyan);text-align:center}.vote-waiting p{margin:0;color:var(--game-text-muted);font-size:.9375rem}.empty-state,.sync-state,.restore-card{display:grid;justify-items:center;gap:12px;color:var(--game-text-muted);text-align:center}.empty-state{padding:22px;border:1px dashed var(--game-border-strong);border-radius:var(--game-radius-sm);background:var(--game-surface-muted)}.empty-state p,.sync-state p,.restore-card p{max-width:52ch;margin:0;color:var(--game-text-muted);line-height:1.55}.restore-card{padding:clamp(28px,7vw,48px);margin-bottom:18px}.restore-orbit{display:grid;width:64px;height:64px;place-items:center;border:1px solid var(--game-cyan);border-radius:50%;color:var(--game-cyan);box-shadow:0 0 0 8px #62d7eb12;animation:restore-breathe 1.4s ease-in-out infinite}.result-hero{padding-top:clamp(12px,4vw,28px)}.result-hero--civilians h1{color:var(--game-success)}.result-hero--spy h1{color:var(--game-danger)}.result-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.result-summary>div{min-width:0;padding:12px;border-radius:var(--game-radius-sm);background:var(--game-surface-muted)}.result-summary strong{display:block;line-height:1.35}.result-list li{display:grid;grid-template-columns:34px 44px minmax(0,1fr) 56px;align-items:center;gap:10px;min-height:72px;padding:10px 12px;border:1px solid transparent;border-radius:var(--game-radius-sm);background:var(--game-surface-muted);text-align:center}.result-list li:hover{border-color:var(--game-border);background:var(--game-surface-hover)}.result-rank{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--game-border);border-radius:50%;color:var(--game-text-subtle);font-size:.75rem;font-weight:700}.result-player{display:grid;min-width:0;gap:2px;justify-items:center;text-align:center}.result-score{display:grid;justify-items:center;color:var(--game-primary-hover)}.result-score strong{font-family:Sora,Inter,sans-serif;font-size:1.05rem}.result-score small{color:var(--game-text-subtle);font-size:.625rem}.toast{position:fixed;z-index:30;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(var(--safe-bottom) + 16px);left:max(16px,env(safe-area-inset-left,0px));width:min(calc(100% - 32px),440px);padding:13px 16px;margin:0 auto;border:1px solid var(--game-border);border-radius:var(--game-radius-sm);background:var(--game-surface-strong);color:var(--game-text);font-size:.875rem;line-height:1.4;text-align:center}.narration-modal{display:grid;width:100%;overflow:hidden;place-items:center;pointer-events:none}.narration-modal__card{display:grid;gap:10px;width:min(100%,560px);padding:clamp(18px,4vw,28px) clamp(20px,5vw,32px);border:1px solid var(--game-border);border-radius:var(--game-radius);background:var(--game-surface-strong);box-shadow:0 20px 60px #00000073;text-align:center}.narration-modal__badge{display:inline-flex;align-items:center;justify-self:center;gap:6px;color:var(--game-cyan);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.narration-modal__card p{margin:0;color:var(--game-text);font-family:Sora,Inter,sans-serif;font-size:clamp(1.125rem,3.6vw,1.5rem);line-height:1.35}.dialog-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:calc(var(--safe-top) + 18px) 18px calc(var(--safe-bottom) + 18px);background:#030810bd}@media(min-width:720px){.dialog-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.dialog-card{display:grid;justify-items:center;gap:14px;width:min(100%,460px);padding:clamp(24px,6vw,34px);border:1px solid var(--game-border-strong);border-radius:var(--game-radius);background:var(--game-surface-strong);box-shadow:var(--game-shadow-md);text-align:center}.dialog-card__icon{display:grid;width:52px;height:52px;place-items:center;border:1px solid #7d4051;border-radius:50%;background:var(--game-danger-surface);color:var(--game-danger)}.dialog-card p{margin:0;color:var(--game-text-muted);line-height:1.55}.dialog-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;width:100%;margin-top:4px}.dialog-actions .button{width:min(100%,190px)}@media(min-width:600px){.game-shell{padding-right:clamp(24px,6vw,64px);padding-left:clamp(24px,6vw,64px)}.phase-steps{gap:8px}.phase-step{min-height:36px;padding:6px 4px;font-size:.75rem}.phase-progress__summary{margin-bottom:10px}.mode-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-picker legend{grid-column:1 / -1}.discussion-layout{gap:20px}.settings-list{grid-template-columns:repeat(2,minmax(0,1fr))}.vote-grid{grid-template-columns:1fr 1fr}.button--full,.stacked-actions .button{width:min(100%,360px)}}@media(max-width:899px){.screen--entry .hero-copy{margin-bottom:16px}.screen--entry .entry-panel{gap:18px;padding:clamp(16px,4vw,24px)}.screen--entry .create-flow{gap:18px}.screen--entry .entry-action{gap:10px;padding-top:16px}.screen--entry .demo-note{margin-top:14px}}@media(min-width:900px){.screen--entry{width:min(100%,900px)}.screen--entry .hero-copy{margin-bottom:12px}.screen--entry .entry-panel{gap:12px;padding:22px 28px}.screen--entry .join-block{grid-template-columns:minmax(0,560px);justify-content:center;align-items:center;gap:8px;width:100%}.screen--entry .join-block .field{grid-column:1;grid-row:1}.screen--entry .join-block .button{grid-column:1;grid-row:3;justify-self:center}.screen--entry .join-block .field-hint{grid-column:1;grid-row:2;margin:0}.screen--entry .create-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.screen--entry .entry-action{grid-column:1 / -1;gap:10px;padding-top:16px}.phase-step{flex-direction:row;min-height:48px}.phase-step__label{display:inline}}@media(min-width:760px){.screen-heading:has(>.timer-card){grid-template-columns:minmax(112px,1fr) minmax(0,600px) minmax(112px,1fr)}.screen-heading:has(>.timer-card)>div:first-child{grid-column:2}.screen-heading:has(>.timer-card)>.timer-card{grid-column:3;justify-self:end}}@media(min-width:1024px){.game-shell{padding-top:calc(var(--safe-top) + 24px);padding-bottom:calc(var(--safe-bottom) + 24px)}.app-header{margin-bottom:20px;padding:16px 24px}.discussion-layout{grid-template-columns:minmax(0,1fr) minmax(250px,.72fr);align-items:start}.discussion-roster{position:sticky;top:16px}.screen--lobby,.screen--voting,.screen--results{width:min(100%,860px)}.sticky-action{padding-bottom:12px}}@media(max-width:599px){.game-shell{padding-right:max(14px,env(safe-area-inset-right,0px));padding-left:max(14px,env(safe-area-inset-left,0px))}.app-header{align-items:center;justify-items:center}.app-header--in-room{position:relative;gap:6px;min-height:0;padding:8px}.app-header--in-room .app-header__brand-row{min-height:40px;padding:0 48px}.app-header--in-room .app-header__status-row{width:100%;gap:6px}.app-header--in-room .status-chip{min-width:0;padding-right:8px;padding-left:8px;font-size:.6875rem}.app-header--in-room .exit-button{position:absolute;top:6px;right:6px;width:44px;padding:0;justify-content:center}.app-header--in-room .exit-button span{display:none}.room-code-card{align-items:center;flex-direction:column}.room-code-card .button{width:100%}.screen-heading .timer-card{width:min(100%,180px);margin-left:0;text-align:center}.status-chip{max-width:100%}.status-chip span{min-width:0;overflow-wrap:anywhere}.phase-progress{padding:9px 8px;margin-bottom:14px}.phase-progress__summary{margin-bottom:7px}.phase-step__dot{width:26px;height:26px}.phase-step:after{top:12px}.role-card{min-height:230px;padding:20px}.role-card__content{margin-top:28px}.role-card__hidden{min-height:150px}.result-list li{grid-template-columns:30px 40px minmax(0,1fr) 48px;gap:8px;padding:10px 8px}}@media(max-height:520px)and (orientation:landscape){.game-shell{padding-top:calc(var(--safe-top) + 8px);padding-bottom:calc(var(--safe-bottom) + 8px)}.app-header{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;min-height:0;padding:5px 10px}.app-header--in-room .app-header__brand-row{padding:0}.app-header--in-room .app-header__status-row{width:auto;flex-wrap:nowrap}.app-header--in-room .exit-button{position:static}.brand-mark__glyph{width:30px;height:30px}.brand-mark{font-size:.875rem}.hero-copy,.screen-heading,.result-hero{margin-bottom:8px}.screen-heading{gap:6px}.screen-heading h1,.result-hero h1{margin-bottom:4px;font-size:clamp(1.75rem,7vw,2.5rem)}.screen-lead{font-size:.8125rem;line-height:1.35}.phase-progress{padding:7px 10px;margin-bottom:8px}.phase-progress__summary{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0}.phase-steps{display:none}.role-card{min-height:0;padding:20px}.role-card__content{margin-top:20px}.narration-modal{padding:0}.narration-modal__card{width:min(100%,540px);gap:4px;padding:8px 14px;border-radius:var(--game-radius-sm)}.narration-modal__badge{font-size:.625rem}.narration-modal__card p{font-size:.875rem;line-height:1.25}}@media(max-height:600px){.game-shell{padding-top:calc(var(--safe-top) + 8px);padding-bottom:calc(var(--safe-bottom) + 8px)}.app-header{margin-bottom:8px}.app-header--in-room{gap:4px;padding-top:6px;padding-bottom:6px}.app-header--in-room .app-header__brand-row{min-height:36px}.phase-progress{padding:7px 10px;margin-bottom:8px}.phase-progress__summary{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0}.phase-steps{display:none}.narration-modal{margin-bottom:8px}.narration-modal__card{width:min(100%,540px);gap:4px;padding:8px 14px;border-radius:var(--game-radius-sm)}.narration-modal__badge{font-size:.625rem}.narration-modal__card p{font-size:.875rem;line-height:1.25}.sticky-action{position:static;-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:360px){.app-header--in-room .status-chip__copy{max-width:128px;overflow:hidden;font-size:0;text-overflow:ellipsis;white-space:nowrap}.app-header--in-room .status-chip__copy:after{content:attr(data-short-label);font-size:.6875rem}.sticky-action{position:static}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes frame-enter{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%,to{opacity:.42}50%{opacity:.76}}@keyframes restore-breathe{0%,to{box-shadow:0 0 0 8px #62d7eb12}50%{box-shadow:0 0 0 13px #62d7eb09}}
