:root{--bg:#10142a;--panel:#181e3a;--panel-2:#1f2748;--line:#2c3560;--text:#edeff7;--muted:#9aa3c4;--amber:#f0a868;--teal:#5fd4c7;--font-head:"Space Grotesk", sans-serif;--font-body:"IBM Plex Sans", sans-serif;--maxw:clamp(1320px, 92vw, 1760px)}[hidden]{display:none!important}.skip-link{z-index:100;background:var(--amber);color:#1a1204;font-family:var(--font-head);border-radius:8px;padding:10px 14px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-48px;left:8px}.kicker{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin:0 0 10px;font-size:13px;font-weight:600}.term{color:var(--amber);border-bottom:1px dotted var(--amber);cursor:help;position:relative}.term:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:2px}.term .tip{background:var(--panel-2);border:1px solid var(--line);width:max-content;max-width:min(300px,100vw - 16px);color:var(--text);z-index:70;text-transform:none;letter-spacing:0;border-radius:8px;padding:10px 12px;font-size:13.5px;font-weight:400;line-height:1.45;display:none;position:fixed;top:0;left:0;box-shadow:0 12px 30px -12px #000c}.term .tip.show{display:block}html:not(.js) .term:hover .tip{display:block;position:absolute;bottom:130%;left:0}.tip-lang{color:var(--teal);margin-top:6px;font-size:12.5px;display:block}.install-pill{z-index:65;background:var(--panel-2);border:1px solid var(--line);font-family:var(--font-head);color:var(--text);border-radius:999px;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:8px 8px 8px 16px;font-size:14px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 18px 40px -18px #000000e6}.install-pill[hidden]{display:none}.install-pill button{font-family:var(--font-head);cursor:pointer;border:1px solid #0000;border-radius:999px;padding:8px 14px;font-size:13px}.install-pill [data-action=install]{background:var(--amber);color:#1a1204;font-weight:600}.install-pill [data-action=dismiss]{color:var(--muted);border-color:var(--line);background:0 0}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}.cmp-row{flex-wrap:wrap;gap:20px;margin-top:0;display:flex}.cmp-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:1;min-width:210px;padding:22px}.cmp-card h3{font-family:var(--font-head);color:var(--teal);margin-bottom:10px;font-size:16px}.cmp-card p{font-size:15px}.cmp-visual{width:70px;height:70px;font-family:var(--font-head);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;margin:14px 0;font-size:20px;font-weight:600;display:flex}.cmp-visual.state-a{border:2px solid var(--muted);background:#232c55}.cmp-visual.state-b{background:conic-gradient(from 180deg,#f0a868,#5fd4c7,#f0a868);animation:3.5s linear infinite cmp-spin}@keyframes cmp-spin{to{transform:rotate(360deg)}}.r3d-wrap{flex-wrap:wrap;align-items:center;gap:24px;margin-top:0;display:flex}.r3d-canvas{touch-action:none;cursor:grab;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:320px;height:320px}.r3d-state{font-family:var(--font-head);color:var(--amber);margin-top:10px;font-size:15px}.net-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:70px;margin:24px 0 0;display:flex}.net-node{border:2px solid var(--teal);width:88px;height:88px;font-family:var(--font-head);cursor:pointer;color:var(--teal);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:22px;transition:background .3s,color .3s;display:flex}.net-node.state-a{background:var(--amber);color:#1a1204;border-color:var(--amber)}.net-node.state-b{background:var(--teal);color:#08201d}.net-line{background:repeating-linear-gradient(90deg, var(--muted) 0 6px, transparent 6px 12px);width:70px;height:2px;position:relative}.net-caption{font-size:15px}.flow{flex-wrap:wrap;justify-content:flex-start;gap:12px;margin-top:6px;display:flex}.flow-node{background:var(--panel);border:1px solid var(--line);width:136px;font-family:var(--font-head);cursor:pointer;text-align:center;border-radius:8px;padding:14px;font-size:14px;transition:border-color .2s}.flow-node:hover,.flow-node.active{border-color:var(--amber)}.flow-arrow{color:var(--muted);align-self:center;font-size:20px}.flow-detail{background:var(--panel-2);border-left:3px solid var(--amber);color:var(--text);border-radius:0 8px 8px 0;min-height:26px;margin-top:18px;padding:14px 18px;font-size:15px}.chart-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:0;padding:22px}.glossary-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:0;display:grid}.glossary-card{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:16px}.glossary-card h3{font-family:var(--font-head);color:var(--amber);margin-bottom:8px;font-size:15px}.glossary-card p{margin:0;font-size:14px;display:none}.glossary-card.open p{display:block}.narr-bar{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:14px;margin-top:24px;padding:14px 18px;display:flex}.narr-bar button{font-family:var(--font-head);background:var(--amber);color:#1a1204;cursor:pointer;border:none;border-radius:50%;flex:none;width:38px;height:38px;font-size:16px}.narr-text{color:var(--muted);font-size:15px;line-height:1.6}.narr-text .word{transition:color .1s}.narr-text .word.active{color:var(--amber);font-weight:600}footer{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:60px 24px;font-size:13px;display:flex}footer a{color:var(--teal);text-decoration:none}footer a:hover{text-decoration:underline}@media (width<=640px){#nav-dots,.section-count{display:none}.net-wrap{gap:26px}.net-line{width:34px}section{padding:40px 16px 32px}.guide{max-width:none}}.ld-wrap{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.ld-figure{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex:260px;max-width:360px;padding:12px}.ld-svg{aspect-ratio:300/430;width:100%;height:auto;display:block}.ld-side{flex:220px;min-width:0}.ld-panel{background:var(--panel-2);border-left:3px solid var(--amber);border-radius:0 10px 10px 0;min-height:96px;padding:14px 16px}.ld-panel h4{font-family:var(--font-head);color:var(--amber);letter-spacing:0;text-transform:none;margin-bottom:6px;font-size:16px}.ld-panel p{color:var(--text);font-size:14.5px}.ld-panel .ld-prompt{color:var(--muted);font-style:italic}.ld-lang{color:var(--teal);margin-top:8px;font-size:13px}.ld-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ld-list button{font-family:var(--font-head);color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:12.5px}.ld-list button:hover,.ld-list button.active{color:var(--text);border-color:var(--amber)}.ld-progress{color:var(--muted);font-size:13px;font-family:var(--font-head);margin-top:12px}.ld-ring{fill:var(--amber);stroke:#1a1204;stroke-width:1.5px}.ld-dot:hover .ld-ring,.ld-dot.active .ld-ring{fill:#f5b87f;stroke:var(--text)}.ld-active{filter:drop-shadow(0 0 6px #f0a8688c);stroke:var(--amber)!important;stroke-width:3px!important}.as-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.as-figure{background:var(--bg);border-radius:8px}.as-svg{aspect-ratio:300/430;object-fit:contain;width:100%;height:auto;max-height:380px;display:block}.as-caption{min-height:52px;color:var(--text);margin-top:12px;font-size:15px;line-height:1.5}.as-step{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:3px;font-size:12px;display:block}.as-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.as-btn{font-family:var(--font-head);color:var(--teal);border:1px solid var(--teal);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;display:flex}.as-btn.play{background:var(--amber);color:#1a1204;border-color:var(--amber);width:40px;height:40px}.as-controls input[type=range]{accent-color:var(--amber);flex:140px}.as-dots{gap:6px;display:flex}.as-dots button{border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:50%;width:9px;height:9px;padding:0}.as-dots button.active{background:var(--amber);border-color:var(--amber)}.sm-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.sm-prompt{color:var(--text);margin-bottom:12px;font-size:15.5px}.sm-order{flex-direction:column;gap:8px;list-style:none;display:flex}.sm-item{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:15px;transition:border-color .2s;display:flex}.sm-item.correct{border-color:var(--teal)}.sm-item.wrong{border-color:var(--amber)}.sm-pos{font-family:var(--font-head);color:var(--muted);width:18px;font-size:13px}.sm-handle{color:var(--muted);letter-spacing:-2px;cursor:grab;-webkit-user-select:none;user-select:none;font-size:14px;display:none}.sm-order.draggable .sm-handle{display:inline}.sm-order.draggable .sm-item{cursor:grab}.sm-ghost{opacity:.35}.sm-chosen{border-color:var(--amber)}.sm-label{flex:1}.sm-moves{gap:4px;display:flex}.sm-moves button{color:var(--teal);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:30px;height:28px;font-size:12px}.sm-moves button:disabled{opacity:.3;cursor:default}.sm-moves button:not(:disabled):hover{border-color:var(--teal)}.sm-area{flex-wrap:wrap;gap:14px;display:flex}.sm-area .sm-col{flex-direction:column;flex:200px;gap:8px;display:flex}.sm-area .sm-col .sm-item{cursor:pointer;text-align:left;font-family:var(--font-body);position:relative}.sm-item.sel{border-color:var(--amber);background:#232c55}.sm-item.paired{opacity:.85}.sm-item[data-badge]:after{content:attr(data-badge);font-family:var(--font-head);color:var(--amber);border:1px solid var(--amber);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.sm-actions{gap:8px;margin-top:6px;display:flex}.sm-feedback{color:var(--text);min-height:22px;margin-top:10px;font-size:14.5px}.sl-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.sl-intro{color:var(--text);margin-bottom:12px;font-size:15.5px}.sl-body{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.sl-figure{background:var(--bg);border-radius:8px;flex:260px;max-width:360px}.sl-svg{width:100%;height:auto;max-height:420px;display:block}.sl-side{flex:220px;min-width:0}.sl-control{gap:4px;margin-bottom:12px;display:grid}.sl-control label{font-family:var(--font-head);color:var(--muted);font-size:13px}.sl-control input[type=range]{width:100%;accent-color:var(--amber);height:32px;margin:0}.sl-control output{font-family:var(--font-head);color:var(--amber);font-size:15px}.sl-control select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);height:40px;font:inherit;border-radius:8px;padding:0 10px;font-size:15px}.sl-toggle{align-items:center;gap:10px;display:flex}.sl-toggle input[type=checkbox]{width:22px;height:22px;accent-color:var(--amber);margin:0}.sl-toggle label{color:var(--text);font-size:15px}.sl-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 10px;display:grid}.sl-readout{background:var(--panel-2);border-radius:8px;padding:8px 10px}.sl-readout dt{color:var(--muted);font-size:12px}.sl-readout dd{font-family:var(--font-head);color:var(--teal);margin:0;font-size:18px}.sl-goals{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sl-goal{color:var(--muted);align-items:flex-start;gap:8px;font-size:14.5px;display:flex}.sl-goal:before{content:"○";color:var(--muted);flex:none}.sl-goal.done{color:var(--text)}.sl-goal.done:before{content:"●";color:var(--teal)}.sl-feedback{color:var(--text);min-height:22px;margin-top:10px;font-size:14.5px}.sl-feedback.success{color:var(--teal);font-weight:600}.sl-announce{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sl-play{margin-bottom:10px}@media (pointer:coarse){.sl-control input[type=range]{height:40px}}.dl-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;position:relative}.dl-intro{color:var(--text);margin-bottom:10px;font-size:15.5px}.dl-figure{background:var(--bg);border-radius:8px;margin:0 0 12px}.dl-svg{width:100%;height:auto;max-height:220px;display:block}.dl-zones{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.dl-zone{background:var(--panel-2);border:2px dashed var(--line);border-radius:12px;min-height:84px;padding:10px;transition:border-color .15s,background .15s}.dl-zone h4{font-family:var(--font-head);color:var(--muted);letter-spacing:0;text-transform:none;margin:0 0 8px;font-size:13px}.dl-zone.over{border-color:var(--amber);background:#232c55}.dl-zone.target{outline:2px solid var(--teal);outline-offset:2px;cursor:pointer}.dl-zone:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.dl-zone.full{border-style:solid;border-color:var(--teal)}.dl-drop{flex-wrap:wrap;gap:6px;display:flex}.dl-bench{margin-top:12px}.dl-bench-title{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin:0 0 8px;font-size:12px}.dl-items{flex-wrap:wrap;gap:8px;display:flex}.dl-item{background:var(--bg);color:var(--text);border:1px solid var(--line);min-height:44px;font:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-size:15px;transition:border-color .15s;display:inline-flex}.dl-item:hover{border-color:var(--teal)}.dl-item.sel{border-color:var(--amber);background:#232c55}.dl-item.dragging{opacity:.4}.dl-item.placed{border-color:var(--teal);cursor:default;opacity:.9;pointer-events:none}.dl-item.shake{animation:.18s ease-in-out 2 dl-shake}.dl-ghost{pointer-events:none;z-index:80;opacity:.92;position:fixed;box-shadow:0 8px 24px #00000059}.dl-icon{font-size:22px;line-height:1;display:inline-flex}.dl-step{font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-top:10px;font-size:12px}.dl-feedback{color:var(--text);min-height:22px;margin-top:6px;font-size:14.5px}.dl-feedback.success{color:var(--teal);font-weight:600}.dl-actions{gap:8px;margin-top:6px;display:flex}@keyframes dl-shake{0%,to{transform:translate(0)}50%{transform:translate(-6px)}}@media (pointer:coarse){.dl-item{min-height:48px}}@media (prefers-reduced-motion:reduce){.dl-item.shake{animation:none}}.glossary-card .lang{color:var(--teal);margin-top:6px;font-size:12.5px;display:block}.curriculum{font-family:var(--font-head);color:var(--muted);margin-bottom:10px;font-size:13.5px}.curriculum b{color:var(--teal);font-weight:500}.progress{z-index:60;background:0 0;width:100%;height:3px;position:fixed;top:0;left:0}.progress b{background:linear-gradient(90deg, var(--amber), var(--teal));width:0;height:100%;transition:width .15s linear;display:block}.next-stop{font-family:var(--font-head);color:#1a1204;background:var(--amber);border-radius:999px;align-items:center;gap:8px;margin-top:30px;padding:12px 22px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.next-stop:hover{background:#f5b87f;transform:translate(3px)}.next-stop.subtle{color:var(--teal);border:1px solid var(--teal);background:0 0}.sm-feedback.success{color:var(--teal);font-weight:600}.parents{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:12px;max-width:760px;margin-top:32px;padding:20px 22px}.parents p{font-size:15px}.parents ol{flex-direction:column;gap:8px;margin-top:10px;padding-left:22px;display:flex}.parents li{color:var(--text);font-size:15px;line-height:1.5}@media (pointer:coarse){.try-this li{padding-top:4px;padding-bottom:4px}.sm-moves button{width:38px;height:36px;font-size:14px}.ld-list button{padding:9px 14px;font-size:13.5px}.as-btn{width:40px;height:40px}.as-btn.play{width:48px;height:48px}button.ghost{padding:12px 20px}}@media (prefers-reduced-motion:reduce){.next-stop:hover{transform:none}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(60% 55% at 20% 0,#f0a8681f,#0000 70%),radial-gradient(55% 50% at 78% 4%,#5fd4c71a,#0000 70%);height:60vh;position:fixed;inset:0 0 auto}a{color:var(--teal);text-decoration:none}button{font-family:inherit}h1,h2,h3{font-family:var(--font-head);margin:0 0 10px;line-height:1.15}h1{letter-spacing:-.5px;font-size:clamp(26px,6vw,36px)}h2{font-size:clamp(21px,4.6vw,28px)}h3{font-size:17px}.muted{color:var(--muted)}.app{z-index:1;min-height:100dvh;padding-bottom:calc(76px + env(safe-area-inset-bottom));position:relative}.wrap{max-width:720px;margin:0 auto;padding:0 18px}@media (width>=900px){.wrap{max-width:min(1400px,92vw)}.page{padding-top:12px}}.page{padding:18px 0 32px}.topbar{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#10142adb;position:sticky;top:0}.topbar .wrap{justify-content:space-between;align-items:center;gap:10px;height:58px;display:flex}.brand{color:var(--text);font-family:var(--font-head);align-items:center;gap:8px;font-weight:700;display:flex}.brand img{height:26px}.chips{gap:6px;display:flex}.chip{background:var(--panel);border:1px solid var(--line);font-family:var(--font-head);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip.xp{color:var(--teal)}.chip.coin{color:var(--amber)}.chip.streak{color:#ff8a5b}.chip.streak.cold{color:var(--muted)}.tabbar{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#181e3af5;position:fixed;bottom:0;left:0;right:0}.tabbar .wrap{justify-content:space-around;align-items:stretch;height:64px;padding:0;display:flex}.tab{color:var(--muted);font-family:var(--font-head);border-top:2px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tab .ico{font-size:20px;line-height:1}.tab.active{color:var(--amber);border-top-color:var(--amber)}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px}.card+.card{margin-top:12px}.btn{font-family:var(--font-head);cursor:pointer;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:14px 22px;font-size:16px;font-weight:700;text-decoration:none;transition:transform .12s,background .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn.primary{background:var(--amber);color:#1a1204}.btn.primary:hover{background:#f5b87f}.btn.ghost{color:var(--text);border-color:var(--line);background:0 0}.btn.ghost:hover{border-color:var(--teal);color:var(--teal)}.btn.teal{background:var(--teal);color:#062723}.btn.block{width:100%}.btn.sm{min-height:40px;padding:9px 14px;font-size:14px}.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.eyebrow{font-family:var(--font-head);letter-spacing:2px;text-transform:uppercase;color:var(--amber);margin:0 0 8px;font-size:12px}.pill{font-family:var(--font-head);letter-spacing:1.2px;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:3px 9px;font-size:11.5px;display:inline-block}.pill.free{color:var(--teal);border-color:#5fd4c780}.pill.locked{color:var(--amber);border-color:#f0a86880}.pill.done{color:#062723;background:var(--teal);border-color:var(--teal)}.hero{padding:26px 0 8px}.hero h1 em{color:var(--amber);font-style:normal}.streak-big{align-items:center;gap:14px;display:flex}.flame{filter:drop-shadow(0 6px 18px #ff8a5b73);font-size:44px;animation:1.6s ease-in-out infinite alternate flicker}.flame.cold{filter:grayscale()opacity(.5);animation:none}@keyframes flicker{0%{transform:scale(1)rotate(-2deg)}to{transform:scale(1.06)rotate(2deg)}}.stat-row{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;display:grid}.stat{background:var(--panel-2);text-align:center;border-radius:14px;padding:12px}.stat b{font-family:var(--font-head);font-size:22px;display:block}.stat span{color:var(--muted);font-size:12px}.continue{align-items:center;gap:14px;display:flex}.continue .ring{width:56px;height:56px;font-family:var(--font-head);background:conic-gradient(var(--teal) calc(var(--p)*1%), var(--line) 0);border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid;position:relative}.continue .ring:after{content:"";background:var(--panel);border-radius:50%;position:absolute;inset:5px}.continue .ring span{position:relative}.search{width:100%;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:14px;margin:12px 0 10px;padding:13px 16px;font-size:16px}.search:focus{outline:2px solid var(--teal);outline-offset:1px}.filters{scrollbar-width:none;gap:8px;padding:2px 0 10px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filter{background:var(--panel);border:1px solid var(--line);color:var(--text);font-family:var(--font-head);cursor:pointer;border-radius:999px;flex:none;padding:8px 14px;font-size:13.5px;font-weight:600}.filter.on{background:var(--amber);color:#1a1204;border-color:var(--amber)}.track-title{color:var(--muted);margin:18px 0 10px;font-size:18px}.chapter-card{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:18px;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;margin-bottom:10px;padding:14px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.chapter-card:hover{border-color:var(--teal);transform:translateY(-1px)}.chapter-card .emoji{background:var(--panel-2);border-radius:16px;place-items:center;width:56px;height:56px;font-size:28px;display:grid}.chapter-card .kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--amber);margin-bottom:2px;font-size:11.5px;font-weight:600;display:block}.chapter-card h3{margin:0 0 3px;font-size:16px}.chapter-card p{color:var(--muted);margin:0;font-size:13.5px}.chapter-card .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.chapter-card .go{color:var(--amber);font-size:22px}.progress-bar{background:var(--line);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.progress-bar b{background:linear-gradient(90deg,var(--teal),var(--amber));border-radius:999px;height:100%;transition:width .4s;display:block}.player{padding-bottom:120px}.app:has(.player){padding-bottom:0}.rail{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#10142aeb;position:sticky;top:58px}.rail .wrap{align-items:center;gap:10px;height:54px;display:flex}.rail .dots{flex:1;gap:6px;display:flex}.rail .dot{background:var(--line);cursor:pointer;border:0;border-radius:999px;flex:1;height:8px;padding:0;transition:background .2s}.rail .dot.seen{background:var(--panel-2)}.rail .dot.played{background:#5fd4c799}.rail .dot.done{background:var(--teal)}.rail .dot.current{outline:2px solid var(--amber);outline-offset:2px}.rail .count{font-family:var(--font-head);color:var(--muted);white-space:nowrap;font-size:13px}.icon-btn{border:1px solid var(--line);background:var(--panel);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:12px;place-items:center;font-size:18px;display:grid}.icon-btn.on{background:var(--teal);color:#062723;border-color:var(--teal)}.stop{padding:20px 0 0;animation:.35s rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.stop .hook{font-size:19px}.depth p{margin:0 0 12px}.depth p.reading{background:#5fd4c724;border-radius:8px;box-shadow:0 0 0 6px #5fd4c724}.play{margin:18px 0}.play-stage{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;overflow:hidden}.guide{gap:10px;margin-top:10px;display:grid}.guide .card{padding:14px 16px}.guide ol{margin:0;padding-left:20px}.guide li{margin:6px 0}.guide li b{color:var(--text)}.guide li span{color:var(--muted)}.locked-panel p{filter:blur(5px);-webkit-user-select:none;user-select:none}.locked-panel .unlock-hint{color:var(--muted);margin-top:6px;font-size:13.5px;display:block}.kicker{margin-bottom:8px}.callout{border-left:3px solid var(--amber);background:var(--panel);border-radius:0 14px 14px 0;margin:14px 0;padding:14px 16px}.callout.why{border-color:var(--teal)}.callout p{margin:0}.cite{color:var(--muted);font-size:13.5px}.cite a{text-decoration:underline}.sources{color:var(--muted);margin:14px 0;font-size:13.5px}.sources a{text-decoration:underline}.embed{border:1px solid var(--line);background:#0e1226;border-radius:16px;width:100%;height:70vh}.play{position:relative}.island-xp{z-index:1;background:var(--bg);font-family:var(--font-head);color:var(--teal);border:1px solid #5fd4c766;border-radius:999px;padding:2px 8px;font-size:12px;position:absolute;top:-10px;right:14px}.challenge .challenge-bar{z-index:5;background:linear-gradient(var(--bg) 80%, transparent);flex-wrap:wrap;gap:8px;padding:8px 0;display:flex;position:sticky;top:52px}.challenge .chip.warn{color:var(--amber);border-color:var(--amber);animation:1s ease-in-out infinite chip-pulse}.challenge .card{margin-top:12px}.challenge .card.won{text-align:center}.challenge .big{margin-bottom:6px;font-size:44px;line-height:1}.challenge .btn.primary{margin-top:12px}@keyframes chip-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.challenge .chip.warn{animation:none}}.exercise{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:18px;margin:16px 0;padding:16px}.exercise .q{font-size:18px;font-family:var(--font-head);margin:0 0 12px;font-weight:600}.exercise .xp{float:right;font-family:var(--font-head);color:var(--teal);border:1px solid #5fd4c766;border-radius:999px;padding:2px 8px;font-size:12px}.options{gap:8px;display:grid}.opt{text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:14px;min-height:48px;padding:13px 14px;font-size:16px;transition:border-color .15s,transform .12s}.opt:hover{border-color:var(--teal)}.opt:active{transform:scale(.99)}.opt.picked{border-color:var(--amber)}.opt.right{border-color:var(--teal);background:#5fd4c71f}.opt.wrong{background:#f08a8a1a;border-color:#f08a8a}.answer-input{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:16px}.feedback{border-radius:12px;margin-top:12px;padding:12px 14px;font-size:15px}.feedback.ok{background:#5fd4c724;border:1px solid #5fd4c780}.feedback.no{background:#f08a8a1a;border:1px solid #f08a8a80}.order-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.order-item{background:var(--bg);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex}.order-item span{flex:1}.order-item button{border:1px solid var(--line);background:var(--panel);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:10px}.match-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.match-item{background:var(--bg);border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--text);border-radius:12px;min-height:44px;padding:10px 12px;font-size:15px}.match-item.sel{border-color:var(--amber)}.match-item.paired{opacity:.55;border-color:var(--teal)}.bins{gap:10px;display:grid}.bin{background:var(--bg);border:1px dashed var(--line);border-radius:12px;min-height:52px;padding:10px}.bin h4{color:var(--teal);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:13px}.bin .items{flex-wrap:wrap;gap:6px;display:flex}.tag-item{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;color:var(--text);border-radius:999px;padding:6px 12px;font-size:14px}.tag-item.sel{border-color:var(--amber)}.slider-row{align-items:center;gap:12px;display:flex}.slider-row input{accent-color:var(--amber);flex:1}.slider-row output{font-family:var(--font-head);text-align:right;min-width:64px;font-weight:700}.hotspot-img{max-width:100%;display:inline-block;position:relative}.hotspot-img img{border-radius:12px;max-width:100%;display:block}.hotspot-img .region{cursor:pointer;background:#f0a8681f;border:2px dashed #f0a86899;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.hotspot-img .region.hit{border-color:var(--teal);background:#5fd4c74d}.model-wrap{background:#0e1226;border-radius:18px;position:relative;overflow:hidden}.model-wrap model-viewer{width:100%;height:360px}.hotspot-btn{background:var(--amber);color:#1a1204;font:700 12px var(--font-head);cursor:pointer;border:0;border-radius:999px;padding:5px 11px;box-shadow:0 4px 14px #0006}.hotspot-btn.found{background:var(--teal)}.stop-nav{left:0;right:0;bottom:env(safe-area-inset-bottom);z-index:35;background:linear-gradient(#10142a00,#10142af2 30%);padding:18px 0 10px;position:fixed}.stop-nav .wrap{gap:10px;display:flex}.stop-nav .btn{flex:1}.finish{text-align:center;padding:30px 0}.finish .big{font-size:64px;animation:.6s cubic-bezier(.2,1.4,.4,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.takeaways{text-align:left}.takeaways ol{padding-left:20px}.avatar{background:var(--panel-2);border-radius:20px;place-items:center;width:64px;height:64px;font-size:34px;display:grid}.avatar.sm{border-radius:12px;width:40px;height:40px;font-size:22px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.badge-card{text-align:center;background:var(--panel-2);border-radius:14px;padding:14px 10px}.badge-card .ico{font-size:32px}.badge-card b{font-size:13px;font-family:var(--font-head);margin-top:6px;display:block}.badge-card span{color:var(--muted);font-size:12px}.badge-card.locked{opacity:.45;filter:grayscale()}.profile-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.profile-row:last-child{border-bottom:0}.profile-row.active{color:var(--teal)}.avatars{flex-wrap:wrap;gap:8px;display:flex}.avatars button{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:14px;width:48px;height:48px;font-size:26px}.avatars button.on{border-color:var(--amber);background:#f0a86826}.field{font-family:var(--font-head);flex-direction:column;gap:6px;margin:10px 0;font-size:13.5px;display:flex}.field input,.field select{font:inherit;font-family:var(--font-body);color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:16px}.toasts{z-index:60;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-2);border:1px solid var(--line);font-family:var(--font-head);border-radius:999px;padding:10px 16px;font-size:15px;font-weight:700;animation:.35s cubic-bezier(.2,1.4,.4,1) toastin;box-shadow:0 14px 30px -12px #000c}.toast.xp{color:var(--teal);border-color:#5fd4c780}.toast.coin{color:var(--amber);border-color:#f0a86880}.toast.badge{color:var(--text);background:linear-gradient(90deg,var(--panel-2),#2a2f5a)}@keyframes toastin{0%{opacity:0;transform:translateY(-14px)scale(.9)}to{opacity:1;transform:none}}.notice{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px 14px;font-size:15px}.notice.warn{border-color:var(--amber)}.empty{text-align:center;color:var(--muted);padding:40px 0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width>=720px){.stat-row{grid-template-columns:repeat(3,1fr)}.model-wrap model-viewer{height:440px}}.filters.sub .filter{opacity:.92;padding:6px 12px;font-size:13px}.filters.sub{margin-top:-4px}.skip-link{z-index:100;background:var(--amber);color:#1a1204;font-family:var(--font-head);border-radius:8px;padding:10px 14px;font-weight:700;text-decoration:none;position:absolute;top:-48px;left:8px}.skip-link:focus{outline:2px solid var(--teal);top:8px}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.chip.who,.chip.signin{color:var(--text);text-decoration:none}.chip.who{padding:3px 9px;font-size:16px}.chip.signin{background:var(--amber);color:#1a1204;border-color:var(--amber)}.banner{color:var(--text);background:#f0a86824;border-bottom:1px solid #f0a86866;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 18px;font-size:14px;display:flex}.filter{min-height:40px}.filters{padding-bottom:8px}.kicker{color:var(--teal);font-family:var(--font-head);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:13px}.card.inner{background:var(--bg)}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.icon-btn.danger{color:#f08a8a}.answer-input.pin{letter-spacing:.4em;width:120px;font-family:var(--font-head);text-align:center;font-size:22px}.dinner{margin:8px 0 0;padding-left:20px}.dinner li{margin:8px 0}.loading{padding:8px 0}.stat-row .stat b,.chapter-card h3,.chapter-card p{overflow-wrap:anywhere}@media (width<=400px){.two{grid-template-columns:1fr}.chips{gap:4px}.chip{padding:4px 8px;font-size:12px}.topbar .brand img{height:22px}}@media (width<=360px){.tabbar .tab{font-size:11px}.chip.streak{display:none}}.rail .dot{height:32px;position:relative;background:0 0!important}.rail .dot:before{content:"";background:var(--line);border-radius:999px;height:8px;transition:background .2s;position:absolute;top:12px;left:0;right:0}.rail .dot.seen:before{background:var(--panel-2)}.rail .dot.played:before{background:#5fd4c799}.rail .dot.done:before{background:var(--teal)}.rail .dot.current{outline:0}.rail .dot.current:before{outline:2px solid var(--amber);outline-offset:2px}.rail .dot:focus-visible:before{outline:2px solid var(--teal);outline-offset:2px}.topbar .brand{align-items:center;min-height:40px;padding:4px 0;display:inline-flex}.icon-btn{min-width:40px;min-height:40px}.exercise .kicker .icon-btn{min-width:36px;min-height:36px}.profile-row{flex-wrap:wrap}.profile-row .grow{flex:150px}.profile-row .grow .muted{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.profile-row .row-actions{margin-left:auto}
