:root{color-scheme:dark;--canvas: #07080a;--surface: #0d0d0d;--surface-elevated: #101111;--surface-card: #121212;--surface-hover: #1b1c1e;--hairline: #242728;--hairline-soft: rgba(255, 255, 255, .08);--hairline-strong: rgba(255, 255, 255, .16);--field-border: #5f6265;--ink: #f4f4f6;--body: #cdcdcd;--mute: #9c9c9d;--ash: #7c7d7f;--disabled: #6a6b6c;--on-dark: #ffffff;--primary: #ffffff;--primary-pressed: #e8e8e8;--on-primary: #000000;--blue: #57c1ff;--blue-soft: rgba(87, 193, 255, .15);--red: #ff6161;--red-soft: rgba(255, 97, 97, .15);--green: #59d499;--green-soft: rgba(89, 212, 153, .15);--yellow: #ffc533;--yellow-soft: rgba(255, 197, 51, .15);--purple: #b9a6ff;--purple-soft: rgba(185, 166, 255, .15);--stripe-start: #ff5757;--stripe-end: #a1131a;--felt: #0b0606;--felt-glow: rgba(161, 19, 26, .42);--felt-hi: #a3242c;--felt-mid: #7d1820;--felt-lo: #4a0c11;--card-back: #1f5fd6;--card-back-line: rgba(255, 255, 255, .38);--key-start: #1a1b1d;--key-end: #0d0d0d;--card-face: #f4f4f6;--card-ink: #16171a;--suit-red: #d02828;--card-shadow: 0 2px 6px rgba(0, 0, 0, .55);--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--series-you: var(--ink);--font: "Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--features: "calt", "kern", "liga", "ss03";--fs-display: 40px;--fs-h1: 28px;--fs-h2: 20px;--fs-h3: 16px;--fs-body: 15px;--fs-sm: 14px;--fs-cap: 13px;--fs-xs: 12px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 16px;--r-full: 9999px;--s-xxs: 2px;--s-xs: 4px;--s-sm: 8px;--s-md: 12px;--s-lg: 16px;--s-xl: 24px;--s-xxl: 32px;--s-section: 48px;--sidebar: 232px;--rail: 64px;--ease: cubic-bezier(.2, .8, .2, 1)}@media (max-width: 768px){:root{--fs-display: 30px;--fs-h1: 24px;--s-section: 32px}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--canvas);color:var(--body);font:400 var(--fs-body) / 1.6 var(--font);font-feature-settings:var(--features);-webkit-font-smoothing:antialiased;letter-spacing:.01em}button,input,select,textarea{font:inherit;color:inherit;font-feature-settings:var(--features)}h1,h2,h3{margin:0;color:var(--ink);font-weight:500;letter-spacing:.01em}p{margin:0}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}b{color:var(--ink);font-weight:500}code{font-family:var(--mono);font-size:.9em;background:var(--surface-card);border:1px solid var(--hairline);padding:0 var(--s-xs);border-radius:var(--r-xs)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}::selection{background:var(--blue-soft)}.muted{color:var(--mute)}.small{font-size:var(--fs-cap)}.grow{flex:1;min-width:0}.err{color:var(--red)}.ok-text{color:var(--green)}.run-text{color:var(--yellow)}.pos{color:var(--green)}.neg{color:var(--red)}.num{text-align:right;font-variant-numeric:tabular-nums}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.scroll-x{overflow-x:auto;position:relative}@media (prefers-reduced-motion: no-preference){.card,.hero,.palette,.tile,.stat{animation:rise .26s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}}.app{--nav-w: var(--sidebar);min-height:100vh;display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr)}.collapse-btn{display:flex;align-items:center;gap:var(--s-sm);padding:6px var(--s-sm);border:0;border-radius:var(--r-sm);background:transparent;color:var(--mute);font:inherit;font-size:var(--fs-cap);cursor:pointer;text-align:left}.collapse-btn:hover{background:var(--surface-elevated);color:var(--ink)}.collapse-btn .icon{transform:rotate(180deg);transition:transform .15s}.app.collapsed .collapse-btn .icon{transform:none}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--s-lg);padding:var(--s-lg) var(--s-md);background:var(--surface);border-right:1px solid var(--hairline);overflow-y:auto}.brand{display:inline-flex;align-items:center;padding:var(--s-xs) var(--s-sm);border-radius:var(--r-md)}.brand:hover{text-decoration:none}.brand-inner{display:inline-flex;align-items:center;gap:var(--s-sm)}.brand-mark{flex:none;overflow:visible;filter:drop-shadow(0 0 3px rgba(255,87,87,.75)) drop-shadow(0 0 9px rgba(161,19,26,.7))}.brand:hover .brand-mark{filter:drop-shadow(0 0 4px rgba(255,87,87,.9)) drop-shadow(0 0 13px rgba(255,87,87,.55))}.brand-name{color:var(--ink);font-weight:600;font-size:16px;letter-spacing:.02em}.nav-group{display:grid;gap:2px;margin-bottom:var(--s-sm)}.nav-group-title{color:var(--ash);font-size:var(--fs-xs);font-weight:500;letter-spacing:.04em;padding:var(--s-xs) var(--s-sm)}.nav-row{display:flex;align-items:center;gap:var(--s-sm);padding:6px var(--s-sm);border-radius:var(--r-sm);color:var(--body);font-size:var(--fs-sm);font-weight:500;transition:background .15s,color .15s}.nav-row:hover{background:var(--surface-elevated);color:var(--ink);text-decoration:none}.nav-row.on{background:var(--surface-card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline)}.nav-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-sm);background:var(--surface-elevated);border:1px solid var(--hairline);color:var(--mute);flex:none}.nav-row.on .nav-icon{color:var(--ink);border-color:var(--hairline-strong)}.nav-label{flex:1}.nav-kbd{display:inline-flex;gap:2px;opacity:0;transition:opacity .15s}.nav-row:hover .nav-kbd,.nav-row.on .nav-kbd,.nav-row:focus-visible .nav-kbd{opacity:1}.sidebar-foot{margin-top:auto;display:grid;gap:var(--s-sm)}.resume{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--hairline);color:var(--body);font-size:var(--fs-cap)}.resume:hover{text-decoration:none;background:var(--surface-card)}.resume>span:nth-child(2){display:grid;flex:1}.resume b{font-size:var(--fs-sm)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft);flex:none}.kbd-hint{color:var(--ash);font-size:var(--fs-xs);padding:0 var(--s-sm);display:flex;gap:4px;align-items:center;flex-wrap:wrap}.kbd-hint.armed{color:var(--yellow)}.topbar,.scrim{display:none}.workspace{min-width:0}.page{max-width:1240px;margin:0 auto;padding:var(--s-xl) var(--s-xxl) var(--s-section);display:grid;gap:var(--s-lg);align-content:start}.page-wide{max-width:1480px}@media (min-width: 1025px){.app.collapsed{--nav-w: var(--rail)}.app.collapsed .sidebar{padding:var(--s-md) var(--s-sm);align-items:center}.app.collapsed :is(.brand-name,.nav-label,.nav-kbd,.nav-group-title,.kbd-hint,.resume>span:nth-child(2),.resume .icon){display:none}.app.collapsed .nav-row{justify-content:center;padding:6px}.app.collapsed .nav-group{border-top:1px solid var(--hairline);padding-top:var(--s-sm)}.app.collapsed .resume,.app.collapsed .collapse-btn{justify-content:center;padding:var(--s-sm)}}@media (max-width: 1024px){.collapse-btn{display:none}.app{--nav-w: var(--rail)}.sidebar{padding:var(--s-md) var(--s-sm);align-items:center}.brand-name,.nav-label,.nav-kbd,.nav-group-title,.kbd-hint,.resume>span:nth-child(2),.resume .icon{display:none}.nav-row{justify-content:center;padding:6px}.nav-group{border-top:1px solid var(--hairline);padding-top:var(--s-sm)}.resume{justify-content:center;padding:var(--s-sm)}.page{padding:var(--s-lg) var(--s-lg) var(--s-section)}}@media (max-width: 768px){.app{display:block}.topbar{display:flex;position:sticky;top:0;z-index:40;align-items:center;justify-content:space-between;gap:var(--s-sm);height:56px;padding:0 var(--s-md);background:var(--canvas);border-bottom:1px solid var(--hairline)}.sidebar{position:fixed;z-index:60;top:0;left:0;width:264px;align-items:stretch;transform:translate(-100%);transition:transform .22s var(--ease);padding:var(--s-lg) var(--s-md)}.drawer-open .sidebar{transform:none}.sidebar .brand-name,.sidebar .nav-label,.sidebar .nav-group-title,.sidebar .resume>span:nth-child(2){display:revert}.sidebar .nav-row{justify-content:flex-start;padding:8px}.sidebar .nav-group{border-top:0;padding-top:0}.sidebar .resume{justify-content:flex-start}.drawer-open .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009}.page{padding:var(--s-lg) var(--s-lg) var(--s-section)}}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-lg);padding:var(--s-sm) 0}.page-title{display:flex;align-items:center;gap:var(--s-md);min-width:0}.page-title h1{font-size:var(--fs-h1);font-weight:600;line-height:1.2}.page-title p{color:var(--mute);font-size:var(--fs-sm);margin-top:2px;max-width:70ch}.page-actions{display:flex;flex-wrap:wrap;gap:var(--s-sm);align-items:center}.icon-tile{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-md);flex:none;background:var(--surface-card);border:1px solid var(--hairline);color:var(--body);font-size:16px}.icon-tile.sm{width:24px;height:24px;border-radius:var(--r-sm)}.icon-tile.lg{width:40px;height:40px;border-radius:var(--r-lg);font-size:20px}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);min-width:0}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-sm) var(--s-md);padding:var(--s-md) var(--s-lg);border-bottom:1px solid var(--hairline)}.card-title{display:flex;align-items:center;gap:var(--s-sm);min-width:0}.card-title h2{font-size:var(--fs-h3);font-weight:500}.card-title p{color:var(--mute);font-size:var(--fs-cap)}.card-actions{display:flex;flex-wrap:wrap;gap:var(--s-sm);align-items:center}.card-body{padding:var(--s-lg);display:grid;gap:var(--s-md);min-width:0}.card-body.flush{padding:0;gap:0}.card-foot{padding:var(--s-md) var(--s-lg);border-top:1px solid var(--hairline)}.title-with-avatar{display:inline-flex;align-items:center;gap:var(--s-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-sm);height:36px;padding:0 var(--s-lg);border-radius:var(--r-md);border:1px solid transparent;font-size:var(--fs-sm);font-weight:500;letter-spacing:.01em;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.btn:hover{text-decoration:none}.btn:disabled{cursor:default;opacity:1}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:#f3f3f3}.btn-primary:active:not(:disabled){background:var(--primary-pressed)}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--field-border)}.btn-secondary:hover:not(:disabled){background:var(--surface-elevated)}.btn-tertiary{background:var(--surface-card);color:var(--ink);border-color:var(--hairline-strong)}.btn-tertiary:hover:not(:disabled){background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--body)}.btn-ghost:hover:not(:disabled){background:var(--surface-elevated);color:var(--ink)}.btn-danger{background:var(--red-soft);color:var(--red);border-color:#ff616159}.btn-danger:hover:not(:disabled){background:#ff616138}.btn:disabled{background:var(--surface-elevated);color:var(--disabled);border-color:var(--hairline)}.btn-sm{height:30px;padding:0 var(--s-md);font-size:var(--fs-cap);gap:6px}.btn-lg{height:44px;padding:0 var(--s-xl);font-size:var(--fs-body)}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:30px}.keycap{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--r-xs);background:linear-gradient(180deg,var(--key-start),var(--key-end));border:1px solid var(--hairline-strong);color:var(--body);font:500 11px/1 var(--mono);box-shadow:0 1px #ffffff0a inset}.btn-primary .keycap{background:#00000014;border-color:#0003;color:#333;box-shadow:none}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 var(--s-sm);border-radius:var(--r-xs);font-size:var(--fs-xs);font-weight:500;letter-spacing:.02em;white-space:nowrap;text-transform:capitalize;background:var(--surface-elevated);color:var(--mute);border:1px solid var(--hairline)}.tone-blue{--tone: var(--blue);--tone-soft: var(--blue-soft)}.tone-green{--tone: var(--green);--tone-soft: var(--green-soft)}.tone-yellow{--tone: var(--yellow);--tone-soft: var(--yellow-soft)}.tone-red{--tone: var(--red);--tone-soft: var(--red-soft)}.tone-purple{--tone: var(--purple);--tone-soft: var(--purple-soft)}.badge[class*=tone-]:not(.tone-neutral),.icon-tile[class*=tone-]:not(.tone-neutral),.avatar[class*=tone-]:not(.tone-neutral){background:var(--tone-soft);color:var(--tone);border-color:transparent}.pills{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--r-full);background:var(--canvas);border:1px solid var(--hairline)}.pill{height:28px;padding:0 12px;border-radius:var(--r-full);border:0;background:transparent;color:var(--mute);font-size:var(--fs-cap);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.pill:hover:not(:disabled){color:var(--ink)}.pill.on{background:var(--surface-card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.pill:disabled{color:var(--disabled);cursor:not-allowed}.switch{display:inline-flex;align-items:center;gap:var(--s-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--body);-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{position:relative;width:34px;height:20px;border-radius:var(--r-full);background:var(--surface-card);border:1px solid var(--field-border);transition:background .15s;flex:none}.switch-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--mute);transition:transform .15s var(--ease),background .15s}.switch input:checked+.switch-track{background:var(--primary);border-color:var(--primary)}.switch input:checked+.switch-track .switch-thumb{transform:translate(14px);background:var(--on-primary)}.switch input:focus-visible+.switch-track{outline:2px solid var(--blue);outline-offset:2px}.switch.disabled{cursor:not-allowed;color:var(--disabled)}.hint{color:var(--mute);font-size:var(--fs-cap)}.stats{display:flex;flex-wrap:wrap;gap:var(--s-sm)}.stat{min-width:108px;padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--hairline)}.stat-label{color:var(--mute);font-size:var(--fs-xs);font-weight:500;letter-spacing:.03em}.stat-value{color:var(--ink);font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.4}.stat.tone-green .stat-value{color:var(--green)}.stat.tone-red .stat-value{color:var(--red)}.progress{display:flex;align-items:center;gap:var(--s-md)}.progress-track{flex:1;height:6px;border-radius:var(--r-full);background:var(--surface-card);overflow:hidden;border:1px solid var(--hairline)}.progress-fill{height:100%;border-radius:inherit;background:var(--primary);transition:width .3s var(--ease)}.progress-fill.tone-green{background:var(--green)}.progress-label{color:var(--mute);font-size:var(--fs-cap);font-variant-numeric:tabular-nums;white-space:nowrap}.banner{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);background:var(--tone-soft);color:var(--tone);font-size:var(--fs-sm)}.banner a{color:inherit;text-decoration:underline}.empty{display:grid;justify-items:center;gap:var(--s-sm);padding:var(--s-xl);text-align:center;color:var(--mute)}.empty b{color:var(--ink)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s-md) var(--s-lg);align-items:end}.field{display:grid;gap:6px;min-width:0}.field-wide{grid-column:span 2}.field-label{color:var(--mute);font-size:var(--fs-cap);font-weight:500}.inline-field{grid-template-columns:auto minmax(0,220px);align-items:center}.input{width:100%;height:36px;padding:0 var(--s-md);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--field-border);color:var(--ink);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}.input:hover:not(:disabled){border-color:#74777a}.input:focus{outline:none;border-color:var(--ink);background:var(--surface-card)}.input:disabled{color:var(--disabled);border-color:var(--hairline)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}.with-unit{display:flex;align-items:center;gap:var(--s-sm)}.with-unit .input{flex:1;min-width:0}.unit{color:var(--mute);font-size:var(--fs-cap);white-space:nowrap}.help{color:var(--ash);font-size:var(--fs-xs);line-height:1.45}input[type=checkbox].check{accent-color:var(--primary);width:16px;height:16px;cursor:pointer}input[type=range]{accent-color:var(--primary)}.chip{height:28px;padding:0 var(--s-md);border-radius:var(--r-full);background:var(--surface-elevated);border:1px solid var(--hairline-strong);color:var(--body);font-size:var(--fs-cap);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.chip:hover{background:var(--surface-card);color:var(--ink)}.chip.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);flex:none;background:var(--surface-card);border:1px solid var(--hairline);color:var(--body);font-size:13px;font-weight:600;letter-spacing:.04em}.avatar.lg{width:44px;height:44px;border-radius:var(--r-lg);font-size:15px}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-lg)}.grid-2.align-start{align-items:start}.stack{display:grid;gap:var(--s-lg);align-content:start}.start-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-md)}.rule-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-sm) var(--s-lg)}.section-title{display:flex;align-items:baseline;gap:var(--s-md);margin-top:var(--s-md)}.section-title h2{font-size:var(--fs-h2)}@media (max-width: 900px){.grid-2{grid-template-columns:minmax(0,1fr)}.field-wide{grid-column:auto}}.list{list-style:none;margin:0;padding:0}.list-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-xs) var(--s-md);padding:var(--s-sm) var(--s-lg);border-bottom:1px solid var(--hairline);font-size:var(--fs-sm)}.list-row:last-child{border-bottom:0}.list-sub{display:block;color:var(--mute);font-size:var(--fs-cap)}.hero{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid var(--hairline);background:var(--surface);padding:var(--s-section) var(--s-xxl)}.hero-stripes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-stripes span{position:absolute;right:-10%;width:70%;height:46px;transform:rotate(-24deg);border-radius:var(--r-full);background:linear-gradient(90deg,transparent,var(--stripe-start) 45%,var(--stripe-end));opacity:.9}.hero-stripes span:nth-child(1){top:8%}.hero-stripes span:nth-child(2){top:34%;opacity:.6}.hero-stripes span:nth-child(3){top:60%;opacity:.3}.hero-copy{position:relative;max-width:560px;display:grid;gap:var(--s-md);justify-items:start}.hero h1{font-size:var(--fs-display);font-weight:600;line-height:1.1}.hero p{color:var(--body);font-size:17px}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s-sm);margin-top:var(--s-sm)}.home-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--s-lg)}@media (max-width: 900px){.home-grid{grid-template-columns:minmax(0,1fr)}.hero{padding:var(--s-xxl) var(--s-lg)}}.palette{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);padding:var(--s-sm);display:grid;gap:2px;align-content:start}.palette-search{display:flex;align-items:center;gap:var(--s-md);padding:var(--s-sm) var(--s-md);margin-bottom:var(--s-xs);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--field-border);color:var(--mute)}.palette-search:focus-within{border-color:var(--ink)}.palette-search input,.palette-search textarea{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--ink);font-size:var(--fs-body);resize:none;padding:6px 0;line-height:1.5}.palette-search input::placeholder,.palette-search textarea::placeholder{color:var(--ash)}.palette-lg .palette-search{align-items:flex-start}.palette-lg .palette-search>.icon{margin-top:8px}.palette-section{color:var(--ash);font-size:var(--fs-xs);font-weight:500;padding:var(--s-sm) var(--s-md) var(--s-xs);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.palette-row{display:flex;align-items:center;gap:var(--s-md);padding:6px var(--s-md);border-radius:var(--r-sm);border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-size:var(--fs-sm);transition:background .12s}.palette-row:hover:not(:disabled),.palette-row:focus-visible{background:var(--surface-card)}.palette-row:disabled{color:var(--disabled);cursor:default}.palette-label{flex:1}.palette-meta{color:var(--ash);font-size:var(--fs-xs)}.tile-col{display:grid;gap:var(--s-sm);align-content:start}.tile{display:flex;align-items:center;gap:var(--s-md);padding:var(--s-md) var(--s-lg);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--hairline);color:var(--body);transition:background .15s,border-color .15s}.tile:hover{background:var(--surface-elevated);border-color:var(--hairline-strong);text-decoration:none}.tile-text{flex:1;display:grid;gap:2px;font-size:var(--fs-cap);color:var(--mute)}.tile-text b{font-size:var(--fs-body)}.tile-go{color:var(--ash);transition:transform .15s var(--ease)}.tile:hover .tile-go{transform:translate(2px);color:var(--ink)}.bot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-sm)}.bot-card{display:flex;gap:var(--s-md);padding:var(--s-md);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--hairline);color:var(--body)}.bot-card:hover{border-color:var(--hairline-strong);text-decoration:none}.bot-card-main{display:grid;gap:2px;min-width:0}.bot-card-desc{color:var(--mute);font-size:var(--fs-cap);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s-lg);align-items:start}.table-card{padding:var(--s-md);display:grid;gap:var(--s-md)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-sm) var(--s-md)}.toolbar-group{display:flex;gap:var(--s-xs)}.toolbar .switch{margin-left:auto}.table-hints{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;color:var(--ash);font-size:var(--fs-xs)}.seat-status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-sm) var(--s-md);padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--hairline);font-size:var(--fs-sm)}.log-card{position:sticky;top:var(--s-lg)}.log-card .log{height:min(640px,calc(100vh - 160px))}@media (max-width: 1280px){.play-layout{grid-template-columns:minmax(0,1fr)}.log-card{position:static}.log-card .log{height:300px}}.hand-log{max-height:320px;overflow-y:auto}.hl-row{display:grid;grid-template-columns:4.5em minmax(0,1fr) auto;gap:var(--s-sm);padding:6px var(--s-lg);border-bottom:1px solid var(--hairline);font-size:var(--fs-cap);font-variant-numeric:tabular-nums}.log{overflow-y:auto;padding:var(--s-xs) 0}.log-empty{color:var(--mute);padding:var(--s-lg);font-size:var(--fs-sm)}.log-row{display:grid;grid-template-columns:10px 6.5em minmax(0,1fr);gap:var(--s-sm);align-items:baseline;padding:4px var(--s-lg);font-size:var(--fs-cap);line-height:1.5}.log-row:hover{background:var(--surface-elevated)}.log-dot{width:6px;height:6px;border-radius:50%;background:var(--hairline-strong);align-self:center}.log-row.to .log-dot{background:var(--blue)}.log-row.from .log-dot{background:var(--ink)}.log-row.result .log-dot{background:var(--green)}.log-who{color:var(--mute);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-row.from .log-who{color:var(--ink)}.log-txt{color:var(--body);overflow-wrap:anywhere}.log-row.dealer .log-txt{color:var(--mute)}.log-row.result .log-txt{color:var(--green)}.log-meta{color:var(--ash)}.action-slot{min-height:172px;display:flex;justify-content:center;align-items:stretch}.action-wait{width:min(980px,100%);display:flex;align-items:center;justify-content:center;gap:var(--s-sm);border-radius:var(--r-xl);border:1px dashed var(--hairline-strong);color:var(--mute);font-size:var(--fs-sm)}.action-wait .live-dot{background:var(--ash);box-shadow:0 0 0 3px #ffffff0f}@media (prefers-reduced-motion: no-preference){.action-slot .action-bar{animation:dock .2s var(--ease) both}@keyframes dock{0%{transform:translateY(8px);opacity:0}}}.table-card.seated .table-wrap{max-width:calc((100vh - 340px)*1.6);margin-inline:auto}.action-bar{pointer-events:auto;width:min(980px,100%);display:grid;gap:var(--s-md);padding:var(--s-md) var(--s-lg);border-radius:var(--r-xl);background:var(--surface-elevated);border:1px solid var(--hairline-strong);box-shadow:0 0 0 1px #0009,0 -1px #ffffff0a inset}.ab-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-sm) var(--s-lg);font-size:var(--fs-sm)}.ab-title{display:inline-flex;align-items:center;gap:var(--s-sm);color:var(--ink);font-weight:600}.ab-title .live-dot{background:var(--yellow);box-shadow:0 0 0 3px var(--yellow-soft)}.ab-cards{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.ab-sep{width:1px;height:18px;background:var(--hairline-strong);margin:0 4px}.tcard{display:inline-grid;place-items:center;min-width:30px;height:26px;padding:0 5px;border-radius:var(--r-xs);background:var(--card-face);color:var(--card-ink);font-weight:600;font-size:var(--fs-sm);box-shadow:var(--card-shadow)}.tcard.red{color:var(--suit-red)}.ab-facts{display:inline-flex;flex-wrap:wrap;gap:var(--s-md);color:var(--mute);margin-left:auto;font-variant-numeric:tabular-nums}.ab-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-sm)}.ab-raise{flex:1;min-width:260px;display:grid;gap:6px}.ab-presets{display:flex;flex-wrap:wrap;gap:4px}.ab-amount{display:flex;align-items:center;gap:var(--s-sm)}.ab-amount input[type=range]{flex:1;min-width:100px}.ab-num{width:110px;flex:none}.ab-clock{display:flex;align-items:center;gap:var(--s-md);font-size:var(--fs-cap);font-variant-numeric:tabular-nums}.ab-clock-track{flex:1;height:4px;border-radius:var(--r-full);background:var(--surface-card);overflow:hidden}.ab-clock-fill{height:100%;background:var(--ink);border-radius:inherit;transition:width .1s linear}.ab-clock.bank .ab-clock-fill{background:var(--red)}.ab-clock-text{color:var(--ink);min-width:9ch}.ab-clock.bank .ab-clock-text{color:var(--red)}.table-wrap{container-type:inline-size;position:relative;width:100%;aspect-ratio:16 / 10;-webkit-user-select:none;user-select:none}.table-wrap svg.felt{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.table-layer{position:absolute;top:0;right:0;bottom:0;left:0;--cw: 4.1cqw}.setup-preview{border-radius:var(--r-lg);background:var(--canvas);padding:var(--s-sm)}.pcard{position:absolute;width:var(--cw);height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .12);background:var(--card-face);color:var(--card-ink);box-shadow:var(--card-shadow);overflow:hidden;transform-origin:50% 50%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;font-weight:600}.pcard.red{color:var(--suit-red)}.pcard .rk{font-size:calc(var(--cw) * .5);letter-spacing:-.02em}.pcard .st{font-size:calc(var(--cw) * .46);margin-top:calc(var(--cw) * .05)}.pcard.back{background-color:var(--card-back);background-image:repeating-linear-gradient(45deg,var(--card-back-line) 0 1px,transparent 1px calc(var(--cw) * .16)),repeating-linear-gradient(-45deg,var(--card-back-line) 0 1px,transparent 1px calc(var(--cw) * .16));box-shadow:inset 0 0 0 calc(var(--cw) * .07) #fff,inset 0 0 0 calc(var(--cw) * .1) #00000026,var(--card-shadow)}.pcard.dim{opacity:.3}.pcard.flip{animation:flip var(--anim) ease-out both}.pcard.deal{animation:deal var(--anim) cubic-bezier(.2,.75,.3,1) both;animation-delay:var(--delay, 0ms)}@keyframes deal{0%{transform:translate(var(--dx),var(--dy)) scale(.8);opacity:0}12%{opacity:1}to{transform:none;opacity:1}}@keyframes flip{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.pod{position:absolute;transform:translate(-50%,-50%);width:15.5cqw;display:flex;flex-direction:column;align-items:center}.pod .hole{position:relative;width:calc(var(--cw) * 1.8);height:calc(var(--cw) * 1.4);margin-bottom:-.5cqw;z-index:1;transition:transform .32s var(--ease),filter .32s var(--ease),opacity .32s}.pod .hole.mucked{transform:translateY(42%) scale(.92);filter:grayscale(1) brightness(.55)}.pod .hole.mucked .pcard.dim{opacity:1}.rank-name{position:absolute;bottom:calc(100% + .3cqw);left:50%;transform:translate(-50%);white-space:nowrap;font-size:max(10px,1cqw);font-weight:500;color:var(--ink);background:var(--surface-card);border:1px solid var(--hairline-strong);padding:0 .6cqw;border-radius:var(--r-full)}.plate{position:relative;z-index:2;width:100%;padding:.5cqw .8cqw;border-radius:calc(var(--r-md) + .2cqw);background:var(--surface-elevated);border:1px solid var(--hairline-strong);font-size:max(9px,1.1cqw);line-height:1.35;transition:border-color .15s,background .15s,box-shadow .15s}.plate .nm{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate .st{display:flex;justify-content:space-between;color:var(--body);font-variant-numeric:tabular-nums}.plate .seatno{color:var(--ash)}.plate .act.pop{animation:act-pop .26s var(--ease) both}@keyframes act-pop{0%{transform:translateY(40%);opacity:0}to{transform:none;opacity:1}}.plate .act{min-height:1.35em;font-size:max(8px,1cqw);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate .act.raise,.plate .act.allin{color:var(--ink);font-weight:500}.plate .tags{position:absolute;bottom:-1.1cqw;right:.5cqw;display:flex;gap:.3cqw;z-index:1}.plate .tags span{font-size:max(8px,.8cqw);font-weight:600;padding:0 .4cqw;line-height:1.5;border-radius:var(--r-xs);background:var(--surface-card);color:var(--body);border:1px solid var(--hairline-strong)}.plate .tags .you{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.plate .tags .allin{background:var(--red-soft);color:var(--red);border-color:transparent}.pod.folded .plate{color:var(--mute);border-color:var(--hairline)}.pod.busted .hole{visibility:hidden}.pod.busted .plate{filter:grayscale(1);opacity:.45;border-style:dashed}.pod.busted .plate .nm{color:var(--mute)}.plate .tags .busted-tag{background:var(--surface-card);color:var(--mute)}.plate .tags .rebuy{background:var(--yellow-soft);color:var(--yellow);border-color:transparent}.pod.folded .plate .nm{text-decoration:line-through;color:var(--mute)}.pod.out{opacity:.4}.pod.thinking .plate{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.pod.thinking .nm:after{content:"";display:inline-block;width:.5cqw;height:.5cqw;margin-left:.4cqw;border-radius:50%;background:var(--red);vertical-align:middle;animation:blink .9s steps(1) infinite}.pod.mine .plate{border-color:var(--ink)}.pod.my-turn .plate{box-shadow:0 0 0 3px var(--yellow-soft);border-color:var(--yellow)}.pod.winner .plate{background:#0f2219;border-color:var(--green)}.pod.winner .plate .act{color:var(--green);font-weight:600}@keyframes blink{50%{opacity:0}}.pod[role=button]{cursor:pointer}.pod[role=button]:hover .plate{border-color:#fff6;background:var(--surface-card)}.seat-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);display:none;gap:4px;z-index:5;padding-top:1.4cqw}.pod.menu-open .seat-menu{display:flex}.pod.low .seat-menu{top:auto;bottom:100%;padding-top:0;padding-bottom:.6cqw}.seat-menu button{font-size:12px;font-weight:500;height:28px;padding:0 10px;border-radius:var(--r-md);cursor:pointer;white-space:nowrap;background:var(--primary);color:var(--on-primary);border:0}.seat-menu button+button{background:var(--surface-card);color:var(--ink);border:1px solid var(--hairline-strong)}.seat-menu button:disabled{background:var(--surface-elevated);color:var(--disabled);cursor:not-allowed}.chipstack{position:absolute;transform:translate(-50%,var(--ay, -50%));display:inline-flex;align-items:center;gap:.5cqw;z-index:3;pointer-events:auto}.chip-svg{display:block;overflow:visible;filter:drop-shadow(0 .15cqw .25cqw rgba(0,0,0,.45))}.chip-amt{font-size:max(9px,1.05cqw);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 .6cqw;border-radius:var(--r-full);background:#0000008c;line-height:1.6}.chipstack.allin .chip-amt{color:var(--red);box-shadow:inset 0 0 0 1px #ff616180}.bet-chips{animation:chips-in var(--anim) var(--ease) both}@keyframes chips-in{0%{transform:translate(calc(-50% + var(--fx)),calc(var(--ay, -50%) + var(--fy))) scale(.7);opacity:0}}.pot-chips{left:50%;top:62%;transform:translate(-50%,-100%);z-index:2}.pot-chips{animation:pot-in .3s var(--ease) both}@keyframes pot-in{0%{opacity:0;transform:translate(-50%,-80%) scale(.85)}}.win-chips{animation:chips-win .7s var(--ease) both}@keyframes chips-win{0%{transform:translate(calc(-50% + var(--fx)),calc(var(--ay, -50%) + var(--fy)))}}@keyframes pop{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}}.dealer-btn{position:absolute;transform:translate(-50%,-50%);width:2.3cqw;height:2.3cqw;border-radius:50%;display:grid;place-items:center;background:var(--card-face);color:var(--card-ink);font-size:1.1cqw;font-weight:700;box-shadow:var(--card-shadow);transition:left var(--anim),top var(--anim)}.board{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:calc(var(--cw) * 5 + 4 * .8cqw);height:calc(var(--cw) * 1.4)}.board .slot{position:absolute;width:var(--cw);height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .12);border:1px dashed rgba(255,235,235,.3)}.deck{position:absolute;left:31%;top:45%;transform:translate(-50%,-50%);width:var(--cw);height:calc(var(--cw) * 1.4)}.deck .pcard:nth-child(2){left:3px;top:-3px}.pot-label{position:absolute;left:50%;top:65%;transform:translate(-50%,-50%);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:max(10px,1.3cqw);color:var(--mute);padding:.2cqw 1.2cqw;border-radius:var(--r-full);background:#00000080;border:1px solid var(--hairline-strong)}.pot-label b{color:var(--ink);font-weight:600}.street-label{position:absolute;left:50%;top:31%;transform:translate(-50%,-50%);font-size:max(9px,1cqw);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#ffebeb99}.mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-md)}.mini{display:flex;flex-direction:column;border-radius:var(--r-lg);background:var(--surface-elevated);border:1px solid var(--hairline);overflow:hidden;transition:border-color .15s}.mini:hover{border-color:var(--hairline-strong)}.mini-open{display:block;width:100%;padding:var(--s-sm) var(--s-md) 0;background:none;border:0;text-align:left;cursor:pointer}.mini-open svg{width:100%;height:auto;display:block}.mini-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-cap)}.mini-last{color:var(--mute);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.5em}.mini-foot{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-xs) var(--s-sm) var(--s-sm) var(--s-md);color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.mini-bar{flex:1;height:4px;border-radius:var(--r-full);background:var(--surface-card);position:relative;overflow:hidden}.mini-bar>span{position:absolute;inset:0 auto 0 0;background:var(--ink);border-radius:inherit}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}table.data th{text-align:left;color:var(--mute);font-size:var(--fs-xs);font-weight:500;letter-spacing:.03em;padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--hairline);white-space:nowrap}table.data td{padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--hairline);white-space:nowrap}table.data tbody tr:hover{background:var(--surface-elevated)}table.data tr:last-child td{border-bottom:0}table.data .num{text-align:right}table.data tr.first td{color:var(--ink)}table.data tr.off td{color:var(--mute)}table.data td.wrap{white-space:normal;min-width:14em}.cell-help{display:block;color:var(--ash);font-size:var(--fs-xs)}.num-in{width:84px;height:30px;text-align:right;padding:0 var(--s-sm)}.num-in.bad{border-color:var(--red);color:var(--red)}.seat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--s-sm);vertical-align:1px;flex:none}.bar-cell{width:90px;min-width:70px}.lb-bar{position:relative;height:8px}.lb-bar:before{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1px solid var(--hairline-strong)}.lb-bar>span{position:absolute;top:0;height:100%}.lb-bar>span.p{left:50%;background:var(--ink);border-radius:0 3px 3px 0}.lb-bar>span.n{right:50%;background:var(--ash);border-radius:3px 0 0 3px}.chart{margin:0;display:grid;gap:var(--s-sm)}.chart-plot{position:relative}.chart svg{width:100%;height:auto;display:block;font-family:var(--font)}.chart-empty{color:var(--mute);text-align:center;padding:var(--s-xxl) 0;font-size:var(--fs-sm)}.chart-tip{position:absolute;top:8px;transform:translate(12px);pointer-events:none;min-width:170px;padding:var(--s-sm);border-radius:var(--r-md);background:var(--surface-card);border:1px solid var(--hairline-strong);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.chart-tip.left{transform:translate(calc(-100% - 12px))}.chart-tip-head{color:var(--mute);margin-bottom:4px}.chart-tip-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:6px;align-items:center}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 var(--s-sm);border-radius:var(--r-full);background:var(--surface-elevated);border:1px solid var(--hairline);font-size:var(--fs-xs);color:var(--body);font-variant-numeric:tabular-nums}.band-col{width:40%;min-width:140px}.bandbar{position:relative;height:12px;border-radius:var(--r-full);background:var(--surface-card)}.bandbar .band{position:absolute;top:0;bottom:0;border-radius:var(--r-full);background:#ffffff29;border:1px solid rgba(255,255,255,.35)}.bandbar .dot{position:absolute;top:1px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px var(--surface)}.summary{margin:0;padding-left:1.1em;display:grid;gap:4px;font-size:var(--fs-sm)}.summary li::marker{color:var(--ash)}.json{margin:0;max-height:320px;overflow:auto;padding:var(--s-md);border-radius:var(--r-md);background:var(--canvas);border:1px solid var(--hairline);font:12px/1.5 var(--mono);color:var(--body)}.seat-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.seat-row{display:grid;grid-template-columns:2.4em minmax(0,1fr) auto;gap:var(--s-sm);align-items:center}.seat-num{color:var(--mute);font-size:var(--fs-cap);font-weight:500}.stepper{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-sm)}.stepper li{display:inline-flex;align-items:center;gap:var(--s-sm);padding:4px 12px 4px 4px;border-radius:var(--r-full);color:var(--mute);font-size:var(--fs-cap);font-weight:500;background:var(--surface);border:1px solid var(--hairline)}.stepper li span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--surface-card);font-size:11px}.stepper li.on{color:var(--ink);border-color:var(--hairline-strong)}.stepper li.on span{background:var(--primary);color:var(--on-primary)}.stepper li.done span{background:var(--green-soft);color:var(--green)}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--s-md)}.lib-grid.compact{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.lib-card{padding:var(--s-lg);display:grid;gap:var(--s-md);align-content:start;transition:border-color .15s,background .6s}.lib-card:hover{border-color:var(--hairline-strong)}.lib-card.fresh{background:var(--surface-card);border-color:var(--ink)}.lib-head{display:flex;gap:var(--s-md);align-items:center;min-width:0}.lib-id{display:grid;gap:4px;min-width:0}.lib-name{font-size:var(--fs-h3);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lib-desc{color:var(--body);font-size:var(--fs-sm)}.lib-stats{display:flex;flex-wrap:wrap;gap:6px}.lib-stats span{padding:2px var(--s-sm);border-radius:var(--r-full);background:var(--surface-elevated);border:1px solid var(--hairline);color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.lib-stats b{color:var(--ink)}.lib-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding-top:var(--s-sm);border-top:1px solid var(--hairline)}.lib-card.prebuilt{background:transparent}.rename-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rename-box .input{width:15em;height:32px}@media (max-width: 480px){.lib-grid,.lib-grid.compact{grid-template-columns:minmax(0,1fr)}}.dialog{width:min(900px,calc(100vw - 2 * var(--s-lg)));max-height:calc(100vh - 2 * var(--s-lg));padding:0;margin:auto;background:var(--surface);color:var(--body);border:1px solid var(--hairline-strong);border-radius:var(--r-xl);display:flex;flex-direction:column;overflow:hidden}.dialog:not([open]){display:none}.dialog::backdrop{background:#000000b8}@media (prefers-reduced-motion: no-preference){.dialog[open]{animation:pop-in .18s var(--ease) both}@keyframes pop-in{0%{opacity:0;transform:scale(.98)}}}.dialog-head,.dialog-foot{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-md) var(--s-lg)}.dialog-head{justify-content:space-between;border-bottom:1px solid var(--hairline)}.dialog-head h2{font-size:var(--fs-h3);font-weight:600}.dialog-body{overflow-y:auto;padding:var(--s-lg);flex:1;display:grid;gap:var(--s-md);align-content:start}.dialog-foot{justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--hairline);background:var(--surface-elevated)}.dialog-foot>.small{flex-basis:100%;text-align:right}.dialog-group{border:1px solid var(--hairline);border-radius:var(--r-lg);margin:0;padding:var(--s-md) var(--s-lg) var(--s-lg);min-width:0;background:var(--surface-elevated)}.dialog-group legend{color:var(--ink);font-weight:600;font-size:var(--fs-sm);padding:0 var(--s-sm);margin-left:calc(-1 * var(--s-sm))}.dialog-group .fields{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start}.dialog .mrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-sm);padding:4px 0}.dialog .marker{color:var(--ash)}.dialog .plain{list-style:none;margin:0;padding:0}@media (max-width: 640px){.dialog-head,.dialog-foot,.dialog-body{padding-left:var(--s-md);padding-right:var(--s-md)}}.accordion{display:grid;gap:var(--s-sm)}.acc-head{width:100%;display:flex;align-items:center;gap:var(--s-md);padding:var(--s-md) var(--s-lg);background:none;border:0;text-align:left;cursor:pointer;color:var(--ink);font-size:var(--fs-body)}.acc-head:hover{background:var(--surface-elevated);border-radius:var(--r-lg)}.acc-head b{flex:1;font-weight:500}.acc-chevron{color:var(--ash);transition:transform .15s var(--ease)}.acc-item.open .acc-chevron{transform:rotate(90deg)}.acc-body{padding:0 var(--s-lg) var(--s-lg) calc(var(--s-lg) + 32px + var(--s-md));display:grid;gap:var(--s-md);max-width:86ch;font-size:var(--fs-sm)}.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-sm)}.mrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-md);align-items:start}.num-dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-card);border:1px solid var(--hairline-strong);color:var(--ink);font-size:11px;font-weight:600}.bullet{color:var(--ash);padding:0 6px}.glossary{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--s-sm) var(--s-lg);margin:0}.glossary dt{color:var(--ink);font-weight:600}.glossary dd{margin:0}@media (max-width: 640px){.acc-body{padding-left:var(--s-lg)}.glossary{grid-template-columns:minmax(0,1fr);gap:0}.glossary dd{margin-bottom:var(--s-sm);color:var(--mute)}}.chip-gallery{display:flex;flex-wrap:wrap;gap:var(--s-md);container-type:inline-size}.chip-cell{display:grid;justify-items:center;gap:6px;color:var(--mute);font-size:var(--fs-cap)}.chip-swatch{position:relative;width:260px;height:190px;border-radius:var(--r-lg);background:radial-gradient(circle at 50% 40%,var(--felt-hi),var(--felt-mid) 70%,var(--felt-lo))}.chip-closeup .chipstack{zoom:3}.pod.talking{z-index:30}.bubble{position:absolute;z-index:30;width:max-content;max-width:22cqw;pointer-events:none;padding:.65cqw 1cqw;border-radius:1.2cqw;text-align:left;background:var(--card-face);color:var(--card-ink);font-size:max(11px,1.12cqw);font-weight:600;line-height:1.3;letter-spacing:-.005em;box-shadow:0 .4cqw 1.4cqw #0000008c,0 0 0 1px #0000001f;animation:bubble-in .28s cubic-bezier(.3,1.5,.5,1) both}.bubble:after{content:"";position:absolute;width:1.1cqw;height:1.1cqw;background:inherit;transform:rotate(45deg)}.bubble.up{bottom:calc(100% + 1.1cqw);left:50%;translate:-50% 0;transform-origin:50% 100%}.bubble.up:after{bottom:-.45cqw;left:calc(50% - .55cqw)}.bubble.down{top:calc(100% + 1.1cqw);left:50%;translate:-50% 0;transform-origin:50% 0}.bubble.down:after{top:-.45cqw;left:calc(50% - .55cqw)}.bubble.right{left:calc(100% + 1.1cqw);top:50%;translate:0 -50%;transform-origin:0 50%}.bubble.right:after{left:-.45cqw;top:calc(50% - .55cqw)}.bubble.left{right:calc(100% + 1.1cqw);top:50%;translate:0 -50%;transform-origin:100% 50%}.bubble.left:after{right:-.45cqw;top:calc(50% - .55cqw)}.bubble.clap{box-shadow:0 .4cqw 1.4cqw #0000008c,0 0 0 .22cqw var(--yellow)}.bubble.crash{background:#ffe4e4;color:#7a0c12;font-weight:700;box-shadow:0 .4cqw 1.4cqw #0000008c,0 0 0 .22cqw var(--red);animation:bubble-in .28s cubic-bezier(.3,1.5,.5,1) both,bubble-shake .38s .3s ease-in-out 2}.bubble.laugh{padding:.35cqw .85cqw;border-radius:var(--r-full);font-size:max(10px,1cqw);font-weight:700;background:#f4f4f6;white-space:nowrap;max-width:none}.bubble.laugh:after{width:.8cqw;height:.8cqw}@keyframes bubble-in{0%{opacity:0;transform:scale(.6)}}@keyframes bubble-shake{0%,to{transform:rotate(0)}25%{transform:rotate(-2.5deg)}75%{transform:rotate(2.5deg)}}.act.show{color:var(--yellow)}.sim-done{display:flex;align-items:center;justify-content:space-between;gap:var(--s-md);flex-wrap:wrap;padding:var(--s-md) var(--s-lg);border-color:#59d49959;background:linear-gradient(90deg,var(--green-soft),transparent 60%),var(--surface-card)}.sim-done-text{font-size:var(--fs-body)}.sim-done-actions{display:flex;gap:var(--s-sm);flex-wrap:wrap}.log-row.talk .log-dot{width:8px;height:6px;border-radius:3px 3px 3px 0;background:var(--card-face)}.log-row.talk .log-who{color:var(--ink)}.log-row.talk .log-txt{color:var(--ink);font-style:italic}.log-row.talk.clap .log-dot{background:var(--yellow)}.log-row.talk.crash .log-dot{background:var(--red)}.log-row.talk.crash .log-txt{color:#ffb3b3}.log-row.talk.laugh .log-txt{color:var(--mute)}.focus{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--canvas)}.focus-bar{display:flex;align-items:center;gap:var(--s-sm) var(--s-md);padding:6px var(--s-md);min-height:48px;background:var(--surface);border-bottom:1px solid var(--hairline);overflow-x:auto;white-space:nowrap;font-size:var(--fs-sm)}.focus-title{color:var(--ink)}.focus-fact{color:var(--mute);font-variant-numeric:tabular-nums}.focus-controls{display:flex;align-items:center;gap:var(--s-sm)}.focus-controls .switch{margin-left:0}.focus-body{display:grid;grid-template-columns:minmax(0,1fr);min-height:0}.focus-body.log-open{grid-template-columns:minmax(0,1fr) 340px}.focus-main{--slot: 0px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-sm);padding:var(--s-md);min-height:0;overflow:auto}.focus-main.seated{--slot: 240px;justify-content:flex-start}.focus-table{width:min(100%,calc((100vh - 48px - 2 * var(--s-md) - var(--slot)) * 1.6))}.focus-main .seat-status,.focus-main .action-slot{width:min(980px,100%)}.focus-log{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--hairline);background:var(--surface)}.focus-log-head{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--hairline)}.focus-log .log{flex:1;min-height:0}@media (max-width: 900px){.focus-body.log-open{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 40vh}.focus-log{border-left:0;border-top:1px solid var(--hairline)}}.saves{display:grid;gap:var(--s-xs)}.save-row{display:flex;align-items:center;gap:var(--s-md);padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--hairline)}.save-row:hover{border-color:var(--hairline-strong)}.save-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--red-soft);color:var(--red);flex:none}.save-main{display:grid;gap:2px;flex:1;min-width:0}.save-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-actions{display:flex;gap:var(--s-xs);flex:none}.save-rename{display:flex;gap:var(--s-xs)}.save-rename .input{flex:1;min-width:0}.save-dialog{width:min(480px,calc(100vw - 32px))}.link-btn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.page.narrow{max-width:760px}.stack{display:grid;gap:var(--s-sm)}.row{display:flex;align-items:center;flex-wrap:wrap}.row.gap,.gap{gap:var(--s-sm)}.pad{padding:var(--s-md) var(--s-lg)}.mono{font-family:var(--mono);word-break:break-all}.signin-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s-lg);align-items:start}@media (max-width: 860px){.signin-grid{grid-template-columns:minmax(0,1fr)}}label.check{display:flex;gap:var(--s-sm);align-items:flex-start;font-size:var(--fs-sm);color:var(--mute)}label.check input{accent-color:var(--primary);width:16px;height:16px;margin-top:2px;flex:none}label.check a,.legal-line a{color:var(--ink)}.btn.disabled{opacity:.5;pointer-events:auto;cursor:not-allowed}.turnstile{margin-top:var(--s-md);min-height:65px}.legal-line{display:flex;gap:6px;align-items:center;margin-top:var(--s-lg)}.build-row{display:flex;gap:var(--s-md);align-items:center;flex-wrap:wrap;justify-content:space-between}.plain-list{margin:0 0 var(--s-md);padding-left:1.2em;display:grid;gap:4px}.account-chip{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-sm);border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface-elevated);color:var(--ink);text-decoration:none}.account-chip:hover{border-color:var(--hairline-strong)}.account-chip .nav-label{display:grid;min-width:0}.account-chip .nav-label b{font-size:var(--fs-sm);white-space:nowrap}.account-chip .nav-label span{font-size:12px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app.collapsed .account-chip .nav-label{display:none}.app.collapsed .account-chip{justify-content:center}@media (max-width: 1024px) and (min-width: 769px){.account-chip .nav-label{display:none}.account-chip{justify-content:center}}.match-list{list-style:none;margin:0;padding:0}.match-list li a{display:flex;align-items:center;gap:var(--s-sm);padding:var(--s-sm) var(--s-lg);color:var(--ink);text-decoration:none;border-top:1px solid var(--hairline)}.match-list li:first-child a{border-top:0}.match-list li a:hover{background:var(--surface-elevated)}.match-names{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.mini-cards{display:flex;gap:4px}.mini-card{display:inline-grid;place-items:center;min-width:30px;height:40px;padding:0 4px;margin-right:3px;border-radius:5px;background:#f4f1e8;color:#16171a;font-weight:700;font-size:14px;box-shadow:0 1px #0006}.mini-card.red{color:#c81e1e}.mini-card.back{background:repeating-linear-gradient(45deg,#2251c9 0,#2251c9 4px,#1a3f9e 4px,#1a3f9e 8px);border:2px solid #f4f1e8}.arena-hand{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-md)}.arena-seat{display:grid;gap:6px;padding:var(--s-sm) var(--s-md);border:1px solid var(--hairline);border-left-width:4px;border-radius:var(--r-md)}.arena-board{grid-column:1 / -1;display:flex;justify-content:center;min-height:44px;align-items:center}.arena-lines{grid-column:1 / -1;list-style:none;margin:0;padding:0;color:var(--mute);font-size:var(--fs-sm);display:grid;gap:2px}.fairness{margin:var(--s-md) 0;padding:var(--s-sm) var(--s-md);border:1px dashed var(--hairline-strong);border-radius:var(--r-md)}.legal h3{margin:var(--s-lg) 0 var(--s-xs);font-size:var(--fs-md, 16px)}.legal p,.legal li{color:var(--body, var(--ink));line-height:1.6}.rank-badge{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.rank-badge svg{flex:none;display:block}.rank-label{font-weight:600}.rank-hero{display:flex;align-items:center;gap:var(--s-lg);flex-wrap:wrap}.rank-hero-text{display:grid;gap:4px;flex:1;min-width:220px}.rank-hero-label{font-size:28px;line-height:1.1;color:var(--ink)}.rank-card .stats{margin-top:var(--s-md)}.delta{font-weight:700;font-variant-numeric:tabular-nums;color:var(--mute)}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.rank-changes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-md);margin:var(--s-md) 0}.rank-change{display:flex;gap:var(--s-md);align-items:center;padding:var(--s-sm) var(--s-md);border:1px solid var(--hairline);border-radius:var(--r-md)}.rank-change.mine{border-color:var(--hairline-strong);background:var(--surface-elevated)}.rank-change>div{display:grid;gap:2px;justify-items:start}.ladder{list-style:none;margin:0;padding:0}.ladder li{display:flex;align-items:center;gap:var(--s-sm);padding:6px var(--s-lg);border-top:1px solid var(--hairline)}.ladder li:first-child{border-top:0}.ladder li.here{background:var(--surface-elevated)}.ladder-name{flex:1;font-weight:600}.ladder-divs{display:flex;gap:4px}.ladder-div{display:grid;justify-items:center;min-width:46px;padding:2px 6px;border-radius:var(--r-sm);border:1px solid var(--hairline);font-size:12px;color:var(--mute)}.ladder-div small{font-size:10px;color:var(--ash);font-variant-numeric:tabular-nums}.ladder-div.on{border-color:var(--ink);color:var(--ink)}.prog-chart{position:relative;width:100%;overflow:hidden}.prog-chart svg{display:block;touch-action:none}.prog-chart .band{fill:#ffffff04}.prog-chart .band.odd{fill:#ffffff0d}.prog-chart .band-label{fill:var(--body, #c9cacc);font-size:12px}.prog-chart .tick{fill:var(--ash);font-size:10px;font-variant-numeric:tabular-nums}.prog-chart .grid{stroke:#ffffff0f;stroke-width:1}.prog-chart .grid.rank-line{stroke:#ffffff2e}.prog-chart .prog-line{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.prog-chart .prog-dot{fill:var(--green);stroke:var(--surface);stroke-width:2}.prog-chart .prog-dot.down{fill:var(--red)}.prog-chart .crosshair{stroke:#ffffff59;stroke-width:1}.prog-tip{position:absolute;pointer-events:none;display:grid;gap:2px;min-width:150px;padding:8px 10px;background:var(--surface-elevated);border:1px solid var(--hairline-strong);border-radius:var(--r-md);font-size:12px;color:var(--mute);box-shadow:0 6px 20px #00000080}.prog-tip b{color:var(--ink);font-size:14px}
