:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-display: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, Arial, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--t-cap: 12px;--t-meta: 13px;--t-sm: 15px;--t-body: 16px;--t-lead: 18px;--t-title: 22px;--t-h1: clamp(28px, 5vw, 44px);--t-hero: clamp(32px, 6.4vw, 60px);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s7: 32px;--s8: 48px;--s9: 72px;--r-s: 8px;--r-m: 12px;--r-l: 16px;--r-xl: 24px;--r-pill: 999px;--ease: cubic-bezier(.2, .8, .2, 1);--spring: cubic-bezier(.34, 1.56, .64, 1);--d1: .12s;--d2: .2s;--d3: .32s;--d4: .52s;--bar-h: 56px;--column: 1120px;--reading: 720px;--sat: max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top, 0px));--sab: max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px));--sal: max(env(safe-area-inset-left, 0px), var(--tg-safe-area-inset-left, 0px));--sar: max(env(safe-area-inset-right, 0px), var(--tg-safe-area-inset-right, 0px));--pill-edge: 12px;--pill-gap: 10px}@media(max-width:899px){:root{--pill-edge: max(26px, 7vw)}}html.fullscreen{--sat: calc(max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px))}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--bg-2: #0f1630;--surface: #151d38;--surface-2: #1d2747;--surface-3: #283460;--text: #eef1fb;--text-2: #c9d1ec;--muted: #a2adcf;--border: #6b779f;--line: rgba(255, 255, 255, .09);--line-2: rgba(255, 255, 255, .16);--accent: #f6bb43;--accent-hi: #ffd373;--accent-contrast: #1c1405;--accent-soft: rgba(246, 187, 67, .2);--info: #7fb0ff;--info-soft: rgba(127, 176, 255, .15);--success: #43dba0;--success-soft: rgba(67, 219, 160, .15);--danger: #ff7b7b;--danger-soft: rgba(255, 123, 123, .15);--danger-contrast: #2a0707;--scrim: rgba(4, 7, 18, .62);--scrim-blur: 8px;--shadow: 0 14px 40px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);--shadow-sm: 0 4px 14px rgba(0, 0, 0, .35);--glow: 0 0 0 1px rgba(246, 187, 67, .5), 0 8px 28px rgba(246, 187, 67, .22);--hero-1: #1d2a63;--hero-2: #0d1230;--glass: rgba(21, 29, 56, .78);--paper: #fffdf6;--ink: #1a1a1f;--red-suit: #d3233a;--black-suit: #1a1a1f;--online: #43dba0}:root[data-theme=light]{color-scheme:light;--bg: #f4f0e6;--bg-2: #ece6d6;--surface: #fffdf8;--surface-2: #f1ecdf;--surface-3: #e5dfce;--text: #1c1a14;--text-2: #3b382d;--muted: #5d5a4c;--border: #8a8672;--line: rgba(28, 26, 20, .11);--line-2: rgba(28, 26, 20, .2);--accent: #a85d00;--accent-hi: #c26d06;--accent-contrast: #ffffff;--accent-soft: rgba(168, 93, 0, .12);--info: #1c5fc7;--info-soft: rgba(28, 95, 199, .1);--success: #12795a;--success-soft: rgba(18, 121, 90, .12);--danger: #b3261e;--danger-soft: rgba(179, 38, 30, .1);--danger-contrast: #ffffff;--scrim: rgba(28, 24, 12, .42);--scrim-blur: 6px;--shadow: 0 14px 40px rgba(60, 50, 20, .2), 0 2px 8px rgba(60, 50, 20, .1);--shadow-sm: 0 4px 14px rgba(60, 50, 20, .14);--glow: 0 0 0 1px rgba(168, 93, 0, .5), 0 8px 28px rgba(168, 93, 0, .18);--hero-1: #fbe6b4;--hero-2: #f4f0e6;--glass: rgba(255, 253, 248, .82);--online: #12795a}:root,:root[data-felt=green]{--felt: #17634a;--felt-2: #0f4a37;--felt-edge: #0a3527}:root[data-felt=blue]{--felt: #1e4f88;--felt-2: #153a69;--felt-edge: #0e2a4d}:root[data-felt=burgundy]{--felt: #7a2540;--felt-2: #5b1a2f;--felt-edge: #411221}:root[data-felt=slate]{--felt: #3a4358;--felt-2: #2b3244;--felt-edge: #1f2432}:root,:root[data-board=wood]{--sq-light: #ecd6a6;--sq-dark: #a86f3c;--board-frame: #5b3a1d;--board-coord: #f1dfb8}:root[data-board=marble]{--sq-light: #e7e9ee;--sq-dark: #8d9ab1;--board-frame: #4b5568;--board-coord: #e3e8f2}:root[data-board=slate]{--sq-light: #b9c2cf;--sq-dark: #4d5a6e;--board-frame: #232a36;--board-coord: #cfd6e2}:root[data-board=green]{--sq-light: #eeeed2;--sq-dark: #6e9a5b;--board-frame: #2e4a26;--board-coord: #e6ecd0}*,*:before,*:after{box-sizing:border-box}html{background-color:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;min-height:100svh;background:var(--bg);color:var(--text);font:400 var(--t-body)/1.5 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body.in-game{overflow:hidden}[hidden]{display:none!important}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit;margin:0}button{cursor:pointer;background:none;border:0;padding:0;touch-action:manipulation}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}:focus{outline:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--r-s)}[tabindex="-1"]:focus-visible{outline:none}::selection{background:var(--accent-soft)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.wrap-any{overflow-wrap:anywhere}.tab{font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:var(--s3)}.grow{flex:1 1 auto;min-width:0}.stack{display:grid;gap:var(--s4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 var(--s5);border-radius:var(--r-l);font-weight:650;line-height:1.15;text-decoration:none;user-select:none;-webkit-user-select:none;white-space:nowrap;transition:transform var(--d1) var(--ease),background var(--d1),box-shadow var(--d2),opacity var(--d1),filter var(--d1)}.btn:active{transform:scale(.97)}.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none}.btn.block{width:100%}.btn.sm{min-height:44px;padding:0 var(--s4);font-size:var(--t-sm);border-radius:var(--r-m)}.btn.lg{min-height:56px;padding:0 var(--s6);font-size:var(--t-lead);border-radius:18px}.btn.primary{background:var(--accent);color:var(--accent-contrast);box-shadow:0 6px 22px color-mix(in srgb,var(--accent) 35%,transparent)}.btn.tonal{background:var(--accent-soft);color:var(--accent)}.btn.quiet{background:var(--surface-2);color:var(--text)}.btn.line{border:1.5px solid var(--line-2);color:var(--text);background:transparent}.btn.ghost{color:var(--accent);background:transparent}.btn.danger{background:var(--danger);color:var(--danger-contrast)}.btn.danger-tonal{background:var(--danger-soft);color:var(--danger)}@media(hover:hover){.btn.primary:hover{filter:brightness(1.07);box-shadow:0 8px 28px color-mix(in srgb,var(--accent) 48%,transparent)}.btn.quiet:hover,.btn.line:hover{background:var(--surface-3)}.btn.tonal:hover{filter:brightness(1.12)}}.icon-btn{width:44px;height:44px;display:grid;place-items:center;flex:none;border-radius:var(--r-pill);color:var(--text-2);transition:background var(--d1),transform var(--d1) var(--ease)}.icon-btn:active{transform:scale(.92)}.icon-btn.sm{width:40px;height:40px}@media(hover:hover){.icon-btn:hover{background:var(--surface-2);color:var(--text)}}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;opacity:.8;animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.field{display:grid;gap:var(--s2)}.field>label,.field-label{font-size:var(--t-meta);font-weight:650;color:var(--muted)}.input{width:100%;min-height:48px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-m);padding:11px var(--s4);line-height:1.4;font-size:16px;transition:border-color var(--d1),box-shadow var(--d1)}.input::placeholder{color:var(--muted);opacity:.8}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.code-input{text-align:center;letter-spacing:.32em;font:700 24px var(--mono);text-transform:uppercase}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border-radius:var(--r-m);max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{min-height:40px;padding:0 var(--s4);border-radius:calc(var(--r-m) - 3px);font-weight:600;font-size:var(--t-sm);color:var(--text-2);white-space:nowrap;transition:background var(--d1),color var(--d1)}.seg button[aria-pressed=true],.seg button[aria-checked=true]{background:var(--accent);color:var(--accent-contrast)}.seg.block{display:flex;flex-wrap:wrap;width:100%;overflow:visible}.seg.block button{flex:1 1 auto;text-align:center}.seg.wrap{flex-wrap:wrap;overflow:visible}.switch{position:relative;width:52px;height:32px;flex:none;border-radius:var(--r-pill);background:var(--surface-3);transition:background var(--d2)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:var(--text);transition:transform var(--d2) var(--spring)}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(20px);background:var(--accent-contrast)}.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--s3);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--t-meta);font-weight:600;white-space:nowrap}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.ok{background:var(--success-soft);color:var(--success)}.chip.btn-chip{min-height:40px;cursor:pointer;border:1.5px solid transparent}.chip.btn-chip[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast)}.dot-online{width:8px;height:8px;border-radius:50%;background:var(--online);box-shadow:0 0 0 3px color-mix(in srgb,var(--online) 25%,transparent);flex:none}.card-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--s4)}.avatar{position:relative;display:inline-grid;place-items:center;width:var(--size, 40px);height:var(--size, 40px);flex:none;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,hsl(var(--h) 62% 52%),hsl(calc(var(--h) + 40) 62% 36%));color:#fff;font-size:calc(var(--size, 40px) * .42);font-weight:700;-webkit-user-select:none;user-select:none}.avatar>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.avatar.bot{background:linear-gradient(145deg,hsl(var(--h) 55% 48%),hsl(calc(var(--h) + 30) 55% 30%))}.scrim{position:fixed;inset:0;z-index:40;background:var(--scrim);opacity:0;transition:opacity var(--d2) var(--ease)}.scrim.on{opacity:1}@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.scrim{-webkit-backdrop-filter:blur(var(--scrim-blur));backdrop-filter:blur(var(--scrim-blur))}}.scrim:not(.on),.sheet:not(.on){pointer-events:none}.sheet{position:fixed;z-index:41;left:0;right:0;bottom:var(--kb, 0px);display:flex;flex-direction:column;max-height:min(calc(var(--app-h, 100vh) - var(--sat) - var(--s4)),760px);background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow);padding-bottom:var(--sab);touch-action:pan-y;transform:translateY(100%);transition:transform var(--d3) var(--ease),bottom var(--d2) var(--ease)}.sheet.on{transform:none}@media(max-width:719.98px){html.kb-lift #layer{position:fixed;top:0;left:0;right:0;height:var(--lift-full, 100vh)}html.kb-lift .sheet.has-field{position:absolute;top:auto;bottom:var(--lift-kb, 0px);padding-bottom:var(--lift-pad, var(--sab));max-height:min(calc(var(--lift-full, 100vh) - var(--lift-want, 0px) - var(--sat, 0px) - var(--s3)),760px);box-shadow:0 24px 0 0 var(--surface),var(--shadow);transition:transform var(--d3) var(--ease),bottom .42s cubic-bezier(.26,.8,.16,.96)}html.kb-lift-down .sheet.has-field{transition:transform var(--d3) var(--ease),bottom .12s linear}html.kb-lift-snap .sheet.has-field,html.kb-lift .sheet.has-field.instant{transition:none}}.sheet.instant{transition:none;transform:none;opacity:0}.sheet-grip{padding:10px 0 2px;display:grid;place-items:center;cursor:grab;touch-action:none}.sheet-grip i{width:40px;height:4px;border-radius:2px;background:var(--border);opacity:.6}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s2) var(--s4) var(--s2) calc(var(--sal) + var(--s5))}.sheet-head h2{font-size:var(--t-lead);font-weight:700;min-width:0;font-family:var(--font-display)}.sheet-body{overflow:auto;min-height:0;display:grid;gap:var(--s4);align-content:start;padding:var(--s2) calc(var(--sar) + var(--s5)) var(--s5) calc(var(--sal) + var(--s5));overscroll-behavior:contain;scroll-padding:var(--s6) 0}.sheet-foot{display:grid;gap:var(--s2);padding:var(--s2) calc(var(--sar) + var(--s5)) var(--s4) calc(var(--sal) + var(--s5))}@media(min-width:720px){.sheet{left:50%;right:auto;bottom:auto;top:calc(var(--app-top, 0px) + var(--app-h, 100vh) / 2);width:min(500px,92vw);border-radius:var(--r-xl);padding-bottom:0;opacity:0;transform:translate(-50%,-46%) scale(.97);transition:transform var(--d3) var(--ease),opacity var(--d2)}.sheet.wide{width:min(720px,94vw)}.sheet.on{transform:translate(-50%,-50%);opacity:1}.sheet-grip{display:none}}.toasts{position:fixed;z-index:90;left:0;right:0;bottom:calc(var(--kb, 0px) + var(--sab) + var(--pill-gap) + 78px);display:grid;justify-items:center;gap:var(--s2);padding:0 var(--pill-edge);pointer-events:none}body.in-game .toasts{bottom:calc(var(--kb, 0px) + var(--sab) + var(--pill-gap) + 8px)}#layer.sheet-open .toasts{bottom:auto;top:calc(var(--app-top, 0px) + var(--sat) + var(--s3))}.toast{pointer-events:auto;display:inline-flex;align-items:center;gap:var(--s2);max-width:min(100%,440px);padding:10px var(--s4);border-radius:var(--r-pill);background:var(--text);color:var(--bg);font-size:var(--t-sm);font-weight:550;box-shadow:var(--shadow);animation:toast-in var(--d3) var(--spring) backwards}.toast span{min-width:0;overflow-wrap:anywhere}.toast.error{background:var(--danger);color:var(--danger-contrast)}.toast.success{background:var(--success);color:#04150d}.toast-action{margin-inline-start:var(--s2);padding:4px 12px;border-radius:var(--r-pill);background:#0000002e;font-weight:700}.toast.out{opacity:0;transform:translateY(8px);transition:opacity var(--d2),transform var(--d2)}@keyframes toast-in{0%{opacity:0;transform:translateY(14px) scale(.94)}}.banner{display:flex;align-items:flex-start;gap:var(--s3);padding:12px var(--s4);border-radius:var(--r-m);background:var(--surface-2);font-size:var(--t-sm)}.banner.error{background:var(--danger-soft)}.banner.warn{background:var(--accent-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}html[data-anim=off] *,html[data-anim=off] *:before,html[data-anim=off] *:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.app{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(1100px 520px at 12% -8%,color-mix(in srgb,var(--hero-1) 70%,transparent),transparent 70%),radial-gradient(900px 480px at 100% 8%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%),var(--bg)}.view{flex:1 1 auto;width:100%;max-width:var(--column);margin:0 auto;padding:var(--s4) max(var(--s4),var(--sal)) calc(var(--s9) + var(--sab)) max(var(--s4),var(--sar))}@media(min-width:900px){.view{padding-bottom:var(--s8);padding-inline:var(--s6)}}.view.fade{animation:view-in var(--d3) var(--ease)}.view.push{animation:view-push var(--d3) var(--ease)}@keyframes view-in{0%{opacity:0}}@keyframes view-push{0%{opacity:0;transform:translateY(10px)}}.topbar{position:sticky;z-index:30;top:calc(var(--pill-gap) + var(--sat));margin:calc(var(--pill-gap) + var(--sat)) auto 0;width:min(var(--column),calc(100% - 2 * var(--pill-edge)));display:flex;align-items:center;gap:var(--s3);min-height:var(--bar-h);padding:6px 8px 6px var(--s4);border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}html.fullscreen .topbar{margin-top:calc(var(--sat) + 4px);top:calc(var(--sat) + 4px)}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font:800 19px/1 var(--font-display);letter-spacing:-.01em;min-height:44px}.brand svg{width:30px;height:30px}.topnav{display:none;gap:2px;margin-inline-start:var(--s4)}.topnav a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s4);border-radius:var(--r-pill);color:var(--text-2);text-decoration:none;font-weight:600;font-size:var(--t-sm)}.topnav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}@media(hover:hover){.topnav a:hover{background:var(--surface-2);color:var(--text)}}@media(min-width:900px){.topnav{display:flex}}.topbar-right{margin-inline-start:auto;display:flex;align-items:center;gap:4px}.online-chip{display:none;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:var(--r-pill);background:var(--success-soft);color:var(--success);font-size:var(--t-meta);font-weight:650}@media(min-width:560px){.online-chip{display:inline-flex}}.me-btn{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border-radius:var(--r-pill)}.me-btn .name{display:none;font-weight:650;font-size:var(--t-sm);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:720px){.me-btn .name{display:inline}}.login-btn{text-decoration:none;min-height:44px;padding:0 var(--s4);border-radius:var(--r-pill);background:var(--accent);color:var(--accent-contrast);font-weight:700;font-size:var(--t-sm)}.tabbar{position:fixed;z-index:30;bottom:calc(var(--pill-gap) + var(--sab));left:max(var(--pill-edge),var(--sal));right:max(var(--pill-edge),var(--sar));margin-inline:auto;max-width:460px;display:flex;padding:5px;gap:2px;border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}.tabbar a{flex:1 1 0;min-width:0;display:grid;justify-items:center;align-content:center;gap:2px;min-height:52px;border-radius:var(--r-pill);color:var(--muted);text-decoration:none;font-size:11px;font-weight:650;transition:background var(--d1),color var(--d1)}.tabbar a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.tabbar a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}@media(min-width:900px){.tabbar{display:none}}body.in-game .topbar,body.in-game .tabbar{display:none}body:has(input:focus,textarea:focus) .tabbar{display:none}.section{margin-top:var(--s8)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}.section-head h2{font:800 var(--t-title)/1.2 var(--font-display);letter-spacing:-.01em}.section-head a,.link-btn{color:var(--accent);font-weight:650;font-size:var(--t-sm);text-decoration:none;min-height:32px;display:inline-flex;align-items:center;gap:4px}.eyebrow{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);color:var(--text-2);font-size:var(--t-meta);font-weight:650}.lead{font-size:var(--t-lead);color:var(--text-2);line-height:1.5;max-width:56ch}.page-title{font:800 var(--t-h1)/1.1 var(--font-display);letter-spacing:-.02em;margin:var(--s6) 0 var(--s3)}.hero{position:relative;display:grid;gap:var(--s6);align-items:center;padding:var(--s7) 0 var(--s4)}.hero h1{font:800 var(--t-hero)/1.04 var(--font-display);letter-spacing:-.03em;margin:var(--s4) 0 var(--s3);text-wrap:balance}.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--accent-hi),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}.hero-art{position:relative;min-height:220px;display:grid;place-items:center}@media(min-width:900px){.hero{grid-template-columns:1.1fr .9fr;padding-top:var(--s8)}.hero-art{min-height:340px}}.hero-art{overflow:hidden;padding:var(--s3) 0}.hero-art .float{filter:drop-shadow(0 18px 24px rgba(0,0,0,.35));animation:bob 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bob{50%{transform:translateY(-10px) rotate(var(--r2, 2deg))}}.continue-card{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);border-radius:var(--r-l);background:linear-gradient(120deg,var(--accent-soft),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);text-decoration:none;color:inherit}.tiles{display:grid;gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:560px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}}@media(min-width:900px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1100px){.tiles{grid-template-columns:repeat(5,minmax(0,1fr))}}.tile{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit;transition:transform var(--d2) var(--ease),box-shadow var(--d2),border-color var(--d2)}@media(hover:hover){.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--tile, var(--accent)) 55%,transparent)}}.tile:active{transform:scale(.98)}.cover{position:relative;aspect-ratio:8 / 5;overflow:hidden;background:linear-gradient(150deg,color-mix(in srgb,var(--tile, var(--accent)) 82%,#fff 6%),color-mix(in srgb,var(--tile, var(--accent)) 38%,#050814))}.cover svg{position:absolute;inset:0;width:100%;height:100%}.cover .cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s var(--ease)}.cover .cover-img.ready{opacity:1}.cover .tags{position:absolute;top:8px;left:8px;right:8px;display:flex;gap:6px;flex-wrap:wrap}.mini-tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--r-pill);background:#080c1c9e;color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tile-body{padding:10px 12px 12px;display:grid;gap:3px}.tile-body h3{font:750 16px/1.2 var(--font-display)}.tile-body p{color:var(--muted);font-size:var(--t-meta);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nowrap{white-space:nowrap}.tile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;color:var(--muted);font-size:12px;font-weight:600}.tile-meta .live{margin-inline-start:auto;display:inline-flex;align-items:center;gap:5px;color:var(--success)}.dots{display:inline-flex;gap:3px}.dots i{width:6px;height:6px;border-radius:50%;background:var(--line-2)}.dots i.on{background:var(--accent)}.filters{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s4) 0}.count-line{font:600 var(--t-sm)/1.4 var(--font);color:var(--muted);margin:0 0 var(--s3)}.search{position:relative;margin-top:var(--s4)}.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search .input{padding-inline-start:44px;border-radius:var(--r-pill)}.game-hero{position:relative;display:grid;gap:var(--s5);margin-top:var(--s4);padding:var(--s4);border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--tile, var(--accent)) 30%,var(--surface)),var(--surface));border:1px solid var(--line)}@media(min-width:760px){.game-hero{grid-template-columns:minmax(260px,380px) 1fr;padding:var(--s6);align-items:center;gap:var(--s7)}}.game-hero .cover{border-radius:var(--r-l);box-shadow:var(--shadow)}.game-hero h1{font:800 var(--t-h1)/1.05 var(--font-display);letter-spacing:-.02em;margin:var(--s2) 0}.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}.actions{display:grid;gap:var(--s3);margin-top:var(--s5)}@media(min-width:560px){.actions{grid-template-columns:1.5fr 1fr 1fr}}.live-line{display:flex;align-items:center;gap:var(--s2);color:var(--text-2);font-size:var(--t-sm);margin-top:var(--s3)}.list{display:grid;gap:var(--s2)}.list-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}.list-item .grow b{display:block}.list-item .grow small{color:var(--muted)}.rules details{border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}.rules details+details{margin-top:var(--s2)}.rules summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:52px;padding:0 var(--s4);font-weight:700}.rules summary::-webkit-details-marker{display:none}.rules summary:after{content:"";width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform var(--d2);margin-inline-end:4px}.rules details[open] summary:after{transform:rotate(-135deg)}.rules .prose{padding:0 var(--s4) var(--s4);color:var(--text-2);display:grid;gap:var(--s3);max-width:70ch}.goal{padding:var(--s4);border-radius:var(--r-m);background:var(--accent-soft);color:var(--text);font-weight:600;margin-bottom:var(--s3)}.table-board{width:100%;border-collapse:collapse}.table-board th,.table-board td{padding:10px 8px;text-align:start;border-bottom:1px solid var(--line);font-size:var(--t-sm)}.table-board th{color:var(--muted);font-weight:650;font-size:var(--t-meta)}.table-board .me td{background:var(--accent-soft)}.opt{display:grid;gap:var(--s2)}.opt>.field-label{display:flex;justify-content:space-between}.help{color:var(--muted);font-size:var(--t-meta)}.auth-card{max-width:440px;margin:var(--s8) auto 0;padding:var(--s6);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;display:grid;gap:var(--s4)}.auth-card h1{font:800 28px/1.15 var(--font-display)}.auth-card .logo{justify-self:center;width:64px;height:64px}.auth-btn{display:flex;align-items:center;justify-content:center;gap:var(--s3);width:100%;min-height:52px;border-radius:var(--r-pill);font-weight:700;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--text)}.auth-btn.tg{background:#1a76a8;border-color:transparent;color:#fff}.auth-btn svg{width:22px;height:22px}#g-btn{display:grid;justify-items:center;min-height:44px}.or{display:flex;align-items:center;gap:var(--s3);color:var(--muted);font-size:var(--t-meta)}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line-2)}.fine{color:var(--muted);font-size:var(--t-meta)}.fine a{color:var(--text-2)}.profile-head{display:flex;align-items:center;gap:var(--s5);padding:var(--s5);border-radius:var(--r-xl);background:linear-gradient(135deg,var(--accent-soft),var(--surface));border:1px solid var(--line);margin-top:var(--s4)}.profile-head h1{font:800 28px/1.1 var(--font-display)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}@media(min-width:640px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{padding:var(--s4);border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}.stat b{display:block;font:800 26px/1.1 var(--font-display)}.stat small{color:var(--muted)}.settings-group{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);overflow:hidden}.settings-row{display:flex;align-items:center;gap:var(--s4);min-height:60px;padding:var(--s3) var(--s4)}.settings-row+.settings-row{border-top:1px solid var(--line)}.settings-row .grow b{display:block;font-weight:650}.settings-row .grow small{color:var(--muted);display:block}.settings-row.col{flex-direction:column;align-items:stretch}.swatches{display:flex;gap:var(--s3);flex-wrap:wrap}.swatch{width:44px;height:44px;border-radius:var(--r-m);border:3px solid transparent;background:var(--c);box-shadow:inset 0 0 0 1px #ffffff2e}.swatch[aria-pressed=true]{border-color:var(--accent)}.empty{text-align:center;padding:var(--s8) var(--s4);color:var(--muted);display:grid;gap:var(--s3);justify-items:center}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 37%,var(--surface) 63%);background-size:400% 100%;border-radius:var(--r-m);animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.footer{margin-top:var(--s9);padding-top:var(--s6);border-top:1px solid var(--line);display:grid;gap:var(--s4);color:var(--muted);font-size:var(--t-meta)}.footer nav{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}.footer a{color:var(--text-2);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}.prose-page{max-width:var(--reading);margin:0 auto;display:grid;gap:var(--s4)}.prose-page h2{font:750 20px/1.25 var(--font-display);margin-top:var(--s4)}.prose-page p,.prose-page li{color:var(--text-2)}.prose-page ul{list-style:disc;padding-inline-start:var(--s5);display:grid;gap:var(--s2)}.conn-banner{position:sticky;top:calc(var(--sat) + 4px);z-index:25;margin:var(--s2) auto 0;width:fit-content;max-width:calc(100% - 2 * var(--pill-edge));display:flex;align-items:center;gap:var(--s2);padding:8px 16px;border-radius:var(--r-pill);background:var(--danger-soft);color:var(--danger);font-size:var(--t-sm);font-weight:650;border:1px solid color-mix(in srgb,var(--danger) 40%,transparent)}.invite-toast-wrap{display:contents}.view.immersive{max-width:none;padding:0}.view.immersive.fade,.view.immersive.push{animation:none}.play{position:relative;display:flex;flex-direction:column;width:100%;height:100vh;height:100svh;overflow:hidden;background:radial-gradient(900px 520px at 50% -10%,color-mix(in srgb,var(--hero-1) 65%,transparent),transparent 70%),var(--bg);padding-top:var(--sat)}.play-bar{flex:none;display:flex;align-items:center;gap:var(--s2);min-height:var(--bar-h);padding:0 max(var(--s2),var(--sar)) 0 max(var(--s2),var(--sal))}.play-title{flex:1 1 auto;min-width:0;display:grid;line-height:1.2}.play-name{margin:0;font:750 var(--t-sm)/1.2 var(--font-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-status{color:var(--muted);font-size:var(--t-meta);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-status[data-tone=mine]{color:var(--accent)}.play-actions{display:flex;gap:2px}.play-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.stage-inner{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0 max(var(--s2),var(--sar)) 0 max(var(--s2),var(--sal))}.play>.play-stage>.empty{margin:auto}.over-bar{flex:none;display:flex;gap:var(--s2);justify-content:center;flex-wrap:wrap;padding:var(--s2) var(--s3) calc(var(--s2) + var(--sab));border-top:1px solid var(--line);background:var(--glass)}.play:not(:has(.over-bar:not([hidden]))) .stage-inner{padding-bottom:var(--sab)}.badge{position:relative;display:inline-flex;align-items:center;gap:10px;max-width:100%;min-height:54px;padding:5px 14px 5px 5px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:box-shadow var(--d2),border-color var(--d2),background var(--d2)}.badge.compact{min-height:46px;padding:4px 10px 4px 4px;gap:8px}.badge-pic{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px}.badge.compact .badge-pic{width:38px;height:38px}.badge-avatar{display:grid;place-items:center}.badge-ring{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);pointer-events:none;opacity:0;transition:opacity var(--d2)}.badge-ring.on{opacity:1}.ring-bg{fill:none;stroke:transparent}.ring-fg{fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;transition:stroke-dashoffset .25s linear,stroke var(--d2)}.badge.is-low .ring-fg{stroke:var(--danger)}.badge-text{display:grid;min-width:0;line-height:1.2}.badge-name{font-size:var(--t-sm);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.badge-sub{color:var(--muted);font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.badge-sub:empty{display:none}.badge-extra{display:inline-flex;align-items:center;gap:6px}.badge-extra:empty{display:none}.badge-time{font-weight:800;font-size:var(--t-sm);color:var(--text-2);min-width:2.6em;text-align:end}.badge-time:empty{display:none}.badge.is-low .badge-time{color:var(--danger)}.badge.is-turn{border-color:var(--accent);box-shadow:var(--glow)}.badge.is-me .badge-name{color:var(--text)}.badge.is-away{opacity:.62}.badge.is-auto .badge-sub:before{content:"\1f916  "}.badge-bubble{position:absolute;z-index:5;left:50%;bottom:calc(100% + 6px);transform:translate(-50%);max-width:220px;padding:7px 12px;border-radius:14px;background:var(--text);color:var(--bg);font-weight:650;font-size:var(--t-sm);white-space:nowrap;box-shadow:var(--shadow);pointer-events:none}.badge-bubble.pop{animation:bubble .32s var(--spring)}@keyframes bubble{0%{transform:translate(-50%) scale(.6);opacity:0}}.chip-disc{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:inset 0 -2px 3px #00000040}.waiting{width:min(100%,520px);margin:auto;padding:var(--s4);display:grid;gap:var(--s4);align-content:center;min-height:100%}.wait-hero{text-align:center;display:grid;gap:var(--s3);justify-items:center}.wait-hero h2{font:800 26px/1.15 var(--font-display)}.wait-count{font:800 18px var(--font-display);color:var(--accent)}.radar{position:relative;width:96px;height:96px;display:grid;place-items:center;color:var(--accent);margin-bottom:6px}.radar i{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:radar 2.4s ease-out infinite}.radar i:nth-child(2){animation-delay:.8s}.radar i:nth-child(3){animation-delay:1.6s}@keyframes radar{0%{transform:scale(.35);opacity:.7}to{transform:scale(1.15);opacity:0}}.code-box{display:grid;gap:6px;padding:var(--s4) var(--s6);border-radius:var(--r-l);background:var(--surface);border:1px dashed var(--line-2)}.code{font:800 38px/1 var(--mono);letter-spacing:.22em;padding-inline-start:.22em;color:var(--accent);user-select:all;-webkit-user-select:all}.seat-empty{border-style:dashed;background:transparent}.sheet:has(.result){overflow:hidden}.result{display:grid;gap:var(--s4)}.result-hero{display:grid;justify-items:center;gap:6px;text-align:center;padding:var(--s4) 0 var(--s2)}.result-hero h3{font:800 30px/1.1 var(--font-display)}.result-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.result-hero.win .result-icon{background:var(--accent-soft);color:var(--accent);animation:pop .6s var(--spring)}.result-hero.win h3{color:var(--accent)}.result-hero.lose .result-icon{color:var(--danger);background:var(--danger-soft)}@keyframes pop{0%{transform:scale(.4) rotate(-20deg);opacity:0}}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3;border-radius:inherit}.confetti i{position:absolute;top:-12px;left:var(--x);width:9px;height:15px;background:var(--c);border-radius:2px;animation:fall var(--d) var(--w) ease-in forwards;transform:rotate(var(--r))}@keyframes fall{to{transform:translateY(560px) rotate(calc(var(--r) + 540deg));opacity:.85}}.emote-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}.emote-grid button{min-height:56px;border-radius:var(--r-m);background:var(--surface-2);font-size:28px}.emote-grid .phrase{font-size:var(--t-sm);font-weight:650;grid-column:span 2;padding:0 var(--s3)}.emote-grid button:active{transform:scale(.94)}.bf-wrap{flex:1 1 auto;min-height:0;container-type:size}.bf{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:var(--s2);padding-block:var(--s1)}.bf-center{min-height:0;min-width:0;display:grid;place-items:center;container-type:size}.bf-board{width:min(100cqw,100cqh);height:min(100cqw,100cqh);position:relative;display:grid;place-items:center}.bf-side{display:flex;align-items:center;gap:var(--s3);min-width:0}.bf-top,.bf-bottom{justify-content:flex-start}@container (min-aspect-ratio: 5/4){.bf{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(190px,300px);gap:var(--s3) var(--s5);align-items:stretch}.bf-center{grid-column:1;grid-row:1 / span 2;width:100%;height:100%}.bf-top{grid-column:2;grid-row:1;align-self:start;flex-direction:column;align-items:flex-start;padding-top:var(--s2)}.bf-bottom{grid-column:2;grid-row:2;align-self:end;flex-direction:column;align-items:flex-start;padding-bottom:var(--s2)}}.ct{position:relative;flex:1 1 auto;min-height:0;margin:0 0 var(--s2);border-radius:26px;overflow:hidden;overflow:clip;touch-action:manipulation;user-select:none;-webkit-user-select:none;background:radial-gradient(ellipse 80% 70% at 50% 46%,var(--felt) 0%,var(--felt-2) 62%,var(--felt-edge) 100%);box-shadow:inset 0 0 70px #00000073,inset 0 0 0 2px #ffffff0d,0 12px 32px #00000059}.ct:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.ct-layer{position:absolute;inset:0;z-index:2}.ct-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}.ct-badge,.ct-float{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.ct-badge .badge{box-shadow:0 4px 14px #00000059;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ct-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--accent);color:var(--accent-contrast);font:800 12px/1 var(--font)}.card{position:absolute;left:0;top:0;width:var(--cw);height:var(--ch);transform-origin:50% 50%;transition:transform .4s var(--ease),opacity .3s;will-change:transform;perspective:900px;touch-action:manipulation;outline:none}.card-in{position:absolute;inset:0;transform-style:preserve-3d;transform:translateY(var(--lift, 0px)) rotateY(var(--flip, 180deg));transition:transform .38s var(--ease),filter .2s}.card.up{--flip: 0deg}.cf{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:calc(var(--cw) * .085);overflow:hidden;box-shadow:0 1px 2px #0006,0 5px 12px #00000038;background:#fffdf6}.cf.back{transform:rotateY(180deg)}.cf svg,.cf img{width:100%;height:100%;display:block;max-width:none}.cf img{pointer-events:none;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}.domino .cf{border-radius:calc(var(--cw) * .17)}.card.can{cursor:pointer}.card.mine.can .cf{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 85%,transparent),0 6px 14px #0006}@media(hover:hover){.card.can:hover{--lift: calc(var(--ch) * -.14)}}.card.can:focus-visible .front{outline:3px solid var(--accent);outline-offset:1px}.card.sel{--lift: calc(var(--ch) * -.22)}.card.sel .cf{box-shadow:0 0 0 3px var(--accent),0 8px 18px #0006}.card.dim .card-in,.card.nocan .card-in{filter:brightness(.7) saturate(.75)}.card.dragging{z-index:999!important;cursor:grabbing;transition:none!important}.card.dragging .card-in{transition:none;--lift: 0px}.card.gone{opacity:0;pointer-events:none}html[data-anim=off] .card,html[data-anim=off] .card-in{transition:none!important}.board-wood{background:var(--board-frame);border-radius:14px;padding:3.4%;box-shadow:var(--shadow)}.sq-light{background:var(--sq-light)}.sq-dark{background:var(--sq-dark)}.die{display:inline-grid;place-items:center;width:var(--die, 46px);height:var(--die, 46px);border-radius:22%;background:#fffdf6;box-shadow:inset 0 -3px #0000001f,0 3px 8px #0000004d}.die svg{width:80%;height:80%}.die.rolling{animation:dieroll .5s linear infinite}@keyframes dieroll{25%{transform:rotate(40deg) scale(1.08)}50%{transform:rotate(-30deg) translateY(-6px)}75%{transform:rotate(20deg) scale(.95)}}.ct.narrow .ct-badge.side .badge{padding-right:6px;gap:4px}.ct.narrow .ct-badge.side .badge-text,.ct.narrow .ct-badge.side .badge-time:empty{display:none}.ct.narrow .ct-badge.side .badge-time{font-size:12px;min-width:0}.ct-badge.is-hidden{display:none}
