*{box-sizing:border-box}:root{--bg:#0b1020;--panel:#121a30;--panel-2:#18223d;--line:rgba(255,255,255,.105);--text:#f7f8ff;--muted:#aab3ca;--purple:#9a7cff;--mint:#5ee0bd;--coral:#ff806d;--gold:#ffd36a}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif}body{min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 78% -12%,rgba(139,104,255,.25),transparent 37%),radial-gradient(circle at -8% 88%,rgba(44,213,174,.13),transparent 31%),var(--bg)}button,input{font:inherit}.app-shell{width:100vw;height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px clamp(18px,2.4vw,34px) clamp(18px,2.4vw,30px);gap:16px}.topbar{height:67px;display:flex;align-items:center;gap:18px}.brand-lockup{display:flex;align-items:center;gap:12px;min-width:235px}.mark{width:47px;height:47px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#7458e9,#a775fa);font:800 25px Manrope,sans-serif;box-shadow:0 12px 30px rgba(112,81,223,.28)}.eyebrow,.step-label,.challenge-kicker{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:700;color:#b8a9ff}.brand-lockup h1{font:800 22px/1.1 Manrope,sans-serif;margin:3px 0 0;letter-spacing:-.03em}.equation-pill{margin-left:auto;display:flex;align-items:center;gap:14px;min-height:48px;padding:7px 17px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.045)}.equation-label{font-size:11px;color:var(--muted)}.equation-pill strong{font:800 20px Manrope,sans-serif;color:#fff;min-width:88px;text-align:center}.challenge-button,.next-button{border:0;color:#0d1221;font-weight:800;background:linear-gradient(135deg,#f9d578,#ffb76c);padding:13px 17px;border-radius:13px;cursor:pointer;box-shadow:0 10px 25px rgba(255,188,104,.16);transition:.2s transform,.2s filter}.challenge-button:hover,.next-button:hover{filter:brightness(1.06);transform:translateY(-2px)}.challenge-button:focus-visible,.next-button:focus-visible,.icon-button:focus-visible,.modal-close:focus-visible,.answer:focus-visible{outline:3px solid #fff;outline-offset:3px}.workspace{min-height:0;display:grid;grid-template-columns:minmax(285px,350px) minmax(0,1fr);gap:16px}.control-panel,.visual-panel{min-height:0;border:1px solid var(--line);border-radius:22px;background:linear-gradient(155deg,rgba(255,255,255,.065),rgba(255,255,255,.025));box-shadow:0 22px 60px rgba(0,0,0,.22)}.control-panel{padding:20px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.panel-heading,.visual-heading,.point-title,.gradient-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2,.visual-heading h2{font:800 20px/1.1 Manrope,sans-serif;letter-spacing:-.025em;margin:4px 0 0}.icon-button,.modal-close{border:1px solid var(--line);background:rgba(255,255,255,.055);color:#dfe3f2;width:36px;height:36px;border-radius:11px;cursor:pointer;font-size:20px}.intro{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.point-card{background:var(--panel-2);border:1px solid var(--line);border-radius:16px;padding:13px}.point-title{margin-bottom:10px}.point-title strong{margin-right:auto;font-size:13px}.point-title output{font:700 13px Manrope,sans-serif;color:#fff}.point-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 5px rgba(255,128,109,.13)}.point-b .point-dot{background:var(--mint);box-shadow:0 0 0 5px rgba(94,224,189,.12)}.slider-grid{display:grid;gap:9px}.slider-grid label{display:grid;grid-template-columns:79px 1fr 25px;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.slider-grid output{text-align:right;color:#fff;font-weight:700;font-size:12px}.slider-grid input{width:100%;height:20px;accent-color:var(--coral);cursor:pointer}.point-b input{accent-color:var(--mint)}.gradient-card{margin-top:auto;border-radius:17px;padding:15px;background:linear-gradient(135deg,rgba(139,104,255,.18),rgba(72,207,172,.1));border:1px solid rgba(173,151,255,.22)}.gradient-head span{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:700;color:#c4b8ff}.gradient-head strong{font:800 29px Manrope,sans-serif}.fraction-working{display:flex;align-items:center;gap:8px;margin:7px 0 5px;font-size:12px}.fraction-working .delta{display:flex;align-items:center;gap:5px;color:var(--muted)}.fraction-working b{font-size:15px}.rise-colour b{color:var(--gold)}.run-colour b{color:var(--mint)}.equals{color:#6f7892}.fraction-working>strong{font-size:17px}.gradient-card p{font-size:11px;line-height:1.4;color:var(--muted);margin:0}.tip{color:#7f8aa4;font-size:10px;margin:0}.visual-panel{padding:20px;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.visual-heading{padding:0 2px 12px}.toggle{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);cursor:pointer}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle span{width:36px;height:21px;border-radius:999px;background:#333d57;position:relative;transition:.2s}.toggle span:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;left:3px;top:3px;background:#fff;transition:.2s}.toggle input:checked+span{background:#745fe3}.toggle input:checked+span:after{transform:translateX(15px)}.toggle input:focus-visible+span{outline:3px solid #fff;outline-offset:3px}.graph-wrap{min-height:0;position:relative;display:grid;place-items:center}.graph-wrap svg{width:100%;height:100%;min-height:0;display:block}.plot-bg{fill:rgba(5,10,24,.64);stroke:rgba(255,255,255,.1)}.axis{stroke:rgba(255,255,255,.44);stroke-width:2}.grid-line{stroke:rgba(255,255,255,.075);stroke-width:1}.tick-text{fill:#78839d;font-size:13px;font-weight:600}.main-line{stroke:url(#lineGradient);stroke-width:6;stroke-linecap:round;filter:url(#shadow)}.guide-run{stroke:var(--mint);stroke-width:5;stroke-linecap:round;stroke-dasharray:10 8}.guide-rise{stroke:var(--gold);stroke-width:5;stroke-linecap:round;stroke-dasharray:10 8}.guide-label-bg{fill:#161f36;stroke:rgba(255,255,255,.12)}.guide-label{fill:#fff;font-size:15px;font-weight:700}.point-halo-a{fill:rgba(255,128,109,.18)}.point-halo-b{fill:rgba(94,224,189,.17)}.point-a-svg{fill:var(--coral);stroke:#fff;stroke-width:4}.point-b-svg{fill:var(--mint);stroke:#fff;stroke-width:4}.point-label{fill:#fff;font-size:14px;font-weight:800}.direction-badge{position:absolute;left:20px;bottom:18px;display:flex;align-items:center;gap:10px;background:rgba(12,18,35,.84);backdrop-filter:blur(8px);padding:9px 12px;border:1px solid var(--line);border-radius:13px;pointer-events:none}.trend-arrow{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#0f1627;font-weight:800;background:var(--mint)}.direction-badge b,.direction-badge small{display:block}.direction-badge b{font-size:11px}.direction-badge small{font-size:9px;color:var(--muted);margin-top:1px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(4,7,15,.72);backdrop-filter:blur(10px)}.modal-backdrop[hidden]{display:none}.challenge-card{width:min(430px,100%);position:relative;padding:29px;border:1px solid rgba(255,255,255,.15);border-radius:24px;background:linear-gradient(155deg,#1b2541,#10172a);box-shadow:0 30px 100px rgba(0,0,0,.52)}.modal-close{position:absolute;right:18px;top:18px}.challenge-card h2{font:800 29px/1.1 Manrope,sans-serif;margin:8px 45px 8px 0}.challenge-card>p{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 18px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer{min-height:58px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.055);color:#fff;font:800 18px Manrope,sans-serif;cursor:pointer;transition:.2s}.answer:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}.answer.correct{border-color:#5ee0bd;background:rgba(94,224,189,.16)}.answer.incorrect{border-color:#ff806d;background:rgba(255,128,109,.13)}.answer:disabled{cursor:default}.feedback{min-height:39px;margin:15px 0 0;font-size:13px;line-height:1.45;color:var(--muted)}.feedback strong{color:#fff}.next-button{width:100%;margin-top:3px}.next-button span{float:right}@media(max-width:780px){.app-shell{padding:10px;gap:9px}.topbar{height:53px;gap:9px}.mark{width:38px;height:38px;border-radius:11px;font-size:20px}.brand-lockup{min-width:0}.brand-lockup h1{font-size:17px}.eyebrow{font-size:8px}.equation-pill{margin-left:auto;min-height:40px;padding:5px 9px}.equation-label{display:none}.equation-pill strong{font-size:16px;min-width:63px}.challenge-button{padding:10px;font-size:0}.challenge-button span{font-size:18px}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(230px,40%) minmax(0,1fr);gap:9px}.control-panel,.visual-panel{border-radius:17px}.control-panel{padding:12px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr;gap:8px}.panel-heading{grid-column:1/-1}.panel-heading h2,.visual-heading h2{font-size:15px}.intro,.tip{display:none}.point-card{padding:9px;border-radius:12px}.point-title{margin-bottom:4px}.slider-grid{gap:2px}.slider-grid label{grid-template-columns:64px 1fr 18px;gap:4px}.slider-grid input{height:17px}.gradient-card{grid-column:1/-1;margin:0;padding:8px 11px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px}.gradient-head{justify-content:flex-start;gap:8px}.gradient-head strong{font-size:20px}.fraction-working{justify-content:flex-end;margin:0}.gradient-card p{grid-column:1/-1}.visual-panel{padding:10px}.visual-heading{padding:0 3px 5px}.graph-wrap svg{width:100%;height:100%}.direction-badge{left:10px;bottom:8px;padding:6px 8px}.trend-arrow{width:25px;height:25px}.direction-badge small{display:none}}@media(max-width:480px){.point-title strong{font-size:11px}.point-title output{font-size:11px}.slider-grid label span{font-size:8px}.fraction-working{gap:4px;font-size:10px}.fraction-working b{font-size:12px}.gradient-card p{font-size:9px}.challenge-card{padding:24px 19px}.challenge-card h2{font-size:24px}}@media(max-height:640px) and (min-width:781px){.app-shell{padding-top:9px;padding-bottom:9px;gap:8px}.topbar{height:52px}.control-panel,.visual-panel{padding:13px}.control-panel{gap:7px}.intro,.tip{display:none}.point-card{padding:9px}.gradient-card{padding:10px}.visual-heading{padding-bottom:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
