@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/kalam-devanagari-400-normal.Dy6c0U2e.woff2)format("woff2"),url(/_astro/kalam-devanagari-400-normal.Dyzod-UE.woff)format("woff");unicode-range:U+900-97F,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:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/kalam-latin-ext-400-normal.DtcdGa4L.woff2)format("woff2"),url(/_astro/kalam-latin-ext-400-normal.AcQmRO9z.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/kalam-latin-400-normal.BthBl_aR.woff2)format("woff2"),url(/_astro/kalam-latin-400-normal.Bl-H2BUA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/kalam-devanagari-700-normal.BeU_-hjz.woff2)format("woff2"),url(/_astro/kalam-devanagari-700-normal.B52CSkpd.woff)format("woff");unicode-range:U+900-97F,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:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/kalam-latin-ext-700-normal.CwgfRD_T.woff2)format("woff2"),url(/_astro/kalam-latin-ext-700-normal.BA-KJHgr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/kalam-latin-700-normal.D2H-9ISU.woff2)format("woff2"),url(/_astro/kalam-latin-700-normal.7TSuSrjP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-cyrillic-ext-400-normal.DHXCUfGT.woff2)format("woff2"),url(/_astro/cousine-cyrillic-ext-400-normal.CfRZlfI3.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-cyrillic-400-normal.DaHhUWxZ.woff2)format("woff2"),url(/_astro/cousine-cyrillic-400-normal.D7Mp9hmd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-greek-ext-400-normal.qdX5ZLbv.woff2)format("woff2"),url(/_astro/cousine-greek-ext-400-normal.n0k5mInY.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-greek-400-normal.D28eY3d7.woff2)format("woff2"),url(/_astro/cousine-greek-400-normal.CWPwwPBl.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-hebrew-400-normal.COyK3YUR.woff2)format("woff2"),url(/_astro/cousine-hebrew-400-normal.oCiNOOyc.woff)format("woff");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-vietnamese-400-normal.B4JqDdoh.woff2)format("woff2"),url(/_astro/cousine-vietnamese-400-normal.Bfsm3lEf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-latin-ext-400-normal.CGywThDL.woff2)format("woff2"),url(/_astro/cousine-latin-ext-400-normal.B_NP9zZK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Cousine;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cousine-latin-400-normal.BhCTjpdJ.woff2)format("woff2"),url(/_astro/cousine-latin-400-normal.D0CzircV.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-cyrillic-ext-700-normal.C15KMCf5.woff2)format("woff2"),url(/_astro/cousine-cyrillic-ext-700-normal.DhfE94aH.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-cyrillic-700-normal.BkkUdX_g.woff2)format("woff2"),url(/_astro/cousine-cyrillic-700-normal.BEGCXyFC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-greek-ext-700-normal.DgHq_I2n.woff2)format("woff2"),url(/_astro/cousine-greek-ext-700-normal.CSy642Ya.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-greek-700-normal.DsTT0TsI.woff2)format("woff2"),url(/_astro/cousine-greek-700-normal.rpH_OJFi.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-hebrew-700-normal.BCE0G3Nu.woff2)format("woff2"),url(/_astro/cousine-hebrew-700-normal.Bf9jZ0p9.woff)format("woff");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-vietnamese-700-normal.DLBKC3PH.woff2)format("woff2"),url(/_astro/cousine-vietnamese-700-normal.B4DXCoMM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-latin-ext-700-normal.DWTrZAet.woff2)format("woff2"),url(/_astro/cousine-latin-ext-700-normal.NvcoPDWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Cousine;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/cousine-latin-700-normal.CwJ0o97b.woff2)format("woff2"),url(/_astro/cousine-latin-700-normal.BO_dhHEP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:var(--font-body);color:#293e35;font-synthesis:none;--paper:#f7f4eb;--ink:#293e35;--muted:#626c62;--rule:#d9ddcd;--green:#2c5947;--p0:#326950;--p1:#356baf;--p2:#ad493e;--p3:#7951a0;--p4:#996309;--p5:#18797c;--p6:#9a4074;--p7:#655b2a;--p8:#575dc0;--p9:#a54a13;--p10:#3b5570;--p11:#783944;--p12:#507018;--p13:#71337c;--p14:#28738e;--p15:#806144;--p16:#365297;--p17:#93600f;--p18:#1f665e;--p19:#875270;--player:var(--p0);--claim-opacity:.24;--surface:#fffcf5;--float-border:#d7dccb;--float-shadow:0 1px 2px #1b2e2412, 0 6px 16px -6px #1b2e2429;--panel-shadow:0 2px 4px #1b2e240d, 0 24px 56px -20px #1b2e2445;--font-body:Arial, Helvetica, sans-serif;--font-display:"Kalam", cursive;--font-mono:"Cousine", "Courier New", monospace;--space-label:8px;--form-gap:16px;--space-section:24px;--control-height:44px;--control-pad:10px 16px;--control-height-compact:36px;--control-pad-compact:6px 12px;--on-ink:#fffef8;--surface-hover:#f1f2e8;--surface-sunken:#e7eadc;--border-control:#bec6b8;--grid-line:#a9b8a51b;--edge-guide:#a8b9a44d;--dot:#3d5144;--scrollbar:#83967e;--overlay-veil:#eef0e7a8;--backdrop:#17271e85;--action-hover:#234735;--focus:#b77821;--selection:#dce6be;--selection-text:#20372c;--online:#397b53;--warning:#a75a0b;--warning-text:#8a5a0b;--warning-surface:#fbf1dc;--warning-border:#d7ad68;--danger:#9b3a31;--danger-border:#ad493e;--danger-surface:#fff8f0;--gold:#e1a531;--gold-edge:#9c6a10;--notice-shadow:0 8px 24px #14251925;--menu-shadow:0 12px 30px #17271e18;--pressed-shadow:inset 0 1px 2px #1b2e2418;background:#f7f4eb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:1px solid var(--border-control);padding:var(--control-pad);min-height:var(--control-height);background:0 0;border-radius:7px;transition:background .15s}button:not(.edge){touch-action:manipulation}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.checkbox{min-height:var(--control-height);cursor:pointer;align-items:center;gap:10px;margin:0;font-size:14px;font-weight:700;display:inline-flex;position:relative}.checkbox input{opacity:0;width:20px;height:20px;min-height:0;margin:0;position:absolute}.checkbox-box{border:1px solid var(--border-control);background:var(--surface);width:20px;height:20px;color:var(--on-ink);pointer-events:none;border-radius:4px;flex-shrink:0;place-items:center;transition:background .15s;display:grid}.checkbox-mark{opacity:0;width:14px;height:14px}.checkbox input:checked+.checkbox-box{border-color:var(--green);background:var(--green)}.checkbox input:checked+.checkbox-box .checkbox-mark{opacity:1}.checkbox input:focus-visible+.checkbox-box{outline:3px solid var(--focus);outline-offset:2px}.checkbox:hover .checkbox-box{border-color:var(--green)}.with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.button-icon{flex-shrink:0;width:18px;height:18px}.small-button .button-icon{width:16px;height:16px}button:hover:not(:disabled){background:var(--surface-sunken)}button:not(.edge):active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:4px}input,select{text-align:center;border:1px solid var(--border-control);background:var(--surface);width:100%;min-height:48px;color:var(--ink);caret-color:var(--green);border-radius:6px;padding:12px}input::placeholder{color:var(--muted)}input,select,.selectable{-webkit-user-select:text;user-select:text}label{margin:0 0 var(--space-label);font-size:13px;font-weight:700;display:block}.stack>*{margin-top:0;margin-bottom:0}.stack>*+*{margin-top:var(--form-gap)}.stack>label+*{margin-top:var(--space-label)}.stack>.primary{margin-top:var(--space-section)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font-family:var(--font-display);font-size:32px;line-height:1.2}h3{font-size:15px;font-weight:700}p{line-height:1.6}a{color:inherit;text-underline-offset:4px}::selection{background:var(--selection);color:var(--selection-text)}[hidden]{display:none!important}.topbar{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;max-width:1320px;height:96px;margin:auto;padding:0 48px;display:flex}.brand{letter-spacing:-.035em;align-items:center;gap:12px;font-size:24px;font-weight:700;text-decoration:none;display:flex}.domain{color:var(--muted);margin-left:-12px;font-weight:400}.quiet{text-underline-offset:5px;padding:var(--control-pad-compact);border:0;text-decoration:underline}.rules{background:var(--surface-sunken);border-radius:12px;max-width:850px;margin:24px auto;padding:22px 28px}.rules p{margin-top:8px}.welcome{grid-template-columns:1.1fr 1fr;align-items:start;gap:80px;max-width:1200px;margin:70px auto 55px;padding:0 40px;display:grid}.welcome h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(42px,4.2vw,60px);line-height:1.12}.handwritten{color:var(--green);letter-spacing:0;margin-top:22px;font-size:23px;display:block}.welcome-copy>p{color:var(--muted);margin-top:17px;font-size:17px}.sample-board{width:260px;margin:12px 0 40px 12px;position:relative}.sample-board svg{width:260px;height:194px;display:block}.sample-hit{stroke:#0000;stroke-width:18px;stroke-linecap:round;pointer-events:none}.sample-hit.open{pointer-events:stroke;cursor:pointer}.sample-hit.open:hover{stroke:color-mix(in srgb, var(--ink) 18%, transparent);stroke-width:6px}.sample-guide{stroke:var(--edge-guide);stroke-width:4px;stroke-linecap:round}.sample-edge{stroke-width:4px;stroke-linecap:round}.sample-board circle{fill:var(--dot)}.sample-board text{text-anchor:middle;fill:var(--player);font:30px var(--font-display)}.sample-board rect{fill:color-mix(in srgb, var(--player) calc(var(--claim-opacity) * 100%), transparent)}.sample-edge.latest{stroke-dasharray:64;animation:.3s ease-out sample-draw}@keyframes sample-draw{0%{stroke-dashoffset:64px}}.sample-status,.sample-hint{width:228px;color:var(--muted);margin:-6px 0 0 32px;font-size:14px;line-height:1.35}.sample-status strong{color:var(--player)}.sample-hint{border:1px solid var(--float-border);background:var(--surface);width:fit-content;max-width:228px;color:var(--ink);border-radius:6px;margin-top:8px;padding:3px 8px;font-size:11.5px;line-height:1.4;position:relative}.sample-hint:before{content:"";border-top:1px solid var(--float-border);border-left:1px solid var(--float-border);background:var(--surface);width:8px;height:8px;position:absolute;top:-5px;left:12px;transform:rotate(45deg)}.sample-board.joinable svg{cursor:pointer}.sample-status[hidden],.sample-hint[hidden]{display:none}.sample-timer{background:var(--edge-guide);border-radius:2px;width:192px;height:3px;margin:8px 0 0 32px;display:block;overflow:hidden}.sample-timer:not(.shown){visibility:hidden}.sample-timer i{background:var(--muted);transform-origin:0;height:100%;display:block}.sample-timer.running i{animation:6s linear forwards sample-shrink}@keyframes sample-shrink{to{transform:scaleX(0)}}.game-history h3{color:var(--green);font:400 23px / 1.3 var(--font-display);margin:0 0 6px}.game-history p{color:var(--muted);margin:0;font-size:17px}.sample-caption{font:18px/1.3 var(--font-display);width:220px;color:var(--muted);position:absolute;top:64px;left:244px;transform:rotate(-8deg)}.setup{background:var(--surface);border:1px solid var(--float-border);box-shadow:var(--panel-shadow);border-radius:16px;padding:30px 34px 26px}.setup>p{color:var(--muted);margin:var(--space-label) 0 var(--space-section);font-size:14px}.joining-room.from-invite .name-label{font-size:24px;line-height:1.3}.joining-room.from-invite #name{border:2px solid var(--green);background:var(--surface);min-height:64px;font-size:20px}.tabs{border-bottom:1px solid var(--rule);margin:0 0 var(--space-section);gap:20px;display:flex}.size-presets{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;margin-inline:0;padding:0;display:grid}.size-presets legend{margin-bottom:var(--space-label);padding:0;font-size:13px;font-weight:700}.size-preset{min-height:var(--control-height);padding:var(--control-pad-compact);text-align:left;justify-items:start;gap:2px;display:grid}.size-preset strong{font-size:14px}.size-preset span{color:var(--muted);font-size:12px}.size-preset[aria-pressed=true]{border-color:var(--green);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--green)}.tabs button{color:var(--muted);border:0;border-radius:0;flex:1;padding:12px 0;font-size:14px;font-weight:700}.tabs button[aria-selected=true]{border-bottom:2px solid var(--green);color:var(--green)}.form-pair{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.field-note{color:var(--muted);font-size:13px}.primary{background:var(--green);border-color:var(--green);color:var(--on-ink);font-weight:700}.primary:hover:not(:disabled){background:var(--action-hover)}.full{justify-content:space-between;align-items:center;width:100%;display:flex}.setup .setup-foot{text-align:center;margin:var(--form-gap) 0 0;font-size:11px}.setup-foot{white-space:normal}footer{border-top:1px solid var(--rule);max-width:1224px;color:var(--muted);justify-content:space-between;margin:0 auto;padding:24px 36px;font-size:12px;display:flex}.actions{flex-wrap:wrap;gap:10px;display:flex}.actions button{flex:1}.small-button{min-height:var(--control-height-compact);padding:var(--control-pad-compact);font-size:12px}.danger{color:var(--danger)}#notice{bottom:calc(24px + env(safe-area-inset-bottom));background:var(--ink);width:max-content;max-width:calc(100vw - 32px);color:var(--on-ink);box-shadow:var(--notice-shadow);z-index:40;pointer-events:none;border-radius:999px;padding:15px 22px;font-size:14px;font-weight:700;animation:.26s cubic-bezier(.16,1,.3,1) notice-in;position:fixed;left:50%;transform:translate(-50%)}.in-room #notice{bottom:auto;top:calc(max(12px, env(safe-area-inset-top)) + 84px)}@keyframes notice-in{0%{opacity:0;translate:0 8px}}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--rule);box-shadow:var(--panel-shadow);border-radius:16px;max-width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);padding:28px;overflow:auto}dialog::backdrop{background:var(--backdrop)}dialog p{margin:16px 0 24px}.end-state{text-align:center;padding:80px 24px}.end-state h1{font:40px var(--font-display)}.end-state p{margin:20px 0}.personal-tools{align-items:center;gap:24px;min-width:0;display:flex}@media (width<=380px){.personal-tools{gap:12px}.topbar #profile-label{display:none}}.profile-menu{z-index:35;min-width:0;position:relative}.brand,#rules-toggle{white-space:nowrap}.profile-menu summary{max-width:180px;min-height:var(--control-height);padding:var(--control-pad);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;list-style:none;display:flex}.profile-menu summary::-webkit-details-marker{display:none}#profile-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.profile-menu[open] .toggle-chevron{transform:rotate(180deg)}.profile-menu form{background:var(--surface);border:1px solid var(--rule);width:min(290px,100vw - 32px);box-shadow:var(--menu-shadow);border-radius:12px;padding:24px;position:absolute;top:calc(100% + 12px);right:0}.profile-menu .primary{width:100%;margin-top:12px}.form-pair{grid-template-columns:1fr 1fr}.room-error{border:1px solid var(--danger-border);background:var(--danger-surface);border-radius:8px;padding:16px;font-size:14px}.room-error p{margin:8px 0 16px}.room-error .actions{flex-wrap:wrap}.room-error button{padding:var(--control-pad-compact);font-size:14px}#name,#profile-name{font-family:var(--font-mono)}#code{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}#code::placeholder{text-transform:none;letter-spacing:0}#code[aria-invalid=true]{border-color:var(--danger-border)}@media (width<=1000px){.welcome{gap:36px;margin-top:50px;padding:0 30px}.setup{padding:26px 24px}.sample-caption{margin:14px 0 15px 32px;display:block;position:static}.topbar{padding:0 24px}}@media (width<=720px){.from-invite .welcome-copy{display:none}.from-invite .welcome{margin-top:24px}.topbar{height:72px;padding:0 14px}.brand{gap:7px;font-size:18px}.brand svg{width:23px}.domain{display:none}.personal-tools{gap:10px;font-size:12px}.profile-menu summary{max-width:128px;padding:var(--control-pad-compact);gap:6px}.welcome{flex-direction:column;gap:28px;max-width:480px;margin:32px auto;padding:0 22px;display:flex}.welcome h1{font-size:40px}.handwritten{margin-top:12px;font-size:21px}.welcome-copy>p{margin-top:12px;font-size:15px}.sample-board,.game-history{display:none}.setup{width:100%;padding:24px}.setup h2{font-size:30px}.setup>p{font-size:13px}.form-pair{gap:10px}.form-pair select{padding:10px 7px;font-size:13px}footer{margin:30px 22px 0;padding:20px 0;font-size:11px;display:block}footer span{margin-top:8px;display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}body.in-room{height:100dvh;overflow:hidden}.in-room .topbar{display:none}.in-room #app{height:100dvh}.in-room footer{display:none}.game-shell{-webkit-user-select:none;user-select:none;flex-direction:column;height:100%;padding:0;display:flex}.game-toolbar{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));z-index:12;pointer-events:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute}.game-toolbar>*{pointer-events:auto}.turn-display{background:var(--surface);border:1px solid var(--float-border);min-width:0;box-shadow:var(--float-shadow);border-radius:12px;align-items:center;gap:12px;padding:10px 18px 10px 10px;transition:background .25s,border-color .25s;display:flex}.turn-heading{align-items:center;gap:10px;min-width:0;display:flex}.turn-heading .waiting-dots{flex-shrink:0;display:none}.turn-display.waiting .waiting-dots{display:inline-flex}.turn-display.waiting .avatar{animation:1.6s ease-in-out infinite turn-pulse}.turn-display>div{min-width:0}.turn-display h1{overflow-wrap:break-word;font-size:clamp(18px,2vw,26px);font-weight:700;line-height:1.1}.turn-display p{color:var(--muted);font-size:12px;line-height:1.3}.turn-display.my-turn{background:var(--player);border-color:var(--player);color:var(--on-ink)}.turn-display.my-turn p{color:var(--on-ink)}.turn-display.my-turn .avatar{outline:2px solid color-mix(in srgb, var(--on-ink) 50%, transparent)}.turn-display.my-turn .avatar small{box-shadow:0 0 0 2px var(--player)}.room-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.room-actions button{background:var(--surface);border-color:var(--float-border);box-shadow:var(--float-shadow);font-size:14px;font-weight:700}.room-actions button:hover:not(:disabled){background:var(--surface-hover)}.panel-toggle{align-items:center;gap:8px;display:inline-flex}.toggle-icon{width:18px;height:18px;color:var(--green);flex-shrink:0}.toggle-chevron{width:16px;height:16px;color:var(--muted);flex-shrink:0;margin-right:-4px;transition:transform .2s}.room-actions .panel-toggle[aria-expanded=true]{background:var(--surface-sunken);border-color:var(--border-control);box-shadow:var(--pressed-shadow)}.panel-toggle[aria-expanded=true] .toggle-chevron{transform:rotate(180deg)}#player-count{background:var(--surface-sunken);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;display:inline-grid}.room-actions .connection{background:var(--surface);border:1px solid var(--float-border);border-radius:999px;padding:6px 12px}.room-actions .connection:not(.offline){display:none}.connection{color:var(--muted);white-space:nowrap;font-size:11px}.connection:before{content:"";background:var(--online);border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.connection.offline:before{background:var(--warning)}#request-badge{background:var(--warning);color:var(--on-ink);border-radius:999px;padding:3px 8px;font-size:11px}.table{--request-space:160px;background:var(--surface);isolation:isolate;border:0;flex:1;min-height:0;position:relative;overflow:hidden}.board-viewport{overscroll-behavior:contain;touch-action:manipulation;scrollbar-width:thin;scrollbar-color:var(--scrollbar) var(--surface-sunken);cursor:grab;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:20px 20px;width:100%;height:100%;scroll-padding:96px 16px 160px;overflow:auto}.board-viewport.dragging{cursor:grabbing}.board-space{place-items:center;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:96px 16px 160px;display:grid}.board{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-shrink:0;position:relative}.board .dot,.board .edge,.board .box{left:calc(24px + var(--x) * var(--cell));top:calc(24px + var(--y) * var(--cell));position:absolute}.dot{background:var(--dot);pointer-events:none;z-index:4;border-radius:50%;width:8px;height:8px;transform:translate(-50%,-50%)}.edge{z-index:3;background:0 0;border:0;border-radius:0;min-width:0;min-height:0;padding:0;opacity:1!important}.edge.h{height:min(28px, calc(var(--cell) * .5));width:var(--cell);transform:translateY(-50%)}.edge.v{width:min(28px, calc(var(--cell) * .5));height:var(--cell);transform:translate(-50%)}.edge:after{content:"";background:var(--edge-guide);pointer-events:none;border-radius:4px;position:absolute}.edge.h:after{transform-origin:0;height:4px;top:12px;left:2px;right:2px}.edge.v:after{transform-origin:top;width:4px;top:2px;bottom:2px;left:12px}.edge.drawn:after{background:var(--player)}.edge:hover:not(:disabled){background:0 0}.edge:hover:not(:disabled):after,.edge:focus-visible:after{background:var(--player);opacity:.7}.edge.peer-hover:not(.drawn):after{background:var(--peer);opacity:.4}.edge:focus-visible{outline:2px solid var(--player);outline-offset:1px}.edge.h.just-drawn:after{animation:.28s cubic-bezier(.16,1,.3,1) draw-horizontal}.edge.v.just-drawn:after{animation:.28s cubic-bezier(.16,1,.3,1) draw-vertical}@keyframes draw-horizontal{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes draw-vertical{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.box{width:var(--cell);height:var(--cell);background:color-mix(in srgb, var(--player) calc(var(--claim-opacity) * 100%), transparent);color:var(--player);font:var(--letter) var(--font-display);pointer-events:none;z-index:1;align-content:center;place-items:center;display:grid}.box-initial{font-weight:700;line-height:1;translate:0 .06em}.box-number{top:calc(var(--cell) * .07);right:calc(var(--cell) * .07);min-width:min(calc(var(--cell) * .24), 28px);height:min(calc(var(--cell) * .24), 28px);background:var(--player);color:var(--on-ink);box-shadow:0 0 0 max(1px, min(calc(var(--cell) * .02), 2px)) var(--surface);font:700 min(calc(var(--cell) * .14), 16px) / 1 var(--font-body);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 .3em;display:grid;position:absolute}.box.new{animation:.65s cubic-bezier(.16,1,.3,1) ink-fill}.box.new .box-initial{animation:.7s cubic-bezier(.16,1,.3,1) stamp}.box.new .box-number{animation:.5s cubic-bezier(.34,1.56,.64,1) .25s both badge-pop}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.box.new:after{content:"";border:2px solid var(--player);animation:.7s ease-out forwards capture-ring;position:absolute;inset:0}@keyframes ink-fill{0%{clip-path:circle(0%)}65%{clip-path:circle(75%)}to{clip-path:circle(100%)}}@keyframes stamp{0%,30%{opacity:0;transform:scale(1.8)rotate(-15deg)}70%{opacity:1;transform:scale(.9)rotate(3deg)}to{transform:scale(1)rotate(0)}}@keyframes capture-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}.muted-board{filter:grayscale();opacity:.25}.muted-board.board-preview{opacity:.55}.board-preview .edge:not(.drawn):after{background:var(--scrollbar);opacity:.6}.lobby-panel .skip-settings{margin-bottom:var(--form-gap)}.stage-overlay{z-index:10;background:var(--overlay-veil);justify-content:center;align-items:center;padding:96px 16px 16px;display:flex;position:absolute;inset:0;overflow:auto}@media (width>=1400px){.stage-overlay{padding:24px 16px}}@media (width>=1280px){.results-mode .stage-overlay{padding:24px 16px}}.table:has(.join-alert:not([hidden])) .stage-overlay{padding-top:calc(112px + var(--request-space))}.lobby-panel,.lock-panel{background:var(--surface);border:1px solid var(--float-border);width:min(640px,100%);max-height:100%;box-shadow:var(--panel-shadow);border-radius:16px;padding:28px 34px;overflow:auto}.lobby-heading .waiting-dots,.lock-panel>.waiting-dots{--dot:8px;justify-content:center;margin-top:6px;display:flex}.start-game .waiting-dots,.lobby-wait .waiting-dots{margin-left:6px}.recovery-callout{border:1px solid var(--warning-border);background:var(--warning-surface);color:var(--warning-text);text-align:left;border-radius:12px;margin:20px 0;padding:16px 18px}.recovery-callout p,.lock-panel .recovery-callout p,#room-menu-content .recovery-callout p{color:inherit;margin:0;font-size:14px;line-height:1.5}.recovery-callout button{width:100%;margin-top:12px}.lobby-heading{text-align:center}.lobby-heading h2{font-size:32px}.lobby-heading p,.lock-panel p{color:var(--muted);margin-top:8px;font-size:13px}.invite-fields{text-align:left;gap:12px;margin:24px 0;display:grid}.invite-field label{color:var(--muted);margin-bottom:8px;font-size:12px}.invite-row{align-items:stretch;gap:8px;display:flex}.invite-row input{min-width:0;font-family:var(--font-mono);cursor:text;-webkit-user-select:text;user-select:text;flex:1;height:48px;padding:8px 12px;font-size:15px}.invite-row button{min-height:48px;padding:var(--control-pad-compact);flex-shrink:0;font-size:14px}.invite-fields .invite-help{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.invite-row .invite-link:not(:focus){text-overflow:ellipsis;direction:rtl}.invite-row .room-code{letter-spacing:.08em;-webkit-user-select:text;user-select:text;font-size:24px;font-weight:700}.invite-fields button{font-size:13px}.roster-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.roster-heading h3{margin:0;font-size:13px;font-weight:700}.lobby-roster{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.slot-keeper{visibility:hidden;border:1px solid #0000}.join-row{margin:8px 0}.player.request{border:1px solid var(--warning-border);background:var(--warning-surface);border-radius:8px;padding:10px 12px}.player.request .avatar{background:var(--warning)}.player.request small{color:var(--warning-text)}.order-buttons{gap:4px;display:flex}.icon-only{min-width:var(--control-height-compact);place-items:center;padding:0;display:inline-grid}.player{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:12px 0;display:flex}.avatar{background:var(--player);width:38px;height:38px;color:var(--on-ink);font:700 18px / 1 var(--font-display);border-radius:10px;flex:0 0 38px;place-items:center;padding-top:.12em;display:grid;position:relative}.avatar small{background:var(--surface);min-width:18px;height:18px;color:var(--player);box-shadow:0 0 0 1.5px var(--player) inset, 0 0 0 2px var(--surface);font:700 11px / 1 var(--font-body);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 4px;display:grid;position:absolute;bottom:-5px;right:-5px}.player.current .avatar{animation:1.6s ease-in-out infinite turn-pulse}@keyframes turn-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--player) 45%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--player) 0%, transparent)}}.waiting-dots{--dot:6px;align-items:center;gap:calc(var(--dot) * .6);height:calc(var(--dot) * 3);vertical-align:middle;display:inline-flex}.waiting-dots i{width:var(--dot);height:var(--dot);opacity:.35;background:currentColor;border-radius:50%;animation:1.2s ease-in-out infinite dot-bounce}.turn-display .waiting-dots i,.lobby-heading .waiting-dots i,.lock-panel>.waiting-dots i,.drawing-now+.waiting-dots i{background:var(--player,currentColor)}.lobby-heading .waiting-dots i,.lock-panel>.waiting-dots i{background:var(--green)}.waiting-dots i:nth-child(2){animation-delay:.15s}.waiting-dots i:nth-child(3){animation-delay:.3s}@keyframes dot-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{transform:translateY(calc(var(--dot) * -.9));opacity:1}}.bot-control{margin-block:16px}.bot-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.bot-buttons button{padding:var(--control-pad-compact)}.bot-tag{color:var(--muted);font-size:.85em;font-weight:400}.player-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13px;font-weight:700}.player-name small{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;display:block}.player.current .player-name small{color:var(--player);font-weight:700}.player-score{color:var(--player);font-variant-numeric:tabular-nums;font-size:24px}.score-strip{scrollbar-width:thin;flex-shrink:0;gap:10px;display:flex;overflow-x:auto}.score-strip .player{border:1px solid var(--float-border);border-radius:12px;flex:none;gap:12px;min-width:155px;max-width:220px;padding:10px 14px 10px 12px}.score-strip .player.current{border-color:var(--player);background:color-mix(in srgb, var(--player) 8%, var(--surface));box-shadow:0 0 0 1px var(--player), var(--float-shadow)}.board-settings{align-items:end;gap:10px;margin-top:20px;display:flex}.board-settings>div{flex:1;min-width:0}.board-settings input{min-height:42px;padding:8px}.board-settings label{margin-bottom:6px;font-size:12px}.board-settings .times{color:var(--muted);padding-bottom:12px}.skip-settings{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:12px;display:flex}.skip-settings+.skip-settings,#room-menu-content .skip-settings+.skip-settings{margin-top:0}.skip-limit{align-items:center;gap:10px;display:flex}.skip-limit label{margin:0;font-size:12px}.skip-limit input{width:72px;min-height:var(--control-height-compact);padding:4px 8px}#room-menu-content .skip-settings{margin-top:16px}.skip-note{color:var(--muted);text-align:center;margin:16px 0 0;font-size:13px}.pass-turn{left:50%;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 112px);z-index:8;background:var(--surface);border-color:var(--float-border);box-shadow:var(--float-shadow);white-space:nowrap;font-weight:700;position:absolute;translate:-50%}.pass-turn:hover:not(:disabled){border-color:var(--danger-border);background:var(--danger-surface);color:var(--danger)}.dimension-note{color:var(--muted);margin:8px 0 18px;font-size:11px}.start-game{width:100%}.lobby-wait{text-align:center;font:20px var(--font-display);color:var(--green);margin-top:20px}.join-alert{z-index:13;background:var(--warning-surface);border:1px solid var(--warning-border);width:min(520px,100% - 24px);box-shadow:var(--float-shadow);border-radius:12px;flex-shrink:0;max-height:160px;padding:8px 16px;animation:.3s cubic-bezier(.16,1,.3,1) both request-arrive;position:absolute;top:96px;right:12px;overflow:auto}@keyframes request-arrive{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.join-request{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;display:flex}.join-request>span{overflow-wrap:anywhere;min-width:0}.join-request .actions{flex-shrink:0}.lock-panel{text-align:center}.lock-panel h2{overflow-wrap:anywhere}.lock-panel .host-hint{color:var(--green);font-weight:700}.table .board-viewport,.table .turn-display,.table .score-dock{transition:opacity .45s,transform .45s cubic-bezier(.4,0,.2,1),filter .45s}.results-mode .board-viewport{opacity:0;visibility:hidden;transition-property:opacity,transform,visibility;transform:scale(.94)}.results-mode .turn-display,.results-mode .score-dock{opacity:0;pointer-events:none}.results-mode .stage-overlay{background:0 0}.results-panel{border:1px solid var(--rule);width:min(600px,100%);max-height:100%;box-shadow:var(--panel-shadow);background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--green) transparent;border-radius:16px;padding:28px 24px 24px;animation:.52s cubic-bezier(.16,1,.3,1) .2s both results-in;overflow:auto}@keyframes results-in{0%{opacity:0;transform:translateY(24px)scale(.97)}}.results-panel h2{text-align:center;text-wrap:balance;overflow-wrap:anywhere;font-size:40px;line-height:44px}.results-actions p{color:var(--muted);text-align:center;text-wrap:pretty;font-size:14px;line-height:20px}.results-cheer{color:var(--green);text-align:center;margin:4px 0 0;font-weight:700}.podium,.results-hero{justify-content:center;align-items:flex-end;gap:10px;margin:28px 0 8px;display:flex}.standing{text-align:center;flex-direction:column;flex:0 160px;align-items:center;gap:6px;min-width:0;animation:.6s cubic-bezier(.34,1.4,.64,1) both rise;display:flex}.standing.place-1{animation-delay:.65s}.standing.place-2{animation-delay:.45s}.standing.place-3{animation-delay:.3s}@keyframes rise{0%{opacity:0;transform:translateY(32px)}}.standing .avatar{border-radius:12px;flex-basis:auto;width:52px;height:52px;font-size:24px}.standing.place-1 .avatar,.standing-hero .avatar{border-radius:16px;width:68px;height:68px;font-size:32px}.standing-hero .avatar{width:88px;height:88px;font-size:40px}.crown{width:36px;height:24px;fill:var(--gold);stroke:var(--gold-edge);stroke-width:1.5px;stroke-linejoin:round;margin-bottom:-2px}.standing-hero .crown{width:46px;height:30px}.standing-name{overflow-wrap:anywhere;max-width:100%;font-weight:700}.standing-score{color:var(--player);font:700 26px / 1 var(--font-display);font-variant-numeric:tabular-nums}.standing-hero .standing-score{font-size:36px}.standing-score small{font:400 12px var(--font-body);color:var(--muted);margin-left:4px}.podium-step{background:color-mix(in srgb, var(--player) 18%, var(--surface));border:1px solid color-mix(in srgb, var(--player) 35%, transparent);color:color-mix(in srgb, var(--player) 80%, var(--ink));font:700 22px var(--font-display);border-bottom:0;border-radius:12px 12px 0 0;align-self:stretch;place-items:start center;padding-top:8px;display:grid}.place-1 .podium-step{height:92px}.place-2 .podium-step{height:64px}.place-3 .podium-step{height:44px}.results-scores{border-top:2px solid var(--ink);gap:4px;margin:0 0 24px;padding:16px 0 0;list-style:none;display:grid}.result-row{border-radius:8px;align-items:center;gap:12px;padding:8px 12px;display:flex}.result-winner{background:color-mix(in srgb, var(--player) 12%, transparent)}.result-rank{width:20px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.result-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:700}.result-name small,.result-score small{font:400 12px / 16px var(--font-body);color:var(--muted);display:block}.result-winner .result-name small{color:color-mix(in srgb, var(--player) 85%, var(--ink))}.result-score{color:var(--player);text-align:right;font-variant-numeric:tabular-nums;font-size:24px;line-height:28px}.results-actions{gap:12px;display:grid}#show-results{pointer-events:auto;background:var(--paper)}.match-confetti{z-index:9;pointer-events:none;position:fixed;inset:0;overflow:hidden}.match-confetti.local{--fall:100%;position:absolute;inset:0}.match-confetti.local i{--fall:260px}.match-confetti i{top:-16px;left:var(--x);width:var(--w,8px);background:var(--confetti-color);height:12px;animation:confetti-fall var(--duration,3s) linear var(--delay) infinite;border-radius:2px;position:absolute}.match-confetti i:nth-child(3n){height:var(--w,8px);border-radius:50%}@keyframes confetti-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--drift), calc(var(--fall,100dvh) + 32px)) rotate(var(--spin))}}@media (prefers-reduced-motion:reduce){.match-confetti,.capture-burst{display:none}}.capture-burst{left:calc(24px + (var(--x) + .5) * var(--cell));top:calc(24px + (var(--y) + .5) * var(--cell));z-index:6;pointer-events:none;width:0;height:0;animation:.9s linear forwards burst-life;position:absolute}@keyframes burst-life{to{visibility:hidden}}.capture-burst i{background:var(--player);border-radius:2px;width:7px;height:10px;margin:-5px 0 0 -3px;animation:.8s cubic-bezier(.1,.8,.3,1) forwards burst;position:absolute}.capture-burst i:nth-child(2n){background:var(--gold)}@keyframes burst{0%{transform:rotate(var(--angle)) translateY(0) rotate(0);opacity:1}70%{opacity:1}to{transform:rotate(var(--angle)) translateY(calc(var(--cell) * var(--reach) * -1.6)) rotate(var(--tilt));opacity:0}}.capture-toast{z-index:12;background:var(--player);max-width:calc(100% - 32px);min-height:0;color:var(--on-ink);box-shadow:var(--panel-shadow);cursor:pointer;border:0;border-radius:16px;justify-items:center;gap:2px;padding:10px 28px 12px;animation:2s cubic-bezier(.34,1.56,.64,1) forwards toast;display:grid;position:absolute;left:50%;translate:-50%}.capture-toast:hover:not(:disabled){background:var(--player)}.capture-toast[data-place=center]{top:50%;translate:-50% -50%}.capture-toast[data-place=top]{top:calc(max(12px, env(safe-area-inset-top)) + 92px)}.capture-toast[data-place=bottom]{bottom:calc(max(12px, env(safe-area-inset-bottom)) + 120px)}.capture-toast strong{font:700 clamp(30px, 4vw, 44px) / 1.1 var(--font-display);overflow-wrap:anywhere}.capture-toast span{opacity:.9;font-size:15px;font-weight:700}@keyframes toast{0%{opacity:0;transform:scale(.6)}14%{opacity:1;transform:scale(1.06)}24%,82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}.roster-summary{color:var(--muted);margin:4px 0 8px;font-size:13px}.player.absent:not(.compact) .avatar{filter:grayscale(.85);opacity:.55}.score-strip .player.absent{opacity:.6}.presence{display:inline-block}[data-presence=online] .presence{color:var(--green)}[data-presence=reconnecting] .presence,[data-presence=offline] .presence{color:var(--warning-text);font-weight:700}[data-presence=away] .presence,[data-presence=removed] .presence{color:var(--muted);font-style:italic}.game-foot{color:var(--muted);flex-shrink:0;justify-content:space-between;gap:20px;font-size:12px;display:flex}.score-dock{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:6;pointer-events:none;gap:8px;display:grid;position:absolute}.score-strip{pointer-events:auto;width:max-content;max-width:100%;margin:-6px -6px -8px;padding:6px 6px 8px}.score-strip .player{background:var(--surface);box-shadow:var(--float-shadow)}.score-strip .player-score{font-weight:700}.game-foot span{background:var(--surface);border-radius:999px;padding:4px 10px}.game-foot span:empty,.table:has(.stage-overlay:not([hidden])) .score-dock{display:none}#move-message{overflow-wrap:anywhere;min-width:0}#box-count{flex-shrink:0}.view-controls{bottom:max(112px, calc(env(safe-area-inset-bottom) + 100px));z-index:5;background:var(--surface);border:1px solid var(--float-border);box-shadow:var(--float-shadow);border-radius:12px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;left:12px}.view-controls button{padding:var(--control-pad-compact);border:0;border-radius:9px;min-width:44px;min-height:44px;font-size:12px}#zoom-label{text-align:center;min-width:38px;font-size:11px}.minimap{bottom:max(112px, calc(env(safe-area-inset-bottom) + 100px));z-index:5;background:var(--surface);border:1px solid var(--float-border);box-shadow:var(--float-shadow);touch-action:none;border-radius:12px;width:150px;padding:5px;position:absolute;right:12px}.minimap canvas{border-radius:7px;width:100%;height:auto;display:block}button.minimap{touch-action:none}.minimap span{padding-top:4px;font-size:10px;display:block}.minimap.covered{display:none}.players-drawer,.room-menu{right:12px;top:max(80px, calc(env(safe-area-inset-top) + 68px));bottom:max(12px, env(safe-area-inset-bottom));z-index:20;background:var(--surface);border:1px solid var(--float-border);width:min(330px,100% - 24px);box-shadow:var(--panel-shadow);border-radius:16px;padding:20px;position:absolute;overflow:auto}.room-menu{max-height:calc(100% - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom));bottom:auto}#room-menu-content>button{width:100%;margin-top:10px}#room-menu-content .bot-buttons{grid-template-columns:1fr;margin-top:10px}#room-menu-content>p{color:var(--muted);margin:16px 0 8px;font-size:13px}#game-personal-tools{margin-top:24px}#game-personal-tools .personal-tools{flex-direction:column;align-items:stretch;gap:12px;display:flex}#game-personal-tools .profile-menu form{width:100%;box-shadow:none;margin-top:8px;position:static}.drawer-heading,.dialog-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.drawer-heading h2{font-size:24px}.drawer-heading button,.dialog-heading button{padding:var(--control-pad-compact);min-height:var(--control-height-compact);font-size:12px}#tutorial{width:min(460px,100vw - 32px)}#tutorial .dialog-heading span{color:var(--muted);font-size:13px;font-weight:700}#tutorial h2{text-wrap:balance;margin-top:4px}.tutorial-text{min-height:176px}.tutorial-text p{text-wrap:pretty;font-size:15px}.tutorial-art{background:linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 20px 20px, linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 20px 20px, var(--surface);border:1px solid var(--rule);border-radius:12px;place-items:center;height:230px;margin:8px 0 0;display:grid;position:relative}.tutorial-art svg{width:100%;max-height:170px;margin-top:26px;overflow:visible}.tutorial-art circle{fill:var(--ink)}.t-edge{stroke:var(--player);stroke-width:5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .22s cubic-bezier(.3,.7,.4,1)}.t-edge.on{stroke-dashoffset:0}.t-box{opacity:0;transform-box:fill-box;transform-origin:50%}.t-box rect{fill:color-mix(in srgb, var(--player) calc(var(--claim-opacity) * 100%), transparent)}.t-box text{fill:var(--player);font:700 30px var(--font-display)}.t-box.on{opacity:1}.t-box.on rect{animation:.42s cubic-bezier(.16,1,.3,1) ink-fill}.t-box.on text{transform-box:fill-box;transform-origin:50%;animation:.48s cubic-bezier(.16,1,.3,1) stamp}.tutorial-caption{background:var(--ink);color:var(--surface);font:700 16px / 1.4 var(--font-display);white-space:nowrap;border-radius:999px;margin:0;padding:4px 12px;position:absolute;top:12px;left:50%;translate:-50%}.tutorial-caption:empty{visibility:hidden}.tutorial-caption.pop{animation:.26s cubic-bezier(.34,1.56,.64,1) caption-pop}@keyframes caption-pop{0%{opacity:0;transform:scale(.8)}}.tutorial-legend{justify-content:center;gap:18px;margin:8px 0 0;font-size:13px;font-weight:700;display:flex}.tutorial-legend span{color:var(--player);align-items:center;gap:6px;display:inline-flex}.tutorial-legend span:before{content:"";background:var(--player);border-radius:2px;width:16px;height:4px}.tutorial-progress{justify-content:center;gap:4px;margin:14px 0;display:flex}.tutorial-progress button{background:0 0;border:0;width:30px;min-height:24px;padding:0}.tutorial-progress button:before{content:"";background:var(--rule);border-radius:2px;height:4px;display:block}.tutorial-progress .active:before{background:var(--green)}@media (width<=720px){.bot-buttons{grid-template-columns:1fr}.table{--request-space:110px}.game-toolbar{align-items:flex-start;gap:8px}.turn-display{flex:1;min-height:44px;padding:8px 12px}.room-actions button{box-shadow:var(--float-shadow)}.turn-display h1{font-size:16px}.turn-display p,.turn-display .avatar{display:none}.room-actions{justify-content:flex-end;gap:8px}.room-actions .connection{display:none}.room-actions .connection.offline{display:block;position:absolute;top:52px;right:0}.room-actions button{min-height:44px;padding:var(--control-pad-compact);font-size:12px}.panel-toggle{gap:6px}.toggle-icon{width:16px;height:16px}.toggle-chevron{width:14px;height:14px}.stage-overlay{padding:80px 12px 12px}.lobby-panel,.lock-panel{padding:20px 16px}.lobby-heading h2{font-size:27px}.lobby-heading p{font-size:12px}.invite-row .room-code{letter-spacing:.06em;font-size:20px}.lobby-panel .player{padding:9px 0}.board-settings{flex-wrap:wrap;gap:6px}.board-settings>button{width:100%;min-height:var(--control-height-compact)}.board-settings .times{display:none}.board-settings input{font-size:16px}.join-alert{max-height:110px;padding:4px 10px}.join-request{gap:8px;font-size:12px}.join-request .actions{gap:5px}.join-request button{padding:var(--control-pad-compact)}.game-foot{gap:10px;font-size:10px}#box-count{text-align:right;max-width:115px}.score-strip .player{min-width:140px;max-width:180px;padding:7px 9px}.score-strip .avatar{flex-basis:32px;width:32px;height:32px;font-size:16px}.score-strip .player-name{font-size:12px}.score-strip .player-score{font-size:21px}.view-controls{left:7px}.view-controls #fullscreen{display:none}.minimap{width:105px;right:7px}}@media (height<=600px) and (width>=721px){.turn-display p{display:none}.score-strip .player{padding:5px 10px}}@media (width<=360px){.toggle-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.skip-options{flex-wrap:wrap;flex-basis:100%;gap:8px 16px;display:flex}.setting-card{border:1px solid var(--float-border);background:var(--surface);border-radius:8px;flex-wrap:wrap;flex-basis:100%;gap:8px 16px;margin:0 0 8px 30px;padding:12px 14px;display:flex}.setting-card .checkbox{min-height:20px}.setting-card[hidden]{display:none}.setting-help{color:var(--muted);flex-basis:100%;margin:-18px 0 0;padding-left:30px;font-size:13px;line-height:1.4}.settings-note{color:var(--muted);margin:12px 0 0;font-size:13px}.turn-timer{font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;color:var(--muted);flex-shrink:0;margin-left:auto;font-size:22px;font-weight:700;transition:color .25s}.turn-timer.low{color:var(--danger)}.turn-display.my-turn .turn-timer{color:var(--on-ink)}.turn-display.my-turn .turn-timer.low{text-underline-offset:4px;text-decoration:underline}
