/* TrueHeading — soft theme. Light + dark, rounded type. */
:root{
  --bg:#f1f4f9;--bg2:#e8edf5;--panel:#ffffff;--ink:#27304a;--mute:#68738d;--line:#dce3ee;--map:#e9eff8;
  --acc:#5470d6;--acc-ink:#ffffff;--accs:rgba(84,112,214,.12);--ok:#2c9a74;--bad:#d4546a;--warn:#cf913a;
  --card:#2a3350;--cardink:#e8ecf8;
  --c-nav:#6a88ee;--c-met:#46b0c2;--c-reg:#ae8be8;--c-tec:#e2a05a;
  --sh1:0 1px 2px rgba(34,46,92,.05),0 10px 28px -14px rgba(34,46,92,.18);
  --sh2:0 2px 4px rgba(34,46,92,.06),0 18px 40px -16px rgba(34,46,92,.28);
  --glow1:rgba(106,136,238,.16);--glow2:rgba(174,139,232,.12);
  --r:20px;--r2:14px;--r3:10px;
  --f-body:"Nunito","Varela Round",ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold","Hiragino Maru Gothic ProN",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-disp:"Fredoka","Nunito","Varela Round",ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",system-ui,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#131926;--bg2:#182032;--panel:#1b2335;--ink:#e3e8f4;--mute:#8e9ab4;--line:#2a3550;--map:#10172a;
  --acc:#90a9f4;--acc-ink:#12182a;--accs:rgba(144,169,244,.14);--ok:#6ccaa3;--bad:#ee7e92;--warn:#ecb766;
  --card:#0e1423;--cardink:#e8ecf8;
  --c-nav:#8ba3f4;--c-met:#69c9d8;--c-reg:#c2a4f0;--c-tec:#f0b676;
  --sh1:0 1px 2px rgba(0,0,0,.25),0 10px 28px -14px rgba(0,0,0,.55);
  --sh2:0 2px 4px rgba(0,0,0,.3),0 18px 40px -16px rgba(0,0,0,.7);
  --glow1:rgba(144,169,244,.10);--glow2:rgba(194,164,240,.07);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
body{margin:0;color:var(--ink);font:16px/1.55 var(--f-body);background:var(--bg);min-height:100vh;
  background-image:radial-gradient(900px 500px at 8% -8%,var(--glow1),transparent 70%),radial-gradient(800px 480px at 100% 0%,var(--glow2),transparent 70%);
  background-repeat:no-repeat;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0)}
h1,h2,h3,h4{font-family:var(--f-disp);font-weight:500;letter-spacing:.1px;line-height:1.2;margin:0}
a{color:var(--acc)}
::selection{background:var(--accs)}
:focus-visible{outline:3px solid var(--accs);outline-offset:2px;border-radius:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
small,.mute{color:var(--mute)}

/* ---------- header ---------- */
.site-hdr{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0)}
.hdr-in{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:500 20px var(--f-disp);margin-right:10px;white-space:nowrap}
.brand svg{width:34px;height:34px;flex:none}
.brand b{font-weight:600}
.brand span{color:var(--mute);font-weight:400}
.nav{display:flex;gap:4px;align-items:center}
.nav>a,.nav>.dd>button{font:600 14.5px var(--f-body);color:var(--mute);text-decoration:none;padding:8px 14px;border-radius:99px;border:0;background:none;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap}
.nav>a:hover,.nav>.dd>button:hover{background:var(--accs);color:var(--ink)}
.nav>a.on,.nav>.dd.on>button{background:var(--accs);color:var(--ink)}
.dd{position:relative}
.dd-menu{display:none;position:absolute;left:0;top:calc(100% + 8px);background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh2);padding:8px;min-width:290px;z-index:60}
.dd.open .dd-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;width:min(620px,92vw);max-height:calc(100vh - 100px);overflow:auto}
.dd-h{font:700 11.5px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);padding:8px 10px 4px}
.dd-g{min-width:0}
.sim-grp{font:600 15px var(--f-body);color:var(--mute);margin:22px 2px 10px;letter-spacing:.01em}
.sim-grp:first-of-type{margin-top:0}
.dd-menu a{display:flex;gap:12px;align-items:center;padding:9px 10px;border-radius:12px;text-decoration:none;color:var(--ink)}
.dd-menu a:hover,.dd-menu a.on{background:var(--accs)}
.dd-menu .ic{width:34px;height:34px;border-radius:11px;background:var(--accs);display:grid;place-items:center;flex:none}
.dd-menu .ic svg{width:20px;height:20px}
.dd-menu b{display:block;font-weight:700;font-size:14.5px;line-height:1.2}
.dd-menu small{font-size:12.5px}
.hdr-r{margin-left:auto;display:flex;gap:8px;align-items:center}
.ibtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:var(--sh1)}
.ibtn:hover{border-color:var(--acc)}
.ibtn svg{width:20px;height:20px}
.sbtn{height:40px;border-radius:99px;border:1px solid var(--line);background:var(--panel);color:var(--mute);display:flex;align-items:center;gap:8px;padding:0 14px 0 12px;font:600 14px var(--f-body);cursor:pointer;box-shadow:var(--sh1)}
.sbtn:hover{border-color:var(--acc)}
.sbtn svg{width:18px;height:18px}
.sbtn kbd{font:600 11px var(--f-body);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--mute)}
.th-sun{display:none}:root[data-theme="dark"] .th-sun{display:block}:root[data-theme="dark"] .th-moon{display:none}
@media(max-width:900px){.brand span{display:none}.sbtn kbd,.sbtn .lbl{display:none}.sbtn{padding:0;width:40px;justify-content:center}}
@media(max-width:760px){.dd.open .dd-menu{grid-template-columns:1fr}.hdr-in{flex-wrap:wrap;padding:8px 14px}.nav{order:3;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.nav::-webkit-scrollbar{display:none}.dd-menu{position:fixed;left:14px;right:14px;top:112px;min-width:0}}

/* search overlay */
.ov{position:fixed;inset:0;background:rgba(18,24,42,.45);backdrop-filter:blur(4px);z-index:100;display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.ov.on{display:flex}
.ov-box{width:min(620px,100%);background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh2);overflow:hidden}
.ov-box input{width:100%;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:600 18px var(--f-body);padding:18px 22px;outline:none}
.ov-res{max-height:52vh;overflow:auto;padding:8px}
.ov-res a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 14px;border-radius:12px;color:var(--ink);text-decoration:none}
.ov-res a.sel,.ov-res a:hover{background:var(--accs)}
.ov-res small{white-space:nowrap}
.ov-h{font:700 12px var(--f-body);color:var(--mute);padding:10px 14px 4px;letter-spacing:.2px}

