:root{--panel:#14151aed;--panel-2:#24252cf2;--line:#8b7cff59;--gold:#8b7cff;--gold-2:#b3a8ff;--text:#eef1f7;--muted:#9aa3b4;--ok:#6fd38f;--mid:#e8c35a;--bad:#ff7a6b;--cyan:#5ef2ff;--font:"Inter", system-ui, -apple-system, Segoe UI, sans-serif;--display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;--radius:12px}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font);background:#0a0c11;margin:0}body:not(.teacher-page){overflow:hidden}#app canvas{display:block}#app:has(canvas):after{content:"";pointer-events:none;z-index:1;background:radial-gradient(at 50% 45%,#0000 58%,#08101c52 100%);position:fixed;inset:0}#ui{pointer-events:none;z-index:10;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.labels,#ui>.hud{pointer-events:none}button,input,select{font:inherit;color:inherit}kbd{text-align:center;min-width:1.6em;font-size:.8em;font-family:var(--font);background:#ffffff1f;border:1px solid #ffffff40;border-radius:5px;padding:1px 6px;font-weight:600;display:inline-block}.muted{color:var(--muted)}.small{font-size:.85rem}.hidden{display:none!important}.ok{color:var(--ok)}.bad{color:var(--bad)}.mono{font-family:ui-monospace,Consolas,monospace}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;color:var(--text);border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;transition:transform 80ms,background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--gold)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-color:#b3a8ff}.btn.primary:hover{background:linear-gradient(135deg,#a397ff,#6bb8ff)}.btn.big{width:100%;margin-top:8px;padding:13px 22px;font-size:1.05rem}.btn.danger{color:var(--bad);border-color:#ff7a6b80}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem}.icon-btn:hover{color:var(--text);background:#ffffff14}select,.num-input,.name-input{background:#00000059;border:1px solid #ffffff2e;border-radius:8px;outline:none;padding:8px 10px}select:focus,.num-input:focus,.name-input:focus{border-color:var(--gold)}select option{background:#1d1e24}.num-input{width:130px}.num-input.big{width:180px;font-size:1.3rem}.seg{border:1px solid #ffffff26;border-radius:9px;display:inline-flex;overflow:hidden}.seg-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:8px 14px;font-weight:600}.seg-btn+.seg-btn{border-left:1px solid #ffffff26}.seg-btn.on{color:var(--gold-2);background:#8b7cff2e}.field{flex-direction:column;gap:6px;margin:12px 0;display:flex}.field label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.8rem;font-weight:600}input[type=range]{accent-color:var(--gold);width:100%}.shake{animation:.4s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.title-screen{background:radial-gradient(at 50% 20%,#8b7cff2e,#0000 60%),linear-gradient(#1a2333 0%,#0e1218 60%,#0b0d10 100%);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.title-card{text-align:center;width:min(460px,100%)}.title-eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:.78rem;font-weight:600}.logo{font-family:var(--display);letter-spacing:.04em;white-space:nowrap;background:linear-gradient(#fff3cf,#8b7cff 60%,#a8781f);color:#0000;filter:drop-shadow(0 4px 18px #8b7cff40);-webkit-background-clip:text;background-clip:text;margin:6px 0 4px;font-size:clamp(2.4rem,10vw,4.3rem);font-weight:800}.tagline{font-family:var(--display);color:var(--muted);margin:0 0 22px;font-size:1.05rem}.title-card .field{text-align:left}.name-input{padding:12px 14px;font-size:1.1rem}.saves{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:18px;display:flex}.save-btn{background:var(--panel-2);cursor:pointer;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;padding:6px 12px;display:flex}.save-btn:hover{border-color:var(--gold)}.save-btn small{color:var(--muted);font-size:.72rem}.title-foot{color:var(--muted);flex-direction:column;gap:6px;margin-top:26px;font-size:.8rem;display:flex}.title-foot a{color:var(--gold)}.hud{pointer-events:none;position:fixed;inset:0}.hud-objective{border-left:3px solid var(--gold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#14151ad9,#14151ab3);border-radius:0 10px 10px 0;width:min(340px,100vw - 140px);padding:10px 14px;position:absolute;top:16px;left:16px}.obj-label{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:.68rem;font-weight:700}.obj-title{font-family:var(--display);margin:2px 0;font-size:1.05rem;font-weight:700}.obj-text{color:#d9d2c5;white-space:pre-wrap;font-size:.86rem;line-height:1.4}.obj-nav{color:var(--gold-2);align-items:center;gap:8px;margin-top:6px;font-size:.8rem;font-weight:600;display:flex}.obj-arrow{text-align:center;width:18px;color:var(--gold);transition:transform .1s linear}.hud-coins{border:1px solid var(--line);background:#14151acc;border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 8px;font-weight:700;display:flex;position:absolute;top:16px;right:16px}.coin{background:radial-gradient(circle at 35% 35%,#fff1b8,#8b7cff 50%,#a8781f);border-radius:50%;width:18px;height:18px;box-shadow:0 0 8px #8b7cff99}.hud-prompt{opacity:0;border:1px solid var(--line);white-space:nowrap;background:#14151ae0;border-radius:10px;padding:9px 16px;font-weight:600;transition:opacity .15s,transform .15s;position:absolute;bottom:120px;left:50%;transform:translate(-50%)translateY(8px)}.hud-prompt.show{opacity:1;transform:translate(-50%)}.hud-toasts{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.toast{background:#14151aeb;border:1px solid #ffffff26;border-radius:999px;padding:8px 16px;font-size:.92rem;font-weight:600;transition:opacity .5s,transform .5s;animation:.25s ease-out toastIn}.toast.good{color:#c9f5d6;border-color:#6fd38f99}.toast.bad{color:#ffd0c9;border-color:#ff7a6b99}.toast.out{opacity:0;transform:translateY(-8px)}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}}.hud-newt{opacity:0;z-index:30;background:#0e161ceb;border:1px solid #5ef2ff59;border-radius:12px;align-items:flex-start;gap:12px;width:min(420px,100vw - 32px);padding:12px 14px;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:56px;left:16px;transform:translateY(10px)}.hud-newt.show{opacity:1;transform:none}.newt-portrait{background:radial-gradient(circle at 35% 30%,#f5dc7a,#b88a1e 70%);border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 0 0 3px #8a6d1f99}.newt-portrait span{background:var(--cyan);width:14px;height:14px;box-shadow:0 0 10px var(--cyan);border-radius:50%}.newt-name{color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:700}.newt-text{font-size:.92rem;line-height:1.45}.hud-help{color:#f1ebe0bf;text-shadow:0 1px 2px #000;flex-wrap:wrap;justify-content:flex-end;gap:12px;font-size:.75rem;display:flex;position:absolute;bottom:14px;right:16px}.labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}.label{white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.label.name span{background:#14151ab3;border-radius:6px;padding:2px 8px;font-size:.78rem;font-weight:600}.label.quest-marker{font-family:var(--display);color:var(--gold-2);text-shadow:0 0 12px #8b7cffe6,0 2px 2px #000;font-size:2rem;font-weight:800;animation:1.2s ease-in-out infinite bob}@keyframes bob{50%{margin-top:-6px}}.dialogue{border:1px solid var(--line);cursor:pointer;z-index:40;background:linear-gradient(#18191ff5,#101115f5);border-radius:14px;width:min(760px,100vw - 32px);padding:16px 20px 14px;animation:.2s toastIn;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #00000080}.dlg-who{font-family:var(--display);margin-bottom:6px;font-size:1.02rem;font-weight:700}.dlg-text{min-height:3.1em;font-size:1.05rem;line-height:1.55}.dlg-hint{text-align:right;color:var(--muted);margin-top:6px;font-size:.75rem}.dlg-choices{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.backdrop{z-index:20;background:#0506088c;place-items:center;padding:16px;animation:.15s fadeIn;display:grid;position:fixed;inset:0}.side-wrap{z-index:20;pointer-events:none;align-items:stretch;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0}.side-wrap .modal{pointer-events:auto;width:min(400px,100vw - 32px);max-height:100%}@keyframes fadeIn{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;width:min(720px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 20px 60px #0009}.modal-head{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px 12px;display:flex}.modal-head h2{font-family:var(--display);color:var(--gold-2);margin:0;font-size:1.3rem}.modal-head .sub{color:var(--muted);margin:3px 0 0;font-size:.9rem}.modal-body{padding:16px 20px 20px;overflow-y:auto}.modal.prompt{width:min(460px,100%)}.card{border-radius:var(--radius);background:#ffffff0a;border:1px solid #ffffff14;margin-bottom:12px;padding:14px 16px}.card h3{font-family:var(--display);margin:4px 0 8px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.7rem;font-weight:700}.calc-row{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.calc-row .lhs{font-family:var(--display);font-size:1.2rem;font-weight:700}.unit-tag{color:var(--gold-2);font-weight:700}.forge{width:min(780px,100%)}.forge-intro{margin:0 0 14px;line-height:1.5}.step{border-radius:var(--radius);border:1px solid #ffffff1a;margin-bottom:12px;padding:12px 14px;transition:opacity .2s,border-color .2s}.step.locked{opacity:.35;pointer-events:none}.step.done{border-color:#6fd38f73}.step header{align-items:center;gap:10px;display:flex}.step h3{flex:1;margin:0;font-size:1rem}.step-num{width:26px;height:26px;color:var(--gold-2);background:#8b7cff2e;border-radius:50%;place-items:center;font-size:.85rem;font-weight:800;display:grid}.step.done .step-num{color:var(--ok);background:#6fd38f33}.step-status{color:var(--ok);font-weight:800}.step-hint{color:var(--muted);margin:6px 0 10px;font-size:.86rem}.known-row{border-bottom:1px dashed #ffffff14;grid-template-columns:110px 1fr 150px 24px;align-items:center;gap:10px;padding:6px 0;display:grid}.known-val{color:var(--gold-2);font-size:1.05rem;font-weight:800}.known-src{flex-direction:column;font-size:.92rem;display:flex}.known-src small{color:var(--muted)}.mark{text-align:center;font-weight:800}.mark.ok{color:var(--ok)}.mark.bad{color:var(--bad)}.step-body>.btn{margin-top:10px}.tiles{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.tile{cursor:pointer;min-width:46px;height:46px;font-size:1.15rem;font-weight:800;font-family:var(--display);background:#ffffff0f;border:1px solid #ffffff2e;border-radius:10px;padding:0 12px;transition:transform 80ms,border-color .15s,background .15s}.tile:hover{border-color:var(--gold)}.tile:active{transform:scale(.95)}.tile.op{color:var(--cyan)}.tile.ctl{font-family:var(--font);color:var(--muted);font-size:.85rem}.tile.wide{flex-direction:column;justify-content:center;align-items:center;min-width:92px;height:56px;display:flex}.tile.wide small{font-family:var(--font);color:var(--muted);font-size:.7rem;font-weight:500}.tile.chosen{border-color:var(--ok);background:#6fd38f26}.tile.wrong{border-color:var(--bad);background:#ff7a6b26;animation:.35s shake}.eq-view{font-family:var(--display);background:#0000004d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;min-height:64px;padding:12px 16px;font-size:1.9rem;font-weight:800;display:flex}.eq-view.small{min-height:0;font-size:1.15rem;font-family:var(--font);font-weight:600}.eq-view .lhs{color:var(--gold-2)}.eq-view .o{color:var(--cyan)}.eq-view .ph{color:var(--muted);font-size:1rem;font-weight:500;font-family:var(--font)}.unit-view{margin:8px 2px;font-size:.92rem}.law-ref{margin-bottom:10px}.law-ref summary{cursor:pointer;color:var(--gold-2);margin-bottom:8px;font-weight:600}.law-ref-title{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:6px;font-size:.72rem}.law-card{background:#ffffff08;border:1px solid #ffffff1a;border-radius:10px;margin-bottom:8px;padding:10px 12px}.law-card.highlight{border-color:var(--gold);background:#8b7cff14}.law-name{flex-wrap:wrap;justify-content:space-between;gap:10px;font-weight:700;display:flex}.law-name small{color:var(--muted);font-weight:500}.law-eq{font-family:var(--display);color:var(--gold-2);margin:4px 0;font-size:1.4rem;font-weight:800}.law-eq.big{font-size:2rem}.law-vars{color:#d9d2c5;flex-wrap:wrap;gap:14px;font-size:.85rem;display:flex}.law-vars b{color:var(--gold-2)}.forge-result{background:#6fd38f1f;border:1px solid #6fd38f66;border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;padding:14px;display:flex}.forge-result>div{font-family:var(--display);color:var(--ok);font-size:1.6rem;font-weight:800}.trials{border-collapse:collapse;width:100%;margin:14px 0;font-size:.9rem}.trials th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:4px 6px;font-size:.75rem;font-weight:600}.trials td{border-top:1px solid #ffffff12;padding:6px}.trials td:last-child{color:var(--gold-2);font-weight:700}.goals{background:#ffffff0a;border-radius:10px;padding:10px 12px}.goals-title{color:var(--gold-2);margin-bottom:4px;font-size:.85rem;font-weight:700}.goals ul{margin:0;padding-left:0;list-style:none}.goals li{color:var(--muted);padding:3px 0}.goals li:before{content:"○  "}.goals li.met{color:var(--ok)}.goals li.met:before{content:"✓  "}.predict{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:12px}.predict p{margin:6px 0;line-height:1.45}.vocab-grid{grid-template-columns:1fr 1.6fr;gap:14px;margin-bottom:14px;display:grid}.vocab-col{flex-direction:column;gap:8px;display:flex}.vocab-item{text-align:left;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:10px;padding:10px 12px;line-height:1.35}.vocab-item.term{font-weight:700;font-family:var(--display)}.vocab-item:hover{border-color:var(--gold)}.vocab-item.sel{border-color:var(--gold);background:#8b7cff26}.vocab-item.matched{color:#c9f5d6;cursor:default;background:#6fd38f1f;border-color:#6fd38f80}.vocab-item.wrong{border-color:var(--bad);animation:.35s shake}.journal{width:min(760px,100%)}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #ffffff1f;border-radius:999px;padding:6px 14px;font-weight:600}.tabs button.on{border-color:var(--gold);color:var(--gold-2);background:#8b7cff1a}.var-table,.meas-table{border-collapse:collapse;width:100%;margin-top:8px}.var-table td,.meas-table td{border-top:1px solid #ffffff12;padding:7px 6px}.var-table .sym{font-family:var(--display);color:var(--gold-2);width:40px;font-size:1.2rem;font-weight:800}.meas-table .val{color:var(--gold-2);font-weight:800}.locked-page{color:var(--muted);font-style:italic}.mastery{flex-direction:column;gap:7px;margin:8px 0;display:flex}.m-row{grid-template-columns:110px 1fr 46px;align-items:center;gap:10px;font-size:.88rem;display:grid}.m-bar{background:#ffffff14;border-radius:999px;height:10px;overflow:hidden}.m-fill{border-radius:999px;height:100%;transition:width .6s;display:block}.m-fill.high{background:var(--ok)}.m-fill.mid{background:var(--mid)}.m-fill.low{background:var(--bad)}.m-val{text-align:right;font-weight:700}.summary{width:min(560px,100%)}.summary-hero{text-align:center;color:var(--muted);margin-bottom:10px}.big-num{font-family:var(--display);color:var(--gold-2);font-size:3rem;font-weight:800}.echo{border-color:#5ef2ff4d}.teacher-page{background:#101216}#teacher{max-width:1200px;margin:0 auto;padding:28px 16px 60px}.teacher-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.teacher-head h1{font-family:var(--display);color:var(--gold-2);margin:4px 0 0;font-size:2rem}.class-strip{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:18px 0;display:grid}.class-stat{background:var(--panel-2);border:1px solid #ffffff14;border-radius:10px;padding:12px}.class-stat .big{font-family:var(--display);color:var(--gold-2);font-size:1.6rem;font-weight:800}.heatmap{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:.9rem;display:block;overflow-x:auto}.heatmap th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;padding:6px 8px;font-size:.72rem}.heatmap td{background:var(--panel-2);white-space:nowrap;padding:8px}.heatmap td.name{border-radius:8px 0 0 8px;font-weight:700}.heatmap td:last-child{border-radius:0 8px 8px 0}.heatmap tr.clickable{cursor:pointer}.heatmap tr.clickable:hover td{background:#34353e}.heat{text-align:center;min-width:74px;font-weight:700}.heat.high{color:#c9f5d6;background:#6fd38f47!important}.heat.mid{color:#f6e2a8;background:#e8c35a40!important}.heat.low{color:#ffd0c9;background:#ff7a6b40!important}.heat.none{color:var(--muted)}.prog{background:#ffffff1a;border-radius:999px;width:120px;height:6px;margin-bottom:3px;overflow:hidden}.prog span{background:var(--gold);height:100%;display:block}.detail{margin-top:26px}.detail h2{font-family:var(--display);color:var(--gold-2)}.log-table{border-collapse:collapse;width:100%;font-size:.88rem}.log-table th{text-align:left;color:var(--muted);text-transform:uppercase;padding:6px;font-size:.72rem}.log-table td{border-top:1px solid #ffffff12;padding:6px}.teacher-foot{margin-top:40px}.empty{text-align:center;color:var(--muted);padding:40px}@media (width<=640px){.known-row{grid-template-columns:1fr 1fr}.vocab-grid{grid-template-columns:1fr}.hud-help{display:none}.eq-view{font-size:1.4rem}}:root{--math:"Cambria Math", Cambria, "Times New Roman", Georgia, serif}.tile.var,.eq-view,.law-eq,.var-table .sym,.calc-row .lhs,.forge-result>div{font-family:var(--math);font-style:italic}.tile.var{font-size:1.35rem;font-weight:700}.tile.op,.eq-view .o,.eq-view .ph,.eq-view.small,.tile.wide small{font-style:normal}.lab-why{background:#5ef2ff14;border:1px solid #5ef2ff4d;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:.9rem;line-height:1.45}.lab-progress{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.lab-progress span{color:var(--muted);background:#ffffff0f;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:700}.lab-progress span.on{color:var(--gold-2);background:#8b7cff40}.lab-progress span.done{color:var(--ok);background:#6fd38f2e}.lab-step h3{margin:4px 0 10px;font-size:1.05rem;line-height:1.35}.lab-result{border-left:3px solid var(--gold);background:#ffffff0d;border-radius:0 8px 8px 0;margin:8px 0;padding:10px 12px;line-height:1.45}.lab-result.good{border-color:var(--ok)}.lab-result.bad{border-color:var(--bad)}.lab-formula{font-family:var(--math);text-align:center;color:var(--gold-2);border:1px solid var(--gold);background:#8b7cff1a;border-radius:12px;margin:10px 0;padding:14px;font-size:2.6rem;font-style:italic;font-weight:800}.lab-legend{flex-direction:column;gap:4px;margin:6px 0 12px;font-size:.92rem;display:flex}.lab-legend b{font-family:var(--math);color:var(--gold-2);width:20px;font-size:1.1rem;font-style:italic;display:inline-block}.trials .reveal-col{display:none}.trials.revealed .reveal-col{display:table-cell}.trials .match{color:var(--ok);font-weight:700}.formula-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.formula-card{text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff26;border-radius:12px;padding:12px;transition:border-color .15s,background .15s}.formula-card:hover{border-color:var(--gold)}.formula-card.chosen{border-color:var(--ok);background:#6fd38f1f}.formula-card.wrong{border-color:var(--bad);animation:.35s shake}.fc-name{color:var(--muted);font-size:.8rem;font-weight:600}.fc-eq{font-family:var(--math);color:var(--gold-2);margin:4px 0 8px;font-size:1.6rem;font-style:italic;font-weight:800}.fc-chips,.chip-legend{flex-wrap:wrap;gap:5px;display:flex}.chip-legend{margin-bottom:10px}.chip{border:1px solid #0000;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700}.chip.known{color:#b9f0c9;background:#6fd38f33;border-color:#6fd38f80}.chip.need{color:var(--gold-2);background:#8b7cff38;border-color:#8b7cff99}.chip.missing{color:var(--muted);background:#ffffff0f;border-color:#ffffff26;text-decoration:line-through}.formula-unlock{width:min(560px,100%)}.how-list{margin:6px 0 0;padding-left:20px;line-height:1.6}.card.plan{background:#8b7cff12;border-color:#8b7cff80}.hud-formula{border:1px solid var(--gold);background:#14151ad9;border-radius:10px;flex-direction:column;padding:6px 12px;display:flex;position:absolute;top:172px;left:16px}.hud-formula .f-label{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.65rem;font-weight:700}.hud-formula .f-eq{font-family:var(--math);color:var(--gold-2);font-size:1.4rem;font-style:italic;font-weight:800}.hud-left{flex-direction:column;align-items:flex-start;gap:8px;width:min(340px,100vw - 140px);display:flex;position:absolute;top:16px;left:16px}.hud-left .hud-objective{width:100%;position:static}.hud-left .hud-formula{position:static}.obj-title{font-family:var(--font);letter-spacing:0;font-weight:800}.hud-topright{pointer-events:auto;align-items:center;gap:10px;display:flex;position:absolute;top:16px;right:16px}.hud-topright .hud-coins{position:static}.hud-menu{border:1px solid var(--line);cursor:pointer;color:var(--text);background:#14151ad9;border-radius:999px;padding:7px 14px;font-weight:700}.hud-menu:hover{border-color:var(--gold)}.menu-screen{background:radial-gradient(at 50% 0,#8b7cff1f,#0000 50%),linear-gradient(#161c27,#0d1015);padding:28px 16px 60px;position:fixed;inset:0;overflow-y:auto}.menu-head,.menu-unit,.up-next{max-width:1100px;margin:0 auto}.menu-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.menu-head h1{font-family:var(--display);color:var(--gold-2);margin:4px 0 0;font-size:2rem}.up-next{border:1px solid var(--gold);background:#8b7cff1a;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:flex}.menu-unit{margin-bottom:30px}.unit-head h2{font-family:var(--display);margin:4px 0;font-size:1.4rem}.unit-head p{margin:0 0 12px}.module-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.module-card{background:var(--panel-2);border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;padding:14px 16px;display:flex}.module-card.soon{opacity:.6}.module-top{justify-content:space-between;align-items:center;display:flex}.module-n{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:800}.badge.done{color:var(--ok);font-size:.72rem;font-weight:700}.module-card h3{margin:4px 0 6px;font-size:1.12rem}.lesson-list{flex-direction:column;gap:6px;margin:6px 0 10px;padding:0;list-style:none;display:flex}.lesson-list li{background:#ffffff08;border-radius:8px;grid-template-columns:70px 1fr auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.lesson-list li.next{background:#8b7cff1a;outline:1px solid #8b7cff73}.lesson-list li.locked{color:var(--muted)}.l-n{color:var(--muted);font-size:.75rem;font-weight:700}.l-title small{color:var(--muted)}.soon-tag{color:var(--muted);font-size:.72rem}.btn.small{padding:5px 12px;font-size:.85rem}.module-play{margin-top:auto}.guided .q{margin:10px 0 8px;font-weight:600;line-height:1.4}.choices{flex-direction:column;gap:8px;display:flex}.choices.locked .choice-btn:not(.right){opacity:.45}.choice-btn{text-align:left;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff26;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;line-height:1.35;display:flex}.choice-btn:hover{border-color:var(--gold)}.choice-btn.right{border-color:var(--ok);background:#6fd38f24}.choice-btn.wrong{border-color:var(--bad);animation:.35s shake}.classify-row{border-bottom:1px dashed #ffffff14;grid-template-columns:1fr 190px 20px;align-items:center;gap:8px;padding:6px 0;display:grid}.num-input.right{border-color:var(--ok)}.num-input.wrong{border-color:var(--bad);animation:.35s shake}.lab-extra{margin:4px 0 12px}.conv{background:#0000004d;border-radius:10px;align-items:center;gap:10px;margin:8px 0;padding:10px;font-size:1.3rem;font-weight:700;display:flex}.conv s{-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad);color:var(--muted);text-decoration-thickness:2px}.conv .o{color:var(--cyan)}.frac{flex-direction:column;align-items:center;font-size:1rem;display:inline-flex}.frac>span:first-child{border-bottom:2px solid var(--text);padding:0 4px}.graph-box{background:#00000040;border-radius:10px;margin-bottom:10px;padding:6px}.plot{width:100%;height:auto;display:block}.plot.picking{cursor:crosshair;border-radius:6px;outline:2px dashed #8b7cff99}.plot .grid line{stroke:#ffffff17;stroke-width:1px}.plot .axes line{stroke:#ffffff73;stroke-width:1.5px}.plot .tick{fill:var(--muted);font-size:11px;font-family:var(--font)}.plot .axis-title{fill:var(--text);font-size:12px;font-weight:600;font-family:var(--font)}.plot .pt .dot{fill:var(--gold-2);stroke:#14151a;stroke-width:2px}.plot .pt .hit{fill:#0000}.plot .pt.basket .dot{fill:var(--cyan)}.plot .fit{stroke:var(--gold);stroke-width:2px;stroke-linecap:round}.plot .tri{stroke:var(--cyan);stroke-width:2px;stroke-dasharray:4 3}.plot .guide{stroke:var(--cyan);stroke-width:1.5px;stroke-dasharray:3 3}.plot .note{fill:var(--cyan);font-size:11px;font-weight:700;font-family:var(--font)}.mini-graph{align-items:center;gap:10px;display:inline-flex}.mini-graph svg{flex:none;width:72px;height:48px}.mini-axes{fill:none;stroke:#fff6;stroke-width:2px}.mini-line{fill:none;stroke:var(--gold-2);stroke-width:3px;stroke-linecap:round}.hud-dash{background:#0e1014d9;border:1px solid #5ef2ff59;border-radius:14px;gap:6px;padding:10px 14px;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.dash-cell{text-align:center;min-width:120px;padding:0 8px}.dash-cell+.dash-cell{border-left:1px solid #ffffff1a}.dash-label{letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-size:.66rem;font-weight:700}.dash-speed,.dash-acc,.dash-odo{font-family:var(--math);color:var(--text);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800}.dash-speed small,.dash-acc small,.dash-odo small{color:var(--muted);font-size:.85rem;font-style:italic}.dash-kmh{color:var(--muted);font-size:.78rem}.dash-acc.up{color:var(--ok)}.dash-acc.down{color:var(--bad)}.hud:has(.hud-dash:not([style*=none])) .hud-prompt{bottom:150px}.hud-big{opacity:0;pointer-events:none;font-family:var(--display);color:var(--gold-2);text-shadow:0 4px 24px #0009,0 0 18px #8b7cff99;font-size:clamp(3rem,10vw,7rem);font-weight:800;transition:opacity .15s,transform .25s;position:absolute;top:32%;left:50%;transform:translate(-50%,-50%)scale(.8)}.hud-big.show{opacity:1;transform:translate(-50%,-50%)scale(1)}.warmup{width:min(560px,100%)}.warmup .skip{color:var(--muted);background:0 0;border-color:#0000;margin-top:14px}#app canvas{transition:filter .6s}body.mood-flashback #app canvas{filter:sepia(.85)contrast(1.05)brightness(.9)blur(.6px)}body.mood-demon #app canvas{filter:sepia(.6)saturate(2.4)hue-rotate(-28deg)brightness(.55)contrast(1.3);animation:.35s infinite cine-shake}body.mood-dark #app canvas{filter:brightness(.35)saturate(.6)}body.mood-warm #app canvas{filter:sepia(.25)saturate(1.2)brightness(1.05)}body.mood-mystery #app canvas{filter:hue-rotate(160deg)saturate(.7)brightness(.55)}@keyframes cine-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(2px,-2px)}75%{transform:translate(-2px,-1px)}}.cine{z-index:60;cursor:pointer;position:fixed;inset:0}.cine:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(#0000 45%,#000000a6 100%);transition:opacity .6s;position:absolute;inset:0}.cine.in:after{opacity:1}.cine-bar{z-index:1;background:#000;height:0;transition:height .6s;position:absolute;left:0;right:0}.cine-bar.top{top:0}.cine-bar.bottom{bottom:0}.cine.in .cine-bar{height:11vh}.cine-box{text-align:center;z-index:2;opacity:0;width:min(820px,100vw - 32px);transition:opacity .5s .3s;position:absolute;bottom:13vh;left:50%;transform:translate(-50%)}.cine.in .cine-box{opacity:1}.cine-who{font-family:var(--display);color:var(--gold-2);text-shadow:0 2px 8px #000;margin-bottom:6px;font-size:1.05rem;font-weight:800}.cine-text{color:#f6f1e7;text-shadow:0 2px 10px #000,0 0 2px #000;min-height:3em;font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.55}.cine-text.narration{font-family:var(--display);letter-spacing:.02em;font-style:italic}.cine-hint{color:#ffffff8c;margin-top:10px;font-size:.75rem}.cine-skip{z-index:3;color:#ddd;cursor:pointer;background:#00000080;border:1px solid #ffffff40;border-radius:999px;padding:6px 14px;font-weight:600;position:absolute;top:calc(11vh + 12px);right:18px}.cine-card{text-align:center;z-index:4;opacity:0;background:radial-gradient(#140a0a8c,#000000eb);place-content:center;transition:opacity .6s;display:grid;position:absolute;inset:0}.cine-card.show{opacity:1}.cine-kicker{letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-size:.9rem;font-weight:700}.cine-title{font-family:var(--display);color:#fff3cf;text-shadow:0 4px 30px #8b7cff73;margin-top:10px;font-size:clamp(2.2rem,7vw,4.6rem);font-weight:800}.cine-embers{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.cine-embers span{background:#ff7a2a;border-radius:50%;width:5px;height:5px;animation:linear infinite ember;position:absolute;bottom:-10px;box-shadow:0 0 10px #ff5a00}@keyframes ember{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px,-105vh)}}.remember-modal{width:min(600px,100%)}.remember{border:1px solid var(--gold);background:linear-gradient(160deg,#8b7cff24,#5ef2ff0f);border-radius:14px;margin-bottom:12px;padding:16px 18px}.remember-big{font-family:var(--display);color:var(--gold-2);margin:6px 0 10px;font-size:clamp(1.3rem,3.4vw,1.9rem);font-weight:800;line-height:1.25}.remember ul{margin:0 0 10px;padding-left:20px;line-height:1.6}.remember-mn{background:#00000040;border-radius:10px;padding:8px 12px;font-weight:600}.remember-mn span{color:var(--cyan)}.l-chapter{color:var(--gold);font-size:.74rem;font-family:var(--display);margin-top:2px;font-weight:700;display:block}.label.echo span{color:#cff9ff;background:#5ef2ff2e;border:1px solid #5ef2ff80;border-radius:6px;padding:2px 8px;font-size:.75rem}.explainer .gridline{stroke:#ffffff17}.explainer .axisline{stroke:#ffffff73;stroke-width:1.5px}.explainer-caption{min-height:2.6em;color:var(--gold-2);margin:6px 4px;font-weight:700;line-height:1.35}.explainer-legend{justify-content:center;gap:14px;margin-top:4px;font-size:.82rem;display:flex}.explainer-legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.explainer-box .btn{margin:0 4px 4px}body.cine-on .hud,body.cine-on .labels{opacity:0;transition:opacity .4s}.hud,.labels{transition:opacity .4s}.explainer-box svg{max-height:300px}.cine-flash{z-index:70;pointer-events:none;animation:.9s ease-out forwards cine-flash;position:fixed;inset:0}@keyframes cine-flash{0%{opacity:.95}to{opacity:0}}.form-error{color:var(--bad);min-height:1.2em;margin-top:8px;font-weight:600}.title-tabs{justify-content:center;margin-bottom:4px}.code-input{text-transform:uppercase;letter-spacing:.2em;font-weight:700}.resume{border-bottom:1px solid #ffffff1a;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;padding-bottom:14px;display:flex}.login-code{font-family:var(--display);letter-spacing:.2em;text-align:center;color:var(--gold-2);border:1px dashed var(--gold);background:#8b7cff1a;border-radius:12px;margin:10px 0;padding:12px;font-size:3rem;font-weight:800}.code-chip{color:var(--gold-2);letter-spacing:.06em;background:#8b7cff26;border:1px solid #8b7cff80;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:700;display:inline-block}.code-chip.big{font-size:1rem}.class-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 6px;display:flex}.teacher-login{text-align:left;margin:8vh auto}.teacher-login h1{font-family:var(--display);color:var(--gold-2)}.code-big{z-index:90;text-align:center;cursor:pointer;background:#0a0c10f7;place-content:center;gap:18px;font-size:1.6rem;display:grid;position:fixed;inset:0}.code-big-code{font-family:var(--display);letter-spacing:.15em;color:var(--gold-2);font-size:clamp(4rem,16vw,11rem);font-weight:800}.builder-road{margin-bottom:4px}.builder-note{min-height:2.6em;color:var(--gold-2);margin:6px 4px;font-weight:700;line-height:1.4}.builder .calc-row .q{margin:0}.builder-table{margin-top:6px}.builder-table td{padding:3px 6px}.simple-explain{font-size:1.02rem;line-height:1.55}.simple-explain p{margin:6px 0}.simple-explain ul{margin:4px 0 8px}.remember.mini{margin-top:10px;padding:10px 14px}.remember.mini .remember-big{margin:0 0 4px;font-size:1.3rem}.eq-list{flex-direction:column;gap:6px;margin:8px 0;display:flex}.eq-list div{background:#00000040;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.eq-list b{font-family:var(--math);color:var(--gold-2);font-size:1.2rem;font-style:italic}.eq-list span{color:var(--muted);font-size:.8rem}.strobe .flash{opacity:0;animation:.2s forwards strobe-in}@keyframes strobe-in{to{opacity:1}}.vector-board{max-height:260px}.release-btn{z-index:30;padding:14px 34px;font-size:1.4rem;position:fixed;bottom:90px;left:50%;transform:translate(-50%);width:auto!important}.modal.book-modal{color:#2b2419;background:#f3ead6;border-color:#c9b27e;width:min(780px,100%)}.book-modal .modal-head{border-bottom-color:#503c1e33}.book-modal .modal-head h2{color:#6a2a2a}.book-modal .modal-head .sub{color:#7d6b4e}.book-page{max-height:min(62vh,560px);padding-right:6px;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.65;overflow-y:auto}.book-page h3{font-family:var(--display);color:#4a2f1a;margin:0 0 10px;font-size:1.35rem}.book-page p{margin:0 0 12px}.book-page .term{color:#8a2b10;background:#c9a2272e;border-radius:3px;padding:0 3px}.book-visual{background:#1b1d22;border-radius:10px;margin:4px 0 14px;padding:6px}.book-visual .graph-box{margin:0}.book-example{background:#fffaf0;border:1px dashed #b89a5e;border-radius:10px;margin:10px 0 14px;padding:10px 14px}.book-example b{color:#4a2f1a;margin-bottom:6px;display:block}.book-example .mono{font-family:ui-monospace,Consolas,monospace;font-size:.95rem}.book-history{color:#5d4a2e;border-left:3px solid #c9a227;margin:6px 0 4px;padding:4px 10px;font-size:.92rem;font-style:italic}.book-nav{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.book-dots{color:#7d6b4e;font-size:.9rem}.book-nav .btn.ghost{color:#4a2f1a;border-color:#503c1e59}@media (width<=760px){.book-page{max-height:58vh;font-size:.97rem}}.book-visual,.book-visual .mini-caption{color:#e8e2d4}.modal.travel-modal{width:min(520px,100%)}.travel-dest{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;gap:2px;margin-bottom:8px;padding:12px 14px;display:grid}.travel-dest b{color:var(--gold-2);font-size:1.05rem}.travel-dest span{color:var(--muted);font-size:.88rem}.travel-dest:hover:not(:disabled){border-color:var(--gold-2);background:#8b7cff14}.travel-dest.here{opacity:.55;cursor:default}.travel-fade{z-index:60;color:#eef1f7;font-family:var(--display);opacity:0;pointer-events:none;background:#07090c;place-items:center;font-size:1.4rem;transition:opacity .6s;display:grid;position:fixed;inset:0}.travel-fade.on{opacity:1}:root{--bg-0:#0a0c11;--bg-1:#11141b;--card:#181c25eb;--card-2:#222732e6;--edge:#ffffff17;--edge-2:#ffffff29;--ink-2:#c3cad6;--track:#ffffff14;--shadow:0 18px 50px #00000073}.brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:radial-gradient(circle at 50% 50%, var(--cyan) 0 19%, transparent 21%), radial-gradient(circle at 35% 30%, #fff1c2, #8b7cff 45%, #a8781f);border-radius:50%;flex:none;width:26px;height:26px;box-shadow:0 0 16px #8b7cff59}.brand-name{font-family:var(--display);letter-spacing:.12em;color:var(--gold-2);font-size:1.05rem;font-weight:800}.btn.ghost{border-color:var(--edge-2);background:0 0}.btn.ghost:hover{border-color:var(--gold);background:#ffffff0a}.btn.xl{border-radius:12px;padding:14px 28px;font-size:1.1rem}.btn:focus-visible,.nav-tab:focus-visible,.chip:focus-visible,.unit-bar:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.topbar{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--edge);background:#0b0e13d1;position:sticky;top:0}.topbar.clear{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:none;position:relative}.topbar-in{flex-wrap:wrap;align-items:center;gap:18px;max-width:1180px;margin:0 auto;padding:12px 16px;display:flex}.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.nav-tabs{gap:4px;display:flex}.nav-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.nav-tab:hover{color:var(--text);background:#ffffff0d}.nav-tab.on{color:var(--gold-2);background:#8b7cff1f}.player-chip{border:1px solid var(--edge-2);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-weight:600;display:inline-flex}.player-chip small{color:var(--muted);font-size:.7rem;font-weight:500;display:block}.player-chip>span:last-child{flex-direction:column;line-height:1.15;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-radius:50%;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.landing{background:linear-gradient(90deg, #080b10f0 0%, #080b10c7 45%, #080b108c 100%), linear-gradient(0deg, #080b10e6, transparent 40%), url(/img/hero.jpg) center / cover no-repeat, var(--bg-0);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.landing-grid{flex:1;grid-template-columns:1.15fr .85fr;align-items:center;gap:48px;width:100%;max-width:1180px;margin:0 auto;padding:24px 16px 40px;display:grid}.hero-copy .eyebrow{margin-bottom:14px}.hero-copy h1{font-family:var(--display);color:#fff8ea;margin:0 0 18px;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.08}.hero-copy h1 em{color:var(--gold-2);font-style:normal}.lede{color:var(--ink-2);max-width:560px;margin:0 0 28px;font-size:1.12rem;line-height:1.6}.hero-stats{flex-wrap:wrap;gap:32px;display:flex}.hero-stats div{flex-direction:column;display:flex}.hero-stats b{color:#fff8ea;font-size:2rem;font-weight:800;line-height:1}.hero-stats span{color:var(--muted);margin-top:4px;font-size:.9rem}.signin-card{background:var(--card);border:1px solid var(--edge-2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:18px;padding:26px 26px 22px}.signin-card h2{margin:0 0 14px;font-size:1.35rem}.signin-card .tabs{justify-content:flex-start}.signin-card .resume{text-align:center;margin-bottom:14px}.site-foot{width:100%;max-width:1180px;color:var(--muted);border-top:1px solid var(--edge);flex-wrap:wrap;gap:20px;margin:0 auto;padding:16px;font-size:.85rem;display:flex}.site-foot a{color:var(--muted)}.site-foot a:hover{color:var(--gold-2)}.app-screen{background:radial-gradient(ellipse at 50% -10%, #8b7cff1a, transparent 55%), linear-gradient(180deg, var(--bg-1), var(--bg-0));position:fixed;inset:0;overflow-y:auto}.app-main{max-width:1180px;margin:0 auto;padding:26px 16px 60px}.dash-hello h1,.course-head h1{margin:0 0 4px;font-size:1.9rem}.dash-hello p,.course-head p{margin:0 0 20px}.continue-card{box-shadow:var(--shadow);background:linear-gradient(100deg,#0e1219eb 30%,#0e121973),url(/img/hero.jpg) 50% 40%/cover no-repeat;border:1px solid #8b7cff66;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding:26px 28px;display:flex}.continue-card h2{color:#fff8ea;margin:6px 0;font-size:1.7rem}.continue-card p{margin:0}.continue-card.finished{border-color:#6fd38f80}.stat-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.stat-tile{background:var(--card);border:1px solid var(--edge);border-radius:14px;padding:16px 18px}.stat-value{color:#fff8ea;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--ink-2);margin-top:8px;font-weight:600}.stat-sub{color:var(--muted);margin-top:2px;font-size:.8rem}.dash-grid{grid-template-columns:1.15fr 1fr 1fr;align-items:start;gap:12px;display:grid}.dash-card{background:var(--card);border:1px solid var(--edge);border-radius:14px;padding:18px}.dash-card h3{margin:0 0 2px;font-size:1.05rem}.dash-card>.muted.small{margin:0 0 14px}.pbar{background:var(--track);border-radius:999px;height:8px;overflow:hidden}.pbar>span{background:linear-gradient(90deg, #5b8cff, var(--gold-2));border-radius:999px;height:100%;transition:width .6s;display:block}.unit-bars{flex-direction:column;gap:6px;display:flex}.unit-bar{color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:7px;padding:9px 10px;display:flex}.unit-bar:hover{border-color:var(--edge-2);background:#ffffff08}.unit-bar-top{justify-content:space-between;gap:10px;font-size:.9rem;display:flex}.unit-bar-top .muted{font-variant-numeric:tabular-nums;white-space:nowrap}.skill-bars{flex-direction:column;gap:12px;display:flex}.skill-row{grid-template-columns:96px 1fr 42px;align-items:center;gap:10px;font-size:.9rem;display:grid}.skill-val{text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums}.empty{border:1px dashed var(--edge-2);color:var(--muted);text-align:center;border-radius:10px;padding:18px;font-size:.9rem}.review-due{background:#5ef2ff12;border:1px solid #5ef2ff40;border-radius:10px;margin:10px 0 12px;padding:12px}.review-due p{margin:4px 0 0}.recent{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.recent li{border-bottom:1px solid var(--edge);grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:6px 0;font-size:.85rem;display:grid}.recent li:last-child{border-bottom:none}.check{color:var(--ok);font-weight:800}.unit-chips{z-index:4;background:linear-gradient(180deg, var(--bg-1) 70%, transparent);flex-wrap:wrap;gap:6px;margin-bottom:14px;padding:10px 0;display:flex;position:sticky;top:58px}.chip{background:var(--card-2);border:1px solid var(--edge-2);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600}.chip:hover{border-color:var(--gold);color:var(--text)}.app-main .menu-unit{max-width:none;scroll-margin-top:120px}.app-main .module-card{background:var(--card);border-color:var(--edge);gap:2px}.app-main .module-card.complete{border-color:#6fd38f59}.app-main .module-card .pbar{height:6px;margin:8px 0 4px}.app-main .lesson-list li{grid-template-columns:28px 1fr auto}.app-main .lesson-list .l-n{background:#ffffff0f;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.app-main .lesson-list li.is-done .l-n{color:var(--ok);background:#6fd38f2e}.loading-screen{z-index:200;background:linear-gradient(0deg, #080b10eb, #080b10b3), url(/img/hero.jpg) center / cover no-repeat, var(--bg-0);place-items:center;padding:16px;transition:opacity .45s;display:grid;position:fixed;inset:0}.loading-screen.out{opacity:0;pointer-events:none}.loading-card{text-align:center;width:min(460px,100%)}.loading-card .brand{justify-content:center;margin-bottom:18px}.loading-lesson{margin-bottom:18px;font-size:1.15rem;font-weight:600}.loading-bar{background:var(--track);border-radius:999px;height:6px;overflow:hidden}.loading-bar>span{background:linear-gradient(90deg, #5b8cff, var(--gold-2));border-radius:999px;width:5%;height:100%;transition:width .3s;display:block}.loading-status{color:var(--muted);margin-top:10px;font-size:.9rem}.loading-tip{border:1px solid var(--edge);color:var(--ink-2);background:#ffffff0d;border-radius:10px;margin-top:26px;padding:12px 14px;font-size:.9rem}@media (width<=980px){.landing-grid{grid-template-columns:1fr;gap:28px}.dash-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.topbar-actions{margin-left:0}.continue-card{padding:20px}.continue-card .btn{width:100%}.stat-value{font-size:1.6rem}.hero-stats{gap:20px}}@media (prefers-reduced-motion:reduce){.pbar>span,.loading-bar>span,.loading-screen{transition:none}}body.site-page{background:var(--bg-0);overflow:auto}.site-in{max-width:1180px;margin:0 auto;padding:0 16px}.site-nav{gap:4px;display:flex}.site-nav a{color:var(--muted);border-radius:8px;padding:8px 12px;font-size:.92rem;font-weight:600;text-decoration:none}.site-nav a:hover{color:var(--text);background:#ffffff0d}.site-hero{background:radial-gradient(ellipse at 70% 0%, #8b7cff24, transparent 60%), linear-gradient(180deg, var(--bg-1), var(--bg-0));padding:64px 0 48px}.hero-split{grid-template-columns:1fr 1.05fr;align-items:center;gap:44px;display:grid}.site-hero h1{font-family:var(--display);color:#fff8ea;margin:12px 0 18px;font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.1}.site-hero h1 em{color:var(--gold-2);font-style:normal}.hero-shot{border:1px solid var(--edge-2);width:100%;height:auto;box-shadow:var(--shadow);border-radius:16px;display:block}.fact-strip{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);background:#ffffff05}.fact-row{grid-template-columns:repeat(4,1fr);gap:16px;padding-top:22px;padding-bottom:22px;display:grid}.fact{flex-direction:column;gap:4px;display:flex}.fact b{color:#fff8ea;font-variant-numeric:tabular-nums;font-size:2rem;line-height:1}.fact span{color:var(--muted);font-size:.9rem}.site-section{padding:72px 0 8px}.site-section h2{max-width:760px;margin:8px 0 12px;font-size:clamp(1.6rem,3vw,2.2rem)}.section-lede{max-width:720px;margin:0 0 24px;line-height:1.6}.card-grid{gap:14px;margin-top:24px;display:grid}.card-grid.four{grid-template-columns:repeat(4,1fr)}.card-grid.three{grid-template-columns:repeat(3,1fr)}.step-card,.feature,.plan{background:var(--card);border:1px solid var(--edge);border-radius:16px;padding:22px}.step-card h3,.feature h3{margin:10px 0 8px;font-size:1.08rem}.step-card p,.feature p{color:var(--ink-2);margin:0;font-size:.95rem;line-height:1.55}.feature h3{margin-top:0}.step-n{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.curriculum{flex-direction:column;gap:8px;display:flex}.unit-acc{background:var(--card);border:1px solid var(--edge);border-radius:14px}.unit-acc summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;list-style:none;display:flex}.unit-acc summary::-webkit-details-marker{display:none}.unit-acc summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:1.3rem;line-height:1}.unit-acc[open] summary:after{content:"–"}.unit-acc summary .muted{font-size:.85rem}.acc-body{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px 24px;padding:0 18px 18px;display:grid}.acc-module h4{color:var(--gold-2);margin:4px 0 6px;font-size:.95rem}.acc-module ol{color:var(--ink-2);margin:0;padding-left:20px;font-size:.9rem;line-height:1.7}.plans{align-items:stretch}.plan{flex-direction:column;display:flex;position:relative}.plan.featured{box-shadow:0 0 0 1px #8b7cff40, var(--shadow);border-color:#8b7cff99}.plan-badge{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800;position:absolute;top:-12px;left:22px}.plan h3{margin:0;font-size:1.15rem}.plan-price{color:#fff8ea;margin:10px 0 2px;font-size:1.9rem;font-weight:800}.plan p{margin:0 0 14px}.plan ul{flex-direction:column;flex:1;gap:9px;margin:0 0 18px;padding:0;list-style:none;display:flex}.plan li{color:var(--ink-2);padding-left:24px;font-size:.95rem;position:relative}.plan li:before{content:"✓";color:var(--ok);font-weight:800;position:absolute;left:0}.plan .btn.big{margin-top:auto}.faq{flex-direction:column;gap:8px;max-width:860px;display:flex}.faq-item{background:var(--card);border:1px solid var(--edge);border-radius:12px;padding:0 18px}.faq-item summary{cursor:pointer;padding:16px 0;font-weight:600}.faq-item p{color:var(--ink-2);margin:0 0 16px;line-height:1.6}.contact{padding-bottom:72px}.contact-card{background:linear-gradient(110deg,#8b7cff29,#5ef2ff0f);border:1px solid #8b7cff66;border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;max-width:1148px;display:flex;padding:34px 36px!important}.contact-card h2{margin:0 0 6px}.contact-card p{margin:0}.contact-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.contact-email{color:var(--gold-2);font-weight:600}.site-foot .disclaimer{flex-basis:100%;font-size:.78rem}@media (width<=980px){.hero-split{grid-template-columns:1fr}.card-grid.four{grid-template-columns:repeat(2,1fr)}.card-grid.three{grid-template-columns:1fr}.fact-row{grid-template-columns:repeat(2,1fr)}.site-nav{display:none}}@media (width<=560px){.card-grid.four{grid-template-columns:1fr}.site-hero{padding-top:36px}.contact-card{padding:22px!important}.contact-actions,.contact-actions .btn{width:100%}}.teacher-login-wrap{background:linear-gradient(0deg, #080b10e6, #080b10b8), url(/img/hero.jpg) center / cover no-repeat, var(--bg-0);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.teacher-login{width:min(440px,100%);margin:0}.teacher-login h1{margin:18px 0 4px;font-size:1.6rem}.teacher-login .row{margin-top:6px}.teacher-login-foot{border-top:1px solid var(--edge);justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;font-size:.85rem;display:flex}.teacher-login-foot a{color:var(--gold-2)}.teacher-head h1{margin:8px 0 0}.touch-ui{z-index:30;pointer-events:none;-webkit-user-select:none;user-select:none;height:0;position:fixed;inset:auto 0 0}.stick-zone{pointer-events:auto;touch-action:none;width:46vw;max-width:320px;height:240px;position:fixed;bottom:0;left:0}.stick-base{left:calc(24px + env(safe-area-inset-left));bottom:calc(28px + env(safe-area-inset-bottom));background:#0a0e1459;border:2px solid #ffffff47;border-radius:50%;place-items:center;width:130px;height:130px;transition:background .15s;display:grid;position:absolute}.stick-base.active{background:#0a0e1480;border-color:#f3d27ab3}.stick-knob{background:radial-gradient(circle at 40% 35%,#fff3cf,#8b7cff 60%,#a8781f);border-radius:50%;width:58px;height:58px;box-shadow:0 4px 14px #0006}.touch-buttons{right:calc(18px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;grid-template-columns:auto auto;grid-template-areas:"journal use""jump use";align-items:end;gap:12px;display:grid;position:fixed}.touch-btn{font:inherit;color:#fff;touch-action:none;background:#0a0e1480;border:2px solid #ffffff59;border-radius:50%;width:66px;height:66px;padding:4px;font-size:.78rem;font-weight:700;line-height:1.1}.touch-btn.down{background:#8b7cff59;transform:scale(.94)}.touch-btn.use{grid-area:use;width:92px;height:92px;font-size:.85rem}.touch-btn.use.ready{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-color:#b3a8ff;animation:1.4s ease-in-out infinite use-pulse}.touch-btn.jump{grid-area:jump}.touch-btn.journal{grid-area:journal;width:54px;height:54px;font-size:.68rem}@keyframes use-pulse{50%{box-shadow:0 0 0 8px #8b7cff40}}body.touch .hud-help,body.touch .hud-prompt{display:none!important}@media (prefers-reduced-motion:reduce){.touch-btn.use.ready{animation:none}}@media (width<=760px),(height<=520px){.hud-objective{font-size:.82rem;width:min(260px,100vw - 150px)!important;padding:8px 10px!important;top:8px!important;left:8px!important}.hud-objective .obj-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.hud-topright{flex-wrap:wrap;justify-content:flex-end;max-width:46vw;gap:6px!important;top:8px!important;right:8px!important}.hud-menu{padding:6px 10px!important;font-size:.75rem!important}.hud-formula{display:none!important}.hud-newt{font-size:.85rem;max-width:min(360px,70vw)!important;top:70px!important;bottom:auto!important}.side-wrap{padding:6px}.side-wrap .modal{width:min(420px,100vw - 12px)}.modal{max-height:calc(100dvh - 12px)}.modal-head{padding:10px 14px 8px}.modal-head h2{font-size:1.05rem}.modal-head .sub{font-size:.8rem}.modal-body{padding:10px 14px 14px;font-size:.92rem}.dialogue{padding:12px 16px!important;bottom:8px!important}.dlg-text{min-height:0!important;font-size:.95rem!important}}@media (width<=900px){body:has(.side-wrap) .hud-topright{opacity:0;pointer-events:none}}.hero-note{margin-top:14px}.quickstart{background:#5ef2ff0d;border:1px solid #5ef2ff38;border-radius:16px;margin-top:18px;padding:22px 24px}.quickstart h3{margin:0 0 10px}.quickstart ol{color:var(--ink-2);margin:0;padding-left:22px;line-height:1.9}.quickstart a{color:var(--gold-2)}.policy{max-width:760px;color:var(--ink-2);padding-top:40px;padding-bottom:60px;line-height:1.65}.policy h1{color:#fff8ea;margin:0 0 4px;font-size:2.2rem}.policy-sec h2{color:#fff8ea;margin:30px 0 8px;font-size:1.2rem}.policy a{color:var(--gold-2)}.policy ul{padding-left:22px}.section-lede{max-width:760px;color:var(--muted);margin:-4px 0 22px;font-size:1.05rem;line-height:1.6}.shot-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.shot-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:14px;margin:0;transition:transform .2s,border-color .2s;overflow:hidden}.shot-card:hover{border-color:#e9c25a73;transform:translateY(-3px)}.shot-card img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.shot-card figcaption{gap:4px;padding:12px 14px 15px;display:grid}.shot-card figcaption b{color:#fff8ea}.shot-card figcaption span{color:var(--muted);font-size:.92rem;line-height:1.5}@media (width<=960px){.shot-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.shot-grid{grid-template-columns:1fr}}.btn.google{color:#1f1f1f;background:#fff;border-color:#dadce0;justify-content:center;align-items:center;gap:10px;font-weight:600;display:inline-flex}.btn.google:hover{background:#f3f4f6;border-color:#c6c9ce}.g-mark{display:inline-flex}.own-lede{color:var(--ink-2);margin:4px 0 12px;line-height:1.5}.plan-banner{color:var(--ink-2);background:#8b7cff14;border:1px solid #8b7cff59;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.plan-banner b{color:var(--gold-2)}.continue-card.unlock-card{border-color:#8b7cff73}.btn.lock-btn{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.btn.lock-btn:hover{color:var(--gold-2)}.unlock-list{color:var(--ink-2);margin:8px 0 16px;padding-left:20px;line-height:1.7}.modal.unlock .modal-body>.btn{margin-top:8px}.modal.unlock .btn.big{text-align:center;text-decoration:none;display:block}.link-btn{color:var(--gold-2);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.row.spread{justify-content:space-between;align-items:center}.teacher-login .row.spread .btn.big{width:auto;margin-top:0}.auth-alt{border-top:1px solid var(--edge);margin-top:18px;padding-top:14px}.auth-alt p{margin:0 0 6px}.auth-alt a{color:var(--gold-2)}.licence-strip{background:#57c47814;border:1px solid #57c47859;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 4px;padding:10px 14px;display:flex}.licence-strip b{color:#8fe0a6}.licence-strip.expired{background:#ff7a6b14;border-color:#ff7a6b66}.licence-strip.expired b{color:var(--bad)}.class-tools{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px;display:flex}.class-tools .spacer{flex:1}.sign-in-help{margin:6px 0 0}.modal.teacher-modal{width:min(460px,100%)}.modal.teacher-modal.wide{width:min(640px,100%)}.modal.teacher-modal .tabs{justify-content:flex-start;margin-bottom:12px}.modal.teacher-modal .row .name-input{flex:1}textarea.bulk{resize:vertical;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;line-height:1.5}.logins-wrap{border:1px solid var(--edge);border-radius:10px;max-height:46vh;margin:10px 0;overflow:auto}.logins-wrap table{width:100%;margin:0}.notice{color:var(--ink-2);background:#8b7cff1a;border:1px solid #8b7cff59;border-radius:10px;padding:10px 12px}.lesson-pick{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 14px;display:flex}.lesson-pick label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.lesson-select{background:var(--card-2);min-width:min(420px,100%);color:var(--text);border:1px solid var(--edge-2);font:inherit;border-radius:10px;padding:10px 12px}.lesson-select:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.plan-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:16px;margin-top:22px;display:grid}.plan-card{background:var(--card);border:1px solid var(--edge-2);border-radius:16px;flex-direction:column;padding:24px 22px 22px;display:flex;position:relative}.plan-card.featured{box-shadow:0 0 0 1px #8b7cff40, var(--shadow);background:linear-gradient(180deg, #8b7cff14, transparent 45%), var(--card);border-color:#8b7cff99}.plan-badge{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff);border-radius:999px;width:max-content;padding:3px 10px;font-size:.75rem;font-weight:700;position:absolute;top:-12px;left:auto;right:18px}.plan-who{letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2);font-size:.75rem;font-weight:700}.plan-card h3{margin:6px 0 10px;font-size:1.35rem}.plan-price{border-bottom:1px solid var(--edge);min-height:74px;padding-bottom:14px}.plan-amount{align-items:baseline;gap:6px;display:flex}.plan-amount b{font-size:2.2rem;line-height:1.1}.plan-amount span{color:var(--muted);font-size:.95rem;font-weight:500}.plan-note{color:var(--muted);margin-top:4px;font-size:.88rem}.billing-toggle{background:var(--card);border:1px solid var(--edge-2);border-radius:999px;gap:4px;margin-top:18px;padding:4px;display:inline-flex}.billing-toggle button{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 14px;font-size:.9rem;font-weight:600}.billing-toggle button.on{color:#fff;background:linear-gradient(135deg,#8b7cff,#4fa8ff)}.billing-toggle button:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.plans-foot{margin-top:14px}.plans-foot a{color:var(--gold-2)}.plan-list{flex:1;margin:14px 0 18px;padding:0;list-style:none}.plan-list li{color:var(--ink-2);padding:5px 0 5px 24px;line-height:1.45;position:relative}.plan-list li:before{content:"";border-left:2px solid var(--gold-2);border-bottom:2px solid var(--gold-2);width:10px;height:5px;position:absolute;top:11px;left:2px;transform:rotate(-45deg)}.plan-card .btn.big{text-align:center;margin-top:0;text-decoration:none;display:block}.signin-ways{background:var(--card);border:1px solid var(--edge);border-radius:16px;margin-top:28px;padding:22px}.signin-ways h3{margin:0 0 14px}.signin-way-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.signin-way{align-items:flex-start;gap:12px;display:flex}.signin-icon{background:#8b7cff1f;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:1.2rem;display:grid}.signin-way p{color:var(--ink-2);margin:4px 0 0;font-size:.92rem;line-height:1.45}.signin-way-cta{margin-top:16px}@media (width<=900px){.plan-grid,.signin-way-grid{grid-template-columns:1fr}}@media (width<=600px){#site .topbar{position:relative}#site .topbar-actions .btn{padding:7px 11px;font-size:.85rem}}.unlock-prices{flex-wrap:wrap;gap:10px;margin:0 0 6px;display:flex}.unlock-prices>div{min-width:150px;color:var(--ink-2);background:#8b7cff14;border:1px solid #8b7cff4d;border-radius:10px;flex:1;padding:10px 12px}.unlock-prices b{color:var(--gold-2);font-size:1.3rem}.field.hidden{display:none}.class-owner{opacity:.7;font-weight:500}.role-chip{border:1px solid var(--edge-2);color:var(--ink-2);background:#ffffff0f;border-radius:999px;padding:2px 9px;font-size:.78rem;font-weight:700;display:inline-block}.role-chip.admin{color:var(--gold-2);background:#8b7cff26;border-color:#8b7cff80}.school-table td{vertical-align:middle}.row-actions{white-space:nowrap;text-align:right}.row-actions .btn+.btn{margin-left:6px}.school-sub{margin:18px 0 4px;font-size:1.05rem}.invites{flex-direction:column;gap:8px;margin-top:12px;display:flex}.invite-row{background:var(--card-2);border:1px solid var(--edge);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.invite-row .spacer,.school-foot .spacer{flex:1}.school-foot{border-top:1px solid var(--edge);margin-top:16px;padding-top:12px}.notice.small{margin:8px 0 0;padding:8px 12px;font-size:.88rem}.dash-hello,.course-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.course-pick{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.course-pick-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.course-pick.fixed b{color:var(--gold-2)}.course-select{background:var(--card-2);color:var(--text);border:1px solid var(--edge-2);font:inherit;border-radius:10px;max-width:100%;padding:9px 12px}.course-select.small{padding:6px 10px;font-size:.88rem}.course-select:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.course-tabs{flex-wrap:wrap;justify-content:flex-start;margin:6px 0 14px}.site-section p a{color:var(--gold-2)}.modal.exam{width:min(560px,100%)}.exam-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.exam-num-row{align-items:center;margin:8px 0}.exam-num{max-width:200px}.exam-review{max-height:30vh;margin:10px 0;overflow:auto}.exam-review p{margin:8px 0 0}.exam-score{color:var(--muted)}.exam-score.ok{color:#8fe0a6}.module-test{color:var(--ink-2);background:#8b7cff14;border:1px solid #8b7cff59;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;font-size:.9rem;display:flex}.module-test.passed{color:#8fe0a6;background:#57c47814;border-color:#57c47866}.where-card{background:#8b7cff14;border:1px solid #8b7cff59;border-radius:10px;margin:10px 0;padding:10px 12px;line-height:1.5}.library-offer .row{flex-wrap:wrap}.brand-wrap{align-items:center;gap:10px;display:inline-flex}.by-classwins{color:var(--muted);border:1px solid var(--edge);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:600;text-decoration:none}.by-classwins:hover{color:var(--text)}.bundle-note{margin-top:6px}@media (width<=640px){.by-classwins{display:none}}:root{--accent:#8b7cff;--accent-2:#4fa8ff;--accent-grad:linear-gradient(135deg, #8b7cff 0%, #5b8cff 55%, #4fa8ff 100%);--glow:0 10px 30px -8px #7c6cff8c;--radius:14px;--ease:cubic-bezier(.2, .7, .2, 1)}body.site-page,.landing,.app-screen,.teacher-page{background-color:#0a0c11;background-image:radial-gradient(900px 520px at 12% -8%,#7c6cff29,#0000 60%),radial-gradient(800px 480px at 95% 4%,#4fa8ff1f,#0000 60%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}h1,h2,h3,.brand-name,.modal-head h2{font-family:var(--display);letter-spacing:-.02em}.brand-name{letter-spacing:.06em;background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}h1 em,.site-hero h1 em,.hero-copy h1 em{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.eyebrow{letter-spacing:.12em;font-weight:700}.topbar{-webkit-backdrop-filter:saturate(160%)blur(14px);background:#0a0c11a8;border-bottom:1px solid #ffffff0f}.btn{transition:transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), border-color .18s var(--ease);border-radius:12px}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--accent-grad);color:#fff;box-shadow:var(--glow);border-color:#0000}.btn.primary:hover{background:linear-gradient(135deg,#9d90ff 0%,#6f9bff 55%,#66b6ff 100%);box-shadow:0 14px 34px -8px #7c6cffb3}.btn.ghost,.btn:not(.primary):not(.danger):not(.google){background:#ffffff0a;border-color:#ffffff1f}.btn.ghost:hover,.btn:not(.primary):not(.danger):not(.google):hover{background:#ffffff14;border-color:#8b7cff8c}.btn:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-card,.stat-tile,.module-card,.plan-card,.feature,.step-card,.shot-card,.signin-card,.continue-card,.unit-acc,.faq-item{transition:transform .22s var(--ease), border-color .22s var(--ease), box-shadow .22s var(--ease);border-color:#ffffff14;border-radius:18px}.stat-tile:hover,.module-card:hover,.plan-card:hover,.feature:hover,.step-card:hover,.shot-card:hover{border-color:#8b7cff66;transform:translateY(-3px);box-shadow:0 18px 40px -20px #000000b3,0 0 0 1px #8b7cff1f}.stat-value,.fact b,.plan-amount b{background:linear-gradient(135deg,#fff,#c8c0ff);color:#0000;-webkit-background-clip:text;background-clip:text}.name-input,.course-select,.lesson-select,textarea.bulk{transition:border-color .18s var(--ease), box-shadow .18s var(--ease);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:12px}.name-input:focus,.course-select:focus,.lesson-select:focus,textarea.bulk:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px #8b7cff2e}.tabs button,.chip,.nav-tab,.seg-btn{transition:background .18s var(--ease), color .18s var(--ease);border-radius:999px}.tabs button.on,.nav-tab.on,.chip:hover{color:#d9d3ff;background:#8b7cff29;border-color:#8b7cff73}.pbar span,.prog span{border-radius:999px;background:var(--accent-grad)!important}.modal{-webkit-backdrop-filter:blur(18px);background:#101219f0;border:1px solid #ffffff1a;border-radius:20px;box-shadow:0 30px 80px -20px #000c}.backdrop{-webkit-backdrop-filter:blur(4px);background:#06080c8c}.choice-btn{transition:transform .15s var(--ease), border-color .15s var(--ease), background .15s var(--ease);border-radius:12px}.choice-btn:hover{border-color:#8b7cff8c;transform:translateY(-1px)}.hud .objective,.hud-chip,.hud .chip,.hud button{-webkit-backdrop-filter:blur(10px)}@media (prefers-reduced-motion:no-preference){.site-section,.dash,.course,.signin-card{animation:rise .5s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
