:root{--bg:#EEF2F9;--surface:#FFFFFF;--surface-2:#F6F8FC;--ink:#0D1A36;--muted:#56627F;--line:#D8DFEC;--blue:#1C3A8C;--blue-soft:#E3E9F8;--orange:#EE8434;--orange-soft:#FDEBDC;--orange-ink:#A64E0E;--good:#23895B;--good-soft:#DDF2E7;--warn:#B98309;--warn-soft:#FBF0D3;--bad:#C23B2A;--bad-soft:#FBE4E0;--hero:#10204F;--hero-2:#1B3477;--on-hero:#EAF0FF;--on-hero-muted:#A9B7DD;--ice:#2C86D1;--ice-soft:#E0F0FC;--f-display:"Bricolage Grotesque","Avenir Next","Segoe UI",sans-serif;--f-body:"Figtree","Segoe UI",system-ui,sans-serif;--r-md:14px;--r-lg:22px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#080F22;--surface:#101A33;--surface-2:#16213F;--ink:#E7ECF8;--muted:#97A3C2;--line:#24304F;--blue:#8EA7FF;--blue-soft:#1A2A58;--orange:#F59A52;--orange-soft:#3A2414;--orange-ink:#FFB57A;--good:#4CC98E;--good-soft:#12342A;--warn:#E5B53C;--warn-soft:#3A2F12;--bad:#F07A68;--bad-soft:#3A1915;--hero:#0B1638;--hero-2:#14286A;--ice:#7CC4F5;--ice-soft:#12304A;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15.5px;line-height:1.55}h1,h2,h3{font-family:var(--f-display);line-height:1.15;margin:0;text-wrap:balance}h1{font-size:clamp(24px,4vw,32px)}h2{font-size:22px}h3{font-size:17px}p{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.fine,.muted{color:var(--muted)}.fine{font-size:12.5px}.accent{color:var(--orange)}.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-ink)}.center-screen{min-height:100vh;display:grid;place-items:center}.stack{gap:12px}.shell,.stack{display:flex;flex-direction:column}.shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;gap:16px;flex-wrap:wrap;padding:12px max(16px,env(safe-area-inset-left));background:var(--hero);color:var(--on-hero)}.brand,.topbar{display:flex;align-items:center}.brand{gap:8px;font-family:var(--f-display);font-weight:700;font-size:20px}.brand-mark{width:26px;height:26px;border-radius:8px;background:radial-gradient(circle at 35% 50%,#66E3FF 0 3px,transparent 4px),radial-gradient(circle at 65% 50%,#66E3FF 0 3px,transparent 4px),#0B1430;border:2px solid var(--orange)}.nav{display:flex;gap:4px;flex:1 1}.nav a{padding:6px 12px;border-radius:999px;font-weight:600;font-size:14px;color:var(--on-hero-muted)}.nav a:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.12);color:var(--on-hero)}.stats{display:flex;gap:6px}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-weight:700;font-size:13px;white-space:nowrap}.chip.dark{background:var(--hero);color:var(--on-hero)}.demo-banner{background:var(--orange-soft);color:var(--orange-ink);font-size:13px;text-align:center;padding:6px 16px;font-weight:600}.main{flex:1 1;width:100%;max-width:980px;margin:0 auto;padding:24px max(16px,env(safe-area-inset-left)) 48px}@media (max-width:640px){.nav{order:3;flex-basis:100%;justify-content:space-between;overflow-x:auto;scrollbar-width:none;min-width:0}.nav::-webkit-scrollbar{display:none}.nav a{padding:6px 8px;font-size:13px;white-space:nowrap}.topbar{gap:10px}.brand{flex:1 1}}.page{display:flex;flex-direction:column;gap:18px}.page.narrow{max-width:640px;margin:0 auto;width:100%}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:10px}.link-card:hover{border-color:var(--orange)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px}.empty{align-items:flex-start}.row-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:9px 18px;font-weight:700}.btn.primary{background:var(--orange);color:#2A1405}.btn.ghost{background:var(--surface);border-color:var(--line)}.btn.big{width:100%;padding:13px 18px;font-size:16px}.btn small{display:block;font-weight:500;font-size:11.5px;color:var(--muted)}.form{gap:12px}.field,.form{display:flex;flex-direction:column}.field{gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.field input,.field select{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:11px 13px;font-size:15px;font-weight:500}.form-msg{color:var(--bad);font-size:13.5px;font-weight:600}.notice{background:var(--blue-soft);border-radius:var(--r-md);padding:12px 14px;font-size:14px}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:4px;align-self:flex-start}.tabs button{border:0;background:none;border-radius:999px;padding:7px 16px;font-weight:700;font-size:14px;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--hero);color:var(--on-hero)}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px}.choice-grid.four{grid-template-columns:repeat(4,1fr)}.choice-list{gap:8px}.choice,.choice-list{display:flex;flex-direction:column}.choice{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 8px;font-weight:600;color:var(--ink);align-items:center;gap:2px}.choice.row{flex-direction:row;justify-content:space-between;padding:11px 14px}.choice small{color:var(--muted);font-weight:500;font-size:12px}.choice[aria-pressed=true]{border-color:var(--orange);background:var(--orange-soft);color:var(--orange-ink)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(170deg,var(--hero-2),var(--hero) 60%)}.auth-card{width:100%;max-width:440px;background:var(--surface);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}.auth-hello,.hello-card{display:flex;align-items:center;gap:14px}.auth-hello h1{font-size:28px}.auth-hello p,.hello-card p{color:var(--muted);font-size:14px}.hello-card{background:linear-gradient(170deg,var(--hero-2),var(--hero));color:var(--on-hero);border-radius:var(--r-lg);padding:12px 18px 12px 8px}.hello-card h1{font-size:22px}.hello-card p{color:var(--on-hero-muted)}.hello-card .eyebrow{color:var(--orange)}.hero{display:grid;grid-template-columns:1fr auto;grid-gap:16px;background:linear-gradient(170deg,var(--hero-2),var(--hero) 70%);color:var(--on-hero);border-radius:var(--r-lg);padding:18px 22px}.hero,.hero-lina{gap:16px;align-items:center}.hero-lina{display:flex;flex-wrap:wrap}.greet{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:var(--on-hero);border-radius:18px 18px 18px 4px;padding:10px 14px;text-align:left;max-width:320px;font-size:16px}.greet small{display:block;color:var(--on-hero-muted);font-size:12px;margin-top:2px}.streak-box{display:flex;flex-direction:column;align-items:center;text-align:center;background:rgba(255,255,255,.08);border-radius:var(--r-md);padding:14px 18px;max-width:170px}.streak-box b{font-family:var(--f-display);font-size:42px;line-height:1;color:var(--orange)}.streak-box span{font-weight:700}.streak-box small{color:var(--on-hero-muted);font-size:12px;margin-top:4px}@media (max-width:640px){.hero{grid-template-columns:1fr}.streak-box{max-width:none;flex-direction:row;gap:10px}}.mission{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;display:flex;flex-direction:column;gap:6px}.mission:hover{border-color:var(--orange)}.mission p{color:var(--muted)}.cta{font-weight:800;color:var(--orange-ink);margin-top:4px}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.list a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.list li:first-child a{border-top:0}.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.scene b{font-family:var(--f-display);font-size:18px}.scene .goal{font-size:13px}.tag{align-self:flex-start;font-size:11.5px;padding:3px 9px;background:var(--orange-soft);color:var(--orange-ink)}.talk{display:flex;flex-direction:column;height:calc(100vh - 160px);min-height:520px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.talk-top{display:flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(170deg,var(--hero-2),var(--hero));color:var(--on-hero)}.talk-info{flex:1 1;min-width:0;display:flex;flex-direction:column}.talk-info b{font-family:var(--f-display);font-size:18px}.talk-info span{font-size:12.5px;color:var(--on-hero-muted)}.talk-info .goal{color:var(--on-hero)}.state-pill{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12)}.log{flex:1 1;overflow-y:auto;padding:16px;gap:12px}.log,.msg{display:flex;flex-direction:column}.msg{max-width:min(560px,88%);gap:4px}.msg.lina{align-self:flex-start}.msg.user{align-self:flex-end;align-items:flex-end}.bubble{padding:10px 14px;border-radius:16px;font-size:16px}.msg.lina .bubble{background:var(--surface);border:1px solid var(--line);border-top-left-radius:4px}.msg.user .bubble{background:var(--hero);color:var(--on-hero);border-top-right-radius:4px}.bubble .tr{display:block;color:var(--muted);font-size:13.5px;margin-top:4px}.bubble.typing{color:var(--muted);font-style:italic}.tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12.5px}.mini{border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:600;padding:3px 10px}.fb,.mini{border-radius:999px}.fb{font-weight:700;padding:3px 9px}.fb.ok{background:var(--good-soft);color:var(--good)}.fb.wave{background:var(--warn-soft);color:var(--warn)}.fix{background:var(--orange-soft);color:var(--orange-ink);border-radius:10px;padding:4px 9px;max-width:420px;text-align:right}.dock{border-top:1px solid var(--line);background:var(--surface);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.goal-done{background:var(--good-soft);color:var(--good);border-radius:10px;padding:8px 12px;font-weight:700;font-size:14px}.hints{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.hints-label{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:4px}.hint{border:1px dashed var(--line);background:var(--surface-2);border-radius:12px;padding:6px 12px;font-size:14px}.hint:hover{border-color:var(--orange)}.say-row{display:flex;gap:8px;align-items:center}.say-row input{flex:1 1;min-width:0;border:1.5px solid var(--line);background:var(--surface-2);border-radius:999px;padding:11px 16px;font-size:15px}.mic{width:58px;height:58px;flex:none;border-radius:50%;border:0;background:var(--orange);display:grid;place-items:center;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;box-shadow:0 8px 20px -10px var(--orange)}.mic svg{width:26px;height:26px}.mic.held{background:var(--hero);color:var(--on-hero);box-shadow:0 0 0 8px var(--orange-soft);transform:scale(1.06)}.mic-note{font-size:12px;color:var(--muted)}.dock-actions{display:flex;justify-content:space-between;gap:8px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px;text-align:center;display:flex;flex-direction:column}.stat b{font-family:var(--f-display);font-size:26px}.stat span{font-size:12.5px;color:var(--muted)}.fixes,.ticks,.words{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.ticks li:before{content:"✓ ";color:var(--good);font-weight:800}.fixes li{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:3px solid var(--orange)}.fixes .said{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad)}.fixes .better{font-weight:700;color:var(--good)}.fixes .why{font-size:13.5px;color:var(--muted)}.words small{display:block;color:var(--muted);font-size:13px}.tabs.small button{padding:5px 14px;font-size:13px}.word-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}.word{text-align:left;gap:4px}.word-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.word-h b{font-family:var(--f-display);font-size:17px}.word-h span{font-size:12px}.ctx{font-size:13.5px;border-left:3px solid var(--orange);padding-left:8px}.ctx small{display:block;color:var(--muted);font-size:12px}.flash{align-items:center;justify-content:center;text-align:center;min-height:260px;gap:10px}.flash .big{font-family:var(--f-display);font-size:32px}.grades{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.grades .btn{flex-direction:column;border-radius:14px}.lina{display:block;overflow:visible;flex:none}.lina-head{transform-origin:100px 150px;transition:transform .5s cubic-bezier(.3,.7,.3,1)}.lina-eye{fill:#66E3FF;transform-box:fill-box;transform-origin:center;animation:blink 4.6s infinite;transition:fill .4s}.lina-ring{opacity:0;transform-origin:100px 100px}.lina-mouth rect{fill:#66E3FF;transform-box:fill-box;transform-origin:center}.lina-dots{opacity:0}.lina-hand{opacity:0;transition:opacity .3s,transform .5s;transform-origin:150px 200px}.lina.listening .lina-eye{animation:blink 4.6s infinite,eyeshift 2.4s ease-in-out infinite}.lina.listening .lina-ring{animation:ring 1.6s ease-out infinite}.lina.thinking .lina-head{transform:rotate(-8deg)}.lina.thinking .lina-dots{opacity:1}.lina.thinking .lina-dots circle{animation:dot 1.1s infinite}.lina.thinking .lina-dots circle:nth-child(2){animation-delay:.18s}.lina.thinking .lina-dots circle:nth-child(3){animation-delay:.36s}.lina.thinking .lina-hand{opacity:1;transform:rotate(-12deg)}.lina.speaking .lina-mouth rect{animation:talk .34s ease-in-out infinite alternate}.lina.speaking .lina-mouth rect:nth-child(2){animation-delay:.12s}.lina.speaking .lina-mouth rect:nth-child(3){animation-delay:.22s}.lina.happy .lina-eye{transform:scaleY(.5) translateY(-2px);animation:none}@keyframes blink{0%,46%,50%,to{transform:scaleY(1)}48%{transform:scaleY(.08)}}@keyframes eyeshift{0%,to{fill:#66E3FF}50%{fill:#FFB27A}}@keyframes ring{0%{opacity:.6;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@keyframes dot{0%,to{opacity:.25}50%{opacity:1}}@keyframes talk{0%{transform:scaleY(.4)}to{transform:scaleY(1.6)}}@media (prefers-reduced-motion:reduce){.lina *{animation:none!important;transition:none!important}}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.quest{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--line)}.quest:first-of-type{border-top:0}.quest-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.bar{position:relative;display:block;height:8px;background:var(--line);overflow:hidden}.bar,.bar i{border-radius:4px}.bar i{position:absolute;inset:0 auto 0 0;background:var(--orange)}.bar.big{height:18px;border-radius:9px}.bar.big span{position:relative;display:block;text-align:center;font-size:11.5px;font-weight:800;line-height:18px}.qm-row.done .bar i,.quest.done .bar i{background:var(--good)}.chest{flex:none;min-width:112px;text-align:center;border-radius:12px;padding:9px 12px;font-weight:800;font-size:13px;border:1.5px solid var(--line);background:var(--surface-2);color:var(--muted)}.chest.ready{background:var(--orange);border-color:var(--orange);color:#2A1405;animation:wiggle 1.6s ease-in-out infinite}.chest.opened{background:var(--good-soft);border-color:var(--good);color:var(--good)}@keyframes wiggle{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-4deg)}86%{transform:rotate(4deg)}94%{transform:rotate(-2deg)}}@media (prefers-reduced-motion:reduce){.chest.ready{animation:none}}.quest-mini{gap:8px}.quest-mini-h{display:flex;justify-content:space-between;gap:8px;font-size:13px}.qm-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;grid-gap:10px;gap:10px;align-items:center;font-size:13.5px}.qm-row>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plain{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:14.5px}.league-hero{background:linear-gradient(170deg,var(--hero-2),var(--hero) 70%);color:var(--on-hero);border-radius:var(--r-lg);padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.eyebrow.light{color:var(--orange)}.tiers{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hex{display:inline-block;width:24px;height:28px;-webkit-clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);opacity:.3;flex:none}.hex.past{opacity:.75}.hex.current{width:36px;height:42px;opacity:1}.league-mini-h{display:flex;align-items:center;gap:10px}.league-mini .hex.current{width:26px;height:30px}.result{flex-direction:row;align-items:center;justify-content:space-between;border-color:var(--orange)}.result div{display:flex;flex-direction:column}.result b{font-family:var(--f-display);font-size:18px}.lina-tip{display:flex;align-items:center;gap:12px;background:var(--blue-soft);border-radius:var(--r-md);padding:8px 16px 8px 8px}.lina-tip p{font-size:14.5px}.small{font-size:13.5px}.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.board .row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 14px}.board .row.me{border-color:var(--orange);background:var(--orange-soft)}.rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--muted)}.rank.r1{background:#E6B325;color:#3A2A00}.rank.r2{background:#B8C2D1;color:#1D2533}.rank.r3{background:#C98A55;color:#2E1606}.who{display:flex;flex-direction:column;min-width:0}.who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who small{color:var(--muted);font-size:12px}.xp{font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.zone{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--good)}.zone:after,.zone:before{content:"";flex:1 1;height:1.5px;background:currentColor;opacity:.4}.zone.down{color:var(--bad)}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--orange);margin-top:2px}.cover{position:relative;display:grid;place-items:center;border-radius:14px;aspect-ratio:4/3;max-width:100%;flex:none}.cover-label{position:absolute;top:8px;left:8px;font-size:11px;font-weight:800;background:rgba(255,255,255,.92);color:#0D1A36;border-radius:999px;padding:2px 8px}.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.story-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}.story-card .cover{border-radius:0;width:100%}.story-card:not(.locked):hover{border-color:var(--orange)}.story-card.locked .cover{filter:grayscale(1);opacity:.45}.story-body{padding:10px 14px 14px;display:flex;flex-direction:column;gap:2px}.story-body b{font-family:var(--f-display);font-size:16px}.episode-body small,.story-body small{color:var(--muted);font-size:12.5px}.status{font-size:12.5px;font-weight:700;color:var(--orange-ink)}.status.read{color:var(--good)}.status.locked{color:var(--muted)}.media-tile .eyebrow{display:inline-flex;align-items:center;gap:6px}.player{display:flex;flex-direction:column;height:calc(100vh - 160px);min-height:540px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;max-width:760px;margin:0 auto;width:100%}.player-top{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.player-top .bar{flex:1 1}.player-top .bar i{background:var(--good)}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:15px;color:var(--muted);flex:none}.player-log{flex:1 1;overflow-y:auto;padding:16px;gap:14px}.player-log,.story-head{display:flex;flex-direction:column}.story-head{align-items:center;gap:6px;text-align:center;padding-bottom:6px}.story-head .cover{width:120px;height:auto}.sl{grid-template-columns:36px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.sl,.sl .av{display:grid}.sl .av{width:36px;height:36px;border-radius:50%;place-items:center;color:#FFFFFF;font-weight:800}.sl .who{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.sl .txt{font-size:17px;line-height:1.55;margin:2px 0 4px}.sl.narr .txt{font-style:italic}.pod-seg .tr,.sl .tr{display:block;font-size:13.5px;color:var(--muted);font-style:normal}.gw{position:relative;border:0;background:none;padding:0;font:inherit;color:inherit;border-bottom:2px dotted var(--blue);cursor:pointer}.gw.open:after{content:attr(data-g);position:absolute;bottom:125%;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);font-size:12.5px;font-style:normal;font-weight:600;padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:3}.sq{border:1.5px solid var(--line);border-radius:var(--r-md);padding:10px 14px;background:var(--surface);display:flex;flex-direction:column;gap:2px}.sq small{color:var(--muted)}.sq.done{border-color:var(--good)}.sq .ans{color:var(--good);font-weight:700}.fb-good{color:var(--good);font-weight:800}.self-start{align-self:flex-start}.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:8px;gap:8px}.opt{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:11px 14px;text-align:left;font-weight:600}.opt:hover:not(:disabled){border-color:var(--orange)}.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.built{min-height:48px;border-bottom:2px solid var(--line);padding:6px 0}.bank,.built{display:flex;flex-wrap:wrap;gap:6px}.bank{justify-content:center}.tile{border:1.5px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;font-weight:600;box-shadow:0 2px 0 var(--line)}.tile.used{visibility:hidden}.tile.sel{border-color:var(--blue);background:var(--blue-soft)}.tile.ok{opacity:.4;border-color:var(--good);box-shadow:none}.match{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.match .col{display:flex;flex-direction:column;gap:6px}.match .tile{width:100%}.episodes{display:flex;flex-direction:column;gap:12px}.episode{flex-direction:row;align-items:center;gap:14px}.episode .cover{aspect-ratio:1}.episode-body{display:flex;flex-direction:column;gap:2px;min-width:0}.episode-body b{font-family:var(--f-display);font-size:17px}.pod-head{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.page .pod-head{border:1px solid var(--line);border-radius:var(--r-lg)}.pod-head>div{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.pod-head .cover{aspect-ratio:1}.pod-seg{text-align:left;border:0;border-left:3px solid transparent;background:none;border-radius:0 12px 12px 0;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font:inherit;color:inherit;width:100%}.pod-seg.cur{border-left-color:var(--orange);background:var(--orange-soft)}.pod-seg.past{opacity:.6}.pod-seg .who{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.pod-seg.guest .txt{font-size:16.5px;font-weight:500}.pod-seg.host .txt{font-size:15px;color:var(--muted)}.pod-seg .mini{align-self:flex-start}.link-btn{align-self:center;color:var(--blue);padding:6px}.pod-ctrl{background:var(--surface);border-top:1px solid var(--line);padding:12px 16px 14px;flex-direction:column}.pod-ctrl,.pod-prog{display:flex;gap:10px}.pod-prog{align-items:center;font-size:12.5px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pod-prog .bar{flex:1 1}.pod-btns{display:flex;align-items:center;justify-content:center;gap:20px}.pod-btns button{border:0;background:none;font-size:22px;color:var(--ink);padding:4px 8px}.pod-btns .pp{width:60px;height:60px;border-radius:50%;background:var(--orange);color:#2A1405;font-size:20px}.pod-btns .spd{font-size:13px;font-weight:800;border:1px solid var(--line);border-radius:999px;padding:6px 12px}.spd-spacer{width:56px}.link-chip:hover{background:rgba(255,255,255,.2)}.chip-freeze{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding-left:6px;border-left:1px solid rgba(255,255,255,.2);color:#CDE9FC}a.streak-box:hover{background:rgba(255,255,255,.14)}.freeze-count{display:inline-flex;align-items:center;gap:4px}.streak-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--orange-soft);color:var(--orange-ink);font-weight:600;font-size:14px}.streak-banner.ice{background:var(--ice-soft);color:var(--ink)}.streak-banner span{flex:1 1}.streak-hero{grid-template-columns:1fr}.streak-big{display:flex;align-items:center;gap:14px}.streak-big b{display:block;font-family:var(--f-display);font-size:48px;line-height:1}.streak-big span{color:var(--on-hero-muted);font-weight:600}.on-hero-muted{color:var(--on-hero-muted);font-size:14px}.freeze-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.freeze-row p{flex:1 1;min-width:220px;font-size:14px}.freeze-slots{display:flex;gap:10px}.freeze-slot{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--ice-soft);border:2px solid var(--ice)}.freeze-slot.empty{background:var(--surface-2);border:2px dashed var(--line)}.cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-h{text-align:center;font-size:12px;font-weight:700;color:var(--muted)}.cal-d{aspect-ratio:1;max-height:52px;display:grid;place-items:center;border-radius:50%;font-size:13.5px;font-weight:600;background:var(--surface-2)}.cal-d.on{background:var(--orange);color:#2A1405}.cal-d.ice{background:var(--ice-soft);color:var(--ice);box-shadow:inset 0 0 0 2px var(--ice)}.cal-d.future{opacity:.4}.cal-d.today{outline:2px solid var(--ink);outline-offset:1px}.cal-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.cal-legend span{display:inline-flex;align-items:center;gap:6px}.cal-legend i{width:12px;height:12px;border-radius:50%}.cal-legend i.on{background:var(--orange)}.cal-legend i.ice{background:var(--ice-soft);box-shadow:inset 0 0 0 2px var(--ice)}.badge-art{flex:none;display:block}.badge-strip{display:flex;gap:14px;flex-wrap:wrap}.badge-strip>span{display:flex;flex-direction:column;align-items:center;gap:4px;width:64px;text-align:center}.badge-strip small{font-size:11.5px;color:var(--muted);line-height:1.2}.ach-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ach-row{display:flex;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.ach-row:first-child{border-top:0}.ach-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:14px}.ach-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.ach-h span{font-size:12.5px;font-weight:700}.ach-bar{display:flex;align-items:center;gap:10px}.ach-bar .bar{flex:1 1}.ach-bar small{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.special-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px}.special{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 8px;border-radius:var(--r-md);background:var(--surface-2);font-size:14px}.special small{font-size:12.5px;line-height:1.35}.ach-pop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(8,15,34,.55);animation:fade .2s ease-out}.ach-card{width:min(380px,100%);background:var(--surface);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:pop .35s cubic-bezier(.2,1.4,.4,1)}.ach-art{display:flex;align-items:flex-end;gap:4px;margin-bottom:4px}.ach-card .row-actions{margin-top:8px;justify-content:center}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:40;background:var(--hero);color:var(--on-hero);padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:calc(100% - 32px);text-align:center}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.85);opacity:0}}@media (prefers-reduced-motion:reduce){.ach-card,.ach-pop{animation:none}}.streak-banner.warn{border:1.5px solid var(--orange)}.streak-banner.warn span b{display:block}.streak-banner em{font-style:normal;font-weight:800;background:var(--orange);color:#2A1405;padding:6px 12px;border-radius:999px}.repair-card{border:1.5px solid var(--orange)}.repair-card p{font-size:14px}.repair-note{font-size:13.5px;border-top:1px solid var(--line);padding-top:10px}.cal-d.fix{background:var(--surface);color:var(--orange-ink)}.cal-d.fix,.cal-legend i.fix{box-shadow:inset 0 0 0 2px var(--orange)}.fq b{font-size:15.5px}.fq-bar{display:flex;height:18px;border-radius:9px;background:var(--line);overflow:hidden}.fq-bar i{display:block;height:100%}.fq-bar i.me,.fq-legend i.me{background:var(--orange)}.fq-bar i.them,.fq-legend i.them{background:#3D8FD6}.fq-legend{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12.5px;font-weight:700;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fq-legend span{display:inline-flex;align-items:center;gap:5px}.fq-legend i{width:10px;height:10px;border-radius:50%}.field.inline{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.field.inline select{padding:8px 12px;min-width:0;max-width:100%}.chest.big{align-self:stretch;padding:12px;font-size:15px}.code-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:20px;letter-spacing:.12em;background:var(--surface-2);border:1px dashed var(--line);padding:4px 12px;border-radius:10px}.add-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.add-row .field{flex:1 1;min-width:180px}.add-row input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.08em}.friend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.friend-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.friend-list li:first-child{border-top:0}.friend-list li.pending{opacity:.8}.friend-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.friend-main small{font-size:12.5px}.friend-streak{display:inline-flex;align-items:center;gap:3px;font-weight:800}.av{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;color:#FFFFFF;font-weight:800;font-size:13px}.tag{margin-left:6px;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);vertical-align:2px}.small-print{font-size:13.5px}.btn.small{padding:6px 12px;font-size:13px}.fs-count{display:inline-flex;align-items:center;gap:3px;font-family:var(--f-display);font-weight:800;font-size:18px;color:#6E45D8}.fs-count.zero{color:var(--muted)}.your-turn{color:var(--orange-ink);font-weight:700}.friend-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.done-today{font-size:12px;font-weight:700;color:var(--good)}.streak-banner.nudge{background:#EEE8FD;color:var(--ink)}.streak-banner.fsb{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.streak-banner.fsb:hover{border-color:#7B4FE0}.streak-banner.fsb span b,.streak-banner.nudge span b{display:block}.streak-banner em.fs-em{background:#EEE8FD;color:#4B2FA8}@media (prefers-color-scheme:dark){.streak-banner.nudge{background:#261D45}.streak-banner em.fs-em{background:#261D45;color:#C9B8FF}}@media (max-width:640px){.friend-list li{flex-wrap:wrap}.friend-actions{flex-basis:100%;justify-content:flex-start;padding-left:50px}}.board-options{display:flex;gap:8px;flex-wrap:wrap}.board-options .tabs button[aria-pressed=true]{background:var(--hero);color:var(--on-hero)}.board .who small{display:block;font-size:12px;color:var(--muted);font-weight:500}.board.compact{margin:0}a.link:hover{color:var(--orange-ink)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}@media (max-width:640px){.grid-3{grid-template-columns:1fr}}.course-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 16px}.course-card:hover{border-color:var(--orange)}.course-card>span:nth-child(2){display:flex;flex-direction:column;gap:4px;min-width:0}.course-card b{font-family:var(--f-display);font-size:17px}.course-card small{color:var(--muted);font-size:13px}.course-card em{font-style:normal;font-weight:800;color:var(--orange-ink);font-size:14px}.course-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center}.course-hero{color:#FFFFFF;border-radius:var(--r-lg);padding:18px 22px;display:flex;flex-direction:column;gap:6px}.course-hero p{color:rgba(255,255,255,.85);font-weight:600}.course-hero .bar{background:rgba(255,255,255,.25)}.course-hero .eyebrow.light{color:rgba(255,255,255,.85)}.unit,.unit-band{display:flex;flex-direction:column}.unit-band{border-radius:var(--r-lg);padding:12px 16px;color:#FFFFFF;gap:2px}.unit-band .eyebrow{color:rgba(255,255,255,.82)}.unit-band b{font-family:var(--f-display);font-size:17px}.unit-band small{color:rgba(255,255,255,.85);font-size:13px}.path{gap:22px;padding:26px 0 12px}.path,.pnode-wrap{display:flex;flex-direction:column;align-items:center}.pnode-wrap{gap:6px;position:relative}.pnode{width:70px;height:64px;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 0 rgba(0,0,0,.2);transition:transform .1s}a.pnode-wrap:hover .pnode{transform:translateY(-2px)}a.pnode-wrap:active .pnode{transform:translateY(3px);box-shadow:0 3px 0 rgba(0,0,0,.2)}.pnode.done{background:#E6B325}.pnode.open{background:var(--orange)}.pnode.lock{background:var(--line);box-shadow:0 6px 0 rgba(0,0,0,.08)}.pnode-wrap small{font-size:12px;font-weight:700;color:var(--muted);max-width:170px;text-align:center}.start-bubble{position:absolute;top:-30px;background:var(--surface);border:2px solid var(--line);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:800;color:var(--orange-ink);animation:bob 1.6s ease-in-out infinite;white-space:nowrap}@keyframes bob{50%{transform:translateY(-4px)}}.player.lesson .ls-body{flex:1 1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}.ls-body h2{font-size:21px}.ls-big{font-family:var(--f-display);font-size:34px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ls-vis{display:flex;justify-content:center}.ls-vis svg{max-width:100%;height:auto}.numbox{font-family:var(--f-display);font-size:32px;text-align:center;border-bottom:3px solid var(--line);min-height:50px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;max-width:260px}.keypad,.numbox{width:100%;margin:0 auto}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;max-width:320px}.keypad button{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 0;font-size:19px;font-weight:700;box-shadow:0 2px 0 var(--line)}.ls-opts{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;max-width:460px;width:100%;margin:0 auto}.ls-opts.three{grid-template-columns:repeat(3,1fr)}.ls-opts .tile{font-size:17px;padding:12px 8px}.center-self{align-self:center}.nowrap{white-space:nowrap;font-size:13px}.center{text-align:center}.center-row{justify-content:center}.kbd{position:relative;display:flex;height:160px;-moz-user-select:none;user-select:none;-webkit-user-select:none;max-width:420px;width:100%;margin:0 auto}.kbd .wk{flex:1 1;border:1.5px solid #2a3550;border-radius:0 0 8px 8px;background:#FFFFFF;display:flex;align-items:flex-end;justify-content:center;padding:0 0 8px;font-weight:800;color:#56627F;font-size:13px;margin-right:-1.5px}.kbd .wk:active{background:#EEF2F9}.kbd .bk{position:absolute;top:0;width:9%;height:60%;background:#141A2B;border:0;border-radius:0 0 6px 6px;z-index:2}.kbd .wk.sel{background:#DCE6FF}.kbd .wk.next{box-shadow:inset 0 -7px 0 #EE8434}.kbd .wk.miss{background:#FBE4E0}.song-notes{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.song-notes span{min-width:28px;padding:4px 6px;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-weight:800;font-size:13px;text-align:center}.song-notes span.done{background:var(--good-soft);color:var(--good);border-color:var(--good)}.song-notes span.cur{background:var(--orange);color:#2A1405;border-color:var(--orange)}.lfb{border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:2px;font-size:14px}.lfb.good{background:var(--good-soft);color:var(--good)}.lfb.bad{background:var(--bad-soft);color:var(--bad)}.lfb b{font-size:15.5px}.cb{grid-template-columns:repeat(8,1fr);width:100%;max-width:360px;margin:0 auto;border-radius:10px;overflow:hidden;box-shadow:0 8px 20px -12px rgba(13,26,54,.5);flex:none}.cb,.cs{display:grid;aspect-ratio:1}.cs{position:relative;border:0;padding:0;place-items:center;font-family:Noto Sans Symbols\ 2,Segoe UI Symbol,Apple Symbols,sans-serif;font-size:clamp(24px,9vw,38px);line-height:1;min-width:0}.cs.l{background:#E9EEF8}.cs.d{background:#7F96C8}.cs.sel{background:#F6C26B}.cs.last{box-shadow:inset 0 0 0 3px rgba(238,132,52,.9)}.cs .pw{color:#FFFFFF;-webkit-text-stroke:1.3px #0D1A36;paint-order:stroke fill}.cs .pb{color:#141A2B}.cs .dot{width:30%;height:30%;background:rgba(13,26,54,.3)}.cs .cap,.cs .dot{position:absolute;border-radius:50%}.cs .cap{inset:7%;border:4px solid rgba(13,26,54,.3)}.cs .co{position:absolute;font:800 9px Figtree,sans-serif;color:rgba(13,26,54,.6)}.cs .rk{top:2px;left:3px}.cs .fl{bottom:1px;right:3px}.plan-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px}.plan-card:hover{border-color:var(--orange)}.plan-card>span{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--muted);min-width:0}.plan-card b{font-size:15px;color:var(--ink)}.plan-card em{font-style:normal;font-weight:800;color:var(--orange-ink);font-size:14px}.plan-hero{background:linear-gradient(150deg,var(--hero-2),var(--hero))}.goal-grid,.opt-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.opt-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:640px){.goal-grid,.opt-row.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.goal-grid .choice{flex-direction:row;justify-content:center;gap:8px;padding:12px 8px}.opt-row .choice small{display:block;font-size:12px;color:var(--muted);font-weight:500}.task-list,.week-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.task{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.task:first-child{border-top:0}.task-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:14px}.task.done .task-main b{color:var(--muted)}.week-list li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.week-list li:first-child{border-top:0}.week-list li.current{background:var(--orange-soft);margin:0 -10px;padding:9px 10px;border-radius:10px;border-top-color:transparent}.week-list .wn{font-size:12.5px;font-weight:800;color:var(--muted)}.week-list .wt{display:flex;flex-direction:column;min-width:0;font-size:14px}.week-list .st{font-size:12.5px;font-weight:800;white-space:nowrap}.week-list .st.ok{color:var(--good)}.week-list .st.now{color:var(--orange-ink)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:10px;gap:10px}.cat{align-items:flex-start;text-align:left;font:inherit;color:inherit;cursor:pointer}.link-btn{border:0;background:none;padding:0;color:var(--muted);font-weight:700;font-size:13.5px;margin-bottom:4px}.link-btn:hover{color:var(--orange-ink)}.phrase-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.phrase .t{font-family:var(--f-display);font-size:18px;font-weight:700}.drill-card{align-items:center;text-align:center;gap:12px;padding:22px}.drill-top{display:flex;align-items:center;gap:10px;width:100%}.drill-top .bar{flex:1 1}.drill-top .bar i{background:var(--good)}.drill-big{font-family:var(--f-display);font-size:24px;font-weight:700;line-height:1.25}.accent-ink{color:var(--orange-ink)}.link-btn.danger{color:var(--bad);align-self:flex-start}.danger-zone{border:1.5px solid var(--bad);background:var(--bad-soft);border-radius:var(--r-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px;font-size:14px}.btn.danger{background:var(--bad);color:#FFFFFF}