/* ---------- generic components ---------- */
.card,.box{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--sh1)}
.pg-t{padding:28px 0 8px}
.pg-t h1{font-size:clamp(26px,4vw,36px)}
.pg-t p{color:var(--mute);margin:6px 0 0;max-width:62ch}
.btn,button.go,a.go,.btnp{font:700 15px var(--f-body);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:99px;padding:11px 22px;cursor:pointer;text-decoration:none;border:1px solid var(--acc);background:var(--acc);color:var(--acc-ink);box-shadow:0 8px 20px -10px var(--acc);transition:transform .15s,box-shadow .15s}
.btn:hover,button.go:hover,a.go:hover{transform:translateY(-1px);box-shadow:0 12px 24px -10px var(--acc)}
.btn:disabled,button.go:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
.btn.soft,a.soft{background:var(--accs);color:var(--ink);border-color:transparent;box-shadow:none}
.btn.soft:hover{background:var(--panel);border-color:var(--acc)}
button{font:600 14.5px var(--f-body);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:7px 14px;cursor:pointer;transition:border-color .15s,background .15s}
button:hover{border-color:var(--acc)}
button:disabled{opacity:.5;cursor:default}
select,input[type=text],input[type=search],input[type=number]{font:600 14.5px var(--f-body);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;width:100%}
select:focus,input:focus{outline:3px solid var(--accs);border-color:var(--acc)}
input[type=range]{flex:1;accent-color:var(--acc);min-width:0}
input[type=checkbox],input[type=radio]{accent-color:var(--acc);width:17px;height:17px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;background:var(--accs);font:700 12.5px var(--f-body);color:var(--ink)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--c,var(--acc));display:inline-block}
.bar{height:8px;background:var(--bg2);border-radius:9px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--c,var(--ok));border-radius:9px;transition:width .4s}
.sec{margin:44px 0 0}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.sec-h h2{font-size:clamp(22px,3vw,28px)}
.sec-h p{margin:0;color:var(--mute)}
footer.ft{margin-top:64px;padding:28px 0 40px;border-top:1px solid var(--line);color:var(--mute);font-size:14px}
footer.ft .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- home ---------- */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;padding:44px 0 8px}
.hero h1{font-size:clamp(34px,5.4vw,56px);line-height:1.08;font-weight:500}
.hero h1 em{font-style:normal;color:var(--acc)}
.hero p.lead{font-size:18px;color:var(--mute);max-width:46ch;margin:16px 0 24px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-stats{display:flex;gap:26px;margin-top:30px;flex-wrap:wrap}
.hero-stats b{display:block;font:500 28px var(--f-disp)}
.hero-stats small{font-size:13px}
.stack{position:relative;height:330px;max-width:420px;margin:auto;width:100%}
.stack .fc-mini{position:absolute;inset:0;margin:auto;width:78%;height:78%}
.stack .fc-mini:nth-child(1){transform:rotate(-7deg) translate(-14%,6%);opacity:.9}
.stack .fc-mini:nth-child(2){transform:rotate(6deg) translate(14%,-4%);opacity:.95}
.stack .scene{position:absolute;inset:0;margin:auto;width:80%;height:80%;z-index:2;max-width:none}
.stack .fcard{min-height:0;height:100%}
.stack .face{padding:20px 22px}
@media(max-width:860px){.hero{grid-template-columns:1fr;padding-top:28px}.stack{height:300px}}
.subj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:980px){.subj-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.subj-grid{grid-template-columns:1fr}}
.subj{--c:var(--acc);position:relative;border-radius:24px;padding:20px;background:color-mix(in srgb,var(--c) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh1);transition:transform .2s,box-shadow .2s}
.subj:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.subj .sic{width:46px;height:46px;border-radius:15px;background:color-mix(in srgb,var(--c) 24%,var(--panel));display:grid;place-items:center}
.subj .sic svg{width:26px;height:26px}
.subj h3{font-size:22px}
.subj .meta{color:var(--mute);font-size:13.5px}
.subj .acts{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}
.subj .acts a{font:700 13.5px var(--f-body);text-decoration:none;padding:7px 14px;border-radius:99px;background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.subj .acts a:hover{border-color:var(--c)}
.subj .acts a.p{background:var(--c);border-color:var(--c);color:var(--acc-ink)}
.subj .bar{background:color-mix(in srgb,var(--c) 18%,var(--panel))}
.subj .bar i{background:var(--c)}
.band{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:820px){.band{grid-template-columns:1fr}}
.feat{border-radius:26px;padding:28px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--sh1);display:flex;flex-direction:column;gap:14px}
.feat.tint{background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 14%,var(--panel)),var(--panel))}
.feat h3{font-size:24px}
.feat ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.feat li{display:flex;gap:10px;align-items:flex-start;color:var(--mute)}
.feat li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);margin-top:9px;flex:none}
.sim-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.sim-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sim-grid{grid-template-columns:1fr}}
.sim{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:20px;background:var(--panel);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:var(--sh1);transition:transform .2s,border-color .2s}
.sim:hover{transform:translateY(-2px);border-color:var(--acc)}
.sim .ic{width:48px;height:48px;border-radius:16px;background:var(--accs);display:grid;place-items:center;flex:none}
.sim .ic svg{width:28px;height:28px}
.sim b{display:block;font:500 18px var(--f-disp)}
.sim small{display:block;line-height:1.4;margin-top:2px}

/* ---------- sim pages (legacy class support) ---------- */
.grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,390px);gap:18px;align-items:start;padding-bottom:10px}
@media(max-width:860px){.grid{grid-template-columns:minmax(0,1fr)}}
.grid>*{min-width:0}
.grid>.box{padding:16px}
#map,canvas{width:100%;display:block;border-radius:14px;background:var(--map)}
#map{aspect-ratio:4/3;max-height:88vh}
.hint{color:var(--mute);font-size:13px;margin:10px 2px 0;line-height:1.5}
.read{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 0}
.read div{background:var(--bg);border-radius:14px;padding:8px 8px;text-align:center}
.read b{display:block;font:500 18px var(--f-disp);font-variant-numeric:tabular-nums}
.read small{display:block;line-height:1.2;color:var(--mute);font-size:11.5px;font-weight:700;margin-bottom:2px}
.ctl{margin:12px 0}
.ctl label{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;color:var(--mute);margin-bottom:5px}
.ctl label output{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.row{display:flex;gap:8px;align-items:center}
.btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.zt{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px}
.zt button{width:36px;height:36px;padding:0;font-size:17px;background:var(--panel);border-radius:12px}
.zl{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--mute);pointer-events:none}
.pair{display:flex;gap:10px;flex-wrap:wrap}.pair svg{flex:1 1 260px;max-width:340px;margin:auto;display:block}
#alt,.ind{width:100%;max-width:340px;display:block;margin:0 auto}
.ctl label.ck{justify-content:flex-start;gap:8px;color:var(--ink)}
.tt{font-size:16px;font-weight:700;margin:0 0 10px}
pre.m{background:var(--bg);border-radius:12px;padding:10px;font-size:12px;line-height:1.45;overflow:auto;margin:8px 0 0;white-space:pre-wrap}
details{background:var(--bg);border-radius:14px;padding:10px 14px;margin-top:12px}
details summary{cursor:pointer;font-weight:700}
.tie{margin:22px 0 0;padding:16px 20px;border-radius:20px;background:var(--accs);display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.tie p{margin:0}

/* ---------- practice ---------- */
.pgrid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(290px,1fr);gap:20px;align-items:start;margin-top:8px}
@media(max-width:900px){.pgrid{grid-template-columns:minmax(0,1fr)}}
.pgrid .side{position:sticky;top:84px}
@media(max-width:900px){.pgrid .side{position:static}}
.h{margin:22px 0 10px;font:500 19px var(--f-disp)}
.h:first-child{margin-top:0}
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:560px){.steps{grid-template-columns:1fr}}
.sb{--c:var(--acc);display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:18px;width:100%;background:color-mix(in srgb,var(--c) 9%,var(--panel));border:1.5px solid transparent}
.sb b{font:500 18px var(--f-disp)}
.sb small{color:var(--mute);font-weight:600}
.sb.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,var(--panel))}
.sb:disabled{opacity:.5}
.tpl{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 14px}
@media(max-width:600px){.tpl{grid-template-columns:1fr}}
.ck{display:flex;gap:10px;align-items:flex-start;margin:4px 0;padding:6px 8px;border-radius:12px;cursor:pointer}
.ck:hover{background:var(--accs)}
.ck input{margin-top:3px;flex:none}
.ck small{font-weight:600}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg label{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1.5px solid var(--line);border-radius:18px;cursor:pointer;background:var(--panel)}
.seg label:has(input:checked){border-color:var(--acc);background:var(--accs)}
.seg b{display:block;font:500 17px var(--f-disp)}
.seg small{display:block;line-height:1.4}
@media(max-width:560px){.seg{grid-template-columns:1fr}}
.qmeta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--mute);font-size:13.5px;font-weight:600}
.qtext{font:600 19px/1.5 var(--f-body);margin:12px 0 14px;white-space:pre-line}
.op{display:flex;gap:12px;width:100%;text-align:left;margin:8px 0;padding:13px 16px;border-radius:16px;align-items:flex-start;line-height:1.45;font-weight:600;border:1.5px solid var(--line);background:var(--panel)}
.op b{min-width:26px;height:26px;border-radius:50%;background:var(--bg2);display:grid;place-items:center;font-size:13px;flex:none}
.op:disabled{opacity:1;cursor:default;color:var(--ink)}
.op:not(:disabled):hover{border-color:var(--acc);background:var(--accs)}
.op.sel{border-color:var(--acc);background:var(--accs)}
.op.sel b{background:var(--acc);color:var(--acc-ink)}
.op.ok{background:color-mix(in srgb,var(--ok) 16%,var(--panel));border-color:var(--ok)}
.op.ok b{background:var(--ok);color:#fff}
.op.no{background:color-mix(in srgb,var(--bad) 14%,var(--panel));border-color:var(--bad)}
.op.no b{background:var(--bad);color:#fff}
.ex{background:var(--bg);border-radius:16px;padding:14px 16px;margin-top:12px;font-size:15px}
.fb{font:600 17px var(--f-disp);margin-top:14px}
.fig{margin:6px 0 14px;text-align:center;background:var(--bg);border-radius:18px;padding:12px}
.fig svg{max-width:100%;height:auto;max-height:240px}
.qg{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:7px;margin:12px 0;max-height:340px;overflow:auto;padding:3px}
.qg button{padding:7px 0;font-size:13px;font-variant-numeric:tabular-nums;border-radius:11px;background:var(--bg)}
.qg .ans{background:var(--accs);border-color:var(--acc)}
.qg .ok{background:color-mix(in srgb,var(--ok) 22%,var(--panel));border-color:var(--ok)}
.qg .no{background:color-mix(in srgb,var(--bad) 20%,var(--panel));border-color:var(--bad)}
.qg .cur{outline:2px solid var(--ink);outline-offset:1px}
.qg .fl{box-shadow:inset 0 0 0 2px var(--warn)}
.big{font:500 64px var(--f-disp);line-height:1}
.tm{font:500 38px var(--f-disp);font-variant-numeric:tabular-nums}
.tm.low{color:var(--bad)}
.banner{background:var(--accs);border-radius:14px;padding:10px 14px;font-size:13.5px;margin-bottom:14px;color:var(--mute)}
table.rt{border-collapse:collapse;width:100%;font-size:14.5px;margin:8px 0 12px}
.rt td,.rt th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}
.rt th{color:var(--mute);font-weight:700}
.ring{--p:0;--c:var(--acc);width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--bg2) 0);display:grid;place-items:center;flex:none}
.ring::after{content:attr(data-t);width:48px;height:48px;border-radius:50%;background:var(--panel);display:grid;place-items:center;font:600 13px var(--f-body)}
.hit{width:100%}

