:root{--bg:#0d0221;--panel:#160436;--panel-2:#1b0640;--line:#3d1f6b;--line-2:#5a3a8c;--fg:#f3e9ff;--muted:#c9b8e8;--dim:#8f7fb5;--pink:#ff2a6d;--cyan:#05d9e8;--gold:#f9c80e;--green:#3ddc84;--red:#ff4d6d;--font-ui:"Space Grotesk",system-ui,sans-serif;--font-display:"Audiowide","Space Grotesk",system-ui,sans-serif;--font-neon:"Monoton","Audiowide",cursive;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body,html{background:var(--bg)}body{color:var(--fg);font-family:var(--font-ui);font-size:16px;line-height:1.5;margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--cyan)}a:hover{color:#7ff4fb}main{flex:1 1;width:100%;max-width:1120px;margin:0 auto;padding:24px 16px 56px}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.15;margin:0;text-wrap:balance}h1{font-size:clamp(28px,5vw,42px)}h2{font-size:clamp(22px,3.4vw,28px)}h3{font-size:18px}p{margin:0}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.top{max-width:1120px;margin:0 auto;width:100%;padding:18px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.brand{text-decoration:none;display:inline-flex;align-items:baseline;gap:2px}.brand .econ{font-family:var(--font-display);font-size:24px;background:linear-gradient(180deg,#fff,#b8c6db 48%,#5b6b85 52%,#e3ecf7);-webkit-background-clip:text;background-clip:text;color:transparent}.brand .rizz{font-family:var(--font-neon);font-size:26px;color:#ffe3f1;text-shadow:0 0 4px #fff,0 0 10px var(--pink),0 0 22px var(--pink)}.nav{display:flex;flex-wrap:wrap;align-items:center;gap:20px;font-size:15px}.nav a{color:var(--muted);text-decoration:none}.nav a:hover{color:var(--fg)}.foot{border-top:1px solid var(--line);color:var(--dim);font-size:13px}.foot div{max-width:1120px;margin:0 auto;padding:18px 16px 28px;display:flex;flex-direction:column;gap:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 15px/1 var(--font-ui);border-radius:6px;padding:12px 18px;min-height:44px;cursor:pointer;text-decoration:none;border:1px solid transparent}.btn.primary{background:var(--pink);color:#1a0010;box-shadow:0 0 18px rgba(255,42,109,.45)}.btn.primary:hover{color:#1a0010;filter:brightness(1.08)}.btn.cyan{background:var(--bg);color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 14px rgba(5,217,232,.3)}.btn.ghost{background:transparent;color:var(--muted);border-color:var(--line-2)}.btn:disabled{opacity:.5;cursor:default}.btn.small{min-height:36px;padding:8px 12px;font-size:14px}input,select,textarea{font:16px var(--font-ui);color:var(--fg);background:var(--panel);border:1px solid var(--line-2);border-radius:6px;padding:11px 12px;width:100%}textarea{min-height:140px;resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.stack{flex-direction:column;gap:16px}.row,.stack{display:flex}.row{flex-wrap:wrap;gap:10px;align-items:center}.muted{color:var(--muted)}.dim{color:var(--dim)}.dim,.err{font-size:14px}.err{color:var(--red)}.ok{color:var(--green);font-size:14px}.pill{display:inline-block;font:600 12px/1 var(--font-ui);color:var(--gold);border:1px solid #5a4a1a;border-radius:4px;padding:5px 7px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));grid-gap:16px;gap:16px}.hero{position:relative;text-align:center;padding:24px 0 10px;overflow:hidden}.hero .spacer{height:150px}.sun{left:50%;top:96px;width:340px;height:340px;margin-left:-170px;border-radius:50%;background:linear-gradient(180deg,#f9c80e,#ff8e3c 40%,#ff2a6d 75%);opacity:.8;box-shadow:0 0 120px rgba(255,42,109,.45);z-index:0}.sun,.sun i{position:absolute}.sun i{left:0;right:0;background:var(--bg)}.hero>:not(.sun){position:relative;z-index:1}.hero .badge{display:inline-block;border:1px solid var(--cyan);color:var(--cyan);font-size:14px;padding:6px 14px;border-radius:100px;margin-bottom:24px;box-shadow:0 0 12px rgba(5,217,232,.35)}.bigbrand{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:20px}.bigbrand .econ{font-family:var(--font-display);font-size:clamp(60px,13vw,112px);line-height:1;background:linear-gradient(180deg,#fff,#c7d3e6 46%,#4a5874 50%,#8fa1bd 70%,#eef4fb);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 #2a0845)}.bigbrand .rizz{font-family:var(--font-neon);font-size:clamp(66px,15vw,128px);line-height:1;color:#ffe3f1;text-shadow:0 0 6px #fff,0 0 16px var(--pink),0 0 34px var(--pink),0 0 70px var(--pink);animation:flicker 2.4s ease-out .4s 1 both}@keyframes flicker{0%,12%,30%,34%,8%,to{opacity:1}10%{opacity:.25}32%{opacity:.5}}@media (prefers-reduced-motion:reduce){.bigbrand .rizz{animation:none}}.hero h1{color:#fff;text-shadow:0 2px 0 #2a0845;max-width:760px;margin:0 auto 14px;font-size:clamp(24px,4vw,36px)}.hero p.lede{max-width:640px;margin:0 auto 28px;font-size:18px;color:#e4d6fb;text-shadow:0 1px 8px var(--bg)}.features{margin-top:48px}.feature h3{color:var(--cyan);margin-bottom:8px}.units{display:flex;flex-direction:column;gap:14px}.unit h3{margin-bottom:10px}.topic{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;grid-gap:12px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.topic:first-of-type{border-top:0}.topic .name{font-weight:500}.topic .code{color:var(--gold);font-weight:700;margin-right:6px}@media (max-width:640px){.topic{grid-template-columns:minmax(0,1fr) auto}.topic .bar{grid-column:1/-1}}.bar{height:10px;background:#241046;border-radius:99px;overflow:hidden;display:flex}.bar i{display:block;height:100%}.bar .m{background:var(--green)}.bar .p{background:var(--gold)}.bar .l{background:var(--pink);opacity:.7}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:var(--c)}.player{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.player.wide{grid-template-columns:minmax(0,1fr)}@media (max-width:860px){.player{grid-template-columns:minmax(0,1fr)}}.qtext{font-size:18px;font-weight:500;white-space:pre-line}.choices{display:flex;flex-direction:column;gap:10px}.choice{text-align:left;font:16px/1.4 var(--font-ui);color:var(--fg);background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;padding:12px 14px;cursor:pointer;display:flex;gap:12px;align-items:flex-start;min-height:48px}.choice b{color:var(--muted);min-width:1.2em}.choice.sel,.choice:hover:not(:disabled){border-color:var(--cyan)}.choice.sel{box-shadow:0 0 0 1px var(--cyan) inset}.choice.right{border-color:var(--green);background:rgba(61,220,132,.12)}.choice.wrong{border-color:var(--red);background:rgba(255,77,109,.12)}.choice:disabled{cursor:default}.fb{border-radius:8px;padding:12px 14px;border:1px solid var(--line-2);background:var(--panel-2);display:flex;flex-direction:column;gap:6px;white-space:pre-line}.fb.good{border-color:var(--green)}.fb.bad{border-color:var(--red)}.fb strong{font-size:16px}.graph-host{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:6px;touch-action:none}.graph-host svg{width:100%;height:auto;display:block}.graph-host .hit{cursor:-webkit-grab;cursor:grab}.graphs{display:flex;flex-direction:column;gap:10px}.graphs.multi{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.rolelabel{font-size:13px;color:var(--dim)}.progress{display:flex;gap:4px}.progress i{flex:1 1;height:6px;border-radius:3px;background:#241046}.progress i.r{background:var(--green)}.progress i.w{background:var(--red)}.progress i.c{background:var(--cyan)}.progress i.s{background:var(--gold)}.model{white-space:pre-line;background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;padding:12px 14px}table.eg-table{border-collapse:collapse;width:100%;font-size:15px}table.eg-table caption{text-align:left;color:var(--muted);padding-bottom:6px}table.eg-table td,table.eg-table th{border:1px solid var(--line-2);padding:6px 8px;text-align:center}table.eg-table thead th{background:var(--panel-2)}table.eg-table .blank{color:var(--gold)}.tbl{overflow-x:auto}.roster{width:100%;border-collapse:collapse;font-size:14px}.roster td,.roster th{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left;vertical-align:middle}.roster th{color:var(--muted);font-weight:600}.roster td.num{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.scroll{overflow-x:auto}.code-big{font-family:var(--font-display);font-size:22px;letter-spacing:3px;color:var(--cyan)}svg .ax{font:600 12px var(--font-ui);fill:var(--muted);letter-spacing:.02em}svg .tk{font:600 14px var(--font-ui);fill:var(--fg)}svg .tk.gh{fill:var(--dim)}svg .cl{font:700 14px var(--font-ui)}svg .ar{font:600 12px var(--font-ui);fill:var(--fg)}svg .ar.big{font:800 17px var(--font-ui)}svg .ttl{font:700 13px var(--font-ui);fill:var(--muted);letter-spacing:.08em;text-transform:uppercase}svg .glow{filter:drop-shadow(0 0 3px rgba(255,255,255,.22))}svg .hit{cursor:-webkit-grab;cursor:grab}svg .hit:active{cursor:-webkit-grabbing;cursor:grabbing}.status-strip{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--muted)}.status-strip b{color:var(--gold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.points-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.points-line b{color:var(--gold);font-size:17px;text-shadow:0 0 10px rgba(249,200,14,.45)}.bonus{font:700 13px/1 var(--font-ui);color:#1a0010;background:var(--cyan);border-radius:999px;padding:6px 10px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.stat b{display:block;font-family:var(--font-display);font-size:28px;color:var(--gold);font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:14px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{font:600 14px/1 var(--font-ui);color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:10px 14px;text-decoration:none}.tab[aria-current=page]{color:#1a0010;background:var(--cyan);border-color:var(--cyan)}.board{width:100%;border-collapse:collapse}.board td,.board th{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}.board td.num,.board th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.board tr.me td{background:rgba(5,217,232,.08);color:var(--fg);font-weight:700}.board .pos{width:48px;color:var(--gold);font-family:var(--font-display)}.reminder{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--pink);background:rgba(255,42,109,.1);border-radius:12px;padding:14px 16px;font-size:17px;box-shadow:0 0 18px rgba(255,42,109,.18)}.reminder.done{border-color:var(--green);background:rgba(61,220,132,.1);box-shadow:none}.lede{font-size:18px;color:#e4d6fb}.chip{display:inline-block;text-decoration:none;color:var(--muted);border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;font-size:14px}.chip.on{color:var(--bg);background:var(--cyan);border-color:var(--cyan);font-weight:700}.lessons{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.lesson-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--fg);background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px}.lesson-card:hover{border-color:var(--cyan);color:var(--fg)}.lesson-card .code{color:var(--gold);font-weight:700}.lesson-card.done{border-color:#2a7a52}.steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stepdot{width:28px;height:10px;border-radius:5px;border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;padding:0}.stepdot.past{background:#5a3a8c}.stepdot.on{background:var(--cyan);border-color:var(--cyan)}.lesson-step{gap:14px}.lesson-list,.lesson-step p{font-size:17px;line-height:1.6}.lesson-list{padding-left:22px}.lesson-fig,.lesson-list{margin:0;display:flex;flex-direction:column;gap:6px}.lesson-fig{max-width:760px}.cls-card{gap:12px}.cls-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}.mini-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.unit-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.unit-form select{width:auto}.fill-in{display:inline-flex;align-items:center;gap:2px;color:var(--dim)}.fill-in input{width:4.6em;padding:6px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fill td.cell-ok{background:rgba(61,220,132,.14)}.fill td.cell-ok input{border-color:var(--green)}.fill td.cell-no{background:rgba(255,77,109,.12)}.fill td.cell-no input{border-color:var(--red)}.good-text{color:var(--green);font-weight:600}.teacher-note{border:1px solid var(--gold);border-radius:10px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}