@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-italic-DxWqP7Ku.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-italic-CGbN9UgK.woff2) format("woff2-variations");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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-italic-lSdLDfvT.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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{--ink: #efece7;--ink-title: #ece9e4;--ink-dim: #8f8a82;--ink-caption: #8a857d;--night: #08070a;--surface: rgba(18, 16, 15, .8);--surface-raised: rgba(255, 248, 235, .045);--line: rgba(214, 200, 175, .18);--line-strong: rgba(214, 200, 175, .34);--accent: #cdb894;--on-accent: #211a10;--champagne: linear-gradient(180deg, #e8dbbd 0%, #cdb894 48%, #ab9570 100%);--danger: #e8a29a;--radius: 12px;--font: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif: "Fraunces Variable", Georgia, "Times New Roman", serif;--tap: 44px;--glass-shadow: 0 30px 80px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .06);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100dvh;background:var(--night);color:var(--ink);font-family:var(--font);overscroll-behavior:none;-webkit-text-size-adjust:100%}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{position:relative;height:100%}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.eyebrow{display:block;font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-caption)}.lobby{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.desk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0}.lobby-page{position:relative;z-index:1;width:min(860px,100%);min-height:100%;margin:0 auto;padding:calc(18px + var(--safe-top)) calc(20px + var(--safe-right)) calc(28px + var(--safe-bottom)) calc(20px + var(--safe-left));display:flex;flex-direction:column}.lobby-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.lobby-mark{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-title)}.lobby-hero{margin:clamp(24px,7vh,64px) auto clamp(20px,4vh,36px);text-align:center;max-width:560px}.lobby-title{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(40px,9vw,68px);line-height:1.05;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-title);text-shadow:0 8px 24px rgba(0,0,0,.65)}.tagline{margin:12px 0 0;font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.5;color:#a39d92}.name-field{display:block;width:min(320px,100%);margin:24px auto 0;text-align:left}.name-field .eyebrow{margin:0 0 8px 4px}.lobby-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.mode-card,.how-to{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mode-card{overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;animation:rise .6s cubic-bezier(.2,.8,.2,1) both}.mode-card+.mode-card{animation-delay:.08s}@media(hover:hover){.mode-card:hover{border-color:var(--line-strong);box-shadow:var(--glass-shadow),0 0 0 1px #cdb8941f,0 0 36px #cdb8941a;transform:translateY(-2px)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.mode-art{display:block;width:calc(100% - 24px);height:140px;margin:12px 12px 0;border-radius:12px;box-shadow:inset 0 0 0 1px #0006}.mode-body{flex:1;display:flex;flex-direction:column;gap:14px;padding:18px 20px 20px}.mode-title{margin:0;font-family:var(--serif);font-weight:500;font-size:28px;color:var(--ink-title)}.mode-body .section-body{margin:-8px 0 0;flex:1}.mode-body .row{margin-top:0}.section-body{margin:0 0 14px;color:var(--ink-dim);font-size:14px;line-height:1.55}.segmented{display:flex;gap:6px;margin:0;padding:0;border:0;min-width:0}.segmented label{flex:1;position:relative}.segmented input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.segmented span{display:grid;place-items:center;min-height:36px;border-radius:999px;border:1px solid var(--line);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);transition:color .2s ease,border-color .2s ease,background .2s ease}.segmented input:checked+span{color:var(--accent);border-color:#cdb89499;background:#cdb8941a}.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.text-input{width:100%;min-height:var(--tap);padding:12px 16px;background:#fff8eb0b;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:16px;transition:border-color .2s ease,background .2s ease}.text-input::placeholder{color:#6f6a62}.text-input:focus{outline:none;border-color:#cdb89499;background:#fff8eb12}select.text-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-dim) 50%),linear-gradient(135deg,var(--ink-dim) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px}.code-input{text-transform:uppercase;letter-spacing:.4em;font-family:var(--serif);font-weight:500;color:var(--accent)}.code-input::placeholder{font-family:var(--font);letter-spacing:.28em;font-size:12px}.row{display:flex;gap:10px;margin-top:10px}.row>.text-input{flex:1;min-width:0}.primary-button,.secondary-button,.ghost-button{position:relative;overflow:hidden;min-height:var(--tap);padding:12px 20px;border-radius:999px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;white-space:nowrap;touch-action:manipulation;transition:filter .2s ease,transform .15s ease}.primary-button{width:100%;background:var(--champagne);color:var(--on-accent);box-shadow:0 8px 22px #cdb8942e,inset 0 1px #ffffff73}.primary-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translate(-120%);pointer-events:none}@media(hover:hover){.primary-button:hover:after{transform:translate(120%);transition:transform .7s ease}}.row .primary-button,.row .secondary-button{width:auto;flex:0 0 auto}.secondary-button{background:transparent;border-color:#cdb8948c;color:var(--accent)}.ghost-button{min-height:36px;padding:8px 14px;background:transparent;border-color:var(--line);color:var(--ink-dim);font-size:10.5px}@media(hover:hover){.primary-button:hover,.secondary-button:hover,.ghost-button:hover{filter:brightness(1.1)}}.primary-button:active,.secondary-button:active,.ghost-button:active{filter:brightness(.92);transform:scale(.985)}.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.error{margin:16px 0 0;min-height:20px;color:var(--danger);font-size:14px;text-align:center}.how-to{margin:4px auto 0;width:min(560px,100%);padding:2px 20px;border-radius:16px;color:var(--ink-dim);font-size:14px;animation:rise .6s .16s cubic-bezier(.2,.8,.2,1) both}.how-to summary{cursor:pointer;padding:12px 0;font-family:var(--serif);font-style:italic;font-size:15px;color:#a39d92}.how-to ul{margin:0 0 16px;padding-left:18px;line-height:1.65}.how-to li::marker{color:var(--accent)}.account-bar{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}.account-label{font-size:13px;color:var(--ink-dim)}.account-chip{display:inline-flex;align-items:center;gap:10px;min-height:var(--tap);max-width:220px;padding:5px 16px 5px 6px;border-radius:999px;border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;transition:border-color .2s ease}@media(hover:hover){.account-chip:hover{border-color:var(--line-strong)}}.account-chip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.account-avatar{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ffffff0a;box-shadow:0 0 0 2px var(--ring, var(--accent)),0 0 12px var(--ring, transparent);font-family:var(--serif);font-size:15px;color:var(--ink-title)}.account-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.account-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-caption{font-size:8.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-caption)}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:8px 16px 8px 12px;border-radius:999px;border:1px solid #8e918f;background:#131314;color:#e3e3e3;font:inherit;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;touch-action:manipulation}.google-button:disabled{opacity:.6;cursor:progress}.google-mark{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:conic-gradient(#ea4335 0,#ea4335 25%,#fbbc05 0,#fbbc05 50%,#34a853 0,#34a853 75%,#4285f4 0);color:#fff;font-size:12px;font-weight:800}.profile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));background:#06050799;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto}.profile-card{width:min(480px,100%);max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#12100feb;border:1px solid var(--line);border-radius:20px;padding:22px 24px 26px;box-shadow:var(--glass-shadow);-webkit-user-select:text;user-select:text}.profile-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-header h2{margin:0;font-family:var(--serif);font-weight:500;font-size:26px;color:var(--ink-title)}.profile-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.profile-section h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.colour-picker{display:grid;grid-template-columns:repeat(5,var(--tap));gap:10px}.colour-swatch{width:var(--tap);height:var(--tap);border-radius:50%;border:3px solid transparent;cursor:pointer;touch-action:manipulation}.colour-swatch[aria-checked=true]{outline:3px solid var(--ink);outline-offset:3px}.colour-swatch:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0}.stat{padding:10px 12px;border-radius:var(--radius);background:var(--surface-raised)}.stat dt{font-size:12px;color:var(--ink-dim)}.stat dd{margin:2px 0 0;font-family:var(--serif);font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.bot-record,.recent-games{margin:0;padding:0;list-style:none}.bot-record li,.recent-games li{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.bot-record li:last-child,.recent-games li:last-child{border-bottom:0}.bot-record li span:first-child{flex:1}.bot-record li span:last-child{color:var(--ink-dim);font-variant-numeric:tabular-nums}.recent-place{flex:0 0 72px;font-weight:600}.recent-games .is-win .recent-place{color:var(--accent)}.recent-detail{flex:1;min-width:0;color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-date{color:var(--ink-dim);font-size:13px;white-space:nowrap}.room{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:var(--night);overflow:hidden;animation:room-in .35s ease both}@keyframes room-in{0%{opacity:0}}.room-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.room-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(14px + var(--safe-top)) calc(18px + var(--safe-right)) 0 calc(18px + var(--safe-left))}.room-centre{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;pointer-events:none}.room-centre .eyebrow{color:#d8c79c}.room-code{font-family:var(--serif);font-weight:500;font-size:clamp(22px,5vw,32px);letter-spacing:.18em;padding-left:.18em;color:var(--accent);text-shadow:0 4px 16px rgba(0,0,0,.6);white-space:nowrap}.room-code.is-words{font-size:clamp(17px,3.6vw,22px);letter-spacing:.04em;padding-left:0;font-style:italic;font-weight:400;color:var(--ink-title)}.room-centre .ghost-button{pointer-events:auto;margin-top:4px;background:#12100fb3;color:var(--accent);border-color:#cdb89459}.room-footer{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px;padding:0 calc(20px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(20px + var(--safe-left))}.room-count{display:flex;flex-direction:column;flex:0 0 auto}.room-count-number{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1;color:var(--ink-title);font-variant-numeric:tabular-nums}.room-status{flex:1;margin:0;font-family:var(--serif);font-style:italic;font-size:15px;color:#a39d92;text-align:center}.room-start.primary-button{width:auto;flex:0 0 auto;min-width:160px}.primary-button:disabled{cursor:not-allowed;filter:saturate(.4) brightness(.65);box-shadow:none}.primary-button:disabled:after{display:none}@media(max-width:560px){.room-footer{flex-wrap:wrap;row-gap:10px}.room-status{order:3;flex-basis:100%;font-size:14px}.room-start.primary-button{margin-left:auto}}@media(prefers-reduced-motion:reduce){.room{animation:none}}#game{position:absolute;top:0;right:0;bottom:0;left:0}#table-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(14px + var(--safe-left));display:flex;flex-direction:column;gap:8px;transition:opacity .5s ease}#game.is-intro .hud{opacity:0}.hud button{pointer-events:auto}.hud-top{display:flex;align-items:center;gap:12px;flex:0 0 auto}.table-code{display:flex;align-items:center;gap:10px;min-width:0}.table-code strong{font-family:var(--serif);font-weight:500;color:var(--accent);font-size:18px;letter-spacing:.2em}.table-code strong:empty{display:none}.turn-banner{flex:1;text-align:center;font-family:var(--serif);font-size:21px;font-weight:500;text-shadow:0 2px 12px rgba(0,0,0,.7);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-clock{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;border:1px solid rgba(214,200,175,.35);background:#12100fcc;font-family:var(--font);font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--ink);font-variant-numeric:tabular-nums;vertical-align:2px;text-shadow:none}.turn-clock.is-warning{color:var(--danger);border-color:#f0786ab3;background:#f0786a29;animation:clock-pulse 1s ease-in-out infinite}@keyframes clock-pulse{50%{transform:scale(1.07)}}.player-panel{flex:0 0 auto;align-self:flex-start;width:240px;max-width:100%;padding:12px 10px 10px;border-radius:16px;border:1px solid var(--line);background:#12100fd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--glass-shadow)}.player-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 6px 8px;margin-bottom:4px;border-bottom:1px solid rgba(214,200,175,.14)}.player-count{font-family:var(--serif);font-style:italic;font-size:13px;color:#a39d92;white-space:nowrap}.player-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;align-items:stretch;gap:3px;max-height:60dvh;overflow-y:auto}.player{position:relative;display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:11px;border:1px solid transparent;font-size:13px;min-width:0;transition:border-color .3s ease,background .3s ease,opacity .3s ease}.player.is-turn{border-color:#cdb8946b;background:#cdb89417}.player-avatar{flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0d0c0ce6;box-shadow:0 0 0 2px var(--ring, var(--ink-caption));font-family:var(--serif);font-size:14px;color:var(--ink-title)}.player.is-turn .player-avatar{box-shadow:0 0 0 2px var(--ring),0 0 12px var(--ring)}.player-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.player-wins{flex:0 0 auto;text-align:right;font-family:var(--serif);font-size:15px;line-height:1.1;color:var(--accent);font-variant-numeric:tabular-nums}.player-wins small{display:block;font-family:var(--font);font-size:8px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-caption)}.player.is-waiting{border:1px dashed rgba(214,200,175,.25);opacity:.75}.player:not(.is-waiting)+.player.is-waiting{margin-top:6px}.player.is-waiting .player-avatar{box-shadow:inset 0 0 0 1.5px var(--ink-caption)}.chip-clock{position:absolute;left:48px;right:10px;bottom:3px;height:2px;border-radius:1px;background:linear-gradient(90deg,var(--accent) 0 calc(var(--left, 1) * 100%),rgba(255,255,255,.08) 0)}.chip-clock.is-warning{background:linear-gradient(90deg,var(--danger) 0 calc(var(--left, 1) * 100%),rgba(255,255,255,.08) 0)}.chip-clock[hidden]{display:none}.player.is-out{opacity:.42}.player.is-out .player-name{text-decoration:line-through}.player-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swatch{flex:0 0 auto;width:10px;height:10px;border-radius:50%;box-shadow:0 0 8px currentColor}.player-status{color:var(--ink-caption);font-size:8.5px;font-weight:500;text-transform:uppercase;letter-spacing:.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-status:empty{display:none}.player.is-you .player-status,.player.is-turn .player-status{color:var(--accent)}.hint,.notice{margin:0 auto;max-width:min(560px,100%);text-align:center;font-size:13px;line-height:1.5;flex:0 0 auto}.hint{margin-top:auto;font-family:var(--serif);font-style:italic;font-size:14px;color:#a39d92}.round-note{margin:auto auto 0;max-width:min(560px,100%);text-align:center;font-size:13px;line-height:1.5;flex:0 0 auto;color:var(--accent)}.round-note:not(.hidden)+.hint{margin-top:4px}.notice{margin-top:8px;padding:8px 14px;border-radius:999px;background:#e8a29a1f;border:1px solid rgba(232,162,154,.3);color:#f2c6bf}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#06050799;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;animation:room-in .35s ease both}.overlay-card{width:min(400px,100%);padding:30px 28px 28px;text-align:center;background:#12100feb;border:1px solid var(--line);border-radius:20px;box-shadow:var(--glass-shadow);animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.overlay-card h2{margin:0 0 8px;font-family:var(--serif);font-weight:500;font-size:clamp(26px,7vw,32px);color:var(--ink-title)}.overlay-card p{margin:0 0 20px;color:var(--ink-dim);line-height:1.5}.overlay-list{list-style:none;margin:14px 0 20px;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40dvh;overflow-y:auto;text-align:left}.overlay-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--surface-raised);font-size:15px}.overlay-row.is-you{box-shadow:inset 0 0 0 1px var(--accent)}.overlay-place{flex:0 0 2.4em;font-family:var(--serif);font-weight:500;color:var(--accent);font-variant-numeric:tabular-nums}.overlay-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay-detail{flex:0 0 auto;color:var(--ink-dim);font-size:13px;font-variant-numeric:tabular-nums}.overlay-invite{margin:0 0 18px;padding:14px 16px 12px;border-radius:14px;border:1px solid var(--line);background:#fff8eb08}.overlay-invite[hidden]{display:none}.overlay-invite-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:4px}.overlay-code{font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:.18em;color:var(--accent)}.overlay-card p.overlay-waiting{margin:8px 0 0;font-family:var(--serif);font-style:italic;font-size:14px;color:#a39d92}.overlay-card p.overlay-waiting.is-you{color:var(--accent)}.overlay-actions{display:flex;flex-direction:column;gap:8px}.overlay-actions .secondary-button{width:100%}@media(max-width:720px){.lobby-page{padding-left:calc(16px + var(--safe-left));padding-right:calc(16px + var(--safe-right))}.lobby-mark{display:none}.lobby-modes{grid-template-columns:minmax(0,1fr);gap:14px}.mode-art{height:112px}.hud-top{flex-wrap:wrap;row-gap:6px}.table-code strong{font-size:15px;letter-spacing:.16em}.turn-banner{order:3;flex-basis:100%;font-size:15px}.player-panel{width:auto;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.player-panel-head,.player-wins,.player-status{display:none}.player-list{flex-direction:row;flex-wrap:wrap;gap:5px;max-height:none;overflow:visible}.player{gap:7px;padding:3px 11px 3px 3px;border-radius:999px;border-color:var(--line);background:#12100fcc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12px}.player.is-turn{border-color:#cdb89499;background:#12100fe6}.player:not(.is-waiting)+.player.is-waiting{margin-top:0}.player-avatar{width:22px;height:22px;font-size:11px}.chip-clock{left:30px;right:12px;bottom:2px}.hint,.round-note{font-size:12px}}@media(max-height:540px){.lobby-hero{margin:12px auto 16px}.lobby-title{font-size:34px}.tagline{margin-top:6px;font-size:13px}.name-field{margin-top:12px}.mode-art{display:none}.section-body{margin-bottom:10px;font-size:13px}.error{margin-top:8px;min-height:0}.how-to{margin-top:8px}}@media(max-height:460px)and (orientation:landscape){.hud{padding:calc(8px + var(--safe-top)) calc(12px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(12px + var(--safe-left));gap:4px}.hint{display:none}.player-panel{width:min(200px,40vw);padding:8px 6px 6px}.player-panel-head{display:none}.player-list{flex-direction:column;flex-wrap:nowrap;gap:2px;max-height:70dvh;overflow-y:auto}.player{gap:7px;padding:3px 6px;font-size:11px;border-radius:9px;background:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.player.is-turn{border-color:#cdb8946b;background:#cdb89417}.player-avatar{width:22px;height:22px;font-size:11px}.player-wins,.player-status{display:none}.chip-clock{left:36px;bottom:1px}.overlay-card{padding:18px}.overlay-card p{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){.turn-clock.is-warning{animation:none}.overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.mode-card,.how-to{animation:none}}.name-status{min-height:20px;margin:6px 0 0;font-size:13px;color:var(--ink-dim)}