/* ---------- flashcards ---------- */
.fc-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 6px}
.tabs{display:inline-flex;background:var(--bg2);border-radius:99px;padding:4px;gap:2px}
.tabs button{border:0;background:none;border-radius:99px;padding:7px 16px;color:var(--mute)}
.tabs button.on{background:var(--panel);color:var(--ink);box-shadow:var(--sh1)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills button{border-radius:99px;padding:7px 16px;display:inline-flex;align-items:center;gap:8px}
.pills button.on{border-color:var(--c,var(--acc));background:color-mix(in srgb,var(--c,var(--acc)) 16%,var(--panel))}
.tchips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}
.tchips button{border-radius:99px;padding:5px 13px;font-size:13.5px;background:var(--bg2);border-color:transparent}
.tchips button.on{background:color-mix(in srgb,var(--c,var(--acc)) 20%,var(--panel));border-color:var(--c,var(--acc))}
.tchips button small{margin-left:4px}
.deck{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;margin-top:18px}
@media(max-width:900px){.deck{grid-template-columns:minmax(0,1fr)}}
.scene{perspective:1600px;max-width:720px;margin:0 auto;width:100%}
.fcard{--c:var(--acc);position:relative;width:100%;min-height:440px;height:var(--h,440px);cursor:pointer;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.3,.8,.3,1);border:0;padding:0;background:none;border-radius:30px;display:block;text-align:left;font:inherit;color:inherit}
.fcard.flip{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:30px;padding:26px 28px;display:flex;flex-direction:column;overflow:auto;box-shadow:var(--sh2);border:1px solid color-mix(in srgb,var(--c) 30%,var(--line))}
.face.front{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 18%,var(--panel)),color-mix(in srgb,var(--c) 6%,var(--panel)))}
.face.back{background:var(--panel);transform:rotateY(180deg);background-image:linear-gradient(180deg,color-mix(in srgb,var(--c) 9%,var(--panel)),var(--panel) 120px)}
.face>*{flex-shrink:0}
.face .tag{display:flex;gap:8px;align-items:center;font:700 13px var(--f-body);color:var(--mute);flex-wrap:wrap}
.face .tag .chip{background:color-mix(in srgb,var(--c) 22%,var(--panel))}
.face .q{font:500 clamp(22px,3.2vw,30px)/1.3 var(--f-disp);margin:auto 0;padding:14px 0;text-align:center;white-space:pre-line}
.face .q.sm{font-size:clamp(18px,2.4vw,22px);text-align:left;font-family:var(--f-body);font-weight:700}
.face .opts{display:grid;gap:6px;margin:0 0 10px;font-weight:600;font-size:15px;color:var(--mute)}
.face .opts span b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--bg2);margin-right:8px;font-size:12px}
.face .tap{margin-top:auto;text-align:center;color:var(--mute);font:700 13px var(--f-body);display:flex;gap:8px;align-items:center;justify-content:center}
.face .tap::before,.face .tap::after{content:"";height:1px;background:var(--line);flex:1;max-width:60px}
.face .ans{font:600 20px/1.4 var(--f-body);margin:12px 0 8px}
.face .ans.big2{font:500 24px/1.3 var(--f-disp)}
.face .body{color:var(--ink);font-size:15.5px}
.face .body p{margin:0 0 8px}
.face .body ul{margin:4px 0 8px;padding-left:20px}
.face .body li{margin:3px 0}
.face .fm{background:var(--bg);border-radius:16px;padding:10px 14px;margin:8px 0;text-align:center;overflow-x:auto;font-size:1.05em}
.face .fm .katex{font-size:1.15em}
.face .dg{background:var(--bg);border-radius:18px;padding:8px;margin:8px 0;text-align:center}
.face .dg svg{max-width:100%;height:auto;max-height:230px}
.face .tipb{border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 10%,var(--panel));border-radius:4px 14px 14px 4px;padding:8px 12px;margin:8px 0;font-size:14.5px}
.face .corr{color:var(--ok)}
.rate{display:flex;gap:10px;justify-content:center;margin:18px 0 0;flex-wrap:wrap}
.rate button{padding:10px 20px;border-radius:99px;font-weight:700}
.rate .k{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,var(--panel))}
.rate .a{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,var(--panel))}
.nav2{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:18px}
.nav2 .cnt{font:600 15px var(--f-body);color:var(--mute);min-width:90px;text-align:center}
.kbd{font:700 11.5px var(--f-body);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--mute);background:var(--panel)}
.fcard-mini{display:block}
.fc-mini{border-radius:26px;padding:22px;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 22%,var(--panel)),color-mix(in srgb,var(--c) 7%,var(--panel)));border:1px solid color-mix(in srgb,var(--c) 32%,var(--line));box-shadow:var(--sh2);display:flex;flex-direction:column;justify-content:center;text-align:center;gap:10px}
.fc-mini .chip{align-self:center;background:color-mix(in srgb,var(--c) 26%,var(--panel))}
.fc-mini h4{font:500 22px/1.3 var(--f-disp)}
.fc-mini .m{font-size:15px;color:var(--mute)}
.lb{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}
.lb div{background:var(--bg);border-radius:12px;padding:6px 2px;text-align:center}
.lb b{display:block;font:500 18px var(--f-disp)}
.lb small{font-size:11px;font-weight:700}
@media(prefers-reduced-motion:reduce){.fcard{transition:none}}

