.modal.billing{position:relative;max-width:520px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;text-align:left;display:flex;flex-direction:column;gap:12px}.billing .icon-disc{align-self:center}.billing h3{text-align:center;margin:0}.billing-close{position:absolute;top:10px;right:10px}.billing-reason{display:inline-flex;align-items:center;gap:6px;align-self:center;margin:0;font-weight:700;color:var(--gold)}.billing-test{margin:0;padding:8px 12px;border-radius:var(--radius-sm);background:var(--gold-soft);color:var(--ink);font-size:.85rem;font-weight:600}.billing-note{margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:.92rem;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.billing-note p{margin:0}.billing-note.ok{background:var(--brand-soft);color:var(--brand-strong);flex-direction:row;align-items:center;gap:4px;font-weight:700}.billing-note.warn{background:var(--red-soft);color:var(--ink)}.billing-skel{height:40px;border-radius:var(--radius-sm);background:var(--surface-3);animation:billing-pulse 1.2s ease-in-out infinite}.billing-skel.tall{height:110px}@keyframes billing-pulse{50%{opacity:.5}}.billing-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}.billing-plan{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px;text-align:left;border:2px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}.billing-plan.on{border-color:var(--brand);background:var(--brand-soft)}.billing-plan strong{font-family:var(--font-display);font-size:1.5rem}.billing-plan small{font-size:.8rem;font-weight:600;color:var(--muted)}.billing-sub{color:var(--muted);font-size:.82rem}.billing-sub.center{text-align:center;margin:0}.billing-save{position:absolute;top:-10px;right:10px;background:var(--gold);color:#fff;font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:999px}.billing-cta{width:100%}.billing-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.billing-compare h4{margin:0 0 6px}.billing-compare ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.82rem;color:var(--ink-2)}.billing-compare li{display:flex;gap:6px;align-items:flex-start}.billing-compare li svg{flex:none;margin-top:2px;color:var(--brand)}.billing-compare .pro{padding:10px;border-radius:var(--radius-sm);background:var(--brand-soft)}.spin{animation:billing-spin 1s linear infinite}@keyframes billing-spin{to{transform:rotate(360deg)}}.pro-lock{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--gold-soft);color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.pro-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;border:1px solid var(--gold);background:var(--gold-soft);color:var(--gold);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}@media(max-width:520px){.billing-plans,.billing-compare{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.spin,.billing-skel{animation:none}}.side-plan{margin-top:auto}.sync-notice{max-width:900px;margin:8px auto;padding:8px 16px;color:var(--brand-strong);font-size:.82rem;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.sync-notice>div,.sync-notice-buttons,.sync-notice button{display:flex;align-items:center;gap:8px}.sync-notice-warning{color:var(--red-strong);background:var(--red-soft);border-radius:10px}.sync-notice button{border:0;background:none;color:inherit;font-weight:700;cursor:pointer;text-decoration:underline}.sync-gate{min-height:100dvh;padding:32px 16px;display:grid;place-items:center;background:var(--bg)}.sync-conflict{width:min(620px,100%);padding:28px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}.sync-conflict h1{font-size:1.65rem}.sync-conflict>svg{color:var(--brand)}.sync-comparison{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}.sync-comparison>div{background:var(--surface-2);border:1px solid var(--border);padding:16px;border-radius:12px;display:flex;flex-direction:column;gap:6px}.sync-comparison span{font-size:1.5rem;font-weight:800}.sync-comparison small{color:var(--muted)}.sync-actions{display:flex;flex-wrap:wrap;gap:12px}.sync-spin{animation:sync-spin 1.5s linear infinite}@keyframes sync-spin{to{transform:rotate(360deg)}}@media(max-width:460px){.sync-conflict{padding:20px}.sync-comparison{grid-template-columns:1fr}.sync-actions .btn{width:100%}}@media(prefers-reduced-motion:reduce){.sync-spin{animation:none}}.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);background:var(--bg)}.auth-scene{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:270px;overflow:hidden;padding:clamp(26px,4vw,58px);background:linear-gradient(150deg,var(--felt-1),var(--felt-2));color:#f7f6ed}.auth-scene:after{content:"♠";position:absolute;right:-4%;bottom:-48%;font-family:Georgia,serif;font-size:clamp(310px,43vw,710px);line-height:1;opacity:.09;pointer-events:none}.auth-brand{z-index:1;display:inline-flex;align-items:center;gap:12px;width:fit-content;color:inherit;text-decoration:none;font:800 1.15rem var(--font-display);letter-spacing:-.03em}.auth-brand img{width:38px;height:38px}.auth-story{position:relative;z-index:1;max-width:570px;margin:55px 0 30px}.auth-story .eyebrow{color:#b9dec9}.auth-story h1{margin:14px 0 18px;font-size:clamp(2.3rem,5vw,4.8rem);letter-spacing:-.055em}.auth-story p{max-width:46ch;color:#d3e6d9;font-size:1.02rem}.auth-scene-foot{position:relative;z-index:1;font-size:.8rem;color:#c4ddcc}.auth-form-side{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-width:0;padding:38px 16px 56px}.auth-back{align-self:center;color:var(--brand-strong);font-weight:700;text-decoration:none;font-size:.88rem}.auth-back:hover{text-decoration:underline}.auth-skeleton{width:min(440px,100%);min-height:470px;padding:36px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.auth-skeleton span{display:block;height:18px;margin:20px 0;border-radius:8px;background:var(--surface-3)}.auth-skeleton span:first-child{width:55%;height:30px}.auth-skeleton span:nth-child(2){width:80%}.auth-skeleton span:nth-child(3),.auth-skeleton span:nth-child(4){height:50px}.auth-skeleton span:last-child{height:50px;margin-top:40px;background:var(--brand-soft)}.cl-formFieldInput::placeholder{color:var(--muted);opacity:1}.cl-formButtonPrimary:hover{background:var(--brand-strong)}.cl-footerActionLink:hover{text-decoration:underline}.account-panel{gap:18px;margin-bottom:12px}.account-heading{display:flex;align-items:center;gap:14px}.account-heading h2{font-size:1.25rem}.account-heading p{color:var(--muted);font-size:.88rem}.account-avatar{display:grid;place-items:center;flex:none;width:58px;height:58px;overflow:hidden;border-radius:17px;background:var(--brand-soft);color:var(--brand);font:800 1.5rem var(--font-display)}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-actions{display:flex;flex-wrap:wrap;gap:9px}.account-actions .btn{min-height:40px;padding:0 14px;font-size:.87rem}.account-fields{display:grid;grid-template-columns:1fr;gap:12px}.account-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:.85rem;font-weight:700}.account-field input{width:100%;height:44px;padding:0 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}.account-email{overflow-wrap:anywhere;color:var(--muted);font-size:.89rem}.account-feedback{font-size:.86rem;color:var(--brand)}.account-feedback.error{color:var(--red)}.account-guest{display:flex;flex-direction:column;gap:10px}.account-guest p{color:var(--muted);font-size:.92rem}@media(min-width:620px){.account-fields{grid-template-columns:1fr 1fr}}@media(min-width:900px){.auth-page{grid-template-columns:minmax(0,1fr) minmax(460px,.9fr)}.auth-scene{min-height:100dvh}.auth-story{margin:60px 0}.auth-form-side{padding:52px 30px}}:root{--bg: #f4f6f5;--surface: #ffffff;--surface-2: #eef2f0;--surface-3: #e3e9e6;--ink: #0f1a16;--ink-2: #33423c;--muted: #5f6e68;--border: #dde4e1;--border-strong: #c9d3cf;--brand: #0e7c58;--brand-strong: #0a6246;--brand-soft: #e1f2ea;--on-brand: #ffffff;--gold: #b9821d;--gold-bright: #e0a93a;--gold-soft: #fbf0d9;--red: #d13f3b;--red-strong: #b3302d;--red-soft: #fbe6e5;--blue: #2f6fde;--blue-soft: #e5edfc;--orange: #de6f1f;--orange-soft: #fdeadb;--felt-1: #17784f;--felt-2: #0c4a31;--card-face: #ffffff;--card-red: #c92a2a;--card-black: #16181d;--shadow-sm: 0 1px 2px rgb(15 26 22 / .06);--shadow-md: 0 4px 16px rgb(15 26 22 / .08);--shadow-lg: 0 18px 48px rgb(15 26 22 / .18);--radius-sm: 10px;--radius: 14px;--radius-lg: 20px;--font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b1210;--surface: #121c18;--surface-2: #18241f;--surface-3: #213029;--ink: #e9f0ed;--ink-2: #c3cfca;--muted: #8fa099;--border: #23322c;--border-strong: #2f4139;--brand: #27b07e;--brand-strong: #1f946a;--brand-soft: #10291f;--on-brand: #04130d;--gold: #e2b252;--gold-bright: #efc56b;--gold-soft: #2a2312;--red: #f0625d;--red-strong: #d94c47;--red-soft: #35191a;--blue: #6f9dff;--blue-soft: #16223a;--orange: #f28a45;--orange-soft: #33200f;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 4px 18px rgb(0 0 0 / .35);--shadow-lg: 0 18px 48px rgb(0 0 0 / .55);color-scheme:dark}}:root[data-theme=dark]{--bg: #0b1210;--surface: #121c18;--surface-2: #18241f;--surface-3: #213029;--ink: #e9f0ed;--ink-2: #c3cfca;--muted: #8fa099;--border: #23322c;--border-strong: #2f4139;--brand: #27b07e;--brand-strong: #1f946a;--brand-soft: #10291f;--on-brand: #04130d;--gold: #e2b252;--gold-bright: #efc56b;--gold-soft: #2a2312;--red: #f0625d;--red-strong: #d94c47;--red-soft: #35191a;--blue: #6f9dff;--blue-soft: #16223a;--orange: #f28a45;--orange-soft: #33200f;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 4px 18px rgb(0 0 0 / .35);--shadow-lg: 0 18px 48px rgb(0 0 0 / .55);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:2px}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}p{margin:0}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{min-height:100vh;background:var(--bg);overflow-x:clip}.shell{display:grid;grid-template-columns:minmax(0,1fr)}.content{width:100%;max-width:640px;margin:0 auto;padding:20px 16px 104px}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.25rem;font-weight:800;letter-spacing:-.03em;color:var(--ink);white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--felt-1),var(--felt-2));color:#fff;font-size:1.1rem;box-shadow:inset 0 0 0 1px #ffffff1f}.top-bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.sidebar,.right-rail{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:none;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:.72rem;font-weight:700}.bottom-nav button.active{color:var(--brand)}.bottom-nav button.active svg{background:var(--brand-soft);border-radius:999px;padding:3px 14px;width:52px;height:28px}.stat-chips{display:flex;gap:6px}.chip-stat{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--surface-2);font-weight:700;font-size:.92rem;white-space:nowrap}.chip-stat small{font-size:.72rem;color:var(--muted);font-weight:600}.chip-stat.streak{color:var(--muted)}.chip-stat.streak.on{color:var(--orange);background:var(--orange-soft)}.chip-stat.gems{color:var(--blue);background:var(--blue-soft)}.chip-stat.hearts{color:var(--red);background:var(--red-soft)}.mobile-only{display:block}@media(min-width:1024px){.shell{grid-template-columns:248px minmax(0,1fr) 340px;align-items:start}.top-bar,.bottom-nav,.mobile-only{display:none}.content{padding:32px 24px 64px}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:28px;height:100vh;padding:28px 16px;border-right:1px solid var(--border);background:var(--surface)}.sidebar .brand{padding:0 10px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav button{display:flex;align-items:center;gap:12px;padding:11px 12px;border:none;border-radius:var(--radius-sm);background:none;color:var(--ink-2);font-weight:600;text-align:left;transition:background .15s}.side-nav button:hover{background:var(--surface-2)}.side-nav button.active{background:var(--brand-soft);color:var(--brand);font-weight:700}.right-rail{position:sticky;top:0;display:flex;flex-direction:column;gap:14px;max-height:100vh;overflow-y:auto;padding:32px 24px 32px 0}.right-rail .stat-chips{justify-content:space-between}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:12px;font-weight:700;font-size:.98rem;letter-spacing:.01em;white-space:nowrap;transition:transform .08s,background .15s,box-shadow .15s}.btn svg{flex-shrink:0}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{background:var(--surface-3)!important;color:var(--muted)!important;border-color:transparent!important;box-shadow:none!important}.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:0 2px 0 var(--brand-strong),var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-danger{background:var(--red);color:#fff;box-shadow:0 2px 0 var(--red-strong)}.btn-danger:hover:not(:disabled){background:var(--red-strong)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong);box-shadow:0 2px 0 var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-light{background:#fff;color:var(--unit-color, var(--brand));box-shadow:0 2px #0000002e}.btn-ghost{background:none;color:var(--ink-2)}.btn-ghost:hover{background:var(--surface-2)}.btn-ghost.danger{color:var(--red)}.btn.wide{width:100%;max-width:360px}.btn-xp{margin-left:auto;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--unit-color, var(--brand)) 14%,transparent);font-size:.8rem}.icon-button{display:grid;place-items:center;width:40px;height:40px;border:none;border-radius:10px;background:none;color:var(--muted)}.icon-button:hover{background:var(--surface-2);color:var(--ink)}.icon-tile{--tile-color: var(--brand);display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--tile-color) 14%,var(--surface));color:var(--tile-color)}.icon-tile.lg{width:52px;height:52px;border-radius:14px}.icon-tile.brand{--tile-color: var(--brand)}.icon-tile.gold{--tile-color: var(--gold)}.icon-tile.orange{--tile-color: var(--orange)}.icon-tile.blue{--tile-color: var(--blue)}.icon-tile.red{--tile-color: var(--red)}.icon-tile.muted{--tile-color: var(--muted)}.icon-disc{display:grid;place-items:center;width:64px;height:64px;margin:0 auto;border-radius:50%}.icon-disc.brand{background:var(--brand-soft);color:var(--brand)}.icon-disc.red{background:var(--red-soft);color:var(--red)}.icon-disc.gold{background:var(--gold-soft);color:var(--gold)}.icon-disc.unit{background:color-mix(in srgb,var(--unit-color) 14%,var(--surface));color:var(--unit-color)}.meter{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden}.meter>div{height:100%;border-radius:inherit;transition:width .4s ease}.meter.gold>div{background:linear-gradient(90deg,var(--gold),var(--gold-bright))}.meter.brand>div{background:var(--brand)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.85rem;font-weight:700}.pill.hearts{background:var(--red-soft);color:var(--red)}.pill.gems{background:var(--blue-soft);color:var(--blue)}.panel{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.panel-head{display:flex;align-items:center;gap:12px}.panel-head>div{flex:1;display:flex;flex-direction:column;min-width:0}.panel-head .muted{font-size:.85rem}.panel-note{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--blue);font-weight:600}.goal-num{font-weight:700;color:var(--ink-2)}.level-badge{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--brand);color:var(--on-brand);font-family:var(--font-display);font-weight:800}.up-next{background:linear-gradient(145deg,var(--felt-1),var(--felt-2));border-color:transparent;color:#fff}.up-next .eyebrow{color:#ffffffb8}.up-next-title{font-family:var(--font-display);font-size:1.3rem;letter-spacing:-.02em}.up-next .btn-primary{background:#fff;color:var(--felt-2);box-shadow:0 2px #00000040}.page{display:flex;flex-direction:column;gap:16px}.page-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:4px}.page-head h1{font-size:2rem}.page-head p{color:var(--muted);max-width:52ch}.section-title{margin-top:12px;font-size:1.15rem}.row-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}.row-text strong{font-size:1.02rem}.row-text>span{color:var(--muted);font-size:.92rem}.row-chevron{color:var(--muted);flex-shrink:0}.learn{display:flex;flex-direction:column;gap:8px}.learn .mobile-only{margin-bottom:12px}.unit{margin-bottom:28px}.unit-banner{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--unit-color),color-mix(in srgb,var(--unit-color) 72%,#000));color:#fff;overflow:hidden;box-shadow:var(--shadow-md)}.unit-watermark{position:absolute;right:-10px;bottom:-48px;font-size:9rem;line-height:1;opacity:.1;pointer-events:none}.unit-heading{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}.unit-heading .eyebrow{color:#ffffffc7}.unit-heading h2{font-size:1.45rem}.unit-heading p{color:#ffffffe0;font-size:.95rem;max-width:44ch}.unit-progress{width:min(220px,100%);height:6px;margin-top:8px;border-radius:999px;background:#ffffff40;overflow:hidden}.unit-progress>div{height:100%;background:#fff;border-radius:inherit;transition:width .4s}.guidebook-btn{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgb(255 255 255 / .35);border-radius:10px;background:#ffffff1f;color:#fff;font-weight:700;font-size:.88rem;transition:background .15s}.guidebook-btn:hover{background:#ffffff38}.path{display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 0 8px}.path-node-wrap{position:relative;display:flex;flex-direction:column;align-items:center}.path-node-wrap.open{z-index:20}.path-node{display:grid;place-items:center;width:68px;height:64px;border:none;border-radius:50%;color:#fff;background:var(--unit-color);box-shadow:0 6px color-mix(in srgb,var(--unit-color) 65%,#000),0 10px 18px #0000001f;transition:transform .08s}.path-node:hover:not(.locked){filter:brightness(1.06)}.path-node:active{transform:translateY(4px);box-shadow:0 2px color-mix(in srgb,var(--unit-color) 65%,#000)}.path-node.locked{background:var(--surface-3);color:var(--muted);box-shadow:0 6px 0 var(--border-strong)}.path-node.perfect{background:linear-gradient(160deg,var(--gold-bright),var(--gold));box-shadow:0 6px color-mix(in srgb,var(--gold) 70%,#000),0 10px 18px #0000001f}.path-node.current{outline:6px solid color-mix(in srgb,var(--unit-color) 22%,transparent);outline-offset:5px}.start-tag{position:absolute;top:-38px;z-index:1;padding:5px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--unit-color);font-weight:800;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;box-shadow:var(--shadow-sm);animation:bob 1.4s ease-in-out infinite}.start-tag:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:translate(-50%) rotate(45deg)}@keyframes bob{50%{transform:translateY(-5px)}}.node-popover{position:absolute;top:82px;z-index:5;display:flex;flex-direction:column;gap:4px;width:260px;padding:16px;border-radius:var(--radius);background:var(--unit-color);color:#fff;box-shadow:var(--shadow-lg);animation:pop-in .15s ease-out}.node-popover .eyebrow{color:#ffffffbf}.node-popover strong{font-family:var(--font-display);font-size:1.2rem}.popover-meta{font-size:.88rem;opacity:.85}.node-popover .btn{margin-top:10px;padding:0 14px;justify-content:flex-start}.node-popover.locked{background:var(--surface);color:var(--ink);border:1px solid var(--border)}.node-popover.locked .eyebrow{color:var(--muted)}.locked-note{margin-top:6px;font-size:.9rem;color:var(--muted)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.course-done{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;text-align:center}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#080e0c8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .15s}@keyframes fade-in{0%{opacity:0}}.modal{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:420px;max-height:88vh;overflow:auto;padding:28px 24px 20px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);text-align:center;animation:pop-in .18s ease-out}.modal h3{font-size:1.35rem}.modal p{color:var(--muted);margin-bottom:8px}.guidebook{max-width:520px;text-align:left}.guidebook .icon-disc{margin:0 0 4px}.guide-sections{display:flex;flex-direction:column;gap:16px;margin:8px 0 12px}.guide-section{padding-left:14px;border-left:3px solid var(--unit-color)}.guide-section h4{font-size:1.02rem;margin-bottom:4px}.guide-section p{color:var(--ink-2);margin:0}.lesson{min-height:100vh;display:flex;flex-direction:column}.lesson-header{display:flex;align-items:center;gap:14px;width:100%;max-width:1000px;margin:0 auto;padding:18px 16px 8px}.lesson-progress{flex:1;height:14px;border-radius:999px;background:var(--surface-3);overflow:hidden}.lesson-progress>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#fff));transition:width .4s cubic-bezier(.3,.8,.4,1)}.lesson-body{flex:1;width:100%;max-width:620px;margin:0 auto;padding:16px 16px 220px;animation:slide-in .25s ease-out}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}}.lesson-title{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.retry-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--orange-soft);color:var(--orange);letter-spacing:.02em;text-transform:none}.prompt{font-size:1.6rem;margin-bottom:20px}.exercise{display:flex;flex-direction:column}.options{display:flex;flex-direction:column;gap:10px}.options.row{flex-direction:row}.options.row .option{flex:1;justify-content:center;padding-inline:10px}.option{display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 16px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 2px 0 var(--border);text-align:left;font-weight:600;font-size:1rem;transition:border-color .12s,background .12s}.option:hover:not(:disabled){border-color:var(--brand);background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}.option-key{display:inline-grid;place-items:center;flex-shrink:0;width:26px;height:26px;border:1.5px solid var(--border-strong);border-radius:7px;font-size:.78rem;font-weight:700;color:var(--muted)}.option.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:0 2px color-mix(in srgb,var(--brand) 40%,transparent)}.option.selected .option-key{border-color:var(--brand);background:var(--brand);color:var(--on-brand)}.option.correct{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:none}.option.correct .option-key{border-color:var(--brand);background:var(--brand);color:var(--on-brand)}.option.wrong{border-color:var(--red);background:var(--red-soft);color:var(--red);box-shadow:none}.option.wrong .option-key{border-color:var(--red);background:var(--red);color:#fff}.lesson-footer{position:fixed;left:0;right:0;bottom:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface)}.lesson-footer.correct{background:var(--brand-soft);border-top-color:transparent}.lesson-footer.wrong{background:var(--red-soft);border-top-color:transparent}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1000px;margin:0 auto}.footer-inner>.btn{min-width:160px}.footer-hint{color:var(--muted);font-size:.9rem}.feedback{flex:1;display:flex;gap:12px;animation:rise .2s ease-out}.feedback-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--surface)}.lesson-footer.correct .feedback,.lesson-footer.correct .feedback-icon{color:var(--brand)}.lesson-footer.wrong .feedback,.lesson-footer.wrong .feedback-icon{color:var(--red)}.feedback-text strong{font-family:var(--font-display);font-size:1.25rem}.feedback-text p{margin-top:2px;color:var(--ink-2);font-size:.95rem;max-width:64ch}.feedback-text .correct-answer{color:inherit;font-weight:700}@keyframes rise{0%{transform:translateY(8px);opacity:0}}@media(max-width:600px){.footer-inner{flex-direction:column;align-items:stretch}.footer-hint{display:none}.prompt{font-size:1.35rem}.feedback-icon{display:none}}.felt{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:20px;padding:20px 12px;border-radius:28px;background:radial-gradient(120% 90% at 50% 35%,var(--felt-1) 0%,var(--felt-2) 100%);box-shadow:inset 0 0 0 2px #ffffff0f,inset 0 0 40px #00000059,0 0 0 6px #1d2a25,0 0 0 7px #ffffff0f,var(--shadow-md);color:#fff}.felt-section{display:flex;flex-direction:column;align-items:center;gap:8px}.felt-label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3}.table-info{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0}.table-info div{padding:6px 12px;border-radius:10px;background:#0000003d;border:1px solid rgb(255 255 255 / .08);text-align:center}.table-info dt{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffffa6}.table-info dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.card-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.card{position:relative;display:grid;place-items:center;width:54px;height:76px;border-radius:7px;background:var(--card-face);box-shadow:0 1px #0000001a,0 4px 10px #0000004d;font-family:var(--font-display);line-height:1;transition:opacity .2s,transform .2s,box-shadow .2s}.card.red{color:var(--card-red)}.card.black{color:var(--card-black)}.card-index{position:absolute;top:5px;left:6px;display:flex;flex-direction:column;align-items:center;gap:1px}.card-rank{font-size:1.05rem;font-weight:800;letter-spacing:-.04em}.card-pip{font-size:.72rem}.card-suit{margin-top:14px;margin-left:10px;font-size:1.9rem}.card.highlight{transform:translateY(-5px);box-shadow:0 0 0 3px var(--gold-bright),0 6px 14px #00000059}.card.dim{opacity:.4}.players{display:flex;gap:10px;width:100%;justify-content:center}.player{flex:1;max-width:210px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;border-radius:16px;background:#0000002e;border:1.5px solid rgb(255 255 255 / .06)}.player.winner{border-color:var(--gold-bright);background:#00000042}.hand-name{font-size:.8rem;font-weight:700;text-align:center}@media(max-width:400px){.card{width:46px;height:66px}.card-suit{font-size:1.6rem}}.order-slots{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:8px}.order-slots li{display:flex;align-items:center;gap:12px;min-height:54px;padding:6px 10px;border:1.5px dashed var(--border-strong);border-radius:var(--radius)}.order-slots li.filled{border-style:solid;border-color:var(--border);background:var(--surface)}.slot-number{width:22px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.chip-bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{padding:10px 14px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--surface);box-shadow:0 2px 0 var(--border);font-weight:600}.chip:hover:not(:disabled){border-color:var(--brand)}.chip.used{color:transparent;background:var(--surface-2);border-color:var(--surface-3);box-shadow:none}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.match-col{display:flex;flex-direction:column;gap:10px}.tile{min-height:58px;padding:8px 10px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 2px 0 var(--border);font-weight:600}.tile:hover:not(:disabled){border-color:var(--brand)}.tile.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.tile.matched{opacity:.4;border-color:var(--brand);color:var(--brand);box-shadow:none}.tile.wrong{border-color:var(--red);background:var(--red-soft);color:var(--red);animation:shake .3s}@keyframes shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.street-track{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;list-style:none;padding:0;margin:0 0 16px}.street-track li{position:relative;padding-top:10px;color:var(--muted);text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.street-track li:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:999px;background:var(--surface-3)}.street-track li.active{color:var(--ink)}.street-track li.active:before{background:var(--blue)}.street-track li.right{color:var(--brand)}.street-track li.right:before{background:var(--brand)}.street-track li.missed{color:var(--red)}.street-track li.missed:before{background:var(--red)}.street-track li.skipped{opacity:.45}.step-prompt{margin:0 0 12px;font-size:1.1rem;font-weight:700}.step-feedback{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding:16px;border-radius:var(--radius);animation:rise .2s ease-out}.step-feedback strong{font-family:var(--font-display);font-size:1.1rem}.step-feedback p{margin:0 0 8px;color:var(--ink-2)}.step-feedback.correct{background:var(--brand-soft);color:var(--brand)}.step-feedback.wrong{background:var(--red-soft);color:var(--red)}.focus{background:var(--bg)}.complete-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 16px;text-align:center}.complete-screen h1{font-size:2.2rem;margin-bottom:8px}.complete-hero{display:grid;place-items:center;width:104px;height:104px;margin-bottom:8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--gold-bright),var(--gold));color:#fff;box-shadow:0 0 0 10px var(--gold-soft),var(--shadow-md);animation:pop-in .4s ease-out}.result-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,132px));gap:10px;margin:8px 0 12px}.result-tile{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.result-label{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.result-tile strong{font-family:var(--font-display);font-size:1.6rem}.result-tile.gold .result-label,.result-tile.gold strong{color:var(--gold)}.result-tile.brand .result-label,.result-tile.brand strong{color:var(--brand)}.result-tile.blue .result-label,.result-tile.blue strong{color:var(--blue)}.reward-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.reward-list li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface-2);font-weight:600;font-size:.9rem}.review-card,.drill-card,.shop-item{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;transition:border-color .15s,box-shadow .15s,transform .08s}.review-card:hover:not(:disabled),.drill-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.review-card:active:not(:disabled),.drill-card:active{transform:translateY(1px)}.review-card:disabled{box-shadow:none;background:var(--surface-2)}.icon-tile.tinted{--tile-color: inherit}.drill-card .icon-tile.tinted{background:color-mix(in srgb,var(--tile-color) 14%,var(--surface));color:var(--tile-color)}.count-badge{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;font-size:.85rem}.drill-grid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:720px){.drill-grid{grid-template-columns:1fr 1fr}.drill-grid .row-chevron{display:none}}.shop-list{display:flex;flex-direction:column;gap:10px}.shop-status{margin-top:4px;font-size:.78rem!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.btn.price{min-width:96px;min-height:44px;padding:0 14px;color:var(--blue)}.profile-head{display:flex;align-items:center;gap:20px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.avatar{display:grid;place-items:center;flex-shrink:0;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--felt-1),var(--felt-2));color:#fff;font-size:2.6rem;box-shadow:0 0 0 4px var(--surface),0 0 0 6px var(--brand)}.profile-level{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.profile-level h1{font-size:1.8rem}.profile-level .muted{font-size:.88rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:720px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.stat-box{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.stat-box .icon-tile{grid-row:span 2}.stat-box strong{font-family:var(--font-display);font-size:1.35rem;line-height:1.1}.stat-box small{color:var(--muted);font-size:.82rem}.week-chart{display:flex;gap:8px;height:180px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.week-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.week-value{height:14px;font-size:.72rem;font-weight:700;color:var(--muted)}.week-bar-track{flex:1;width:100%;max-width:32px;display:flex;align-items:flex-end;border-radius:8px;background:var(--surface-2)}.week-bar{width:100%;border-radius:8px;background:var(--brand);transition:height .4s}.week-bar.met{background:linear-gradient(180deg,var(--gold-bright),var(--gold))}.week-label{font-size:.75rem;font-weight:600;color:var(--muted)}.week-label.today{color:var(--ink);font-weight:800}.chart-note{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}.swatch{width:12px;height:12px;border-radius:4px}.swatch.met{background:var(--gold)}.achievements{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.achievement{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted)}.achievement.unlocked{color:var(--ink);border-color:color-mix(in srgb,var(--gold) 45%,var(--border))}.achievement div{display:flex;flex-direction:column}.achievement small{color:var(--muted)}.goal-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:720px){.goal-options{grid-template-columns:repeat(4,1fr)}}.goal-option{display:flex;flex-direction:column;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.goal-option span{color:var(--muted);font-size:.88rem}.goal-option.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}.toggle-row span{display:flex;flex-direction:column}.toggle-row small{color:var(--muted)}.toggle-row input{appearance:none;position:relative;flex-shrink:0;width:44px;height:26px;margin:0;border-radius:999px;background:var(--surface-3);cursor:pointer;transition:background .15s}.toggle-row input:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.toggle-row input:checked{background:var(--brand)}.toggle-row input:checked:after{transform:translate(18px)}.reset{margin-top:12px;align-self:center}@media(max-width:420px){.top-bar .brand{font-size:0;gap:0}.guidebook-btn span{display:none}.chip-stat{padding:5px 8px}}.focus-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--tile-color),color-mix(in srgb,var(--tile-color) 70%,#000));color:#fff;box-shadow:var(--shadow-md);--unit-color: var(--tile-color)}.focus-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 240px}.focus-text .eyebrow{color:#ffffffc7}.focus-text h2{font-size:1.5rem}.focus-text p{color:#ffffffe6;font-size:.95rem}.practice-row{display:grid;grid-template-columns:1fr;gap:10px}.best-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold);font-weight:700;font-size:.85rem;flex-shrink:0}.section-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.section-bar .section-title{margin-top:0}.segmented{display:inline-flex;padding:3px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.segmented button{min-width:40px;padding:5px 10px;border:none;border-radius:7px;background:none;color:var(--muted);font-weight:700;font-size:.85rem;font-variant-numeric:tabular-nums}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.skill-meter{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.8rem!important;font-weight:700}.skill-meter.new{color:var(--muted)}.skill-bar{flex:1;max-width:140px;height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.skill-bar>span{display:block;height:100%;border-radius:inherit}.skill-meter.strong{color:var(--brand)}.skill-meter.strong .skill-bar>span{background:var(--brand)}.skill-meter.ok{color:var(--gold)}.skill-meter.ok .skill-bar>span{background:var(--gold)}.skill-meter.weak{color:var(--red)}.skill-meter.weak .skill-bar>span{background:var(--red)}.speed-intro{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-width:520px;margin:0 auto;padding:24px 16px;text-align:center}.speed-intro h1{font-size:2.2rem}.speed-intro p{max-width:44ch}.speed-intro .icon-button.close{position:absolute;top:16px;left:16px}.complete-hero.speed{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--blue) 70%,#fff),var(--blue));box-shadow:0 0 0 10px var(--blue-soft),var(--shadow-md)}.pill.best{background:var(--gold-soft);color:var(--gold)}.speed-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;max-width:400px}.speed-actions .btn{flex:1 1 auto}.lesson-progress.timer>div{background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 65%,#fff));transition:width .1s linear}.lesson-progress.timer.low>div{background:var(--red)}.timer-chip{background:var(--blue-soft);color:var(--blue);min-width:64px;justify-content:center}.score-chip{background:var(--gold-soft);color:var(--gold)}.speed .lesson-body{position:relative;padding-bottom:48px}.speed-flash{position:absolute;top:8px;right:16px;padding:6px 14px;border-radius:999px;font-family:var(--font-display);font-weight:800;animation:pop-in .15s ease-out}.speed-flash.correct{background:var(--brand);color:var(--on-brand)}.speed-flash.wrong{background:var(--red);color:#fff}.daily-card{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--brand-soft),var(--surface) 70%)}.daily-card.done{border-color:var(--border);background:var(--surface)}.daily-date{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:56px;overflow:hidden;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.daily-date span{width:100%;padding:2px 0;background:var(--red);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-align:center;text-transform:uppercase}.daily-date strong{padding:4px 0 6px;font-family:var(--font-display);font-size:1.5rem;line-height:1}.daily-text{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.daily-text strong{font-family:var(--font-display);font-size:1.15rem}.daily-text>span:last-child{color:var(--muted);font-size:.9rem}.daily-check{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--brand);color:var(--on-brand)}.btn-reward{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;background:#fff3;font-size:.82rem}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;transition:border-color .15s,box-shadow .15s}.tool-card:hover:not(:disabled){border-color:var(--border-strong);box-shadow:var(--shadow-md)}.tool-card:disabled{background:var(--surface-2);box-shadow:none}.tool-card .icon-tile{margin-bottom:6px}.tool-card>span:not(.icon-tile):not(.best-badge):not(.count-badge){color:var(--muted);font-size:.85rem}.tool-card .best-badge,.tool-card .count-badge{position:absolute;top:12px;right:12px}@media(max-width:560px){.tool-grid{grid-template-columns:1fr}.tool-card{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}.tool-card .icon-tile{grid-row:span 2;margin:0}}.drill-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--ink)!important}.mastery{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.mastery.bronze{background:color-mix(in srgb,#b8733a 18%,var(--surface));color:#a5642e}.mastery.silver{background:color-mix(in srgb,#7d8a96 20%,var(--surface));color:#5e6b77}.mastery.gold{background:var(--gold-soft);color:var(--gold)}.mastery-note{font-size:.85rem;color:var(--muted)}.history{list-style:none;padding:0;margin:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.history li{display:grid;grid-template-columns:1fr auto 56px;align-items:center;gap:12px;padding:11px 16px;font-size:.92rem}.history li+li{border-top:1px solid var(--border)}.history-title{display:inline-flex;align-items:center;gap:6px;font-weight:600}.history-acc{justify-self:end;font-weight:800}.history-acc.strong{color:var(--brand)}.history-acc.ok{color:var(--gold)}.history-acc.weak{color:var(--red)}.mixer{max-width:520px}.mixer-actions-top{display:flex;justify-content:center;gap:4px}.mixer-actions-top .btn{min-height:34px;padding:0 12px;font-size:.88rem}.mixer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}@media(max-width:420px){.mixer-grid{grid-template-columns:1fr}}.mixer-chip{display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 12px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--ink-2);font-weight:600;font-size:.9rem;text-align:left}.mixer-chip svg:first-child{flex-shrink:0;color:var(--tile-color)}.mixer-chip.on{border-color:var(--tile-color);background:color-mix(in srgb,var(--tile-color) 10%,var(--surface));color:var(--ink)}.mixer-check{margin-left:auto;flex-shrink:0;color:var(--tile-color)}.ranges .back{align-self:flex-start;min-height:36px;padding:0 10px;margin-left:-10px}.segmented.wide{display:flex;width:100%}.segmented.wide button{flex:1;padding:8px 0}.range-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.range-summary>div{display:flex;flex-direction:column}.range-summary strong{font-family:var(--font-display);font-size:1.3rem}.range-hover{font-size:.88rem;font-weight:600;color:var(--muted)}.range-grid-wrap{overflow-x:auto}.range-grid{display:flex;flex-direction:column;gap:2px;min-width:340px;padding:2px;border-radius:var(--radius);background:var(--border)}.range-row{display:grid;grid-template-columns:repeat(13,1fr);gap:2px}.range-cell{aspect-ratio:1;display:grid;place-items:center;padding:0;border:none;border-radius:3px;background:var(--surface-2);color:var(--muted);font-size:clamp(.5rem,1.6vw,.72rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.range-cell.pair{background:var(--surface-3)}.range-cell.open{background:var(--brand);color:var(--on-brand)}.range-cell.open.suited{background:color-mix(in srgb,var(--brand) 85%,#fff)}.range-cell.open.offsuit{background:color-mix(in srgb,var(--brand) 80%,#000)}.range-cell.focus{outline:2px solid var(--gold-bright);outline-offset:-1px;position:relative;z-index:1}.range-cell.mixed{background:color-mix(in srgb,var(--brand) var(--freq),var(--surface-3));color:var(--ink);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--brand) 70%,transparent)}.range-cell.mixed.hi{color:var(--on-brand)}.range-cell.threebet,.swatch.threebet{background:var(--red);color:#fff}.chart-note-text{color:var(--ink-2);max-width:64ch}.swatch.mixed{background:color-mix(in srgb,var(--brand) 50%,var(--surface-3));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--brand) 70%,transparent)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tabs button{padding:10px 14px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font-weight:700}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.chart-intro{color:var(--muted);max-width:64ch}.solver-controls{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.stack-control{flex:1 1 220px;display:grid;grid-template-columns:1fr auto;align-items:baseline;row-gap:6px}.stack-control strong{font-family:var(--font-display);font-size:1.3rem}.stack-control input{grid-column:1 / -1;width:100%;accent-color:var(--brand)}.solver-toggles{display:flex;flex-wrap:wrap;gap:8px}.solver-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.solver-summary>div{display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.solver-summary strong{font-family:var(--font-display);font-size:1.5rem}.solver-card{display:flex;gap:12px;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--brand-soft) 60%,var(--surface))}.solver-card>div{display:flex;flex-direction:column;gap:4px}.solver-card strong{font-size:1.05rem}.solver-card p{color:var(--ink-2)}.rec-go{color:var(--brand)}.rec-fold{color:var(--red)}.range-legend{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:.85rem;font-weight:600}.range-legend span{display:inline-flex;align-items:center;gap:6px}.swatch.open{background:var(--brand)}.swatch.fold{background:var(--surface-3)}.range-text{display:flex;flex-direction:column;gap:4px}.range-text code{padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:.85rem;line-height:1.6;overflow-wrap:anywhere}.onboarding{min-height:100vh;display:flex;flex-direction:column;align-items:center;gap:24px;padding:32px 16px}.onboarding-steps{display:flex;gap:6px}.onboarding-steps span{width:28px;height:5px;border-radius:999px;background:var(--surface-3)}.onboarding-steps span.on{background:var(--brand)}.onboarding-card{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:520px;margin:auto 0;text-align:center}.onboarding-card h1{font-size:2rem}.onboarding-card .lead{color:var(--muted);font-size:1.05rem;max-width:44ch}.onboarding-card .btn.wide{max-width:400px}.onboarding-mark{display:grid;place-items:center;width:88px;height:88px;border-radius:24px;background:linear-gradient(145deg,var(--felt-1),var(--felt-2));color:#fff;font-size:3rem;box-shadow:var(--shadow-md)}.onboarding-brand{font-family:var(--font-display);font-size:1rem;font-weight:800;letter-spacing:-.02em;color:var(--brand-strong)}.value-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin:8px 0;padding:0;text-align:left}.value-list li{display:flex;align-items:center;gap:12px;color:var(--ink-2);font-weight:600}.value-list svg{flex-shrink:0;color:var(--brand)}.fine-print{font-size:.82rem;color:var(--muted)}.choice-cards{display:flex;flex-direction:column;gap:10px;width:100%}.choice-card{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);text-align:left;transition:border-color .12s}.choice-card:hover{border-color:var(--brand)}.choice-card.on{border-color:var(--brand);background:var(--brand-soft)}.choice-check{flex-shrink:0;color:var(--brand)}.goal-xp{font-weight:700;color:var(--muted)}.section-block+.section-block{margin-top:16px}.section-head{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.section-head.locked{background:var(--surface-2)}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.section-title-row h2{font-size:1.5rem}.section-count{font-weight:700;color:var(--muted)}.section-head p{color:var(--muted)}.test-out{align-self:flex-start;margin-top:4px}.complete-hero.muted-hero{background:var(--surface-3);color:var(--muted);box-shadow:0 0 0 10px var(--surface-2)}.result-copy{max-width:46ch;margin-bottom:12px}.library-grid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:720px){.library-grid{grid-template-columns:1fr 1fr}}.library-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;transition:border-color .15s,box-shadow .15s}.library-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.library-page .back{align-self:flex-start;min-height:36px;padding:0 10px;margin-left:-10px}.search-box{display:flex;align-items:center;gap:10px;padding:0 14px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--muted)}.search-box:focus-within{border-color:var(--brand)}.search-box input{flex:1;min-width:0;min-height:46px;border:none;background:none;color:var(--ink);font:inherit;outline:none}.glossary{margin:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.glossary-entry{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:4px 16px;padding:12px 16px}.glossary-entry+.glossary-entry{border-top:1px solid var(--border)}.glossary-entry dt{font-weight:700}.glossary-entry dd{margin:0;color:var(--ink-2)}@media(max-width:520px){.glossary-entry{grid-template-columns:1fr}}.empty-note{padding:16px 0}.sheet{display:flex;flex-direction:column;gap:8px}.sheet .section-title{margin-top:8px}.sheet-note{max-width:64ch;font-size:.92rem}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.data-table{width:100%;border-collapse:collapse;font-size:.92rem}.data-table th{padding:10px 14px;background:var(--surface-2);color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}.data-table td{padding:9px 14px;border-top:1px solid var(--border)}.data-table td.num,.data-table th.num{text-align:right}.data-table td.num{white-space:nowrap}.data-table tr.highlight-row td{background:color-mix(in srgb,var(--brand-soft) 50%,transparent);font-weight:600}.guides-section{display:flex;flex-direction:column;gap:8px}.guides-section+.guides-section{margin-top:12px}.guides-section .section-title{margin-top:0}.guide-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.guide-card summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}.guide-card summary::-webkit-details-marker{display:none}.guide-card[open] summary .row-chevron{transform:rotate(90deg)}.guide-card .guide-sections{padding:0 16px 16px;margin:0}.icon-disc.small{width:36px;height:36px;margin:0}.track-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--border));border-radius:var(--radius-lg);background:linear-gradient(160deg,color-mix(in srgb,var(--gold-soft) 70%,transparent),transparent 55%),var(--surface)}.track-head{display:flex;align-items:center;gap:14px}.track-head>div{display:flex;flex-direction:column;gap:2px}.track-head strong{font-family:var(--font-display);font-size:1.25rem}.track-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.track-list li{display:flex;align-items:center;gap:12px;padding:10px 0}.track-list li+li{border-top:1px solid var(--border)}.track-check{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:2px solid var(--border-strong);border-radius:50%;color:var(--on-brand)}.track-list li.done .track-check{border-color:var(--brand);background:var(--brand)}.track-list .row-text strong{font-size:.98rem}.track-list .row-text>span{font-size:.86rem}.track-value{flex-shrink:0;color:var(--muted);font-size:.88rem;font-weight:700}.track-list li.done .track-value{color:var(--brand)}.track-note{color:var(--muted);font-size:.85rem}.backup{margin-top:12px}.backup-actions{display:flex;flex-wrap:wrap;gap:10px}.backup-actions .btn{flex:1 1 180px}.code-box{width:100%;padding:10px 12px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--surface-2);color:var(--ink);font:.82rem/1.45 ui-monospace,SF Mono,Menlo,Consolas,monospace;word-break:break-all;resize:vertical}.code-box:focus{border-color:var(--brand);outline:none}.restore-label{margin-top:4px}.form-error{color:var(--red);font-size:.88rem;font-weight:600}.restore-btn{align-self:flex-start}.about{display:grid;gap:10px}@media(min-width:720px){.about{grid-template-columns:1fr 1fr}}.about p{color:var(--ink-2);font-size:.94rem}.help-links{display:flex;flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:.94rem}.help-links a{color:var(--brand);font-weight:600}.crash{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:24px 16px}.crash-card{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:440px;padding:28px 22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);text-align:center}.crash-card h1{font-size:1.5rem}.crash-card p{color:var(--ink-2)}.crash-details{width:100%;color:var(--muted);font-size:.85rem;text-align:left}.crash-details summary{cursor:pointer}.crash-details code{display:block;margin-top:6px;word-break:break-word}.card.sm{width:34px;height:48px;border-radius:5px;box-shadow:0 0 0 1px #0000001f,0 2px 4px #0000002e}.card.sm .card-index{top:3px;left:4px}.card.sm .card-rank{font-size:.8rem}.card.sm .card-pip{font-size:.56rem}.card.sm .card-suit{margin-top:10px;margin-left:7px;font-size:1.15rem}.option.card-option .card-row{justify-content:flex-start;gap:5px}.calc{display:flex;flex-direction:column;gap:14px}.calc-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.calc-slot{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.calc-slot.board{grid-column:1 / -1}.calc-slot.active{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.calc-slot-cards{display:flex;flex-wrap:wrap;gap:5px}.card-placeholder{width:34px;height:48px;border:1.5px dashed var(--border-strong);border-radius:5px;background:var(--surface-2)}.calc-range{display:flex;flex-direction:column;gap:8px}.text-input{width:100%;min-height:44px;padding:0 12px;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--ink);font:600 .95rem/1.2 var(--font-body)}.text-input:focus{border-color:var(--brand);outline:none}.preset-chips{display:flex;flex-wrap:wrap;gap:6px}.preset-chip{padding:6px 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:.82rem;font-weight:700}.preset-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.range-note{font-size:.85rem}.card-picker{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.card-picker-row{display:grid;grid-template-columns:repeat(13,1fr);gap:3px}.pick{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;height:40px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--card-face);font-family:var(--font-display);font-size:.78rem;font-weight:800;line-height:1.05}.pick.red{color:var(--card-red)}.pick.black{color:var(--card-black)}.pick.taken{opacity:.35;box-shadow:inset 0 0 0 2px var(--slot-color, var(--brand))}.pick.taken.hero{--slot-color: var(--brand)}.pick.taken.villain{--slot-color: var(--red)}.pick.taken.board{--slot-color: var(--gold)}.calc-clear{align-self:flex-start;min-height:36px;padding:0 10px;margin-left:-10px}.calc-result{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.calc-result .btn{align-self:flex-start}.calc-headline{display:flex;justify-content:space-between;gap:12px}.calc-headline>div{display:flex;flex-direction:column}.calc-headline strong{font-family:var(--font-display);font-size:2.1rem;line-height:1.1;color:var(--brand)}.calc-villain{align-items:flex-end}.calc-headline .calc-villain strong{color:var(--red)}.equity-bar{height:12px;border-radius:999px;background:color-mix(in srgb,var(--red) 70%,var(--surface));overflow:hidden}.equity-bar>div{height:100%;background:var(--brand);transition:width .3s ease}.calc-detail{font-size:.88rem}.variance{display:flex;flex-direction:column;gap:16px}.variance .btn{align-self:flex-start}.variance-controls{display:grid;grid-template-columns:1fr;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}@media(min-width:720px){.variance-controls{grid-template-columns:1fr 1fr;column-gap:24px}}.tool-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:720px){.tool-stats{grid-template-columns:repeat(3,1fr)}}.tool-stats>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.tool-stats strong{font-family:var(--font-display);font-size:1.2rem;line-height:1.2}.tool-stats small{color:var(--muted);font-size:.8rem}.var-chart{display:flex;flex-direction:column;gap:6px;margin:0;padding:14px 14px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.var-plot{position:relative;height:220px;margin-left:58px}.var-plot svg{display:block;width:100%;height:100%;overflow:visible}.var-y span{position:absolute;right:calc(100% + 8px);transform:translateY(-50%);color:var(--muted);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.var-x{display:flex;justify-content:space-between;margin-left:58px;color:var(--muted);font-size:.72rem;font-weight:700}.var-band{fill:color-mix(in srgb,var(--brand) 10%,transparent)}.var-zero{stroke:var(--border-strong);stroke-width:1}.var-path{fill:none;stroke-width:1.4;stroke-linejoin:round;opacity:.6}.var-path.up{stroke:var(--brand)}.var-path.down{stroke:var(--red)}.var-expected{stroke:var(--gold);stroke-width:2.5;stroke-dasharray:6 4}.var-chart figcaption{font-size:.85rem}.tool-note{font-size:.85rem;max-width:70ch}@media(max-width:719px){.tool-stats>div:last-child:nth-child(odd){grid-column:1 / -1}}.plan-card{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.plan-head{display:flex;align-items:center;gap:12px}.plan-head>div{display:flex;flex-direction:column}.plan-head strong{font-size:1.02rem}.plan-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.plan-list li+li{border-top:1px solid var(--border)}.plan-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 4px;border:none;border-radius:10px;background:none;text-align:left}.plan-item:hover{background:var(--surface-2)}.plan-item .row-text strong{font-size:.98rem}.plan-item .row-text>span{font-size:.86rem}.plan-item.done .track-check{border-color:var(--brand);background:var(--brand)}.plan-item.done .row-text strong{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.exam-card{display:flex;flex-direction:column;align-items:center;gap:10px;margin:28px 0 8px;padding:24px 20px;border:1px solid color-mix(in srgb,var(--gold) 40%,var(--border));border-radius:var(--radius-lg);background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--gold-soft) 90%,transparent),transparent 70%),var(--surface);text-align:center}.exam-card h2{font-size:1.4rem}.exam-card p{max-width:52ch;color:var(--ink-2)}.exam-card.locked .icon-disc{background:var(--surface-3);color:var(--muted)}.exam-card .locked-note{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem;font-weight:600}.exam-status{color:var(--brand)!important;font-weight:700}.exam-result .pill.gems{margin-bottom:4px}.exam-skills{display:flex;flex-direction:column;width:100%;max-width:420px;margin:4px 0 12px;padding:4px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);list-style:none;text-align:left}.exam-skills li{display:flex;align-items:center;gap:10px;padding:8px 0}.exam-skills li+li{border-top:1px solid var(--border)}.exam-marks{display:inline-flex;gap:4px}.mark{padding:2px;border-radius:50%}.mark.ok{background:var(--brand-soft);color:var(--brand)}.mark.miss{background:var(--red-soft);color:var(--red)}.play-card{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:none;border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 0% 0%,var(--felt-1),var(--felt-2));color:#fff;box-shadow:var(--shadow-md);text-align:left}.play-card .row-text>span{color:#fffc}.play-card .eyebrow{color:var(--gold-bright)}.play-card .row-chevron{color:#fffc}.play-card-art{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:14px;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff2e}.play-lobby,.play{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.play-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;width:100%;max-width:760px;margin:0 auto;padding:10px 12px;background:var(--bg)}.play-title{flex:1;min-width:0;overflow:hidden;font-family:var(--font-display);font-size:1.05rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.play-score{color:var(--muted);font-size:.85rem;font-weight:700;white-space:nowrap}.icon-button.on{background:var(--brand-soft);color:var(--brand)}.play-lobby-body{display:flex;flex-direction:column;gap:12px;width:100%;max-width:640px;margin:0 auto;padding:4px 16px 40px}.play-lifetime{padding:10px 14px;border-radius:var(--radius);background:var(--brand-soft);color:var(--brand);font-weight:700}.play-note{font-size:.9rem}.play-styles{display:grid;gap:10px}.play-style{--tile-color: var(--brand);display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:1px solid var(--border);border-left:4px solid var(--tile-color);border-radius:var(--radius);background:var(--surface);text-align:left}.play-style:hover{border-color:var(--border-strong);border-left-color:var(--tile-color)}.play-avatar{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--tile-color);color:#fff;font-family:var(--font-display);font-size:1.2rem;font-weight:800}.play-style.six .play-avatar{background:var(--brand)}.play-tip{color:var(--brand)!important;font-weight:600}.play-table{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;width:calc(100% - 24px);max-width:760px;margin:4px auto 12px;padding:14px 10px;border-radius:28px;background:radial-gradient(120% 90% at 50% 40%,var(--felt-1) 0%,var(--felt-2) 100%);box-shadow:inset 0 0 0 2px #ffffff0f,inset 0 0 40px #00000059,0 0 0 5px #1d2a25,var(--shadow-md);color:#fff}.play-opponents{display:grid;gap:8px;width:100%}.play-opponents.n1{grid-template-columns:minmax(0,240px);justify-content:center}.play-opponents.n5{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:720px){.play-opponents.n5{grid-template-columns:repeat(5,minmax(0,1fr))}}.seat{--seat-color: var(--gold-bright);position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:8px 8px 7px;border:1px solid rgb(255 255 255 / .1);border-radius:14px;background:#00000047;transition:opacity .2s,box-shadow .2s}.seat.hero{min-width:220px;padding:10px 14px}.seat.folded{opacity:.45}.seat.acting{box-shadow:0 0 0 2px var(--gold-bright),0 0 18px color-mix(in srgb,var(--gold-bright) 45%,transparent)}.seat-head{display:flex;align-items:center;gap:6px;max-width:100%}.seat-pos{flex-shrink:0;padding:1px 6px;border-radius:6px;background:#ffffffe6;color:#10231b;font-size:.66rem;font-weight:800;letter-spacing:.04em}.seat-name{display:flex;align-items:baseline;gap:5px;min-width:0;overflow:hidden;font-size:.86rem;font-weight:700;white-space:nowrap}.seat-name small{overflow:hidden;color:color-mix(in srgb,var(--seat-color) 45%,#fff);font-size:.7rem;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.04em}.seat-cards{display:flex;gap:4px}.seat-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 6px;font-size:.8rem;font-weight:700}.seat-bet{padding:1px 7px;border-radius:999px;background:var(--gold-bright);color:#2a1d05}.seat-tag{padding:1px 6px;border-radius:999px;background:#ffffff29;font-size:.72rem}.seat-won{padding:1px 7px;border-radius:999px;background:#22c55e;color:#052e16}.seat-hand{font-size:.72rem;font-weight:700;color:#ffffffd9;text-align:center}.card.back{background:repeating-linear-gradient(45deg,rgb(255 255 255 / .12) 0 3px,transparent 3px 7px),linear-gradient(135deg,#b91c1c,#7f1d1d);box-shadow:inset 0 0 0 2px #fff,0 2px 4px #0000004d}.play-board{display:flex;flex-direction:column;align-items:center;gap:8px;margin:6px 0}.board-cards{display:flex;gap:6px}.board-slot{width:54px;height:76px;border:1.5px dashed rgb(255 255 255 / .18);border-radius:7px}@media(max-width:380px){.board-cards .card,.board-slot{width:48px;height:68px}}.play-pot{padding:3px 12px;border-radius:999px;background:#0000004d;font-size:.88rem;font-weight:800}.play-log{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:3.6em;color:#ffffffb8;font-size:.8rem;text-align:center}.play-log span:last-child{color:#fff;font-weight:700}.play-bottom{position:sticky;bottom:0;z-index:5;width:100%;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -6px 18px #00000014}.play-bottom>*{max-width:640px;margin:0 auto}.action-bar{display:flex;flex-direction:column;gap:10px}.action-info{color:var(--muted);font-size:.86rem;font-weight:600;text-align:center}.action-info.waiting{padding:12px 0}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.action-buttons .btn{flex:1 1 0;min-width:96px;padding:0 12px}.sizing-presets{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.sizing-slider input{width:100%;accent-color:var(--brand)}.hand-result{display:flex;flex-direction:column;gap:10px}.hand-result-line{font-size:.95rem}.hand-result-line strong{margin-right:4px;font-family:var(--font-display);font-size:1.1rem}.hand-result-line.won strong{color:var(--brand)}.hand-result-line.lost strong{color:var(--red)}.review-counts{color:var(--muted);font-size:.82rem}.review-list{display:flex;flex-direction:column;margin:0;padding:0 12px 8px;list-style:none}.review-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.review-item .row-text strong{font-size:.92rem}.review-item .row-text>span{font-size:.86rem}.review-icon{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;margin-top:1px;border-radius:50%}.review-item.good .review-icon{background:var(--brand-soft);color:var(--brand)}.review-item.close .review-icon{background:var(--gold-soft);color:var(--gold)}.review-item.mistake .review-icon{background:var(--red-soft);color:var(--red)}.review-item.info .review-icon{background:var(--blue-soft);color:var(--blue)}.review-empty{padding:0 12px 10px;font-size:.86rem}.play-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:100vh;min-height:100dvh;padding:24px 16px;text-align:center}.play-stats{width:100%;max-width:560px;text-align:left}.seat-style{margin-top:-3px;color:color-mix(in srgb,var(--seat-color) 40%,#fff);font-size:.64rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.review-jump{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--ink);font-weight:700;text-align:left}.review-jump>span:first-child{flex:1}.review-jump.has-mistakes{border-color:color-mix(in srgb,var(--red) 40%,var(--border));background:var(--red-soft)}.play-review{width:calc(100% - 24px);max-width:760px;margin:0 auto 16px;padding:14px 14px 6px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);scroll-margin-top:64px}.play-review h2{font-size:1.05rem}.play-review .review-list{padding:4px 0 0}.review-note{padding:8px 0 10px;border-top:1px solid var(--border);font-size:.8rem}.card.xs{width:26px;height:37px;border-radius:4px}.card.xs .card-index{top:2px;left:3px}.card.xs .card-rank{font-size:.66rem}.card.xs .card-pip{font-size:.5rem}.card.xs .card-suit{margin-top:8px;margin-left:5px;font-size:.9rem}.card.back.xs{box-shadow:inset 0 0 0 1.5px #fff,0 1px 3px #0000004d}.seat.compact{gap:4px;padding:6px 6px 5px}.seat.hero{scroll-margin-bottom:140px}@media(max-width:420px){.play-log span:first-child:not(:last-child):nth-last-child(3){display:none}}.your-game{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.your-game .section-title{margin-top:0}@media(min-width:520px){.your-game .tool-stats{grid-template-columns:repeat(3,1fr)}.your-game .tool-stats>div:last-child:nth-child(odd){grid-column:auto}}.your-game .tool-stats>div{padding:10px 12px;background:var(--surface-2)}.your-game h3{margin-bottom:6px;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.your-game-grid{display:grid;gap:14px}@media(min-width:640px){.your-game-grid{grid-template-columns:1fr 1fr}}.leak-card{display:flex;gap:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));border-radius:var(--radius);background:var(--red-soft)}.leak-card p{margin-top:2px;color:var(--ink-2);font-size:.9rem}.accuracy-rows{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.accuracy-rows li{display:grid;grid-template-columns:minmax(96px,auto) 1fr auto;align-items:center;gap:10px;font-size:.9rem}.accuracy-label{font-weight:700}.accuracy-bar{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.accuracy-bar span{display:block;height:100%;border-radius:inherit;background:var(--brand)}.accuracy-value{display:flex;flex-direction:column;align-items:flex-end;font-weight:800;line-height:1.1}.accuracy-value small{color:var(--muted);font-size:.72rem;font-weight:600}.history-list,.history-players{display:flex;flex-direction:column;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);list-style:none;overflow:hidden}.history-list li+li,.history-players li+li{border-top:1px solid var(--border)}.history-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;background:transparent;text-align:left}.history-row:hover{background:var(--surface-2)}.history-row .card-row,.history-players .card-row{flex-shrink:0;flex-wrap:nowrap;gap:3px}.history-row .row-text strong,.history-players .row-text strong{font-size:.95rem}.history-row .row-text>span,.history-players .row-text>span{font-size:.82rem}.history-net{flex-shrink:0;min-width:64px;font-weight:800;text-align:right}.history-net.won,.page-head .won{color:var(--brand)}.history-net.lost,.page-head .lost{color:var(--red)}.history-more{align-self:flex-start;margin-top:8px}.history-players li{display:flex;align-items:center;gap:10px;padding:8px 12px}.history-players li.hero{background:var(--brand-soft)}.history-players .seat-pos{min-width:36px;background:var(--surface-3);color:var(--ink-2);text-align:center}.history-street{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.history-street-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%}.history-street-head .muted{font-size:.85rem}.history-street .card-row{justify-content:flex-start;gap:4px}.history-actions{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;color:var(--ink-2);font-size:.92rem;list-style:none}.history-actions li.hero{color:var(--ink);font-weight:700}.play-review.static{width:100%;margin:0}
