
:root{--bg:#0b1728;--panel:#14243a;--line:#2a3b50;--muted:#a5b5c9;--orange:#ffad66;--blue:#79cfff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f3f6fa;font:16px system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:20px}.brand{font-size:24px;font-weight:750;letter-spacing:-1px}.brand span{color:var(--orange)}.badge{font-size:12px;letter-spacing:2px;color:var(--muted)}main{max-width:1220px;margin:auto;padding:42px 30px}h1{font-size:clamp(34px,5vw,58px);letter-spacing:-2px;line-height:1.08;margin:14px 0 20px}p{line-height:1.65;color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--orange);font-weight:700}.intro{max-width:620px}.tabs{display:flex;gap:10px;margin:30px 0;flex-wrap:wrap}button{border:1px solid var(--line);background:var(--panel);color:inherit;border-radius:12px;padding:13px 19px}button.active,button.primary{background:var(--orange);color:#182331;border-color:var(--orange);font-weight:700}button:hover{filter:brightness(1.12)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.card{border:1px solid var(--line);background:var(--panel);border-radius:22px;padding:26px;text-align:left}.card h2{font-size:25px;margin:13px 0}.card svg{height:160px;width:100%;background:#0e1d30;border-radius:14px}.card .link{color:var(--orange);font-weight:650}.lesson{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:22px}.stage{background:#edf2f4;border-radius:22px;color:#172b40;padding:24px;overflow:hidden}.stagehead{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1px;color:#526478}.stage button{color:#20364b;background:transparent;border-color:#b5c4cc;padding:8px 12px;font-size:13px}.stage svg{width:100%;height:auto;display:block}.controls{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:27px}h2{margin:0 0 12px;font-size:25px}.field{margin:28px 0}.field label{display:flex;justify-content:space-between;gap:10px}.field output{color:var(--orange);font-weight:750}input[type=range]{width:100%;accent-color:var(--orange);margin:18px 0 0}.result{border-top:1px solid var(--line);padding-top:20px}.big{font-size:46px;letter-spacing:-2px;font-weight:750}.unit{font-size:20px;color:var(--muted)}.insight{border-left:3px solid var(--orange);padding:2px 18px;margin:24px 0;color:#d9e4ed;line-height:1.65}.below{margin-top:22px;background:var(--panel);padding:24px;border-radius:18px;border:1px solid var(--line)}summary{cursor:pointer;font-weight:650}details p{margin-bottom:0}.formula{font-size:23px;line-height:1.7;margin-top:18px;color:#fff}.small{font-size:13px;color:var(--muted)}.hidden{display:none!important}.flow{stroke-dasharray:8 13;animation:flow 2s linear infinite}.heat{animation:rise 2.5s ease-in-out infinite}.heat:nth-child(2){animation-delay:.7s}.heat:nth-child(3){animation-delay:1.4s}.paused *{animation-play-state:paused!important}@keyframes flow{to{stroke-dashoffset:-84}}@keyframes rise{0%{transform:translateY(12px);opacity:.15}50%{opacity:1}100%{transform:translateY(-15px);opacity:.15}}footer{border-top:1px solid var(--line);padding:25px 5%;font-size:12px;color:var(--muted);margin-top:45px}a{color:inherit}button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:4px}@media(max-width:760px){main{padding:25px 18px}.lesson,.cards{grid-template-columns:1fr}header{padding:0 20px;height:72px}.badge{font-size:10px}.big{font-size:40px}.stage{padding:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}

.number-wrap{display:inline-flex;align-items:center;gap:6px;color:var(--orange);white-space:nowrap}.number-value{width:110px;max-width:28vw;background:#0e1d30;border:1px solid #566379;border-bottom:2px solid var(--orange);border-radius:7px;color:var(--orange);padding:6px 8px;font-weight:750;text-align:right;min-width:0}.number-value[aria-invalid=true]{border-color:#ff7777}.number-hint{font-size:12px;margin:10px 0 20px}.field label{align-items:center;flex-wrap:wrap}.big{overflow-wrap:anywhere}.controls,.stage{min-width:0}

.catalogue{margin:0 0 24px}.pickers{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}.pickers label,#basisControls label{display:block;font-size:13px;color:var(--muted);margin-bottom:9px}select,input[type=search]{width:100%;background:#0e1d30;border:1px solid #42546a;border-radius:10px;color:#f3f6fa;padding:13px;font:inherit}select option{background:#14243a}.preset-info{margin:20px 0;line-height:1.65;color:#c6d3e0}.preset-info strong{color:white}.preset-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.status-pill{color:var(--orange);font-size:13px;margin-right:auto}.balance-summary{margin-top:16px;padding:14px;background:#dae4e9;border-radius:10px;line-height:1.6;font-size:14px;overflow-wrap:anywhere}.formula{overflow-wrap:anywhere}.catalogue p{max-width:950px}#basisControls{margin-top:18px}@media(max-width:760px){.pickers{grid-template-columns:1fr}.stage svg{min-height:200px}}

.navlink{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:13px 19px;text-decoration:none}.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}

.cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.cards{grid-template-columns:1fr}}

/* One level back, without cross-subject navigation. */
.back-arrow{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 0 26px;padding:0;border:1px solid #40556c;border-radius:50%;background:#14243a;color:#ffad66;text-decoration:none;font-size:27px;font-weight:400;line-height:1;transition:border-color .15s,background .15s}.back-arrow:hover{background:#20374b;border-color:#ffad66}.back-arrow:focus-visible{outline:3px solid #79cfff;outline-offset:4px}.back-arrow.active{background:#14243a;color:#ffad66;border-color:#40556c;font-weight:400}@media(prefers-reduced-motion:reduce){.back-arrow{transition:none}}

@media(max-width:650px){header .brand{font-size:20px;letter-spacing:-.8px;white-space:nowrap}header>.badge{display:none}}