/* ==TH-MKT== TrueHeading marketing layer (generated from src/marketing.css) */
:root{--c-rt:#e585ab;--sun:#f2b632;--sun-s:rgba(242,182,50,.22)}
:root[data-theme="dark"]{--c-rt:#f09cbd;--sun:#f4c556;--sun-s:rgba(244,197,86,.16)}
.brand b i{font-style:normal;color:var(--acc)}
.btn.sm{padding:8px 18px;font-size:14px;box-shadow:none}
.btn svg{width:20px;height:20px;flex:none}
.hdr-r .enrol{white-space:nowrap}
.mcta{display:none}

.wrap.sec{margin:46px auto 0}
.l-strip{display:grid;grid-template-columns:repeat(5,1fr);margin-top:34px;padding:0 20px}
.l-strip>div{padding:16px 12px;text-align:center;background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.l-strip>div:first-child{border-radius:22px 0 0 22px}
.l-strip>div:last-child{border-radius:0 22px 22px 0;border-right:1px solid var(--line)}
.l-strip b{display:block;font:500 24px var(--f-disp)}
.l-strip small{font-size:13px}

/* instructor */
.l-inst{display:grid;grid-template-columns:330px 1fr;gap:44px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:32px;padding:30px;box-shadow:var(--sh1)}
.l-photo{position:relative}
.l-photo img{display:block;width:100%;height:auto;border-radius:26px;border:1px solid var(--line);box-shadow:var(--sh2)}
.l-photo::after{content:"";position:absolute;inset:auto -12px -12px auto;width:90px;height:90px;border-radius:26px;background:var(--sun-s);z-index:-1}
.l-inst h2{font-size:clamp(30px,4vw,44px);margin:12px 0 4px}
.l-inst .role{margin:0 0 18px;color:var(--mute);font-weight:700}
.l-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:12px}
.l-list li{display:flex;gap:12px;color:var(--mute);align-items:flex-start}
.l-list li b{color:var(--ink)}
.l-list svg{flex:none;color:var(--ok);margin-top:2px}

/* what you get */
.l-inc{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px}
.l-inc article{background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:var(--sh1);display:flex;flex-direction:column;gap:10px}
.l-inc h3{font-size:22px}
.l-inc p{margin:0;color:var(--mute)}
.l-inc .ico{--c:var(--acc);width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,var(--panel));color:var(--c)}
.l-big{background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 14%,var(--panel)),var(--panel))!important}
.l-big h3{font-size:clamp(24px,3vw,32px)}
.l-site{margin-top:14px;border-radius:30px;padding:28px;background:linear-gradient(160deg,color-mix(in srgb,var(--c-reg) 12%,var(--panel)),var(--panel) 55%);border:1px solid color-mix(in srgb,var(--c-reg) 26%,var(--line));box-shadow:var(--sh1)}
.l-site-h h3{font-size:clamp(22px,3vw,30px);margin:12px 0 18px;max-width:30ch}
.l-site-g{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:center}
.l-stats{display:grid;gap:10px}
.l-stats>div{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:14px 18px;display:flex;align-items:center;gap:18px}
.l-stats b{flex:none;min-width:116px;font:500 34px/1.1 var(--f-disp)}
.l-stats b svg{color:var(--sun);stroke-width:2.2;display:block}
.l-stats small{font-size:14px}
.l-demo{max-width:360px;margin:0 auto;width:100%}
.l-sims{display:flex;gap:14px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:22px 0 14px}
.l-sims>div:first-child{max-width:46ch}
.l-sims b{display:block}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.sim-chip{text-decoration:none;background:var(--panel);border:1px solid var(--line);transition:border-color .15s,transform .15s}
.sim-chip:hover{border-color:var(--acc);transform:translateY(-1px)}

/* steps */
.l-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s}
.l-steps li{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--sh1);position:relative}
.l-steps li span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accs);font:600 18px var(--f-disp);margin-bottom:12px}
.l-steps h3{font-size:19px;margin-bottom:4px}
.l-steps p{margin:0;color:var(--mute);font-size:14.5px}

/* fees */
.l-fee{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
.l-price{background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:var(--sh2);display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.l-price .was{font:500 24px var(--f-disp);color:var(--mute);text-decoration:line-through;text-decoration-color:var(--bad);text-decoration-thickness:3px;margin-top:10px}
.l-price .now{font:600 clamp(44px,7vw,68px)/1.05 var(--f-disp);background:linear-gradient(transparent 60%,var(--sun-s) 60%);padding:0 6px;margin:0 -6px;border-radius:8px}
.l-price .now span{font-size:.3em;color:var(--mute);letter-spacing:.1em;margin-right:6px;vertical-align:.9em}
.l-price .save{display:inline-block;background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok);font-weight:800;padding:4px 14px;border-radius:99px;margin:6px 0 16px}
.l-guar{border-radius:30px;padding:30px;background:linear-gradient(160deg,var(--sun-s),var(--panel));border:1px solid color-mix(in srgb,var(--sun) 45%,var(--line));display:flex;flex-direction:column;gap:12px;justify-content:center;box-shadow:var(--sh1)}
.l-guar .sh{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:var(--panel);color:var(--sun);box-shadow:var(--sh1);border:1px solid color-mix(in srgb,var(--sun) 40%,var(--line))}
.l-guar .sh svg{stroke-width:1.7}
.l-guar h3{font-size:clamp(24px,3vw,32px)}
.l-guar p{margin:0;color:var(--mute);font-size:17px}

/* reviews */
.l-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.l-rev{--c:var(--acc);margin:0;background:color-mix(in srgb,var(--c) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--c) 26%,var(--line));border-radius:26px;padding:24px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh1)}
.l-rev .qm{color:var(--c);font:600 54px/0.6 var(--f-disp);height:26px}
.l-rev blockquote{margin:0;font-size:16.5px;line-height:1.55}
.l-rev figcaption{margin-top:auto;display:flex;align-items:center;gap:10px}
.l-rev .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:var(--acc-ink);font:600 17px var(--f-disp)}
.l-rev small{margin-left:auto}

