img.logo{width:auto;height:26px;}
footer.site img.logo{height:22px;}/* ============================================================
   AI Ninjas — brand stylesheet
   A Neuralpath Dynamics initiative · aininjas.com

   BRAND TOKENS (all defined on :root below)
   ------------------------------------------------------------
   Colour
     --crimson        #9B2019   primary brand colour, buttons, headings accents
     --crimson-hover  #7A130D   hover / pressed
     --crimson-bright #E8604E   accents on dark surfaces
     --ember          #FF7A4D   highlight on dark (hero links, nav active)
     --ink / --ink-deep          text and dark surfaces
     --paper / --paper-2         page background, alternate sections
     --steel          #3F5B68   schools & colleges secondary palette
     --brass          #8A6115   credentials / badge accent
     --good           #2F6B4F   success states
     --L1 … --L5                 the five programme level colours
   Type
     --display  Archivo (900/800/700)      headlines, buttons, nav
     --body     Source Serif 4             long-form reading copy
     --ui       Archivo                    interface copy
     --mono     JetBrains Mono             eyebrows, labels, tags
   Layout
     --wrap 1160px   --read 68ch   --r 3px (corner radius)

   Breakpoints used throughout: 980 / 960 / 900 / 860 / 820 / 760 / 720 / 600 / 560 / 520 px
   Reduced motion is respected (see prefers-reduced-motion rule).
   ============================================================ */

:root{
  --ink:#17100F; --ink-deep:#0A0706; --ink-2:#3B2E2B; --muted:#6E605C;
  --paper:#FAF7F5; --paper-2:#F1EBE8; --line:#D9CFCB; --white:#fff;
  --crimson:#9B2019; --crimson-hover:#7A130D; --crimson-bright:#E8604E; --crimson-soft:#F7E6E3;
  --ember:#FF7A4D;
  --brass:#8A6115; --brass-soft:#F7EEDD;
  --steel:#3F5B68; --steel-soft:#E5EDF1;
  --good:#2F6B4F; --good-soft:#E5F0E9;
  --L1:#CE7A6A; --L2:#B84F3C; --L3:#9B2019; --L4:#7A130D; --L5:#4F0F0A;
  --display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --body:'Source Serif 4',Georgia,serif;
  --ui:'Archivo','Helvetica Neue',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --wrap:1160px; --read:68ch; --r:3px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px;}
.read{max-width:var(--read);}
img{max-width:100%;}
a{color:var(--crimson);}

