
/* Layout: a student's notebook — ruled-paper sections, highlighter marks on the words that matter, teacher's handwritten margin notes; calm sage and sand palette, soft edges */
:root{
  --paper:#f4f6f2; --sheet:#ffffff; --ink:#24403c; --ink-soft:#5e716d;
  --blue:#4a8b7f; --blue-deep:#2f665d; --hi:#f6e3bf; --redpen:#b07a5e;
  --rule:#e4ece8; --line:#e2e8e5; --edge:#cfdad5; --band:#2f665d; --on-band:#ffffff; --band-accent:#f6e3bf; --on-blue:#ffffff; --on-blue-soft:#d7ebe6;
  --display:"Archivo", "Arial Black", system-ui, sans-serif;
  --body:"Figtree", "Segoe UI", system-ui, sans-serif;
  --hand:"Caveat", "Comic Sans MS", cursive;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#0f1a19; --sheet:#152523; --ink:#e6efec; --ink-soft:#a3b5b1;
  --blue:#7fbcaf; --blue-deep:#244f48; --hi:#5e5038; --redpen:#d8a68b;
  --rule:#1d2f2c; --line:#21332f; --edge:#2c423e; --band:#1f4540; --on-band:#ffffff; --band-accent:#f6e3bf; --on-blue:#0f1a19; --on-blue-soft:#d7ebe6; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0f1a19; --sheet:#152523; --ink:#e6efec; --ink-soft:#a3b5b1;
  --blue:#7fbcaf; --blue-deep:#244f48; --hi:#5e5038; --redpen:#d8a68b;
  --rule:#1d2f2c; --line:#21332f; --edge:#2c423e; --band:#1f4540; --on-band:#ffffff; --band-accent:#f6e3bf; --on-blue:#0f1a19; --on-blue-soft:#d7ebe6; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--sheet)}
.wrap{max-width:1140px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);line-height:1.02;text-wrap:balance;margin:0;font-stretch:112%}
h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:900;letter-spacing:-.01em}
h3{font-size:1.15rem;font-weight:800}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
section{padding-block:76px}
.ruled{background-image:repeating-linear-gradient(transparent 0 31px,var(--rule) 31px 32px);background-color:var(--sheet)}
.mark{background:linear-gradient(transparent 55%,var(--hi) 55% 92%,transparent 92%);padding:0 .08em}
.note{font-family:var(--hand);color:var(--redpen);font-size:1.35rem;line-height:1.1}
.lede{color:var(--ink-soft);max-width:60ch;margin-top:14px;font-size:1.05rem}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:12px;font:700 1rem var(--body);text-decoration:none;border:0;cursor:pointer}
.btn-blue{background:var(--blue);color:var(--on-blue);box-shadow:0 10px 30px -18px rgba(36,64,60,.35)}
.btn-blue:hover{background:var(--blue-deep)}
.btn-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--sheet);border-bottom:1px solid var(--edge)}
header.top .wrap{display:flex;align-items:center;gap:22px;padding-block:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo .book{width:38px;height:38px;border-radius:8px;background:var(--blue);display:grid;place-items:center;color:var(--hi);font:900 1.2rem var(--display)}
.logo b{font-family:var(--display);font-weight:900;font-size:1.15rem;display:block;line-height:1}
.logo small{font-size:.72rem;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase}
nav.main{display:flex;gap:20px;margin-left:auto;font-weight:600;font-size:.94rem}
nav.main a{text-decoration:none}
nav.main a:hover{color:var(--blue)}
header .btn{padding:10px 16px;font-size:.92rem;box-shadow:0 10px 30px -18px rgba(36,64,60,.35)}
@media (max-width:860px){nav.main{display:none}header .btn{margin-left:auto}}
/* hero */
.hero{padding-block:64px 70px;border-bottom:1px solid var(--edge);position:relative}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center}
.hero h1{font-size:clamp(2.6rem,6.6vw,5rem);font-weight:900;letter-spacing:-.02em}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.hero .note{margin-top:22px;transform:rotate(-2deg);display:inline-block}
.reportcard{background:var(--sheet);border:1px solid var(--edge);border-radius:16px;padding:22px;box-shadow:0 10px 30px -18px rgba(36,64,60,.35);min-width:0}
.reportcard h2{font-size:1.15rem}
.rc-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-block:10px;font-size:.95rem}
.rc-row b{font-family:var(--display);font-variant-numeric:tabular-nums}
.reportcard .note{margin-top:12px;font-size:1.25rem}
@media (max-width:880px){.hero .wrap{grid-template-columns:1fr}.reportcard{transform:none}}
/* sister-site switcher */
.switch{background:var(--sheet);border-bottom:1px solid var(--edge)}
.switch .wrap{display:grid;grid-template-columns:auto 1fr 1fr;gap:12px;align-items:center;padding-block:12px}
.switch .q{font-family:var(--hand);font-size:1.4rem;color:var(--redpen);line-height:1}
.sw{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;text-decoration:none;border:1px solid var(--edge);min-width:0;color:var(--ink)}
.sw b{display:block;font-family:var(--display);font-size:.98rem}
.sw small{display:block;color:var(--ink-soft);font-size:.8rem}
.sw .pill{font:700 .7rem var(--body);padding:3px 8px;border-radius:5px;white-space:nowrap;letter-spacing:.04em}
.sw.here{background:var(--hi);color:var(--ink)}
.sw.here small{color:var(--ink-soft)}
.sw.here .pill{background:var(--ink);color:var(--hi)}
.sw.away .pill{background:var(--blue);color:var(--on-blue)}
.sw.away:hover{box-shadow:0 10px 30px -18px rgba(36,64,60,.35)}
@media (max-width:760px){.switch .wrap{grid-template-columns:1fr}}
/* marquee of subjects */
.ticker{background:var(--blue);color:var(--on-blue);overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--edge)}
.ticker div{display:inline-block;padding-block:14px;font:800 1.05rem var(--display);animation:slide 32s linear infinite}
.ticker span{margin-inline:22px}
.ticker span::after{content:"✦";margin-left:44px;color:var(--hi)}
@keyframes slide{to{transform:translateX(-50%)}}
/* struggle picker */
.struggle{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.opts{display:grid;gap:10px;margin-top:22px}
.opts button{text-align:left;font:600 1rem var(--body);padding:14px 16px;border-radius:12px;border:1px solid var(--edge);background:var(--sheet);color:var(--ink);cursor:pointer}
.opts button[aria-pressed="true"]{background:var(--hi);color:var(--ink)}
.answer{background:var(--sheet);border:1px solid var(--edge);border-radius:16px;padding:26px;min-width:0}
.answer h3{font-size:1.4rem}
.answer ul{margin:14px 0 18px;padding-left:1.1em;color:var(--ink-soft)}
.answer li+li{margin-top:6px}
@media (max-width:820px){.struggle{grid-template-columns:1fr}}
/* tuition list */
.tuition{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px;border:1px solid var(--edge);border-radius:16px;overflow:hidden;background:var(--sheet)}
.t{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;min-width:0}
.t:nth-child(3n){border-right:0}
.t:nth-last-child(-n+3){border-bottom:0}
.t .cls{font:600 .8rem var(--body);color:var(--blue);letter-spacing:.06em;text-transform:uppercase}
.t p{color:var(--ink-soft);font-size:.95rem}
@media (max-width:860px){.tuition{grid-template-columns:1fr 1fr}.t:nth-child(3n){border-right:1px solid var(--line)}.t:nth-child(2n){border-right:0}.t:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.t:nth-last-child(-n+2){border-bottom:0}}
@media (max-width:540px){.tuition{grid-template-columns:1fr}.t{border-right:0!important;border-bottom:1px solid var(--line)!important}.t:last-child{border-bottom:0!important}}
/* class ladder */
.ladder{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}
.rung{border-top:6px solid var(--blue);background:var(--sheet);border-radius:0 0 14px 14px;padding:20px;border-inline:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.rung .grade{font:900 2.2rem var(--display);color:var(--blue);font-stretch:112%}
.rung p{color:var(--ink-soft);font-size:.94rem;margin-top:6px}
@media (max-width:860px){.ladder{grid-template-columns:1fr 1fr}}
/* promise */
.promise{background:var(--band);color:var(--on-band);border-block:1px solid var(--edge)}
.promise .wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:center}
.promise h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}
.promise .lede{color:var(--on-blue-soft)}
.promise ol{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.promise li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:rgba(255,255,255,.08);padding:16px;border-radius:12px}
.promise li b{font:900 1.6rem var(--display);color:var(--band-accent);line-height:1}
.promise .note{color:var(--band-accent)}
@media (max-width:820px){.promise .wrap{grid-template-columns:1fr}}
.trust{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.trust span{font-size:.85rem;padding:6px 12px;border-radius:999px;border:1.5px solid var(--ink);background:var(--sheet)}
/* concepts */
.method{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:32px;border:1px solid var(--edge);border-radius:16px;overflow:hidden;background:var(--sheet)}
.mstep{padding:20px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px;min-width:0}
.mstep:last-child{border-right:0}
.mstep .n{font:900 1.9rem var(--display);color:var(--blue);line-height:1;font-stretch:112%}
.mstep h3{font-size:1.05rem}
.mstep p{color:var(--ink-soft);font-size:.9rem}
.mstep .eg{font-family:var(--hand);color:var(--redpen);font-size:1.15rem;line-height:1.1;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}
@media (max-width:960px){.method{grid-template-columns:1fr 1fr}.mstep{border-bottom:1px solid var(--line)}.mstep:nth-child(2n){border-right:0}}
@media (max-width:540px){.method{grid-template-columns:1fr}.mstep{border-right:0}}
/* real students + photos */
.vids{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.vid{position:relative;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;text-decoration:none;color:var(--on-band);background:var(--band);box-shadow:0 10px 30px -18px rgba(36,64,60,.35);min-width:0}
.vid img{width:100%;aspect-ratio:1/1;height:auto;max-width:100%;object-fit:cover;object-position:center 8%;display:block;transition:transform .4s}
.vid:hover img{transform:scale(1.04)}
.vid .play{position:absolute;top:14px;left:14px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}
.vid .play::after{content:"";border-left:12px solid #2f665d;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
.vtxt{padding:16px 16px 18px;display:grid;gap:3px;position:relative;z-index:2;background:var(--band)}
.vtxt b{font-family:var(--display);font-size:1.1rem}
.vtxt small{font-size:.78rem;color:#d7ebe6}
.vtxt em{font-style:normal;font-size:.9rem;line-height:1.35;margin-top:6px;color:#fff}
.more-h{margin-top:30px;font-weight:700;font-size:.95rem}
.minis{display:flex;gap:12px;overflow-x:auto;padding-block:12px 4px;scroll-snap-type:x mandatory}
.mini{flex:none;width:110px;text-decoration:none;color:var(--ink);scroll-snap-align:start;display:grid;gap:6px;font-size:.8rem;font-weight:600}
.mini img{width:110px;height:110px;object-fit:cover;object-position:center 8%;border-radius:12px;display:block}
@media (max-width:900px){.vids{grid-template-columns:1fr 1fr}}
.posts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.post{display:flex;flex-direction:column;background:var(--sheet);border:1px solid var(--edge);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);min-width:0;transition:transform .2s}
.post:hover{transform:translateY(-3px)}
.post img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;max-width:100%;height:auto}
.post span{padding:12px 14px 16px;font-weight:600;font-size:.95rem;line-height:1.3}
.post small{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
@media (max-width:900px){.posts{grid-template-columns:1fr 1fr}}
.founder-row{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center}
.founder-photo{margin:0;border-radius:18px;overflow:hidden;background:#fff;aspect-ratio:600/715;max-width:100%}
.founder-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:520px){.founder-row{grid-template-columns:1fr}.founder-photo{max-width:200px}}
/* enquiry */
.enq{display:grid;grid-template-columns:1fr 1fr;gap:36px;background:var(--sheet);border:1px solid var(--edge);border-radius:20px;padding:36px;box-shadow:0 10px 30px -18px rgba(36,64,60,.35)}
form{display:grid;gap:12px;min-width:0}
label{font-weight:600;font-size:.88rem;display:grid;gap:5px}
input,select{font:500 1rem var(--body);padding:12px 14px;border-radius:10px;border:1px solid var(--edge);background:var(--paper);color:var(--ink);width:100%}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ok{background:var(--hi);color:var(--ink);padding:14px;border-radius:10px;font-weight:600}
.copy{font:600 .8rem var(--body);border:1px solid var(--edge);background:transparent;color:var(--ink);border-radius:8px;padding:3px 10px;cursor:pointer}
@media (max-width:820px){.enq{grid-template-columns:1fr;padding:24px}.row2{grid-template-columns:1fr}}
/* centres + faq */
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.centre{background:var(--sheet);border:1px solid var(--edge);border-radius:16px;padding:24px}
.centre address{font-style:normal;color:var(--ink-soft);margin-top:8px}
@media (max-width:700px){.two{grid-template-columns:1fr}}
.faq{margin-top:28px;display:grid;gap:10px;max-width:820px}
details{background:var(--sheet);border:1px solid var(--edge);border-radius:12px;padding:16px 20px}
summary{font-weight:700;cursor:pointer}
details p{color:var(--ink-soft);margin-top:10px}
.sister{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1.5px dashed var(--edge);border-radius:16px;padding:24px;background:var(--sheet)}
footer{background:var(--ink);color:#c8cbe2;padding-block:44px;font-size:.92rem}
footer .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}
footer h3{color:#fff;font-size:1rem;margin-bottom:10px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media (max-width:760px){footer .grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