/* enrol */
.l-enrol{display:grid;grid-template-columns:1fr 1fr;gap:28px;background:linear-gradient(150deg,color-mix(in srgb,var(--acc) 16%,var(--panel)),var(--panel));border:1px solid var(--line);border-radius:34px;padding:34px;box-shadow:var(--sh2)}
.l-en-c h2{font-size:clamp(26px,3.6vw,38px);margin:14px 0 10px}
.l-en-c p{max-width:44ch;margin:0 0 20px}
.l-phones{display:grid;gap:10px}
.l-phones a{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:12px 16px;transition:border-color .15s,transform .15s}
.l-phones a:hover{border-color:var(--acc);transform:translateY(-1px)}
.l-phones svg{width:26px;height:26px;color:var(--acc);flex:none}
.l-phones small{display:block;font-size:12.5px;line-height:1.1}
.l-phones b{font:600 19px var(--f-disp)}
.l-form{background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:22px;display:grid;gap:14px;align-content:start}
.l-form label,.l-form legend{font:700 13.5px var(--f-body);color:var(--mute);display:grid;gap:6px}
.l-form fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}
.l-form legend{padding:0;margin-bottom:6px}
.l-form input[type=text],.l-form textarea{font:600 15.5px var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:11px 14px;width:100%}
.l-form textarea{resize:vertical}
.l-form input[type=text]:focus,.l-form textarea:focus{outline:3px solid var(--accs);border-color:var(--acc)}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{display:inline-block!important;position:relative;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:inline-block;padding:7px 14px;border-radius:99px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:700 13.5px var(--f-body);transition:background .15s,border-color .15s}
.opt input:checked+span{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.opt input:focus-visible+span{outline:3px solid var(--accs);outline-offset:2px}
.l-form .btn{justify-self:start}

/* footer */
footer.ft .ft-in{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:28px 32px}
.ft-b p{margin:10px 0 0;max-width:40ch}
.ft-c{display:grid;gap:6px;align-content:start}
.ft-c b{color:var(--ink);margin-bottom:2px}
.ft-c a{color:var(--mute);text-decoration:none}
.ft-c a:hover{color:var(--acc)}
.ft-n{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;font-size:13px}

@media(max-width:1020px){
 .l-subjs{grid-template-columns:repeat(3,1fr)}
 .l-site-g{grid-template-columns:1fr}
 .l-inc{grid-template-columns:1fr 1fr}.l-big{grid-column:1/-1}
 .l-steps{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
 .l-hero{grid-template-columns:1fr;gap:20px;padding-top:28px}
 .l-vis{order:-1;max-width:340px;margin:0 auto}
 .l-badge.price{left:0}
 .l-strip{grid-template-columns:1fr 1fr;gap:10px}
 .l-strip>div,.l-strip>div:first-child,.l-strip>div:last-child{border:1px solid var(--line);border-radius:18px}
 .l-strip>div:last-child{grid-column:1/-1}
 .l-inst{grid-template-columns:1fr;gap:24px;padding:22px}
 .l-photo{max-width:260px}
 .l-fee,.l-enrol{grid-template-columns:1fr}
 .l-revs{grid-template-columns:1fr}
 footer.ft .ft-in{grid-template-columns:1fr 1fr}.ft-b{grid-column:1/-1}
}
@media(max-width:760px){
 .mcta{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
 .mcta .btn{flex:1}
 body:has(.mcta){padding-bottom:78px}
 .hdr-r .enrol{display:none}
}
@media(max-width:560px){
 .l-subjs,.l-inc,.l-steps{grid-template-columns:1fr}
 .l-stats>div{gap:12px}.l-stats b{min-width:96px;font-size:28px}
 .l-enrol{padding:20px}.l-site{padding:20px}
 .l-badge.price{left:-2px}
}

/* ---- subject class pages ---- */
.l-subj h3 a.cl{color:inherit;text-decoration:none}
.l-subj h3 a.cl::after{content:"";position:absolute;inset:0;border-radius:inherit}
.l-subj{position:relative}
.l-sfoot a.more{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--acc);text-decoration:none;font-size:14.5px}
.l-sfoot .pr{position:relative;z-index:2}
.dd-sm .dd-menu{min-width:270px;grid-template-columns:1fr}
.sp{padding-bottom:30px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:var(--mute);padding:20px 0 4px}
.crumbs a{color:var(--mute);text-decoration:none}.crumbs a:hover{color:var(--acc)}.crumbs b{color:var(--ink)}
.sp-hero{padding:14px 0 6px;max-width:820px}
.sp-hero h1{font:600 clamp(32px,5.4vw,52px)/1.1 var(--f-disp);margin:14px 0 12px;letter-spacing:-.01em}
.sp-hero .chip{color:var(--c);border-color:color-mix(in srgb,var(--c) 40%,var(--line));background:color-mix(in srgb,var(--c) 12%,var(--panel))}
.sp-hero .lead{font-size:18.5px;color:var(--mute);max-width:60ch;margin:0 0 20px}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.sp-badges{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:22px 0 0}
.sp-badges li{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-weight:700;font-size:14px}
.sp-badges svg{color:var(--c)}
.sp-intro{display:grid;grid-template-columns:1fr 280px;gap:28px;align-items:start}
.sp-intro h2,.sec-h h2{font:600 clamp(24px,3.4vw,32px)/1.2 var(--f-disp);margin:0 0 10px}
.sp-intro p{color:var(--mute);margin:0 0 12px;max-width:68ch}.sp-intro p b{color:var(--ink)}
.sp-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px;border:1px solid var(--line);border-radius:26px;background:var(--panel);box-shadow:var(--sh1)}
.sp-card img{width:96px;height:100px;object-fit:cover;object-position:top;border-radius:24px;border:3px solid color-mix(in srgb,var(--c) 40%,var(--panel))}
.sp-card small{color:var(--mute)}.sp-card .btn{margin-top:8px}
.sp .sec-h p{color:var(--mute);margin:0}
.topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tp{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:14px;background:var(--panel);color:var(--ink);text-decoration:none;font-weight:700;font-size:14.5px;transition:transform .15s,box-shadow .15s}
a.tp:hover{transform:translateY(-2px);box-shadow:var(--sh1)}
.tp small{color:var(--mute);font-weight:700;white-space:nowrap}
.sp-two{display:grid;grid-template-columns:3fr 2fr;gap:28px}
.sp-facts,.sp-mist{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.sp-facts li{padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:var(--panel);display:grid;gap:4px}
.sp-facts b{color:var(--c)}.sp-facts span{color:var(--mute);font-size:15px}
.sp-mist li{padding:12px 16px 12px 44px;border-radius:14px;background:color-mix(in srgb,var(--bad) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--bad) 28%,var(--line));position:relative;font-size:15px}
.sp-mist li::before{content:"!";position:absolute;left:14px;top:12px;width:22px;height:22px;border-radius:50%;background:var(--bad);color:#fff;font-weight:900;display:grid;place-items:center;font-size:13px}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.tool{padding:20px;border:1px solid var(--line);border-top:4px solid var(--c);border-radius:22px;background:var(--panel);box-shadow:var(--sh1)}
.tool h3{font:600 20px var(--f-disp);margin:0 0 4px}.tool>p{margin:0 0 14px;font-size:14.5px}
.tool form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tool label{display:grid;gap:4px;font-size:12.5px;font-weight:800;color:var(--mute)}
.tool input,.tool select{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:700 16px var(--f-body)}
.tool input:focus,.tool select:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accs)}
.tool .out{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tool .out>div{padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--c) 11%,var(--panel));border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));display:grid;gap:2px}
.tool .out small{color:var(--mute);font-weight:700;font-size:12px}.tool .out b{font:600 19px var(--f-disp)}
.tool .out>p{grid-column:1/-1;margin:0}
.tool .out .phon{font:600 20px/1.45 var(--f-disp);padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--c) 11%,var(--panel));word-break:break-word}
.mqs{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
.mq{padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:var(--sh1)}
.mq-q{font-weight:800;margin:0 0 12px}
.opts2{display:grid;gap:8px}
.opts2 button{display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:700 15px var(--f-body);cursor:pointer;transition:border-color .15s,background .15s}
.opts2 button:hover:not(:disabled){border-color:var(--acc)}
.opts2 button span{flex:none;width:26px;height:26px;border-radius:9px;background:var(--accs);color:var(--acc);display:grid;place-items:center;font-weight:900;font-size:13px}
.opts2 button:disabled{cursor:default;opacity:.85}
.opts2 button.ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 16%,var(--panel))}
.opts2 button.ok span{background:var(--ok);color:#fff}
.opts2 button.no{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,var(--panel))}
.opts2 button.no span{background:var(--bad);color:#fff}
.mq-ex{margin-top:12px;padding:12px 14px;border-radius:14px;background:var(--accs);font-size:14.5px}
.mq-ex .res{display:block;margin-bottom:4px}
.faq details{border:1px solid var(--line);border-radius:16px;background:var(--panel);margin-bottom:10px;overflow:hidden}
.faq summary{cursor:pointer;padding:14px 18px;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:600 22px var(--f-disp);color:var(--acc);flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0;padding:0 18px 16px;color:var(--mute)}
.sp-end{padding:30px;border-radius:30px;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 14%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,var(--c) 35%,var(--line));box-shadow:var(--sh1)}
.sp-end h2{font:600 clamp(24px,3.6vw,34px) var(--f-disp);margin:0 0 8px}
.sp-end p{margin:0 0 16px;max-width:60ch}
@media(max-width:860px){.sp-intro,.sp-two{grid-template-columns:1fr}.sp-card{flex-direction:row;flex-wrap:wrap;justify-content:center}}
@media(max-width:560px){.tool form,.tool .out{grid-template-columns:1fr 1fr}.mqs{grid-template-columns:1fr}.tools{grid-template-columns:1fr}}
.tool label:only-child{grid-column:1/-1}.tool label:nth-child(odd):last-child{grid-column:1/-1}

/* ==TH-AVI== Aviation theme layer (generated from src/aviation.css) */
@font-face{font-family:"Poppins";font-weight:400;font-style:normal;font-display:swap;src:url(poppins-400.woff) format("woff")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url(poppins-500.woff) format("woff")}
@font-face{font-family:"Poppins";font-weight:600;font-style:normal;font-display:swap;src:url(poppins-500.woff) format("woff")}
@font-face{font-family:"Poppins";font-weight:700 900;font-style:normal;font-display:swap;src:url(poppins-700.woff) format("woff")}
@font-face{font-family:"THD";font-weight:100 900;font-style:normal;font-display:swap;src:url(poppins-700.woff) format("woff")}
@font-face{font-family:"Lora";font-weight:400 700;font-style:normal;font-display:swap;src:url(lora-var.woff) format("woff")}
@font-face{font-family:"Lora";font-weight:400 700;font-style:italic;font-display:swap;src:url(lora-italic-var.woff) format("woff")}