/* header */
header.site{background:var(--ink-deep);color:#fff;position:relative;z-index:20;}
.hrow{display:flex;align-items:center;gap:22px;height:74px;}
.hrow .logo{height:26px;display:block;}
.hrow .sub{display:flex;gap:20px;margin-left:8px;flex-wrap:wrap;}
.hrow .sub a{font-size:14px;color:#C6B6B2;text-decoration:none;font-weight:500;}
.hrow .sub a:hover,.hrow .sub a:focus-visible{color:#fff;}
.hrow .sub a.on{color:var(--ember);}
.hrow .right{margin-left:auto;display:flex;align-items:center;gap:18px;}
.hrow .right a{font-size:13.5px;color:#9A8A85;text-decoration:none;}
.hrow .right a:hover{color:#fff;}
.brandtag{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ember);border:1px solid #3A2A28;padding:3px 7px;border-radius:2px;}
@media(max-width:900px){ .hrow{height:auto;padding:14px 0;flex-wrap:wrap;gap:12px;} .hrow .sub{width:100%;} }

/* type */
h1{font-family:var(--display);font-weight:900;letter-spacing:-.035em;line-height:.98;margin:0 0 20px;
  font-size:clamp(38px,6.4vw,74px);text-wrap:balance;}
h2{font-family:var(--display);font-weight:800;letter-spacing:-.026em;line-height:1.06;margin:0 0 16px;
  font-size:clamp(27px,3.9vw,42px);text-wrap:balance;}
h3{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.012em;margin:0 0 8px;}
h4{font-family:var(--display);font-weight:700;font-size:16px;margin:0 0 6px;}
p{margin:0 0 16px;}
.lead{font-size:20px;line-height:1.5;color:var(--ink-2);}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--crimson);margin:0 0 14px;}
.eyebrow.lt{color:var(--ember);}
.serif{font-family:var(--body);}

section{padding:76px 0;}
section.alt{background:var(--paper-2);}
section.dark{background:var(--ink-deep);color:#fff;}
section.dark h1,section.dark h2,section.dark h3,section.dark h4{color:#fff;}
section.dark p{color:#C6B6B2;}

/* HERO with canvas */
.hero{position:relative;overflow:hidden;background:var(--ink-deep);color:#fff;padding:110px 0 96px;}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;}
.hero .glow{position:absolute;right:-18%;top:-42%;width:78%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,122,77,.26),rgba(255,122,77,0) 66%);pointer-events:none;}
.hero .wrap{position:relative;z-index:3;}
.hero.sm{padding:74px 0 62px;}
.hero.steel .glow{background:radial-gradient(circle,rgba(120,175,205,.2),rgba(120,175,205,0) 66%);}

/* slash accent */
.slash{display:inline-block;width:52px;height:4px;background:var(--ember);margin-bottom:26px;
  transform:skewX(-28deg);}

/* buttons */
.btn{display:inline-block;font-family:var(--display);font-weight:700;font-size:16px;
  padding:15px 28px;border-radius:var(--r);text-decoration:none;border:1.5px solid transparent;cursor:pointer;
  transition:transform .14s ease,background .14s ease,color .14s ease,border-color .14s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-p{background:var(--ember);color:var(--ink-deep);}
.btn-p:hover,.btn-p:focus-visible{background:#fff;}
.btn-l{background:var(--crimson);color:#fff;}
.btn-l:hover,.btn-l:focus-visible{background:var(--crimson-hover);}
.btn-o{border-color:#5A4A47;color:#fff;}
.btn-o:hover,.btn-o:focus-visible{border-color:#fff;}
.btn-s{background:var(--steel);color:#fff;}
.btn-s:hover{background:#2E4552;}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;}

.pathcue{margin-top:30px;font-family:var(--display);font-weight:700;font-size:16px;color:var(--ember);
  display:inline-flex;align-items:center;gap:9px;}
.pathcue span{display:inline-block;animation:nudge 2.2s ease-in-out infinite;}
@keyframes nudge{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}
.doorsec{padding-top:58px;}
.doorsec-h{font-size:clamp(24px,3.2vw,34px);margin-bottom:28px;}
/* doors */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.door{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:0;
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;overflow:hidden;
  transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;}
.door:hover,.door:focus-visible{border-color:var(--crimson);transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(23,16,15,.10);}
.door .art{height:158px;position:relative;overflow:hidden;background:var(--ink-deep);}
.door .art svg{position:absolute;inset:0;width:100%;height:100%;}
.door .bd{padding:22px 24px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.door .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--crimson);}
.door .t{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;line-height:1.12;}
.door .d{font-size:15px;color:var(--ink-2);line-height:1.5;}
.door .go{margin-top:auto;padding-top:14px;font-family:var(--display);font-weight:700;font-size:14.5px;color:var(--crimson);}
@media(max-width:860px){ .doors{grid-template-columns:1fr;} }

/* facts */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.fact{border-left:3px solid var(--crimson);padding-left:18px;}
.fact.st{border-color:var(--steel);}
.fact .n{font-family:var(--display);font-weight:900;font-size:34px;letter-spacing:-.04em;line-height:1;color:var(--crimson);}
.fact.st .n{color:var(--steel);}
.fact .c{font-size:14.5px;color:var(--muted);margin-top:8px;line-height:1.45;}
@media(max-width:760px){ .facts{grid-template-columns:1fr;gap:20px;} }

/* level ladder with badges */
.ladder{border-top:1px solid var(--line);}
.lvl{display:grid;grid-template-columns:62px 1fr 118px;gap:24px;padding:24px 0;
  border-bottom:1px solid var(--line);align-items:center;}
.lvl .badge{width:62px;height:70px;}
.lvl .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.lvl .nm{font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.02em;margin:4px 0 5px;}
.lvl .mod{font-size:14.5px;color:var(--crimson);font-weight:600;margin-bottom:4px;}
.lvl .ds{font-size:15px;color:var(--ink-2);line-height:1.5;}
.lvl .out{text-align:right;}
.lvl .out .b{font-family:var(--display);font-weight:900;font-size:27px;letter-spacing:-.04em;line-height:1;}
.lvl .out .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
@media(max-width:760px){
  .lvl{grid-template-columns:46px 1fr;gap:16px;}
  .lvl .badge{width:46px;height:52px;}
  .lvl .out{grid-column:2;text-align:left;display:flex;align-items:baseline;gap:10px;}
  .lvl .out .l{margin-top:0;}
}

/* module cards */
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.modcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:22px;
  display:flex;flex-direction:column;gap:9px;transition:border-color .15s ease,transform .15s ease;}
.modcard:hover{border-color:var(--crimson);transform:translateY(-2px);}
.modcard .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:#fff;background:var(--crimson);
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;}
.modcard .t{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;}
.modcard .d{font-size:14px;color:var(--ink-2);line-height:1.5;}
@media(max-width:980px){ .mods{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .mods{grid-template-columns:1fr;} }

/* grids & cards */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media(max-width:860px){ .g2,.g3,.g4{grid-template-columns:1fr;} }
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px;}
.card p{font-size:15px;color:var(--ink-2);margin-bottom:0;}
.card .ic{width:42px;height:42px;border-radius:var(--r);background:var(--crimson-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:15px;}
.card .ic svg{width:22px;height:22px;}
.card.st .ic{background:var(--steel-soft);}
.card.dk{background:#140F0E;border-color:#2A201E;}
.card.dk h3,.card.dk h4{color:#fff;} .card.dk p{color:#B9A6A2;}
.card.dk .ic{background:#2A1614;}

/* notes */
.note{background:var(--brass-soft);border-left:3px solid var(--brass);border-radius:0 var(--r) var(--r) 0;padding:22px 24px;}
.note .h{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass);font-weight:600;margin-bottom:9px;}
.note p{font-size:15.5px;color:var(--ink-2);margin-bottom:0;}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:30px 44px;}
.faq h4{font-size:17px;margin-bottom:7px;}
.faq p{font-size:15px;color:var(--ink-2);margin:0;}
@media(max-width:760px){ .faq{grid-template-columns:1fr;gap:24px;} }

/* cta */
.cta{background:var(--ink-deep);color:#fff;padding:70px 0;position:relative;overflow:hidden;}
.cta .glow{position:absolute;left:-14%;bottom:-70%;width:60%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,122,77,.22),rgba(255,122,77,0) 68%);}
.cta .wrap{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;}
.cta h2{margin-bottom:6px;} .cta p{color:#B9A6A2;margin:0;font-size:16px;}

/* forms */
.form{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px;}
.fg{margin-bottom:18px;}
.fg label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;color:var(--ink);}
.fg input,.fg select{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r);
  font-family:var(--ui);font-size:15px;background:var(--paper);color:var(--ink);}
.fg input:focus,.fg select:focus{border-color:var(--crimson);outline:none;box-shadow:0 0 0 3px var(--crimson-soft);}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
@media(max-width:600px){ .fg2{grid-template-columns:1fr;} }
.ok{background:var(--good-soft);border:1px solid var(--good);color:var(--good);border-radius:var(--r);
  padding:16px 18px;font-size:15px;margin-top:16px;display:none;}
.ok.show{display:block;}
.fine{font-size:13px;color:var(--muted);margin-top:14px;}

/* table */
.tw{overflow-x:auto;min-width:0;}
.g2>*,.g3>*,.g4>*,.facts>*,.doors>*{min-width:0;}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:560px;}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top;}
th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  font-weight:600;border-bottom:1.5px solid var(--ink);}

/* footer */
footer.site{background:var(--ink-deep);color:#9A8A85;padding:62px 0 34px;}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px;}
footer.site h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin:0 0 14px;font-weight:600;}
footer.site a{display:block;color:#9A8A85;text-decoration:none;font-size:14.5px;margin-bottom:9px;}
footer.site a:hover,footer.site a:focus-visible{color:#fff;}
footer.site .logo{height:22px;margin-bottom:14px;}
footer.site .bt{border-top:1px solid #2A2120;padding-top:22px;display:flex;justify-content:space-between;
  gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;}
@media(max-width:900px){ footer.site .cols{grid-template-columns:1fr 1fr;} }

.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:#8D7C78;margin-bottom:18px;}
.crumb a{color:#8D7C78;text-decoration:none;} .crumb a:hover{color:#fff;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important;}}

/* --- primary nav separator --- */
.hrow .sub .sep{width:1px;height:15px;background:#3A2A28;align-self:center;}

/* --- two-up doors --- */
.doors.two{grid-template-columns:1fr 1fr;}
@media(max-width:860px){ .doors.two{grid-template-columns:1fr;} }

/* --- framed illustration --- */
.artbox{position:relative;height:250px;overflow:hidden;border-radius:var(--r);
  background:var(--ink-deep);border:1px solid var(--line);}
.artbox svg{position:absolute;inset:0;width:100%;height:100%;}

/* --- audience framing toggle --- */
.moodbar{background:var(--paper-2);border-bottom:1px solid var(--line);}
.moodbar .wrap{display:flex;align-items:center;gap:16px;padding-top:15px;padding-bottom:15px;flex-wrap:wrap;}
.moodbar .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.moodbar .hint{font-size:13.5px;color:var(--muted);margin-left:auto;}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:#fff;padding:3px;gap:3px;}
.seg a{font-family:var(--display);font-weight:700;font-size:14.5px;padding:9px 19px;border-radius:999px;
  text-decoration:none;color:var(--ink-2);white-space:nowrap;transition:background .14s ease,color .14s ease;}
.seg a.on{background:var(--crimson);color:#fff;}
.seg a:not(.on):hover{background:var(--paper-2);}
body[data-mood="c"] .m-s{display:none!important;}
body[data-mood="s"] .m-c{display:none!important;}

/* --- canonical-programme link band --- */
.band{background:var(--ink-deep);color:#fff;border-radius:var(--r);padding:34px 36px;display:flex;
  justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.band .bt{font-family:var(--display);font-weight:800;font-size:23px;letter-spacing:-.02em;color:#fff;margin-bottom:7px;}
.band p{color:#B9A6A2;margin:0;font-size:15.5px;max-width:58ch;}

/* --- demo video cards --- */
.vids{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media(max-width:820px){ .vids{grid-template-columns:1fr;} }
.vid{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;cursor:pointer;text-align:left;
  padding:0;font:inherit;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;}
.vid:hover,.vid:focus-visible{border-color:var(--crimson);transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(23,16,15,.10);}
.vid .thumb{position:relative;height:186px;background:var(--ink-deep);overflow:hidden;}
.vid .thumb svg{position:absolute;inset:0;width:100%;height:100%;}
.vid .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;
  border-radius:50%;background:rgba(255,122,77,.94);display:flex;align-items:center;justify-content:center;
  transition:transform .16s ease;}
.vid:hover .play{transform:translate(-50%,-50%) scale(1.09);}
.vid .play svg{position:static;width:20px;height:20px;}
.vid .dur{position:absolute;right:12px;bottom:12px;background:rgba(10,7,6,.86);color:#fff;
  font-family:var(--mono);font-size:11px;padding:4px 8px;border-radius:2px;letter-spacing:.04em;}
.vid .bd{padding:20px 22px 22px;display:flex;flex-direction:column;gap:7px;flex:1;}
.vid .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--crimson);}
.vid.st .k{color:var(--steel);}
.vid .t{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.18;}
.vid .d{font-size:14.5px;color:var(--ink-2);line-height:1.5;}

/* --- header demo link --- */
.hrow .right a.demolink{color:var(--ember);font-weight:600;}
.hrow .right a.demolink:hover{color:#fff;}

/* --- about page pull quote --- */
.pull{border-left:3px solid var(--crimson);padding:6px 0 6px 26px;margin:0;}
.pull p{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.9vw,30px);letter-spacing:-.025em;
  line-height:1.18;margin:0;text-wrap:balance;}
section.dark .pull{border-color:var(--ember);}
section.dark .pull p{color:#fff;}

/* --- contact form --- */
.seg button{font-family:var(--display);font-weight:700;font-size:14.5px;padding:9px 19px;border-radius:999px;
  border:none;background:none;color:var(--ink-2);white-space:nowrap;cursor:pointer;
  transition:background .14s ease,color .14s ease;}
.seg button.on{background:var(--crimson);color:#fff;}
.seg button:not(.on):hover{background:var(--paper-2);}
.fg textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r);
  font-family:var(--ui);font-size:15px;background:var(--paper);color:var(--ink);min-height:132px;resize:vertical;}
.fg textarea:focus{border-color:var(--crimson);outline:none;box-shadow:0 0 0 3px var(--crimson-soft);}
form[data-ctype="ind"] .c-inst{display:none;}
form[data-ctype="inst"] .c-ind{display:none;}
.mailcard{background:var(--ink-deep);color:#fff;border-radius:var(--r);padding:30px 32px;}
.mailcard .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#8D7C78;margin-bottom:12px;}
.mailcard a.mail{font-family:var(--display);font-weight:800;font-size:clamp(21px,2.6vw,27px);
  letter-spacing:-.02em;color:var(--ember);text-decoration:none;word-break:break-all;}
.mailcard a.mail:hover,.mailcard a.mail:focus-visible{color:#fff;}
.mailcard p{color:#B9A6A2;font-size:15px;margin:16px 0 0;}

/* ===== v17: assessment, reporting & student-data additions ===== */

/* mock dashboard window */
.dash{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:0 18px 44px rgba(23,16,15,.10);font-family:var(--ui);}
.dash .top{background:var(--ink-deep);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.dash .top .who{font-family:var(--display);font-weight:800;font-size:14px;letter-spacing:-.01em;display:flex;align-items:center;gap:9px;}
.dash .top .who i{width:22px;height:22px;border-radius:3px;background:var(--steel);display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;font-weight:700;color:#fff;font-style:normal;}
.dash .top .tabs{margin-left:auto;display:inline-flex;gap:2px;background:#1E1614;border-radius:999px;padding:2px;}
.dash .top .tabs button{font-family:var(--display);font-weight:700;font-size:12.5px;padding:6px 13px;border-radius:999px;border:none;
  background:none;color:#B9A6A2;cursor:pointer;transition:background .14s ease,color .14s ease;}
.dash .top .tabs button.on{background:var(--ember);color:var(--ink-deep);}
.dash .top .tabs button:not(.on):hover{color:#fff;}
.dash .pane{display:none;padding:18px 18px 20px;}
.dash .pane.on{display:block;}
.dash .ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.dash .ph .t{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.015em;}
.dash .ph .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.dash .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.dash .kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px;}
.dash .kpi .n{font-family:var(--display);font-weight:900;font-size:22px;letter-spacing:-.04em;line-height:1;color:var(--steel);}
.dash .kpi .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px;line-height:1.3;}
.dash .rows{display:grid;gap:8px;}
.dash .row{display:grid;grid-template-columns:118px 1fr 58px 96px;gap:12px;align-items:center;font-size:13px;}
.dash .row .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dash .row .nm small{display:block;font-weight:400;color:var(--muted);font-size:11px;}
.bar{height:8px;background:var(--paper-2);border-radius:999px;overflow:hidden;position:relative;}
.bar i{display:block;height:100%;background:var(--steel);border-radius:999px;}
.bar.em i{background:var(--ember);} .bar.cr i{background:var(--crimson);} .bar.gd i{background:var(--good);}
.bar .tick{position:absolute;top:-3px;width:2px;height:14px;background:var(--ink);opacity:.55;}
.dash .row .sc{font-family:var(--mono);font-size:12px;text-align:right;}
.pill{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:3px 8px;border-radius:2px;white-space:nowrap;}
.pill.ok{background:var(--good-soft);color:var(--good);}
.pill.warn{background:var(--brass-soft);color:var(--brass);}
.pill.ahead{background:var(--steel-soft);color:var(--steel);}
.pill.sync{background:var(--steel-soft);color:var(--steel);}
.dash .foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.dash .foot .exp{display:inline-flex;gap:8px;flex-wrap:wrap;}
.dash .foot .exp span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);
  padding:5px 9px;border-radius:2px;color:var(--ink-2);}
.dash .foot .note{font-size:12px;color:var(--muted);background:none;border:none;padding:0;}
.dash .rec{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.dash .rec .box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 13px;}
.dash .rec .box .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.dash .rec .box .big{font-family:var(--display);font-weight:900;font-size:26px;letter-spacing:-.04em;line-height:1;}
.dash .rec .box .big small{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;margin-left:6px;}
.dash .checks{display:grid;gap:7px;font-size:13px;}
.dash .checks div{display:grid;grid-template-columns:1fr 40px 92px;gap:10px;align-items:center;}
.dash .checks .mono{font-family:var(--mono);font-size:12px;text-align:right;}
.dash .levels{display:grid;gap:9px;}
.dash .levels div{display:grid;grid-template-columns:82px 1fr 56px;gap:12px;align-items:center;font-size:13px;}
.dash .levels .mono{font-family:var(--mono);font-size:12px;text-align:right;color:var(--ink-2);white-space:nowrap;}
@media(max-width:720px){
  .dash .kpis{grid-template-columns:repeat(2,1fr);}
  .dash .row{grid-template-columns:96px 1fr 44px;} .dash .row .st{display:none;}
  .dash .rec{grid-template-columns:1fr;}
  .dash .top .tabs{margin-left:0;}
}

/* assessment layer (numbered steps) */
.layer{display:grid;gap:0;border-top:1px solid var(--line);}
.layer .st{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);}
.layer .st .n{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:#fff;background:var(--steel);width:30px;height:30px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;}
.layer .st h4{margin:2px 0 4px;font-size:16.5px;}
.layer .st p{font-size:14.5px;color:var(--ink-2);margin:0;line-height:1.5;}
.layer .st .when{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:3px;}
.layer.ind .st .n{background:var(--crimson);} .layer.ind .st .when{color:var(--crimson);}

/* grade flow strip */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden;}
.flow .fs{padding:20px 20px 22px;position:relative;border-right:1px solid var(--line);}
.flow .fs:last-child{border-right:none;}
.flow .fs:not(:last-child)::after{content:"";position:absolute;right:-9px;top:50%;width:16px;height:16px;transform:translateY(-50%) rotate(45deg);
  background:#fff;border-top:1px solid var(--line);border-right:1px solid var(--line);z-index:2;}
.flow .fs .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin-bottom:8px;}
.flow .fs .t{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.015em;margin-bottom:5px;}
.flow .fs .d{font-size:13.5px;color:var(--ink-2);line-height:1.45;}
@media(max-width:860px){
  .flow{grid-template-columns:1fr;}
  .flow .fs{border-right:none;border-bottom:1px solid var(--line);}
  .flow .fs:last-child{border-bottom:none;}
  .flow .fs:not(:last-child)::after{right:auto;left:24px;top:auto;bottom:-9px;transform:rotate(135deg);}
}

/* report moments */
.moment{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px;}
.moment .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);}
.moment h4{font-size:17px;margin:0;}
.moment p{font-size:14px;color:var(--ink-2);margin:0;line-height:1.5;}
.moment .file{margin-top:auto;padding-top:12px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--ink-2);}
.moment .file b{font-weight:600;background:var(--steel-soft);color:var(--steel);padding:2px 6px;border-radius:2px;font-size:9.5px;letter-spacing:.08em;}

/* personal progress card */
.stud{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 18px 44px rgba(23,16,15,.10);}
.stud .top{background:var(--ink-deep);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:16px;}
.stud .ring{width:64px;height:64px;flex:none;}
.stud .top .t{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;line-height:1.15;}
.stud .top .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#B9A6A2;margin-top:5px;}
.stud .bd{padding:18px;}
.stud .base{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);padding:12px 14px;margin-bottom:16px;}
.stud .base .l{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.stud .base .n{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:-.04em;line-height:1;}
.stud .base .arrow{font-family:var(--display);font-weight:900;font-size:22px;color:var(--ember);}
.stud .base .n.up{color:var(--good);}
.stud .mods{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-bottom:8px;}
.stud .mods i{display:block;height:9px;border-radius:2px;background:var(--paper-2);}
.stud .mods i.done{background:var(--crimson);} .stud .mods i.now{background:var(--ember);}
.stud .modl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;}
.stud .list{display:grid;gap:8px;font-size:13.5px;}
.stud .list div{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--line);}
.stud .list div:last-child{border-bottom:none;padding-bottom:0;}
.stud .list .mono{font-family:var(--mono);font-size:12px;}
.stud .list .dim{color:var(--muted);}

/* credential card */
.cred{background:linear-gradient(135deg,#1A1210,#0A0706);color:#fff;border:1px solid #3A2A28;border-radius:var(--r);padding:20px 22px;
  display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;}
.cred .badge{width:58px;height:66px;}
.cred .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);margin-bottom:6px;}
.cred .t{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.02em;line-height:1.15;margin-bottom:6px;}
.cred .m{font-family:var(--mono);font-size:11px;color:#8D7C78;line-height:1.5;}
.cred .m b{color:#C6B6B2;font-weight:500;}

/* home: two lenses */
.lens{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:start;}
.lens .mid{align-self:center;}
.lens .side .cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;}
.lens .side.me .cap{color:var(--crimson);} .lens .side.sch .cap{color:var(--steel);}
.lens .mid{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-align:center;}
.lens .mid .ln{width:1px;height:46px;background:var(--line);}
.lens .mid .eq{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:900;font-size:18px;color:var(--ink);background:#fff;}
@media(max-width:900px){ .lens{grid-template-columns:1fr;} .lens .mid{flex-direction:row;justify-content:center;} .lens .mid .ln{width:46px;height:1px;} }

/* mini class row (home) */
.mini{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 18px 44px rgba(23,16,15,.10);}
.mini .top{background:var(--ink-deep);color:#fff;padding:11px 14px;font-family:var(--display);font-weight:800;font-size:13.5px;display:flex;justify-content:space-between;gap:10px;}
.mini .top span{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#B9A6A2;}
.mini .bd{padding:12px 14px;}
.mini .hd,.mini .r{display:grid;grid-template-columns:96px 1fr 44px 80px;gap:10px;align-items:center;font-size:12.5px;padding:7px 0;}
.mini .hd{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding-top:0;}
.mini .r{border-bottom:1px solid var(--line);} .mini .r:last-child{border-bottom:none;}
.mini .r.hi{background:var(--crimson-soft);margin:0 -14px;padding-left:14px;padding-right:14px;}
.mini .mono{font-family:var(--mono);font-size:11.5px;text-align:right;}
@media(max-width:520px){ .mini .hd,.mini .r{grid-template-columns:80px 1fr 40px;} .mini .hd>:last-child,.mini .r>:last-child{display:none;} }

/* standards strip */
.stds{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.std{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;display:flex;flex-direction:column;gap:6px;}
.std .code{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);font-weight:600;}
.std .t{font-family:var(--display);font-weight:800;font-size:15.5px;letter-spacing:-.015em;line-height:1.2;}
.std .d{font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.std .how{margin-top:auto;padding-top:8px;font-size:12.5px;color:var(--muted);border-top:1px dashed var(--line);}
.std .how b{color:var(--ink-2);font-weight:600;}
section.dark .std{background:#140F0E;border-color:#2A201E;}
section.dark .std .t{color:#fff;} section.dark .std .d{color:#B9A6A2;} section.dark .std .how{color:#8D7C78;border-color:#2A201E;} section.dark .std .how b{color:#C6B6B2;}
section.dark .std .code{color:#78AFCD;}
@media(max-width:900px){ .stds{grid-template-columns:1fr 1fr;} }
@media(max-width:600px){ .stds{grid-template-columns:1fr;} }

/* commitments list */
.comm{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.comm div{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;font-size:15px;line-height:1.5;color:var(--ink-2);}
.comm div i{width:22px;height:22px;border-radius:50%;background:var(--good-soft);display:flex;align-items:center;justify-content:center;flex:none;margin-top:2px;}
.comm div i svg{width:12px;height:12px;}
.comm div b{color:var(--ink);font-weight:600;}
section.dark .comm div{color:#B9A6A2;} section.dark .comm div b{color:#fff;} section.dark .comm div i{background:#1F3A2B;}
@media(max-width:760px){ .comm{grid-template-columns:1fr;} }

/* definitions table on privacy page */
.deftable td:first-child{white-space:nowrap;font-weight:600;}
.tiny{font-size:13px;color:var(--muted);line-height:1.55;}

/* ===== v18: individual-first home, maths backgrounds ===== */
.mathbg{position:absolute;inset:0;pointer-events:none;background-repeat:repeat;background-size:520px 520px;z-index:0;}
.mathbg{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.22) 42%,rgba(0,0,0,.95) 72%);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.22) 42%,rgba(0,0,0,.95) 72%);}
.mathbg.dk{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22520%22%20height%3D%22520%22%20viewBox%3D%220%200%20520%20520%22%3E%0A%3Ctext%20x%3D%2228%22%20y%3D%2254%22%20font-size%3D%2219%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%CF%83%28x%29%20%3D%201%20%2F%20%281%20%2B%20e%3Ctspan%20font-size%3D%2212%22%20dy%3D%22-7%22%3E%E2%88%92x%3C%2Ftspan%3E%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%22300%22%20y%3D%2296%22%20font-size%3D%2218%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%C5%B7%20%3D%20Wx%20%2B%20b%3C%2Ftext%3E%0A%3Ctext%20x%3D%2240%22%20y%3D%22150%22%20font-size%3D%2220%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%E2%88%82L%20%2F%20%E2%88%82w%3C%2Ftext%3E%0A%3Ctext%20x%3D%22360%22%20y%3D%22200%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%CE%B8%20%E2%86%90%20%CE%B8%20%E2%88%92%20%CE%B7%20%E2%88%87%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3E%CE%B8%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%20J%28%CE%B8%29%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Ctext%20x%3D%2270%22%20y%3D%22300%22%20font-size%3D%2234%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%E2%88%91%3C%2Ftext%3E%0A%3Ctext%20x%3D%22100%22%20y%3D%22292%22%20font-size%3D%2213%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3En%3C%2Ftext%3E%3Ctext%20x%3D%2298%22%20y%3D%22316%22%20font-size%3D%2213%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3Ei%3D1%3C%2Ftext%3E%0A%3Ctext%20x%3D%22122%22%20y%3D%22303%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E%28y%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3Ei%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%20%E2%88%92%20%C5%B7%3C%2Ftspan%3E%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3Ei%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%29%C2%B2%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Ctext%20x%3D%22290%22%20y%3D%22330%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3EP%28A%7CB%29%20%3D%20P%28B%7CA%29%20P%28A%29%20%2F%20P%28B%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%2260%22%20y%3D%22470%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3Ef%28x%29%20%3D%20max%280%2C%20x%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%22300%22%20y%3D%22440%22%20font-size%3D%2216%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3Esoftmax%28z%29%20%3D%20e%3Ctspan%20font-size%3D%2211%22%20dy%3D%22-6%22%3Ez%3C%2Ftspan%3E%3Ctspan%20dy%3D%226%22%3E%20%2F%20%E2%88%91%20e%3C%2Ftspan%3E%3Ctspan%20font-size%3D%2211%22%20dy%3D%22-6%22%3Ez%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Cpath%20d%3D%22M420%2020%20h-6%20v56%20h6%20M474%2020%20h6%20v56%20h-6%22%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Ctext%20x%3D%22428%22%20y%3D%2240%22%20font-size%3D%2212%22%20font-family%3D%22JetBrains%20Mono%2CMenlo%2Cmonospace%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E1%20%200%3C%2Ftext%3E%0A%3Ctext%20x%3D%22428%22%20y%3D%2266%22%20font-size%3D%2212%22%20font-family%3D%22JetBrains%20Mono%2CMenlo%2Cmonospace%22%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.34%22%3E0%20%201%3C%2Ftext%3E%0A%3Cpath%20d%3D%22M180%20250%20v-110%20M180%20250%20h150%22%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Cpath%20d%3D%22M182%20246%20C%20230%20246%2C%20250%20150%2C%20330%20144%22%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.7%22%2F%3E%0A%3Cpath%20d%3D%22M200%20460%20v-80%20M200%20460%20h110%22%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Cpath%20d%3D%22M205%20390%20C%20230%20450%2C%20260%20455%2C%20305%20452%22%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.7%22%2F%3E%0A%3Cg%20fill%3D%22%23FF9A72%22%20fill-opacity%3D%220.3%22%3E%3Ccircle%20cx%3D%22440%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22460%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22480%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22500%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22440%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22460%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22480%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22500%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3C%2Fg%3E%0A%3Cg%20stroke%3D%22%23FF9A72%22%20stroke-opacity%3D%220.3%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%3E%3Ccircle%20cx%3D%22300%22%20cy%3D%22380%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M262%20362%20L291%20377%20M262%20380%20L291%20380%20M262%20398%20L291%20383%20M309%20380%20L338%20380%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E");opacity:.5;}
.mathbg.lt{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22520%22%20height%3D%22520%22%20viewBox%3D%220%200%20520%20520%22%3E%0A%3Ctext%20x%3D%2228%22%20y%3D%2254%22%20font-size%3D%2219%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%CF%83%28x%29%20%3D%201%20%2F%20%281%20%2B%20e%3Ctspan%20font-size%3D%2212%22%20dy%3D%22-7%22%3E%E2%88%92x%3C%2Ftspan%3E%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%22300%22%20y%3D%2296%22%20font-size%3D%2218%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%C5%B7%20%3D%20Wx%20%2B%20b%3C%2Ftext%3E%0A%3Ctext%20x%3D%2240%22%20y%3D%22150%22%20font-size%3D%2220%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%E2%88%82L%20%2F%20%E2%88%82w%3C%2Ftext%3E%0A%3Ctext%20x%3D%22360%22%20y%3D%22200%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%CE%B8%20%E2%86%90%20%CE%B8%20%E2%88%92%20%CE%B7%20%E2%88%87%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3E%CE%B8%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%20J%28%CE%B8%29%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Ctext%20x%3D%2270%22%20y%3D%22300%22%20font-size%3D%2234%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%E2%88%91%3C%2Ftext%3E%0A%3Ctext%20x%3D%22100%22%20y%3D%22292%22%20font-size%3D%2213%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3En%3C%2Ftext%3E%3Ctext%20x%3D%2298%22%20y%3D%22316%22%20font-size%3D%2213%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3Ei%3D1%3C%2Ftext%3E%0A%3Ctext%20x%3D%22122%22%20y%3D%22303%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%28y%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3Ei%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%20%E2%88%92%20%C5%B7%3C%2Ftspan%3E%3Ctspan%20font-size%3D%2211%22%20dy%3D%224%22%3Ei%3C%2Ftspan%3E%3Ctspan%20dy%3D%22-4%22%3E%29%C2%B2%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Ctext%20x%3D%22290%22%20y%3D%22330%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3EP%28A%7CB%29%20%3D%20P%28B%7CA%29%20P%28A%29%20%2F%20P%28B%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%2260%22%20y%3D%22470%22%20font-size%3D%2217%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3Ef%28x%29%20%3D%20max%280%2C%20x%29%3C%2Ftext%3E%0A%3Ctext%20x%3D%22300%22%20y%3D%22440%22%20font-size%3D%2216%22%20font-family%3D%22Source%20Serif%204%2CGeorgia%2Cserif%22%20font-style%3D%22italic%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3Esoftmax%28z%29%20%3D%20e%3Ctspan%20font-size%3D%2211%22%20dy%3D%22-6%22%3Ez%3C%2Ftspan%3E%3Ctspan%20dy%3D%226%22%3E%20%2F%20%E2%88%91%20e%3C%2Ftspan%3E%3Ctspan%20font-size%3D%2211%22%20dy%3D%22-6%22%3Ez%3C%2Ftspan%3E%3C%2Ftext%3E%0A%3Cpath%20d%3D%22M420%2020%20h-6%20v56%20h6%20M474%2020%20h6%20v56%20h-6%22%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Ctext%20x%3D%22428%22%20y%3D%2240%22%20font-size%3D%2212%22%20font-family%3D%22JetBrains%20Mono%2CMenlo%2Cmonospace%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E1%20%200%3C%2Ftext%3E%0A%3Ctext%20x%3D%22428%22%20y%3D%2266%22%20font-size%3D%2212%22%20font-family%3D%22JetBrains%20Mono%2CMenlo%2Cmonospace%22%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E0%20%201%3C%2Ftext%3E%0A%3Cpath%20d%3D%22M180%20250%20v-110%20M180%20250%20h150%22%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Cpath%20d%3D%22M182%20246%20C%20230%20246%2C%20250%20150%2C%20330%20144%22%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.7%22%2F%3E%0A%3Cpath%20d%3D%22M200%20460%20v-80%20M200%20460%20h110%22%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%0A%3Cpath%20d%3D%22M205%20390%20C%20230%20450%2C%20260%20455%2C%20305%20452%22%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.7%22%2F%3E%0A%3Cg%20fill%3D%22%239B2019%22%20fill-opacity%3D%220.16%22%3E%3Ccircle%20cx%3D%22440%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22460%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22480%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22500%22%20cy%3D%22480%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22440%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22460%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22480%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3Ccircle%20cx%3D%22500%22%20cy%3D%22500%22%20r%3D%221.4%22%2F%3E%3C%2Fg%3E%0A%3Cg%20stroke%3D%22%239B2019%22%20stroke-opacity%3D%220.16%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%3E%3Ccircle%20cx%3D%22300%22%20cy%3D%22380%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M262%20362%20L291%20377%20M262%20380%20L291%20380%20M262%20398%20L291%20383%20M309%20380%20L338%20380%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E");opacity:.42;}
@media(max-width:860px){ .mathbg{opacity:.22!important;} }
.hero .mathbg{z-index:1;} .hero canvas{z-index:2;} .hero .glow{z-index:2;}
.doorsec{position:relative;overflow:hidden;} .doorsec .wrap{position:relative;z-index:1;}
.schoolcue{margin-top:22px;font-size:15px;color:#9A8A85;}
.schoolcue a{color:#78AFCD;font-weight:600;text-decoration:none;}
.schoolcue a:hover,.schoolcue a:focus-visible{color:#fff;}
.doors.trio{grid-template-columns:1fr 1fr 1fr;}
@media(max-width:960px){ .doors.trio{grid-template-columns:1fr;} }
.door.st .k,.door.st .go{color:var(--steel);}
.door.st{background:var(--steel-soft);}
.door.st:hover,.door.st:focus-visible{border-color:var(--steel);}
section.schools{background:linear-gradient(180deg,var(--steel-soft),var(--paper));border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* ============================================================
   Production additions (not in the mock)
   ============================================================ */

/* --- accessibility --- */
.skip{position:absolute;left:-999px;top:8px;background:var(--crimson);color:#fff;padding:10px 14px;border-radius:var(--r);z-index:999;font-weight:700;}
.skip:focus{left:8px;}
:focus-visible{outline:3px solid var(--ember);outline-offset:2px;}

/* --- header: production nav (mobile menu, active states) --- */
.hrow{position:relative;}
.hrow .logolink{display:flex;align-items:center;}
.hrow .sub{align-items:center;}
.hrow .sub .right{margin-left:auto;display:flex;align-items:center;gap:18px;}
.hrow .sub .right a{font-size:13.5px;color:#9A8A85;}
.hrow .sub .right a:hover{color:#fff;}
.hrow .sub a.ex{color:#9A8A85;font-size:13.5px;}
.hrow .sub a[aria-current="page"]{color:var(--ember);}
.hrow .sub a[hidden],.hrow .sub .sep[hidden]{display:none;}
.btn.btn-sm{font-size:13.5px;padding:9px 16px;}
.hrow .sub .right a.enrol{color:#fff;}
.navtoggle{display:none;margin-left:auto;background:none;border:1px solid #3A2A28;border-radius:var(--r);width:44px;height:40px;padding:9px 11px;cursor:pointer;flex-direction:column;justify-content:space-between;}
.navtoggle span{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
@media(max-width:900px){
  .hrow{flex-wrap:wrap;gap:14px;padding:14px 0;height:auto;}
  .navtoggle{display:flex;}
  .hrow .sub{display:none;flex:0 0 100%;width:100%;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px 0 14px;border-top:1px solid #2A1F1D;}
  .hrow .sub.open{display:flex;}
  .hrow .sub a{padding:11px 4px;font-size:16px;border-bottom:1px solid #2A1F1D;}
  .hrow .sub .sep{display:none;}
  .hrow .sub .right{margin:12px 0 0;flex-direction:column;align-items:stretch;gap:0;}
  .hrow .sub .right a{padding:11px 4px;font-size:16px;border-bottom:1px solid #2A1F1D;}
  .hrow .sub .right a.enrol{margin-top:14px;text-align:center;border:none;}
}
@media(min-width:901px){ .hrow{flex-wrap:nowrap;} .hrow .sub{flex:1;} }

/* --- header demo link (keep) --- */
.hrow .sub .right a.demolink{color:var(--ember);font-weight:600;}

/* --- demo page: coming-soon cards --- */
.vid.soon{cursor:default;}
.vid.soon .thumb::after{content:"Coming soon";position:absolute;left:12px;top:12px;background:var(--ember);color:var(--ink-deep);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:5px 9px;border-radius:2px;font-weight:600;}
.vid.soon .thumb .play{opacity:.35;}
.vid.soon:hover{transform:none;box-shadow:none;}
.notify{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}
.notify .fg{flex:1 1 240px;margin:0;}

/* --- forms: production states --- */
.fg .req{color:var(--crimson);}
.fg input:invalid:not(:placeholder-shown):not(:focus),.fg textarea:invalid:not(:placeholder-shown):not(:focus){border-color:#B84F3C;}
.fg.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2);}
.fg.check input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--crimson);}
.fg.check label{font-weight:500;font-size:14px;margin:0;}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.err{background:#FBEAE8;border:1px solid #B84F3C;color:#7A130D;border-radius:var(--r);padding:14px 16px;font-size:15px;margin-top:16px;display:none;}
.err.show{display:block;}
button[disabled]{opacity:.6;cursor:not-allowed;}

/* --- cookie consent --- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:600;padding:16px;pointer-events:none;}
.consent[hidden]{display:none;}
.consent-box{pointer-events:auto;max-width:var(--wrap);margin:0 auto;background:var(--ink-deep);color:#fff;border:1px solid #3A2A28;border-radius:var(--r);
  box-shadow:0 24px 60px rgba(0,0,0,.35);padding:22px 26px;display:flex;gap:28px;align-items:center;flex-wrap:wrap;}
.consent-main{flex:1 1 460px;}
.consent-box h2{font-size:19px;margin:0 0 8px;color:#fff;}
.consent-box p{font-size:14.5px;line-height:1.55;color:#C6B6B2;margin:0;}
.consent-box p a{color:var(--ember);}
.consent-manage{margin-top:12px;font-size:14px;}
.consent-manage summary{cursor:pointer;color:var(--ember);font-weight:600;}
.consent-row{display:flex;gap:10px;align-items:flex-start;margin-top:10px;color:#C6B6B2;}
.consent-row input{margin-top:3px;accent-color:var(--ember);}
.consent-actions{display:flex;gap:10px;flex-wrap:wrap;}
.consent-actions .btn{font-size:14.5px;padding:11px 18px;}
.consent-actions .btn.btn-l{color:#fff;border-color:#4A3B38;}
.consent-actions .btn.btn-l:hover{border-color:#fff;}
.consent-actions .btn[hidden]{display:none;}
@media(max-width:600px){ .consent{padding:8px;} .consent-box{padding:18px;} .consent-actions{width:100%;} .consent-actions .btn{flex:1;text-align:center;} }

/* --- policy pages --- */
.policy h2{margin-top:44px;}
.policy h3{margin-top:28px;}
.policy p,.policy li{font-size:16.5px;color:var(--ink-2);}
.policy .tw{margin:18px 0;}