:root{
  --bg:#f8fbff;--bg2:#eaf2fb;--panel:#ffffff;--ink:#0c2038;--mute:#5a6e85;--line:#e0e9f3;--map:#e6eff9;
  --acc:#0b64c0;--acc-ink:#ffffff;--accs:rgba(11,100,192,.10);--ok:#16996a;--bad:#d9485f;--warn:#d98a14;
  --card:#10305a;--cardink:#e8f0fa;
  --c-nav:#1f74e0;--c-met:#0d9488;--c-reg:#7c5cf0;--c-tec:#e2571e;--c-rt:#d6447f;
  --sun:#f7b32b;--sun-s:rgba(247,179,43,.30);--orange:#d9531e;--navy:#0c2a4e;--navy2:#0a1f3a;--arrow2:#0c2a4e;--dd:#d3deea;
  --sh1:0 1px 2px rgba(12,32,56,.05),0 12px 28px -16px rgba(12,32,56,.22);
  --sh2:0 2px 4px rgba(12,32,56,.06),0 22px 44px -18px rgba(12,32,56,.34);
  --glow1:rgba(47,134,240,.10);--glow2:rgba(247,179,43,.12);
  --f-body:"Poppins",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-disp:"THD","Poppins",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-serif:"Lora",Georgia,"Times New Roman",serif;
}
:root[data-theme="dark"]{
  --bg:#07131f;--bg2:#0b1b2c;--panel:#0f2237;--ink:#e8f1fb;--mute:#93a8bf;--line:#1d3550;--map:#0a1828;
  --acc:#5aa9ff;--acc-ink:#06223f;--accs:rgba(90,169,255,.15);--ok:#52d1a1;--bad:#ff7d92;--warn:#f0b455;
  --card:#0a1a2e;--cardink:#e8f0fa;
  --c-nav:#5fa8ff;--c-met:#3cc9bf;--c-reg:#ab99ff;--c-tec:#ff8a5c;--c-rt:#ff8fb8;
  --sun:#ffc24d;--sun-s:rgba(255,194,77,.20);--orange:#ff9560;--navy:#0d2a4a;--navy2:#08182b;--arrow2:#5aa9ff;--dd:#1f3a57;
  --sh1:0 1px 2px rgba(0,0,0,.3),0 12px 28px -16px rgba(0,0,0,.6);
  --sh2:0 2px 4px rgba(0,0,0,.35),0 22px 44px -18px rgba(0,0,0,.75);
  --glow1:rgba(90,169,255,.10);--glow2:rgba(255,194,77,.05);
}
body{font-size:15.5px;line-height:1.6}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.01em}
b,strong{font-weight:700}
.brand{font:800 21px var(--f-disp);letter-spacing:-.02em}
.brand b{font-weight:800}
.brand b i{color:var(--acc)}

/* ---------- header ---------- */
.site-hdr{background:color-mix(in srgb,var(--panel) 90%,transparent);border-bottom:1px solid var(--line)}
.nav>a,.nav>.dd>button{position:relative;font:600 14px var(--f-body);color:var(--ink);padding:9px 13px;border-radius:12px;background:none}
.nav>a:hover,.nav>.dd>button:hover{background:none;color:var(--acc)}
.nav>a.on,.nav>.dd.on>button{background:none;color:var(--ink)}
.nav>a.on::after,.nav>.dd.on>button::after{content:"";position:absolute;left:13px;right:13px;bottom:0;height:3px;border-radius:3px;background:var(--acc)}
.sbtn{border-radius:99px;height:42px;background:var(--panel);box-shadow:none}
.ibtn{box-shadow:none}
.dd-menu{border-radius:22px}
.btn,button.go,a.go,.btnp{border:0;background:var(--acc);color:var(--acc-ink);font:700 15px var(--f-body);padding:12px 26px;box-shadow:0 14px 26px -12px color-mix(in srgb,var(--acc) 80%,transparent)}
.btn:hover,button.go:hover,a.go:hover{box-shadow:0 18px 30px -12px color-mix(in srgb,var(--acc) 90%,transparent);transform:translateY(-2px)}
.btn.sm{padding:9px 20px;font-size:14px;box-shadow:none}
.btn.lg{padding:16px 30px;font-size:16.5px}
.btn.soft,a.soft{background:var(--accs);color:var(--acc);box-shadow:none}
:root[data-theme="dark"] .btn.soft{color:var(--ink)}
.btn.soft:hover{background:var(--accs);box-shadow:inset 0 0 0 2px var(--acc)}
.btn.amber{background:linear-gradient(135deg,#ffc43d,#f59a1b);color:#3b2400;box-shadow:0 14px 26px -12px rgba(245,154,27,.7)}
.chip{background:var(--accs);color:var(--acc);font-weight:700}
:root[data-theme="dark"] .chip{color:var(--ink)}
.sec{margin-top:64px}
.sec-h{margin-bottom:24px}
.sec-h h2{font:700 clamp(28px,4vw,40px)/1.15 var(--f-serif);letter-spacing:-.01em;margin:0}
.sec-h p{color:var(--mute);font-size:16px}
.sec-h.ctr{display:block;text-align:center;position:relative}
.sec-h.ctr h2{display:inline-flex;align-items:center;gap:12px}
.sec-h.ctr h2 svg{width:38px;height:38px;flex:none}
.sec-h.ctr p{margin:8px auto 0;max-width:56ch}
.sec-h .tt-ic{display:inline-grid;place-items:center}

/* ---------- hero ---------- */
main{position:relative}
.hx-bg{position:absolute;left:0;right:0;top:0;height:760px;pointer-events:none;overflow:hidden;
 background:linear-gradient(112deg,transparent calc(18% - 1px),var(--hl) calc(18% - 1px),var(--hl) 18%,transparent 18%),linear-gradient(112deg,transparent calc(41% - 1px),var(--hl) calc(41% - 1px),var(--hl) 41%,transparent 41%),linear-gradient(112deg,transparent calc(77% - 1px),var(--hl) calc(77% - 1px),var(--hl) 77%,transparent 77%);
 -webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent);--hl:rgba(12,32,56,.07)}
:root[data-theme="dark"] .hx-bg{--hl:rgba(160,200,255,.06)}
.hx{position:relative;display:grid;grid-template-columns:1.04fr .96fr;gap:20px;align-items:center;padding:30px 20px 6px}
.hx-eye{margin:0 0 14px;font:700 13.5px/1 var(--f-body);letter-spacing:.3em;text-transform:uppercase;color:var(--orange)}
.hx-copy h1{font:800 clamp(38px,5.3vw,66px)/1.05 var(--f-disp);letter-spacing:-.025em;margin:0}
.hx-copy h1 .hl{background:linear-gradient(transparent 70%,var(--sun-s) 70%);border-radius:8px;padding:0 6px;margin:0 -6px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hx-copy .lead{font-size:17px;line-height:1.7;color:var(--mute);max-width:47ch;margin:22px 0 28px}
.hx-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px}
.hx-play{display:inline-flex;align-items:center;gap:14px;color:var(--ink);font:700 15px var(--f-body);text-decoration:none}
.hx-play span.u{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.hx-play .pl{position:relative;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ff8a50,#f2542d);color:#fff;box-shadow:0 14px 26px -8px rgba(242,84,45,.65)}
.hx-play .pl::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(242,84,45,.28)}
.hx-play .pl svg{width:24px;height:24px;fill:#fff}
.hx-play:hover .pl{transform:scale(1.06)}
.hx-pts{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:10px}
.hx-pts li{display:flex;align-items:center;gap:12px;color:var(--mute);font-size:15px}
.hx-pts li b{color:var(--ink)}
.hx-pts svg{flex:none;width:30px;height:30px;padding:6px;border-radius:50%;color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,var(--panel))}
.hx-vis{position:relative;width:100%;max-width:560px;aspect-ratio:1/1;justify-self:end;margin:0 auto}
.hx-arrows{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:4;pointer-events:none}
.hx-plane{position:absolute;left:3%;top:-2%;width:20%;z-index:5;filter:drop-shadow(0 14px 12px rgba(242,154,18,.32));animation:hxfloat 5s ease-in-out infinite}
.hx-blob{position:absolute;left:14%;top:13%;width:80%;height:80%;z-index:2}
.hx-blob::before{content:"";position:absolute;inset:-6% 8% 9% -7%;border-radius:46% 54% 50% 50%/55% 42% 58% 45%;background:linear-gradient(150deg,#1f7be8,#0a3f8f);transform:rotate(-9deg)}
.hx-blob::after{content:"";position:absolute;right:-4%;top:-3%;width:17%;aspect-ratio:1;border-radius:50%;background:var(--sun);box-shadow:0 0 0 10px var(--sun-s)}
.hx-blob .shape{position:absolute;inset:0;border-radius:47% 53% 44% 56%/52% 44% 56% 48%;overflow:hidden;background:var(--panel);box-shadow:0 0 0 7px var(--panel),var(--sh2);z-index:1}
.hx-blob .shape img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.hx-chip{position:absolute;z-index:6;width:15%;aspect-ratio:1;display:grid;place-items:center;border-radius:24%;background:#fff;box-shadow:0 18px 30px -12px rgba(12,32,56,.4);animation:hxfloat 6s ease-in-out infinite}
.hx-chip svg{width:62%;height:62%}
.hx-chip.c1{left:11%;top:25%;transform:rotate(-8deg);animation-delay:-1s}
.hx-chip.c2{right:2%;top:8%;transform:rotate(7deg);animation-delay:-2.5s}
.hx-chip.c3{right:-2%;bottom:20%;transform:rotate(-6deg);animation-delay:-4s}
.hx-card{position:absolute;z-index:6;left:12%;bottom:6%;display:flex;align-items:center;gap:12px;padding:11px 20px 11px 11px;border-radius:22px;background:linear-gradient(135deg,#ffc43d,#f59a1b);color:#3b2400;box-shadow:0 22px 34px -14px rgba(245,154,27,.75)}
.hx-card .ci{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center}
.hx-card .ci svg{width:32px;height:32px}
.hx-card small{display:block;color:#5a3a06;font:600 12px/1.2 var(--f-body)}
.hx-card s{font:600 12.5px var(--f-body);opacity:.7;margin-left:6px}
.hx-card b{font:800 22px/1.2 var(--f-disp)}
@keyframes hxfloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media (prefers-reduced-motion:reduce){.hx-plane,.hx-chip{animation:none}}

.l-strip{margin-top:46px}
.l-strip b{font:800 26px var(--f-disp);color:var(--acc)}
:root[data-theme="dark"] .l-strip b{color:var(--sun)}

/* ---------- subjects (coloured cards over a navy slab) ---------- */
.sc-sec{position:relative}
.sc-head{position:relative;margin-bottom:34px}
.sc-head .dood{position:absolute;top:-14px;width:96px;color:var(--dd)}
.sc-head .dood.l{left:3%}.sc-head .dood.r{right:3%}
.sc-row{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;position:relative;z-index:2}
.sc{position:relative;flex:0 1 calc((100% - 72px)/5);min-width:196px;display:flex;flex-direction:column;background:var(--panel);border-radius:26px;overflow:hidden;box-shadow:0 24px 44px -24px rgba(12,32,56,.55),0 2px 6px rgba(12,32,56,.07);transition:transform .22s,box-shadow .22s}
.sc:hover{transform:translateY(-7px);box-shadow:0 32px 50px -24px rgba(12,32,56,.6),0 2px 6px rgba(12,32,56,.07)}
.sc-top{position:relative;height:152px;overflow:hidden;background:linear-gradient(150deg,var(--c),color-mix(in srgb,var(--c) 64%,#000));display:grid;place-items:center}
.sc-top::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 50% 58%,rgba(255,255,255,.15) 0 2px,transparent 2px 28px)}
.sc-top svg{position:relative;width:100%;height:100%}
.sc-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.sc h3{font:800 18px/1.25 var(--f-disp)}
.sc h3 a.cl{color:inherit;text-decoration:none}
.sc h3 a.cl::after{content:"";position:absolute;inset:0;z-index:1}
.sc p{margin:0;color:var(--mute);font-size:13.5px;line-height:1.55}
.sc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.sc-meta span{font:600 11.5px var(--f-body);padding:3px 10px;border-radius:99px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--panel))}
.sc-foot{margin-top:auto;padding-top:10px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.sc-foot .more{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink);text-decoration:none}
.sc-foot .more svg{width:16px;height:16px;color:var(--c)}
.sc-foot .pr{position:relative;z-index:2;color:var(--acc);font-weight:700;text-decoration:none}
.sc-foot .pr:hover{text-decoration:underline}
.sc-foot span.live{color:var(--mute)}
.sc-cta{position:relative;z-index:1;margin-top:-96px;padding:132px 36px 30px;border-radius:40px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:flex;gap:18px 32px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.sc-cta b{display:block;font:800 clamp(20px,2.6vw,26px)/1.25 var(--f-disp)}
.sc-cta span{color:#b9cbe0;font-size:15px}
.sc-cta s{opacity:.7;margin:0 4px 0 6px}

/* ---------- instructor ---------- */
.l-inst{background:linear-gradient(135deg,var(--navy),var(--navy2));border:0;color:#fff;--ink:#fff;--mute:#b9cbe0;--accs:rgba(255,255,255,.12);--line:rgba(255,255,255,.18);box-shadow:var(--sh2);border-radius:40px;position:relative;overflow:hidden}
.l-inst::before{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;background:repeating-radial-gradient(circle,rgba(255,255,255,.07) 0 2px,transparent 2px 24px)}
.l-inst>*{position:relative}
.l-inst h2{font:800 clamp(30px,4vw,46px)/1.1 var(--f-disp);color:#fff}
.l-inst .chip{background:rgba(255,255,255,.14);color:#fff}
.l-inst .l-list svg{color:var(--sun)}
.l-inst .btn:not(.soft){background:linear-gradient(135deg,#ffc43d,#f59a1b);color:#3b2400;box-shadow:0 14px 26px -12px rgba(245,154,27,.7)}
.l-inst .btn.soft{color:#fff}
.l-photo img{border:0;border-radius:46% 54% 44% 56%/52% 44% 56% 48%;box-shadow:0 0 0 6px rgba(255,255,255,.9),0 24px 40px -16px rgba(0,0,0,.6)}
.l-photo::after{background:var(--sun);border-radius:50%;width:56px;height:56px;inset:auto -8px -4px auto;z-index:0}

/* ---------- what you get ---------- */
.l-inc article{border-radius:28px;border:0;box-shadow:0 18px 36px -22px rgba(12,32,56,.4)}
.l-inc h3{font:800 20px/1.25 var(--f-disp)}
.l-inc .ico{border-radius:18px;width:54px;height:54px;background:color-mix(in srgb,var(--c) 15%,var(--panel))}
.l-big{background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 12%,var(--panel)),var(--panel))!important}
.l-big h3{font-size:clamp(24px,3vw,32px)}
.l-site{border-radius:34px;background:linear-gradient(160deg,color-mix(in srgb,var(--sun) 16%,var(--panel)),var(--panel) 55%);border:1px solid color-mix(in srgb,var(--sun) 35%,var(--line))}
.l-stats b{font:800 32px/1.1 var(--f-disp);color:var(--acc)}
:root[data-theme="dark"] .l-stats b{color:var(--sun)}
.l-stats>div{border-radius:22px}

/* ---------- steps as a flight path ---------- */
.l-steps{position:relative;gap:18px}
.l-steps::before{content:"";position:absolute;left:12.5%;right:12.5%;top:28px;border-top:3px dotted color-mix(in srgb,var(--acc) 45%,var(--line))}
.l-steps li{background:none;border:0;box-shadow:none;text-align:center;padding:0 6px}
.l-steps li span{position:relative;z-index:1;width:58px;height:58px;margin:0 auto 14px;font:800 22px var(--f-disp);background:var(--panel);color:var(--acc);border:3px solid var(--acc);box-shadow:0 0 0 7px var(--bg)}
.l-steps li:last-child span{background:var(--acc);color:var(--acc-ink)}
.l-steps h3{font:800 18px var(--f-disp)}
.l-steps p{margin:6px auto 0;max-width:24ch}

/* ---------- fees / guarantee ---------- */
.l-price{border-radius:34px;border:0;box-shadow:0 26px 48px -26px rgba(12,32,56,.5)}
.l-price .was{font:700 22px var(--f-disp)}
.l-price .now{font:800 clamp(44px,7vw,70px)/1.05 var(--f-disp);letter-spacing:-.02em}
.l-guar{border-radius:34px;background:linear-gradient(150deg,#ffcf5c,#f59a1b);border:0;color:#3b2400}
.l-guar h3{color:#2b1a00}
.l-guar p{color:#4d3204}
.l-guar .sh{background:#fff;color:var(--orange);border:0;box-shadow:0 14px 24px -12px rgba(120,60,0,.5)}
:root[data-theme="dark"] .l-guar{background:linear-gradient(150deg,#e9ac2c,#d4821a)}

/* ---------- reviews ---------- */
.l-rev{background:var(--panel);border:0;border-top:5px solid var(--c);border-radius:26px;box-shadow:0 20px 38px -24px rgba(12,32,56,.5)}
.l-rev .qm{font:700 64px/.8 var(--f-serif)}
.l-rev blockquote{font-size:15.5px}
.l-rev .av{font:800 17px var(--f-disp)}

/* ---------- enrol ---------- */
.l-enrol{background:linear-gradient(135deg,var(--navy),var(--navy2));border:0;color:#fff;border-radius:40px;position:relative;overflow:hidden;--ink:#fff;--mute:#b9cbe0}
.l-enrol::before{content:"";position:absolute;left:-80px;bottom:-120px;width:340px;height:340px;border-radius:50%;background:repeating-radial-gradient(circle,rgba(255,255,255,.07) 0 2px,transparent 2px 24px)}
.l-enrol>*{position:relative}
.l-en-c h2{font:800 clamp(26px,3.6vw,40px)/1.12 var(--f-disp);color:#fff}
.l-en-c .chip{background:rgba(255,255,255,.14);color:#fff}
.l-phones a{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.l-phones a:hover{background:rgba(255,255,255,.14);border-color:var(--sun)}
.l-phones svg{color:var(--sun)}
.l-phones small{color:#b9cbe0}
.l-phones b{font:700 18px var(--f-disp)}
.l-form{background:var(--panel);--ink:#0c2038;--mute:#5a6e85;border:0;border-radius:28px;box-shadow:0 26px 44px -20px rgba(0,0,0,.5)}
:root[data-theme="dark"] .l-form{--ink:#e8f1fb;--mute:#93a8bf}
.l-form .btn{background:var(--acc);color:var(--acc-ink)}
.l-form small{color:var(--mute)}

/* ---------- faq on landing ---------- */
.faq details{border-radius:20px;border:1px solid var(--line);box-shadow:none}
.faq summary{font-weight:700}

/* ---------- footer ---------- */
footer.ft{margin-top:72px;padding:46px 0 36px;border-top:0;background:linear-gradient(160deg,var(--navy),var(--navy2));border-radius:42px 42px 0 0;color:#b9cbe0}
footer.ft .brand,footer.ft .ft-c b{color:#fff}
footer.ft .brand b i{color:var(--sun)}
.ft-c a{color:#b9cbe0}.ft-c a:hover{color:var(--sun)}
.ft-c small{color:#8aa3bf}
.ft-n{border-top-color:rgba(255,255,255,.14);color:#8aa3bf}

/* ---------- subject class pages ---------- */
.sp-hero{position:relative;max-width:none;display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;padding:20px 0 6px}
.sp-hero h1{font:800 clamp(32px,5vw,54px)/1.08 var(--f-disp);letter-spacing:-.02em}
.sp-copy{min-width:0}
.sp-copy .lead{max-width:56ch}
.sp-art{position:relative;aspect-ratio:1/.86;max-width:420px;width:100%;justify-self:end}
.sp-art::before{content:"";position:absolute;inset:4% 2% 4% 6%;border-radius:46% 54% 44% 56%/52% 44% 56% 48%;background:linear-gradient(150deg,var(--c),color-mix(in srgb,var(--c) 62%,#000));box-shadow:var(--sh2)}
.sp-art::after{content:"";position:absolute;inset:4% 2% 4% 6%;border-radius:inherit;background:repeating-radial-gradient(circle at 50% 56%,rgba(255,255,255,.14) 0 2px,transparent 2px 28px);border-radius:46% 54% 44% 56%/52% 44% 56% 48%}
.sp-art svg{position:absolute;inset:4% 2% 4% 6%;width:92%;height:92%;z-index:1}
.sp-art i{position:absolute;right:2%;top:0;width:60px;height:60px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 10px var(--sun-s);z-index:0}
.sp-hero .chip{color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--panel))}
.sp-badges li{border-radius:99px;box-shadow:none}
.sp-card{border-radius:30px;border:0;box-shadow:var(--sh2)}
.sp-card img{border-radius:46% 54% 44% 56%/52% 44% 56% 48%;border:0;box-shadow:0 0 0 4px var(--panel),0 0 0 6px color-mix(in srgb,var(--c) 40%,var(--line))}
.sp-intro h2,.sp .sec-h h2{font:700 clamp(26px,3.4vw,36px)/1.15 var(--f-serif)}
.tp{border-radius:16px;border:0;border-left:5px solid var(--c);box-shadow:0 10px 22px -16px rgba(12,32,56,.45)}
.sp-facts li{border:0;border-radius:18px;box-shadow:0 10px 22px -16px rgba(12,32,56,.45)}
.tool,.mq{border-radius:26px;border:0;box-shadow:0 18px 36px -22px rgba(12,32,56,.5)}
.tool{border-top:5px solid var(--c)}
.sp-end{border-radius:36px;border:0;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.sp-end h2{color:#fff}.sp-end .mute{color:#b9cbe0}
.sp-end .btn:not(.soft){background:linear-gradient(135deg,#ffc43d,#f59a1b);color:#3b2400}
.sp-end .btn.soft{background:rgba(255,255,255,.14);color:#fff}
.crumbs{font-size:13px}

/* ---------- student zone / shared cards ---------- */
.card,.box{border-radius:24px;border-color:var(--line)}
.pg-t h1{font:800 clamp(28px,4vw,40px)/1.15 var(--f-disp);letter-spacing:-.02em}

/* ---------- responsive ---------- */
@media(max-width:1100px){.sc{flex-basis:calc((100% - 36px)/3)}}
@media(max-width:900px){
 .hx{grid-template-columns:1fr;gap:6px;padding-top:22px}
 .hx-vis{max-width:430px;justify-self:center;margin-top:12px}
 .sc-head .dood{display:none}
 .sp-hero{grid-template-columns:1fr}
 .sp-art{max-width:240px;justify-self:center;order:2}
 .l-steps::before{display:none}
 .l-steps li span{box-shadow:none}
}
@media(max-width:700px){.sc{flex-basis:calc((100% - 18px)/2);min-width:0}.sc-cta{padding:122px 22px 24px}.sec{margin-top:52px}}
@media(max-width:480px){.hx-copy h1{font-size:clamp(34px,10.5vw,46px)}.hx-card{left:4%;bottom:3%}.hx-card b{font-size:19px}.sc-cta{margin-top:-80px}}

.sc p{flex:1}
.sc-foot .more{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:2.7em;line-height:1.35}
.l-rev{border-top:0;box-shadow:inset 0 5px 0 var(--c),0 20px 38px -24px rgba(12,32,56,.5)}
footer.ft .ft-in{grid-template-columns:1.6fr 1fr 1fr 1fr}
@media(max-width:860px){footer.ft .ft-in{grid-template-columns:1fr 1fr}}
.sec-h.ctr h2{justify-content:center}
@media(max-width:700px){
 .sc-row{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -20px;padding:6px 20px 34px;gap:14px}
 .sc-row::-webkit-scrollbar{display:none}
 .sc{flex:0 0 76%;min-width:0;scroll-snap-align:center}
 .sc-cta{margin-top:-70px;padding:96px 22px 24px}
}
@media(max-width:480px){.sc{flex:0 0 80%}.sc-cta{margin-top:-70px}}
.read{grid-template-columns:repeat(4,minmax(0,1fr))}
.read b{font-size:16px;overflow-wrap:anywhere}
@media(max-width:480px){.read{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sp-art{order:2;max-width:240px}}
@media(max-width:1200px){
 .hdr-in{flex-wrap:wrap;padding:8px 14px}
 .nav{order:3;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
 .nav::-webkit-scrollbar{display:none}
 .dd-menu{position:fixed;left:14px;right:14px;top:112px;min-width:0;margin:0 auto}
 .dd.open .dd-menu{width:min(620px,calc(100vw - 28px))}
 .dd-sm .dd-menu{width:min(340px,calc(100vw - 28px))}
 .brand span{display:none}
}
.dd-sm.open .dd-menu{grid-template-columns:1fr;width:min(340px,calc(100vw - 28px));gap:2px}
@media(max-width:1200px){.dd-sm.open .dd-menu{right:auto;margin:0}}
