/* ===== 01-base.css ===== */
/* ═══════════════════════════════════════════════════════════════
   Shanti Mission Academy
   Direction: the school crest is an atom orbiting a diya — science
   around a lamp. So: deep indigo (the night the orbits sit in),
   marigold-flame (the lamp), madder red (the crest core).
   The orbit itself is the recurring signature.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --ink:#131E3A;
  --ink-2:#0B1428;
  --ink-3:#22315A;
  --flame:#F2A620;
  --flame-2:#FFC252;
  --ember:#D9531E;
  --madder:#A81E28;
  --paper:#FCFBF7;
  --paper-2:#F4F0E6;
  --line:#DED7C7;
  --line-2:#EAE5D9;
  --text:#1A2133;
  --muted:#5D6478;
  --muted-l:#A8B0C4;

  --wrap:1220px;
  --gut:clamp(18px,4vw,44px);
  --r:3px;

  --f-disp:"Fraunces",Georgia,serif;
  --f-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;

  --ease:cubic-bezier(.22,.7,.24,1);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:#fff;color:var(--text);
  font:400 clamp(15.5px,1.02vw,17px)/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;font-family:var(--f-disp);font-weight:600;line-height:1.08;letter-spacing:-.015em}
p{margin:0 0 1em}
ul,ol,dl,dd{margin:0;padding:0}
li{list-style:none}

:focus-visible{outline:2.5px solid var(--flame);outline-offset:3px;border-radius:2px}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;padding:12px 18px}
.skip:focus{left:12px;top:12px}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.mono{font-family:var(--f-mono)}

/* ───────── the orbit : signature, lifted from the crest ───────── */
.orbit{position:absolute;color:var(--flame);pointer-events:none}
.orbit--hero{
  width:min(66vw,720px);aspect-ratio:1;right:-14%;top:50%;
  transform:translateY(-50%);opacity:.19;
  animation:spin 150s linear infinite;
}
.orbit--sec{
  width:min(80vw,780px);aspect-ratio:1;left:-16%;bottom:-30%;
  opacity:.1;animation:spin 190s linear infinite reverse;
}
@keyframes spin{to{transform:rotate(360deg)}}
.orbit--hero{transform-origin:50% 50%}

/* ───────── buttons ───────── */
.btn{
  --bg:var(--ink);--fg:#fff;--bd:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bd);
  font:600 .935rem/1 var(--f-body);letter-spacing:.005em;
  padding:.95em 1.5em;border-radius:var(--r);text-decoration:none;cursor:pointer;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--flame{--bg:var(--flame);--fg:#20180A;--bd:var(--flame)}
.btn--flame:hover{--bg:var(--flame-2);box-shadow:0 8px 26px -8px rgba(242,166,32,.72)}
.btn--ink{--bg:transparent;--fg:var(--ink);--bd:var(--ink)}
.btn--ink:hover{--bg:var(--ink);--fg:#fff}
.btn--ghost{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.5)}
.btn--ghost:hover{--bd:#fff;--bg:rgba(255,255,255,.1)}
.btn--lg{padding:1.1em 1.85em;font-size:1rem}
.btn--full{width:100%;padding:1.1em}

/* ───────── utility bar ───────── */
.util{background:var(--ink-2);color:var(--muted-l);font-family:var(--f-mono);font-size:.7rem}
.util__in{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px;flex-wrap:wrap}
.util__ids{display:flex;gap:22px;flex-wrap:wrap}
.util__ids li{display:flex;gap:.5em;align-items:baseline}
.util__ids span{opacity:.62;letter-spacing:.06em;text-transform:uppercase;font-size:.64rem}
.util__ids b{color:#fff;font-weight:500;letter-spacing:.04em}
.util__act{display:flex;gap:20px;align-items:center}
.util__act a{text-decoration:none;letter-spacing:.03em}
.util__act a:hover{color:var(--flame)}
.util__tel{color:#fff}

/* ───────── header ───────── */
.hdr{position:sticky;top:0;z-index:90;background:var(--ink);border-bottom:1px solid rgba(255,255,255,.1)}
.hdr__in{display:flex;align-items:center;gap:22px;min-height:76px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#fff;min-width:0}
.brand img{width:48px;height:48px;object-fit:contain;flex:0 0 auto}
.brand__txt{display:flex;flex-direction:column;line-height:1.16;min-width:0}
.brand__txt b{font-family:var(--f-disp);font-weight:600;font-size:1.16rem;letter-spacing:-.012em;white-space:nowrap}
.brand__txt i{font-style:normal;font-size:.685rem;color:var(--muted-l);font-family:var(--f-mono);letter-spacing:.02em;margin-top:2px;white-space:nowrap}

.nav{display:flex;gap:2px;margin-left:auto}
.nav a{
  position:relative;text-decoration:none;color:#D7DCE8;font-size:.9rem;font-weight:500;
  padding:.6em .72em;border-radius:var(--r);transition:color .16s;white-space:nowrap;
}
.nav a::after{
  content:"";position:absolute;left:.78em;right:.78em;bottom:.28em;height:1.5px;
  background:var(--flame);transform:scaleX(0);transform-origin:left;transition:transform .24s var(--ease);
}
.nav a:hover{color:#fff}
.nav a:hover::after{transform:scaleX(1)}

.hdr__cta{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.hdr__cta .btn{padding:.78em 1.15em;font-size:.86rem}

.burger{display:none;width:44px;height:40px;background:none;border:1.5px solid rgba(255,255,255,.28);border-radius:var(--r);cursor:pointer;padding:0;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.8px;background:#fff;transition:.24s var(--ease)}
.burger span:nth-child(1){top:13px}
.burger span:nth-child(2){top:19px}
.burger span:nth-child(3){top:25px}
.burger[aria-expanded="true"] span:nth-child(1){top:19px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:19px;transform:rotate(-45deg)}

/* ───────── hero ───────── */
/* .hero must stay overflow:visible so the stats card can hang past its edge;
   the photo, scrim and orbit are clipped by .hero__stage instead. */
.hero{position:relative;background:var(--ink);color:#fff;padding-bottom:0}
.hero__stage{position:absolute;inset:0;overflow:hidden}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(11,20,40,.82) 0%,rgba(11,20,40,.6) 42%,rgba(11,20,40,.9) 100%),
    linear-gradient(96deg,rgba(11,20,40,.9) 0%,rgba(11,20,40,.42) 58%,rgba(11,20,40,.22) 100%);
}
.hero__in{position:relative;padding-block:clamp(74px,11vw,132px) clamp(46px,6vw,70px);max-width:900px}

.eyebrow{
  font-family:var(--f-mono);font-size:.685rem;letter-spacing:.19em;text-transform:uppercase;
  color:var(--ember);margin:0 0 1.1em;display:flex;align-items:center;gap:.85em;
}
.eyebrow::before{content:"";width:24px;height:1.5px;background:currentColor;flex:0 0 auto}
.eyebrow--light{color:var(--flame)}

.hero__h1{
  font-size:clamp(2.65rem,6.6vw,5.15rem);font-weight:600;letter-spacing:-.028em;
  margin:0 0 .58em;text-wrap:balance;
}
.hero__h1 em{
  font-style:normal;color:var(--flame);
  font-variation-settings:"SOFT" 60,"WONK" 1;
}
.hero__sub{font-size:clamp(1.02rem,1.42vw,1.19rem);max-width:59ch;color:#E1E6F0;margin:0 0 2.15em}
.hero__btns{display:flex;gap:12px;flex-wrap:wrap}

/* stats — proof before mission */
.stats{
  position:relative;display:grid;grid-template-columns:repeat(4,1fr);
  background:#fff;color:var(--text);border-radius:var(--r);
  box-shadow:0 30px 70px -34px rgba(6,12,28,.6);
  margin-bottom:-52px;overflow:hidden;
}
.stats li{padding:clamp(20px,2.4vw,30px) clamp(16px,2vw,26px);border-left:1px solid var(--line-2)}
.stats li:first-child{border-left:0}
.stats b,.stats__word{
  font-family:var(--f-disp);font-weight:600;font-size:clamp(1.85rem,3.1vw,2.6rem);
  line-height:1;letter-spacing:-.03em;color:var(--ink);display:inline;
}
.stats .stats__word{color:var(--madder)}
.num__suf{font-family:var(--f-disp);font-weight:600;font-size:clamp(1.1rem,1.7vw,1.45rem);color:var(--flame);letter-spacing:-.02em}
.stats i{
  display:block;font-style:normal;margin-top:.62em;font-size:.775rem;line-height:1.42;
  color:var(--muted);max-width:22ch;
}

/* ───────── quick strip : current families ───────── */
.quick{background:var(--paper-2);border-bottom:1px solid var(--line);padding-top:74px}
.quick__in{display:flex;align-items:center;gap:clamp(14px,2.4vw,34px);flex-wrap:wrap;padding-block:20px}
.quick__lbl{
  margin:0;font-family:var(--f-mono);font-size:.665rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--muted);flex:0 0 auto;
}
.quick__links{display:flex;gap:6px;flex-wrap:wrap}
.quick__links a{
  display:flex;align-items:center;gap:.55em;text-decoration:none;font-size:.875rem;font-weight:500;
  padding:.55em .9em;border-radius:var(--r);border:1px solid transparent;transition:.16s;
}
.quick__links a:hover{background:#fff;border-color:var(--line)}
.quick__links svg{width:17px;height:17px;fill:none;stroke:var(--ember);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* ───────── sections ───────── */
.sec{position:relative;padding-block:clamp(64px,8.4vw,116px);overflow:hidden}
.sec--paper{background:var(--paper);border-block:1px solid var(--line-2)}
.sec--ink{background:var(--ink);color:#E7EBF3}
.sec--ink p{color:#C3CBDC}

.sec__head{max-width:900px;margin:0 0 clamp(34px,4.6vw,60px)}
.h2{font-size:clamp(1.72rem,3.35vw,2.72rem);letter-spacing:-.024em;text-wrap:balance;margin:0 0 .6em}
.h2--wide{max-width:24ch}
.h2--light{color:#fff}
.sec__head--light .h2{color:#fff}
.sec__sub{font-size:1.03rem;color:var(--muted);max-width:56ch;margin:0}
.sec__sub--light{color:#A8B4CC}
.lead{font-size:clamp(1.03rem,1.3vw,1.14rem);color:#39415A}
.lead--light{color:#CFD7E6}

/* divider with the crest glyph */
.rule{position:relative;height:1px;background:var(--line);max-width:calc(var(--wrap) - var(--gut)*2);margin:0 auto}
.rule__glyph{
  position:absolute;left:50%;top:50%;width:64px;height:44px;transform:translate(-50%,-50%);
  background:#fff;display:grid;place-items:center;color:var(--flame);
}
.rule__glyph svg{width:40px;height:40px;display:block}

/* ───────── two-column blocks ───────── */
.grid2{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(30px,4.6vw,68px);align-items:start}
.grid2--rev .grid2__txt{order:2}
.grid2--rev .grid2__fig{order:1}
.grid2__fig{margin:0;position:relative}
.grid2__fig img{border-radius:var(--r);width:100%}
.grid2__fig figcaption{
  margin-top:.95em;font-size:.79rem;color:var(--muted);font-family:var(--f-mono);
  line-height:1.5;padding-left:12px;border-left:2px solid var(--flame);
}

.vm{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px);margin-top:clamp(34px,4.2vw,56px)}
.vm__card{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);padding:clamp(20px,2.4vw,28px)}
.vm__card h3{display:flex;align-items:center;gap:.6em;font-size:1.05rem;margin:0 0 .7em;letter-spacing:-.01em}
.vm__card p{margin:0;font-size:.925rem;color:#454D64;line-height:1.6}
.vm__mark{width:15px;height:15px;border:1.6px solid var(--flame);border-radius:50%;position:relative;flex:0 0 auto}
.vm__mark::after{content:"";position:absolute;inset:3.6px;background:var(--madder);border-radius:50%}

/* ───────── academics stages ───────── */
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.7vw,22px)}
.stage{background:#fff;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;transition:.22s var(--ease)}
.stage:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(12,22,48,.34);border-color:var(--line)}
.stage__img{aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.stage__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.stage:hover .stage__img img{transform:scale(1.045)}
.stage__body{padding:clamp(17px,1.9vw,23px)}
.stage__range{
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ember);margin:0 0 .6em;
}
.stage__body h3{font-size:1.15rem;margin:0 0 .5em;letter-spacing:-.014em}
.stage__body p{margin:0;font-size:.875rem;color:var(--muted);line-height:1.58}

/* ───────── facilities bento ─────────
   3 columns × 4 rows = 12 cells, filled exactly by one 2×2 tile plus
   8 single tiles, so the grid never ends ragged. */
.bento{--bgap:clamp(12px,1.5vw,18px);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--bgap);grid-auto-flow:row dense}
.tile{
  position:relative;border-radius:var(--r);overflow:hidden;background:var(--ink);
  min-height:250px;display:flex;align-items:flex-end;
}
.tile--xl{grid-column:span 2;grid-row:span 2;min-height:calc(250px * 2 + var(--bgap))}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tile:hover img{transform:scale(1.05)}
.tile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,20,40,0) 34%,rgba(11,20,40,.86) 100%);
}
.tile__cap{position:relative;z-index:2;padding:clamp(16px,1.8vw,24px);color:#fff}
.tile__cap h3{font-size:clamp(1rem,1.4vw,1.28rem);letter-spacing:-.012em;margin:0}
.tile__cap p{margin:.5em 0 0;font-size:.83rem;color:#C9D2E4;max-width:34ch;line-height:1.52}
.tile--xl .tile__cap h3{font-size:clamp(1.3rem,2vw,1.75rem)}

.tile--plain{background:var(--paper-2);border:1px solid var(--line);align-items:flex-end}
.tile--plain::after{display:none}
.tile--plain .tile__cap{color:var(--ink)}
.tile__ico{position:absolute;top:clamp(16px,1.8vw,24px);left:clamp(16px,1.8vw,24px)}
.tile__ico svg{width:30px;height:30px;fill:none;stroke:var(--ember);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* ───────── results ───────── */
.res{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.4vw,52px);position:relative;z-index:2}
.res__hd{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding-bottom:.9em;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:.5em}
.res__hd h3{font-size:1.32rem;color:#fff;letter-spacing:-.016em}
.res__dl{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--flame);text-decoration:none;border-bottom:1px solid transparent}
.res__dl:hover{border-bottom-color:var(--flame)}

.board li{
  display:grid;grid-template-columns:2.4em 1fr auto;align-items:baseline;gap:12px;
  padding:.72em 0;border-bottom:1px solid rgba(255,255,255,.085);
}
.board__r{font-family:var(--f-mono);font-size:.75rem;color:var(--muted-l)}
.board__n{font-size:.985rem;color:#EDF1F8;font-weight:500}
.board__p{font-family:var(--f-mono);font-weight:500;font-size:.985rem;color:var(--flame);letter-spacing:-.01em;white-space:nowrap}
.board__p i{font-style:normal;font-size:.72em;opacity:.6;margin-left:1px}
.board li:first-child{padding-block:.95em}
.board li:first-child .board__n{font-size:1.09rem;font-weight:600}
.board li:first-child .board__p{font-size:1.13rem;font-weight:600}

.res__note{margin:clamp(26px,3vw,40px) 0 0;font-size:.85rem;position:relative;z-index:2}
.res__note a{color:var(--flame)}

/* ───────── faculty marquee ───────── */
.marquee{
  overflow:hidden;margin-block:clamp(6px,1vw,14px) clamp(28px,3.4vw,44px);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.marquee__track{display:flex;gap:12px;width:max-content;animation:slide 68s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee img{
  width:clamp(96px,10.4vw,132px);aspect-ratio:1;object-fit:cover;border-radius:var(--r);
  filter:saturate(.92);background:var(--paper-2);
}

.names{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper)}
.names summary{
  cursor:pointer;padding:1.05em clamp(18px,2vw,26px);font-weight:600;font-size:.93rem;
  display:flex;align-items:center;gap:.7em;list-style:none;
}
.names summary::-webkit-details-marker{display:none}
.names summary::before{
  content:"";width:9px;height:9px;border-right:1.8px solid var(--ember);border-bottom:1.8px solid var(--ember);
  transform:rotate(45deg);transition:transform .22s var(--ease);flex:0 0 auto;margin-bottom:3px;
}
.names[open] summary::before{transform:rotate(225deg);margin-bottom:0;margin-top:3px}
.names__list{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.1em 22px;
  padding:0 clamp(18px,2vw,26px) 1.6em;
}
.names__list li{font-size:.885rem;color:#414963;padding:.34em 0;border-bottom:1px dotted var(--line)}

/* ───────── leadership messages ───────── */
.msgs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.2vw,26px)}
.msg{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.msg__media{aspect-ratio:16/9;overflow:hidden;background:var(--ink)}
.msg__media img{width:100%;height:100%;object-fit:cover}
.msg__media--mono{
  display:grid;place-items:center;
  background:linear-gradient(145deg,var(--ink) 0%,var(--ink-3) 100%);position:relative;
}
.msg__media--mono::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 74% 22%,rgba(242,166,32,.24),transparent 58%);
}
.msg__media--mono span{
  font-family:var(--f-disp);font-size:clamp(2.2rem,4vw,3rem);font-weight:600;color:var(--flame);
  letter-spacing:.02em;position:relative;z-index:2;
}
.msg__body{padding:clamp(20px,2.3vw,30px);display:flex;flex-direction:column;flex:1}
.msg blockquote{
  margin:0 0 1.5em;font-size:.945rem;line-height:1.66;color:#3D455D;
  position:relative;padding-left:16px;border-left:2px solid var(--line);flex:1;
}
.msg__by{margin:0;display:flex;flex-direction:column;gap:1px}
.msg__by b{font-family:var(--f-disp);font-size:1.02rem;font-weight:600;letter-spacing:-.012em}
.msg__by i{font-style:normal;font-family:var(--f-mono);font-size:.685rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember)}

/* ───────── mosaic gallery ───────── */
/* 3 columns × 4 rows = 12 cells: one 1×2 tall, one 2×1 wide, 8 singles */
.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2vw,15px);grid-auto-flow:row dense}
.mo{margin:0;position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--paper-2)}
.mo--tall{grid-row:span 2;aspect-ratio:2/3}
.mo--wide{grid-column:span 2;aspect-ratio:8/3}
.mo img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.mo:hover img{transform:scale(1.055)}
.mo figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.9em .95em .8em;
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(11,20,40,.88));
}
.mosaic__more{margin:clamp(26px,3vw,40px) 0 0;text-align:center}

/* ───────── admissions ───────── */
.adm{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(30px,4.4vw,64px);align-items:start;position:relative;z-index:2}

.steps{counter-reset:s;margin:2.3em 0 0;display:grid;gap:1.05em}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.5em 1fr;gap:2px 14px;align-items:baseline}
.steps li::before{
  content:counter(s,decimal-leading-zero);grid-row:span 2;
  font-family:var(--f-mono);font-size:.75rem;color:var(--flame);
  border:1px solid rgba(242,166,32,.4);border-radius:50%;
  width:2.15em;height:2.15em;display:grid;place-items:center;align-self:start;
}
.steps b{color:#fff;font-size:.985rem;font-weight:600}
.steps span{font-size:.885rem;color:#AFB9CE;line-height:1.55;grid-column:2}

.adm__col{display:flex;flex-direction:column}
.dl{margin-top:2.2em;border-top:1px solid rgba(255,255,255,.16);padding-top:1.5em}
.dl__lbl{font-family:var(--f-mono);font-size:.665rem;letter-spacing:.17em;text-transform:uppercase;color:var(--flame);margin:0 0 .9em}
.dl ul{display:grid;gap:2px}
.dl a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  text-decoration:none;font-size:.92rem;color:#DEE4F0;padding:.7em 0;
  border-bottom:1px solid rgba(255,255,255,.09);transition:.16s;
}
.dl a:hover{color:var(--flame);padding-left:6px}
.dl em{font-style:normal;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;color:var(--muted-l);border:1px solid rgba(255,255,255,.2);padding:.24em .5em;border-radius:2px;flex:0 0 auto}

/* form */
.adm__form{background:#fff;border-radius:var(--r);padding:clamp(24px,2.9vw,38px);box-shadow:0 30px 70px -34px rgba(4,10,26,.62)}
.form__h{font-size:1.32rem;margin:0 0 1.25em;letter-spacing:-.016em;color:var(--ink)}
.f{display:block;margin-bottom:1.05em}
.f__l{display:flex;gap:.5em;align-items:baseline;font-size:.79rem;font-weight:600;color:#3A4259;margin-bottom:.48em}
.f__l i{font-style:normal;font-weight:400;font-size:.72rem;color:var(--muted)}
.f__i{
  width:100%;font:400 .95rem/1.4 var(--f-body);color:var(--text);
  padding:.82em .92em;border:1.5px solid var(--line);border-radius:var(--r);background:var(--paper);
  transition:border-color .16s,background .16s;
}
.f__i:focus{outline:none;border-color:var(--flame);background:#fff;box-shadow:0 0 0 3px rgba(242,166,32,.16)}
select.f__i{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 19px) 51%,calc(100% - 14px) 51%;background-size:5px 5px;background-repeat:no-repeat}
textarea.f__i{resize:vertical;min-height:74px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f__e{display:none;font-style:normal;font-size:.755rem;color:var(--madder);margin-top:.4em}
.f.is-bad .f__i{border-color:var(--madder);background:#FEF6F6}
.f.is-bad .f__e{display:block}
.form__alt{margin:1.2em 0 0;font-size:.82rem;color:var(--muted);line-height:1.65;text-align:center}
.form__alt a{color:var(--ink);font-weight:500}
.form__ok{
  margin:1.1em 0 0;padding:.9em 1em;background:#F2FAF3;border:1px solid #BFE3C6;border-radius:var(--r);
  font-size:.855rem;color:#1D5B2A;
}

/* ───────── fees ───────── */
.fees{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,60px);align-items:start}
.fees__link a{color:var(--ember);font-weight:600;font-size:.92rem}
.bank{background:var(--ink);color:#fff;border-radius:var(--r);padding:clamp(24px,2.8vw,34px)}
.bank__hd{font-family:var(--f-mono);font-size:.665rem;letter-spacing:.17em;text-transform:uppercase;color:var(--flame);margin:0 0 1.35em}
.bank dl{display:grid;gap:1.05em}
.bank div{display:grid;gap:3px;padding-bottom:1.05em;border-bottom:1px solid rgba(255,255,255,.12)}
.bank div:last-child{border-bottom:0;padding-bottom:0}
.bank dt{font-size:.75rem;color:var(--muted-l)}
.bank dd{font-size:1.04rem;font-weight:500;color:#fff}
.bank dd.mono{font-family:var(--f-mono);letter-spacing:.05em}

/* ───────── disclosure ───────── */
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:8px}
.docs a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:#fff;border:1px solid var(--line-2);border-radius:var(--r);
  padding:1.02em 1.15em;text-decoration:none;font-size:.905rem;font-weight:500;
  transition:.18s var(--ease);
}
.docs a:hover{border-color:var(--flame);transform:translateY(-2px);box-shadow:0 14px 30px -18px rgba(12,22,48,.3)}
.docs em{
  font-style:normal;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;
  color:var(--muted);border:1px solid var(--line);padding:.26em .5em;border-radius:2px;flex:0 0 auto;
}

/* ───────── contact ───────── */
.cinfo{display:grid;grid-template-columns:1fr 1fr;gap:1.5em 24px;margin:2.2em 0}
.cinfo dt{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);margin-bottom:.5em}
.cinfo dd{font-size:.94rem;line-height:1.62;color:#39415A}
.cinfo dd a{color:var(--ink);font-weight:500;text-decoration-color:var(--line)}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--paper-2)}
.map iframe{width:100%;height:100%;min-height:430px;border:0;display:block}

/* ───────── footer ───────── */
.ft{background:var(--ink-2);color:#B9C2D6;padding-top:clamp(48px,6vw,78px)}
.ft__in{display:grid;grid-template-columns:1.15fr 1.85fr;gap:clamp(28px,4vw,60px);padding-bottom:clamp(34px,4.4vw,56px)}
.ft__brand{display:flex;gap:16px;align-items:flex-start}
.ft__brand img{width:58px;height:58px;object-fit:contain;flex:0 0 auto}
.ft__brand p{margin:0;font-size:.845rem;line-height:1.65}
.ft__brand b{font-family:var(--f-disp);font-size:1.1rem;color:#fff;font-weight:600;letter-spacing:-.012em}
.ft__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ft__nav h3{
  font-family:var(--f-mono);font-size:.665rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--flame);margin:0 0 1.05em;font-weight:500;
}
.ft__nav a{display:block;text-decoration:none;font-size:.885rem;padding:.34em 0;transition:color .16s}
.ft__nav a:hover{color:#fff}
.ft__base{
  display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);padding-block:22px;
}
.ft__ids{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--f-mono);font-size:.68rem;color:#7E88A0}
.ft__ids b{color:#C9D2E4;font-weight:500;letter-spacing:.04em}
.ft__base p{margin:0;font-size:.775rem;color:#7E88A0}

/* ───────── entrance motion ───────── */
.rise{opacity:0;transform:translateY(18px);animation:rise .82s var(--ease) forwards;animation-delay:var(--d,0ms)}
@keyframes rise{to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .78s var(--ease),transform .78s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ═════════ responsive ═════════ */
/* The full nav + brand + CTA needs ~1220px of header room; below that the
   nav collapses to the drawer rather than overflowing. */
@media (max-width:1240px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink-2);
    flex-direction:column;gap:0;padding:10px var(--gut) 20px;border-bottom:1px solid rgba(255,255,255,.12);
    box-shadow:0 24px 40px -22px rgba(0,0,0,.6)}
  .nav.open{display:flex}
  .nav a{padding:.95em 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:1rem}
  .nav a::after{display:none}
  .burger{display:block}
  .hdr__cta .btn--flame{display:none}
  .stages{grid-template-columns:repeat(2,1fr)}
  .bento{grid-template-columns:repeat(2,1fr)}
  .tile--xl{grid-column:span 2;grid-row:auto;min-height:320px}
  .mosaic{grid-template-columns:repeat(2,1fr)}
  .mo--tall{grid-row:auto;aspect-ratio:4/3}
  .mo--wide{grid-column:span 2;aspect-ratio:16/7}
}

@media (max-width:900px){
  .grid2,.adm,.fees,.msgs,.res,.ft__in{grid-template-columns:1fr}
  .grid2--rev .grid2__txt{order:1}
  .grid2--rev .grid2__fig{order:2}
  .vm{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stats li:nth-child(3){border-left:0}
  .stats li:nth-child(n+3){border-top:1px solid var(--line-2)}
  .res{gap:44px}
  .map iframe{min-height:330px}
  .ft__brand{margin-bottom:8px}
}

@media (max-width:620px){
  .util__ids li:nth-child(n+3){display:none}
  .util__act a:first-child{display:none}
  .hero__in{padding-block:56px 40px}
  .stats{grid-template-columns:1fr;margin-bottom:-40px}
  .stats li{border-left:0}
  .stats li+li{border-top:1px solid var(--line-2)}
  .stats i{max-width:none}
  .quick{padding-top:62px}
  .quick__in{gap:10px}
  .stages,.bento,.mosaic{grid-template-columns:1fr}
  .tile--xl,.mo--wide{grid-column:span 1}
  .mo--wide{aspect-ratio:4/3}
  .vm,.f2,.cinfo{grid-template-columns:1fr}
  .ft__nav{grid-template-columns:1fr 1fr}
  .brand__txt i{display:none}
  .board li{grid-template-columns:1.9em 1fr auto;gap:8px}
}

/* narrow phones: let the brand block shrink instead of pushing the header wide */
@media (max-width:420px){
  .hdr__in{gap:10px;min-height:66px}
  .brand{gap:9px}
  .brand img{width:38px;height:38px}
  .brand__txt b{font-size:1rem;letter-spacing:-.02em}
  .util{font-size:.645rem}
  .util__ids{gap:14px}
  .util__ids li:nth-child(n+2){display:none}
}

/* ═════════ reduced motion ═════════ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .rise,.reveal{opacity:1;transform:none}
  .marquee__track{animation:none}
  .orbit{animation:none}
}

/* ═════════ print ═════════ */
@media print{
  .hdr,.util,.quick,.burger,.orbit,.map,.marquee{display:none}
  .sec--ink,.ft{background:#fff;color:#000}
  .sec{padding-block:20px;break-inside:avoid}
}


/* ===== 02-pages.css ===== */
/* ═══════════════════════════════════════════════════════════════
   PART 2 — inner pages, tickers, gallery, chatbot
   ═══════════════════════════════════════════════════════════════ */

/* ── scroll progress: a thin flame line ── */
.prog{position:fixed;top:0;left:0;height:2px;width:0;z-index:120;
  background:linear-gradient(90deg,var(--ember),var(--flame));transition:width .1s linear}

/* ── notice ticker ── */
.nt{display:flex;align-items:stretch;background:var(--paper-2);border-bottom:1px solid var(--line);
  position:relative;z-index:80}
.nt__lbl{display:flex;align-items:center;gap:.6em;flex:0 0 auto;background:var(--madder);color:#fff;
  font-family:var(--f-mono);font-size:.655rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.85em clamp(14px,2vw,22px) .85em var(--gut)}
.nt__pulse{width:7px;height:7px;border-radius:50%;background:var(--flame-2);
  box-shadow:0 0 0 0 rgba(255,194,82,.9);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(255,194,82,0)}100%{box-shadow:0 0 0 0 rgba(255,194,82,0)}}
.nt__vp{flex:1;overflow:hidden;min-width:0;
  mask-image:linear-gradient(90deg,transparent,#000 3%,#000 96%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 96%,transparent)}
.nt__track{display:flex;width:max-content;animation:slide 58s linear infinite}
.nt:hover .nt__track,.nt.is-paused .nt__track{animation-play-state:paused}
.nt__i{display:flex;align-items:center;gap:.7em;white-space:nowrap;text-decoration:none;
  font-size:.845rem;color:#3B435C;padding:.85em 1.6em}
.nt__i:hover{color:var(--madder)}
.nt__dot{width:4px;height:4px;border-radius:50%;background:var(--flame);flex:0 0 auto}
.nt__pause{flex:0 0 auto;width:40px;background:none;border:0;border-left:1px solid var(--line);
  cursor:pointer;color:var(--muted);padding:0}
.nt__pause svg{width:20px;height:20px;fill:currentColor;margin:0 auto}
.nt__pause:hover{color:var(--ink);background:#fff}

/* ── inner-page hero ── */
.phero{position:relative;background:var(--ink);color:#fff;isolation:isolate}
.phero__stage{position:absolute;inset:0;overflow:hidden}
.phero__bg{position:absolute;inset:0}
.phero__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.phero__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(11,20,40,.86) 0%,rgba(11,20,40,.66) 55%,rgba(11,20,40,.92) 100%),
  linear-gradient(96deg,rgba(11,20,40,.9) 0%,rgba(11,20,40,.45) 62%,rgba(11,20,40,.25) 100%)}
.orbit--phero{width:min(58vw,600px);aspect-ratio:1;right:-11%;top:50%;transform:translateY(-50%);
  opacity:.17;animation:spin 160s linear infinite}
.phero__in{position:relative;padding-block:clamp(58px,8vw,104px);max-width:880px}
.phero__h1{font-size:clamp(2.1rem,4.7vw,3.7rem);font-weight:600;letter-spacing:-.026em;
  margin:0 0 .5em;text-wrap:balance}
.phero__sub{font-size:clamp(1rem,1.32vw,1.14rem);color:#DDE3EF;max-width:58ch;margin:0 0 1.4em}
.phero__in p:last-child{margin-bottom:0}

/* ── photo tickers ── */
.tsec{padding-block:clamp(54px,7vw,92px);overflow:hidden}
.tsec--flush{padding-block:clamp(26px,3vw,40px)}
.tsec__hd{margin-bottom:clamp(26px,3.4vw,44px);max-width:900px}
.tsec__more{margin:clamp(26px,3.2vw,42px) 0 0;text-align:center}
.ptick{overflow:hidden;padding-block:7px;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ptick__track{display:flex;gap:14px;width:max-content;animation:slide var(--sp,66s) linear infinite}
.ptick--rev .ptick__track{animation-direction:reverse}
.ptick:hover .ptick__track{animation-play-state:paused}
.ptick img{width:clamp(196px,20vw,272px);aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);
  background:var(--paper-2)}

/* ── topper ticker ── */
.ttick{margin-top:clamp(34px,4vw,54px);overflow:hidden;border-top:1px solid rgba(255,255,255,.14);
  padding-top:clamp(20px,2.4vw,30px);position:relative;z-index:2;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ttick__track{display:flex;width:max-content;animation:slide 74s linear infinite}
.ttick:hover .ttick__track{animation-play-state:paused}
.ttick__i{display:flex;align-items:baseline;gap:.6em;white-space:nowrap;padding:0 1.8em;
  border-right:1px solid rgba(255,255,255,.11)}
.ttick__i b{font-family:var(--f-disp);font-size:1.06rem;font-weight:600;color:#EDF1F8}
.ttick__i em{font-style:normal;font-family:var(--f-mono);font-size:.95rem;color:var(--flame)}
.ttick__i i{font-style:normal;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted-l)}

/* ── stats reused away from the hero ── */
.stats{border:1px solid var(--line-2)}
.hero .stats{border:0;box-shadow:0 30px 70px -34px rgba(6,12,28,.6);margin-bottom:-52px}

/* ── academics: alternating stacked stages ── */
/* hairline rules between stages keep the alternating rhythm from drifting apart */
.stack{display:grid}
.stack__i{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(24px,3.6vw,52px);
  align-items:center;padding-block:clamp(26px,3.4vw,46px);border-top:1px solid var(--line-2)}
.stack__i:first-child{border-top:0;padding-top:0}
.stack__i:last-child{padding-bottom:0}
.stack__i:nth-child(even) .stack__fig{order:2}
.stack__fig{margin:0;border-radius:var(--r);overflow:hidden;background:var(--paper-2)}
.stack__fig img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .6s var(--ease)}
.stack__i:hover .stack__fig img{transform:scale(1.035)}
.stack__n{display:flex;align-items:baseline;gap:.85em;margin:0 0 .7em;
  font-family:var(--f-mono);font-size:1.5rem;color:var(--flame);letter-spacing:-.02em}
.stack__n span{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ember)}
.stack__txt h3{font-size:clamp(1.35rem,2.1vw,1.85rem);margin:0 0 .6em;letter-spacing:-.018em}
.stack__txt p{margin:0;color:#454D64;font-size:.985rem;line-height:1.68;max-width:52ch}

/* ── a school day ── */
.day{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,26px);position:relative;z-index:2}
.day li{display:flex;gap:14px;align-items:flex-start;padding:clamp(18px,2vw,24px);
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.11);border-radius:var(--r)}
.day__k{font-family:var(--f-mono);font-size:.76rem;color:var(--flame);
  border:1px solid rgba(242,166,32,.42);border-radius:50%;width:2.3em;height:2.3em;
  display:grid;place-items:center;flex:0 0 auto}
.day li b{display:block;color:#fff;font-size:1.02rem;margin-bottom:.3em}
.day li span{display:block;color:#AEB8CE;font-size:.87rem;line-height:1.56}

/* ── facility list ── */
.flist{display:grid;gap:clamp(14px,1.8vw,22px)}
.flist__i{display:grid;grid-template-columns:220px 1fr;gap:clamp(18px,2.4vw,32px);align-items:center;
  padding-bottom:clamp(14px,1.8vw,22px);border-bottom:1px solid var(--line-2)}
.flist__i:last-child{border-bottom:0;padding-bottom:0}
.flist__media{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);
  display:grid;place-items:center;border:1px solid var(--line-2)}
.flist__media img{width:100%;height:100%;object-fit:cover}
.flist__ico svg{width:38px;height:38px;fill:none;stroke:var(--ember);stroke-width:1.35;
  stroke-linecap:round;stroke-linejoin:round}
.flist__n{font-family:var(--f-mono);font-size:.7rem;color:var(--flame);margin:0 0 .5em;letter-spacing:.1em}
.flist__txt h3{font-size:clamp(1.1rem,1.6vw,1.4rem);margin:0 0 .45em;letter-spacing:-.014em}
.flist__txt p:last-child{margin:0;color:var(--muted);font-size:.93rem;line-height:1.62;max-width:56ch}

/* ── fact box ── */
.fbox{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1px;
  background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.fbox__i{background:#fff;padding:clamp(16px,1.9vw,22px)}
.sec--paper .fbox__i{background:var(--paper)}
.fbox dt{font-family:var(--f-mono);font-size:.635rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ember);margin-bottom:.55em}
.fbox dd{font-size:.985rem;font-weight:500;color:var(--ink);line-height:1.5}
.fbox dd.mono{font-family:var(--f-mono);letter-spacing:.02em}

/* ── faculty photo grid ── */
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:clamp(8px,1vw,13px)}
.fgrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);background:var(--paper-2);
  filter:saturate(.94);transition:transform .3s var(--ease),filter .3s}
.fgrid img:hover{transform:translateY(-3px) scale(1.02);filter:saturate(1.06)}
.fgrid__note{margin:1.6em 0 0;font-size:.82rem;color:var(--muted);font-family:var(--f-mono);
  line-height:1.6;padding-left:12px;border-left:2px solid var(--flame)}

/* ── generic cards ── */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,22px)}
.card{background:#fff;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;
  transition:.22s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(12,22,48,.32)}
.card__img{aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.card:hover .card__img img{transform:scale(1.05)}
.card__body{padding:clamp(17px,1.9vw,23px)}
.card__body h3{font-size:1.14rem;margin:0 0 .45em;letter-spacing:-.014em}
.card__body p{margin:0;font-size:.885rem;color:var(--muted);line-height:1.6}

/* ── gallery: filters, grid, lightbox ── */
.gfil{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:clamp(20px,2.6vw,32px)}
.gfil__b{font:600 .84rem/1 var(--f-body);color:#414963;background:#fff;
  border:1.5px solid var(--line);border-radius:100px;padding:.68em 1.1em;cursor:pointer;
  transition:.16s var(--ease)}
.gfil__b:hover{border-color:var(--ink);color:var(--ink)}
.gfil__b.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.2vw,15px)}
.gitem{margin:0;position:relative}
.gitem[hidden]{display:none}
.gitem__b{display:block;width:100%;padding:0;border:0;background:var(--paper-2);cursor:pointer;
  position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.gitem__b img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gitem__b:hover img{transform:scale(1.06)}
.gitem__cap{position:absolute;left:0;right:0;bottom:0;padding:2em .85em .7em;text-align:left;
  font-family:var(--f-mono);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(11,20,40,.9));
  opacity:0;transition:opacity .24s}
.gitem__b:hover .gitem__cap,.gitem__b:focus-visible .gitem__cap{opacity:1}
.ggrid--sm .gitem__cap{opacity:1}
.ggrid--sm .gitem__b{cursor:default}
.ggrid__none{margin:2em 0 0;color:var(--muted)}

.lb{position:fixed;inset:0;z-index:140;background:rgba(6,11,24,.94);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(8px,2vw,24px);
  padding:clamp(14px,3vw,40px)}
.lb[hidden]{display:none}
.lb__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}
.lb__fig img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:var(--r)}
.lb__fig figcaption{font-family:var(--f-mono);font-size:.73rem;letter-spacing:.09em;
  text-transform:uppercase;color:#C6CEE0;text-align:center}
.lb__x,.lb__nav{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.2);
  border-radius:50%;width:46px;height:46px;cursor:pointer;color:#fff;display:grid;place-items:center;
  flex:0 0 auto;transition:.16s}
.lb__x:hover,.lb__nav:hover{background:var(--flame);border-color:var(--flame);color:#20180A}
.lb__x{position:absolute;top:clamp(12px,2.4vw,26px);right:clamp(12px,2.4vw,26px);z-index:2}
.lb svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}

/* ── FAQ ── */
.faq{display:grid;gap:8px;max-width:860px}
.faq__i{border:1px solid var(--line-2);border-radius:var(--r);background:#fff}
.sec--paper .faq__i{background:var(--paper)}
.faq__i summary{cursor:pointer;list-style:none;padding:1.05em clamp(16px,2vw,24px);
  font-weight:600;font-size:.965rem;display:flex;align-items:center;gap:.8em;color:var(--ink)}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary::before{content:"";width:9px;height:9px;flex:0 0 auto;margin-bottom:3px;
  border-right:1.8px solid var(--ember);border-bottom:1.8px solid var(--ember);
  transform:rotate(45deg);transition:transform .22s var(--ease)}
.faq__i[open] summary::before{transform:rotate(225deg);margin-bottom:0;margin-top:3px}
.faq__i div{padding:0 clamp(16px,2vw,24px) 1.3em}
.faq__i p{margin:0;color:#454D64;font-size:.93rem;line-height:1.66;max-width:62ch}

/* ── note + icon list ── */
.note{margin-top:2.2em;padding:clamp(18px,2.2vw,26px);background:var(--paper);
  border:1px solid var(--line-2);border-left:3px solid var(--flame);border-radius:var(--r)}
.note p{margin:0 0 .5em;font-size:.92rem;color:#454D64;line-height:1.62}
.note p:last-child{margin:0}
.note b{color:var(--ink)}
.ilist{display:grid;gap:1.15em;margin-top:2em}
.ilist__i{display:flex;gap:14px;align-items:flex-start}
.ilist__i>span{flex:0 0 auto;width:40px;height:40px;border-radius:var(--r);display:grid;
  place-items:center;background:#fff;border:1px solid var(--line-2)}
.ilist__i svg{width:20px;height:20px;fill:none;stroke:var(--ember);stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}
.ilist__i b{display:block;font-size:.985rem;margin-bottom:.2em}
.ilist__i p{margin:0;font-size:.885rem;color:var(--muted);line-height:1.58}

/* ── closing CTA band ── */
.cband__in{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(26px,4vw,60px);
  align-items:center;position:relative;z-index:2}
.cband__in .h2{margin-bottom:.5em}
.cband__in .lead{margin:0;max-width:46ch}
.cband__btns{display:flex;flex-direction:column;gap:11px;align-items:stretch}
.cbtns{display:flex;gap:11px;flex-wrap:wrap}
.btn--sm{padding:.72em 1.1em;font-size:.845rem}

/* ── light-background variants of blocks first designed on ink ── */
.steps--dark b{color:var(--ink)}
.steps--dark span{color:var(--muted)}
.steps--dark li::before{color:var(--ember);border-color:rgba(217,83,30,.4)}

.dl{border-top:1px solid var(--line);margin-top:2.2em;padding-top:1.5em}
.dl__lbl{color:var(--ember)}
.dl a{color:var(--ink);border-bottom-color:var(--line-2)}
.dl a:hover{color:var(--ember)}
.dl em{color:var(--muted);border-color:var(--line)}
.sec--ink .dl{border-top-color:rgba(255,255,255,.16)}
.sec--ink .dl__lbl{color:var(--flame)}
.sec--ink .dl a{color:#DEE4F0;border-bottom-color:rgba(255,255,255,.09)}
.sec--ink .dl a:hover{color:var(--flame)}
.sec--ink .dl em{color:var(--muted-l);border-color:rgba(255,255,255,.2)}

.res__hd{border-bottom-color:var(--line)}
.res__hd h3{color:var(--ink)}
.res__dl{color:var(--ember)}
.board li{border-bottom-color:var(--line-2)}
.board__r{color:var(--muted)}
.board__n{color:var(--ink)}
.board__p{color:var(--ember)}
.res__note{color:var(--muted)}
.res__note a{color:var(--ember)}
.sec--ink .res__hd{border-bottom-color:rgba(255,255,255,.2)}
.sec--ink .res__hd h3{color:#fff}
.sec--ink .res__dl{color:var(--flame)}
.sec--ink .board li{border-bottom-color:rgba(255,255,255,.085)}
.sec--ink .board__r{color:var(--muted-l)}
.sec--ink .board__n{color:#EDF1F8}
.sec--ink .board__p{color:var(--flame)}
.sec--ink .res__note{color:#C3CBDC}
.sec--ink .res__note a{color:var(--flame)}

/* ── footer, expanded ── */
.ft__top{display:grid;grid-template-columns:1.25fr 1.55fr .95fr;gap:clamp(28px,4vw,56px);
  padding-bottom:clamp(34px,4.4vw,56px)}
.ft__brand img{width:66px;height:66px;object-fit:contain;margin-bottom:1.1em}
.ft__motto{font-family:var(--f-disp);font-size:1.02rem;line-height:1.5;color:#D7DEEC;
  margin:0 0 1.2em;max-width:34ch}
.ft__soc{margin:0;font-size:.815rem;line-height:1.62;color:#98A2BA}
.ft__soc b{color:#fff;font-family:var(--f-disp);font-size:1.02rem;font-weight:600}
.ft__contact h3{font-family:var(--f-mono);font-size:.655rem;letter-spacing:.17em;
  text-transform:uppercase;color:var(--flame);margin:0 0 1.05em;font-weight:500}
.ft__contact p{font-size:.855rem;line-height:1.66;margin:0 0 1em}
.ft__contact a{text-decoration:none}
.ft__contact a:hover{color:#fff}
.ft__contact .btn{margin-top:.3em}

/* ── the school-info assistant ── */
.cw__launch{position:fixed;right:clamp(14px,2.4vw,26px);bottom:clamp(14px,2.4vw,26px);z-index:130;
  display:flex;align-items:center;gap:.65em;background:var(--ink);color:#fff;
  border:1.5px solid rgba(255,255,255,.16);border-radius:100px;cursor:pointer;
  padding:.8em 1.25em .8em .9em;font:600 .9rem/1 var(--f-body);
  box-shadow:0 16px 40px -14px rgba(6,12,28,.6);transition:.2s var(--ease)}
.cw__launch:hover{transform:translateY(-2px);background:var(--ink-3)}
.cw__launch[aria-expanded="true"]{opacity:0;pointer-events:none}
.cw__launchIco{width:30px;height:30px;display:grid;place-items:center;color:var(--flame);
  background:rgba(242,166,32,.14);border-radius:50%;flex:0 0 auto}
.cw__launchIco svg{width:22px;height:22px;animation:spin 44s linear infinite}

.cw{position:fixed;right:clamp(14px,2.4vw,26px);bottom:clamp(14px,2.4vw,26px);z-index:135;
  width:min(390px,calc(100vw - 28px));max-height:min(620px,calc(100vh - 40px));
  display:flex;flex-direction:column;background:#fff;border-radius:10px;overflow:hidden;
  box-shadow:0 28px 70px -18px rgba(6,12,28,.55);border:1px solid var(--line);
  animation:cwIn .3s var(--ease)}
.cw[hidden]{display:none}
@keyframes cwIn{from{opacity:0;transform:translateY(14px) scale(.98)}}
.cw__hd{display:flex;align-items:center;gap:11px;padding:14px 14px 14px 16px;
  background:var(--ink);color:#fff;flex:0 0 auto}
.cw__av{width:36px;height:36px;border-radius:50%;background:rgba(242,166,32,.16);
  display:grid;place-items:center;color:var(--flame);flex:0 0 auto}
.cw__av svg{width:26px;height:26px}
.cw__hdTxt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.cw__hdTxt b{font-family:var(--f-disp);font-size:1.02rem;font-weight:600}
.cw__hdTxt i{font-style:normal;font-size:.67rem;font-family:var(--f-mono);color:var(--muted-l);
  letter-spacing:.02em;margin-top:2px}
.cw__x{margin-left:auto;background:none;border:0;cursor:pointer;color:#B9C2D6;padding:6px;flex:0 0 auto}
.cw__x:hover{color:#fff}
.cw__x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}

.cw__log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:11px;
  background:var(--paper);min-height:150px}
.cw__m{max-width:88%;font-size:.895rem;line-height:1.58;padding:.72em .95em;border-radius:12px}
.cw__m a{color:var(--madder);font-weight:500}
.cw__m--bot{background:#fff;border:1px solid var(--line-2);border-bottom-left-radius:3px;
  align-self:flex-start;color:#333B52}
.cw__m--me{background:var(--ink);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}
.cw__m--me a{color:var(--flame-2)}
.cw__typ{display:flex;gap:4px;align-self:flex-start;padding:.85em 1em;background:#fff;
  border:1px solid var(--line-2);border-radius:12px;border-bottom-left-radius:3px}
.cw__typ span{width:6px;height:6px;border-radius:50%;background:var(--muted-l);
  animation:blink 1.3s ease-in-out infinite}
.cw__typ span:nth-child(2){animation-delay:.18s}
.cw__typ span:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.cw__chips{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;border-top:1px solid var(--line-2);
  background:#fff;flex:0 0 auto}
.cw__chip{white-space:nowrap;font:500 .8rem/1 var(--f-body);color:var(--ink);background:var(--paper-2);
  border:1px solid var(--line);border-radius:100px;padding:.6em .9em;cursor:pointer;transition:.15s}
.cw__chip:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.cw__form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line-2);
  background:#fff;flex:0 0 auto}
.cw__srt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cw__in{flex:1;min-width:0;font:400 .9rem/1.4 var(--f-body);padding:.75em .9em;
  border:1.5px solid var(--line);border-radius:100px;background:var(--paper);color:var(--text)}
.cw__in:focus{outline:none;border-color:var(--flame);background:#fff;
  box-shadow:0 0 0 3px rgba(242,166,32,.16)}
.cw__send{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;
  background:var(--flame);color:#20180A;display:grid;place-items:center;transition:.16s}
.cw__send:hover{background:var(--flame-2)}
.cw__send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.cw__foot{margin:0;padding:8px 14px 11px;font-size:.735rem;color:var(--muted);background:#fff;
  border-top:1px solid var(--line-2);flex:0 0 auto}
.cw__foot a{color:var(--ink);font-weight:600}

/* ═════════ responsive, part 2 ═════════ */
@media (max-width:1240px){
  .day{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:repeat(2,1fr)}
  .ggrid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .stack__i{grid-template-columns:1fr;gap:20px}
  .stack__i:nth-child(even) .stack__fig{order:0}
  .flist__i{grid-template-columns:150px 1fr;gap:18px}
  .cband__in{grid-template-columns:1fr}
  .cband__btns{flex-direction:row;flex-wrap:wrap}
  .ft__top{grid-template-columns:1fr 1fr}
  .ft__brand{grid-column:1/-1}
  .ggrid{grid-template-columns:repeat(2,1fr)}
  .nt__lbl{padding-inline:var(--gut) 14px}
}
@media (max-width:620px){
  .day{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .flist__i{grid-template-columns:1fr}
  .flist__media{aspect-ratio:16/9}
  .ft__top{grid-template-columns:1fr}
  .nt__lbl{font-size:.6rem;letter-spacing:.1em}
  .nt__i{font-size:.8rem;padding-inline:1.1em}
  .lb{grid-template-columns:1fr;grid-template-rows:1fr auto}
  .lb__fig{grid-row:1}
  .lb__nav{position:absolute;bottom:clamp(14px,3vw,40px)}
  .lb__nav--p{left:24%}
  .lb__nav--n{right:24%}
  .cw__launchTxt{display:none}
  .cw__launch{padding:.7em;border-radius:50%}
  .gitem__cap{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .nt__track,.ptick__track,.ttick__track,.cw__launchIco svg,.nt__pulse{animation:none!important}
  .prog{transition:none}
}
@media print{.nt,.prog,.cw,.cw__launch,.ptick,.ttick,.lb{display:none!important}}


/* ===== 03-type.css ===== */
/* ═══════════════════════════════════════════════════════════════
   TYPE — second pass.
   Out: Fraunces + Instrument Sans + IBM Plex Mono. The letter-spaced
   mono labels and mono tickers are the giveaway of a generated page,
   and they read cold on a school site.
   In:  Literata — a sturdy, warm reading serif with real ink on the
        page; it carries display sizes and a news-crawl equally well.
        Mukta — from Ek Type in Mumbai, drawn for Devanagari and Latin
        together. An Indian face for an Indian school, and it stays
        legible on a cheap phone screen.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --f-disp:"Literata",Georgia,"Times New Roman",serif;
  --f-body:"Mukta",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Mukta",system-ui,sans-serif;   /* label face, no longer monospaced */
}

body{font-family:var(--f-body);font-size:clamp(16px,1.04vw,17.5px);line-height:1.68;font-weight:400}
h1,h2,h3{font-family:var(--f-disp);font-weight:600;letter-spacing:-.012em}
.hero__h1,.phero__h1{letter-spacing:-.02em;font-weight:600}
.h2{letter-spacing:-.016em}

/* labels: small, spaced, upper — now in Mukta semibold rather than mono */
.eyebrow,.quick__lbl,.dl__lbl,.bank__hd,.cinfo dt,.fbox dt,.ft__nav h3,.ft__contact h3,
.stage__range,.res__dl,.msg__by i,.stack__n span,.flist__n,.nt__lbl,.util__ids span,
.gitem__cap,.mo figcaption,.lb__fig figcaption,.ach__meta,.dl em,.docs em,.ttick__i i,
.note__lbl,.ncard__tag{
  font-family:var(--f-body);font-weight:600;letter-spacing:.13em;text-transform:uppercase;
}
.eyebrow{font-size:.7rem;letter-spacing:.15em}
.util__ids span{font-size:.66rem;letter-spacing:.1em}

/* figures read better with lining, evenly-spaced numerals */
.util__ids b,.board__p,.board__r,.stats b,.num__suf,.stats__word,.fbox dd,.bank dd,
.ttick__i em,.day__k,.stack__n,.ft__ids b,.top__pc,.rband__n{
  font-variant-numeric:tabular-nums lining-nums;
}
.util__ids b{font-family:var(--f-body);font-weight:600;letter-spacing:.03em;font-size:.76rem}
.util{font-size:.74rem}
.util__act a{font-weight:500;letter-spacing:.01em}
.brand__txt i{font-family:var(--f-body);font-weight:500;font-size:.72rem;letter-spacing:.01em;text-transform:none}

/* the notice crawl set in the reading serif — a newspaper crawl, not a terminal */
.nt__i{font-family:var(--f-disp);font-size:.93rem;font-weight:400;letter-spacing:0}
.nt__lbl{font-size:.665rem}

/* topper ticker */
.ttick__i b{font-family:var(--f-disp);font-weight:600;font-size:1.08rem}
.ttick__i em{font-family:var(--f-body);font-weight:700;font-size:1rem;letter-spacing:0}
.ttick__i i{font-size:.63rem}

/* board tables */
.board__r{font-family:var(--f-body);font-weight:500;font-size:.8rem}
.board__n{font-family:var(--f-body);font-weight:500;font-size:1rem}
.board__p{font-family:var(--f-body);font-weight:700;font-size:1rem;letter-spacing:0}
.board li:first-child .board__n{font-family:var(--f-disp);font-weight:600}

/* captions */
.grid2__fig figcaption,.fgrid__note{font-family:var(--f-body);font-weight:400;
  letter-spacing:0;text-transform:none;font-size:.87rem}
.gitem__cap,.mo figcaption{font-size:.66rem;letter-spacing:.1em}
.stack__n{font-family:var(--f-disp);font-weight:600}
.flist__n{font-size:.72rem}
.day__k{font-family:var(--f-body);font-weight:600;font-size:.8rem}

/* body copy weight lifts slightly — Mukta runs light at small sizes */
.lead{font-weight:400}
.sec__sub,.stage__body p,.card__body p,.tile__cap p,.flist__txt p,.msg blockquote{font-weight:400}
.msg blockquote{font-family:var(--f-disp);font-size:.99rem;line-height:1.72}
.btn{font-family:var(--f-body);font-weight:600;letter-spacing:.005em}
.f__l{font-weight:600;letter-spacing:.01em}
.cw__hdTxt i{font-family:var(--f-body);letter-spacing:.01em;text-transform:none;font-size:.72rem}
.cw__m{font-family:var(--f-body)}
.names__list li,.faq__i p,.docs a{font-weight:400}
.docs a,.dl a{font-weight:500}


/* ===== 04-new.css ===== */
/* ═══════════════════════════════════════════════════════════════
   PART 4 — carousel, nav drop-downs, toppers, achievements,
   notices, downloads.
   ═══════════════════════════════════════════════════════════════ */

/* The divider sits between sections of different colours, so give it its own
   white band — otherwise the glyph's disc cuts across the colour change. */
.rule{height:clamp(44px,5vw,64px);max-width:none;margin:0;background:#fff;
  position:relative;display:block}
.rule::before{content:"";position:absolute;left:50%;top:50%;transform:translateX(-50%);
  width:min(calc(var(--wrap) - var(--gut) * 2),calc(100% - var(--gut) * 2));
  height:1px;background:var(--line)}
.rule__glyph{background:#fff;z-index:2}

/* ── nav drop-downs ── */
.nav{align-items:center}
.nav__i{position:relative}
.nav__i>a{display:flex;align-items:center;gap:.4em}
.nav__c{width:10px;height:7px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:transform .2s var(--ease)}
.nav__i--has:hover .nav__c,.nav__i--has:focus-within .nav__c{transform:rotate(180deg);opacity:1}
.nav__sub{
  position:absolute;top:calc(100% + 2px);left:-8px;min-width:220px;background:var(--ink-2);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:6px;
  box-shadow:0 22px 50px -18px rgba(0,0,0,.65);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s var(--ease);z-index:5;
}
.nav__i--has:hover .nav__sub,.nav__i--has:focus-within .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:block;padding:.62em .8em;font-size:.87rem;color:#CBD3E4;border-radius:2px;white-space:nowrap}
.nav__sub a:hover{background:rgba(255,255,255,.08);color:#fff}
.nav__sub a::after{display:none}
.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]::after{transform:scaleX(1)}

/* ── hero carousel ── */
.hero--car{min-height:clamp(520px,74vh,760px);display:flex;flex-direction:column;justify-content:center}
.hero--car .hero__stage{position:absolute;inset:0;overflow:hidden}
.cslide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility .8s}
.cslide.is-on{opacity:1;visibility:visible}
.cslide__bg{position:absolute;inset:0}
.cslide__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;
  transform:scale(1.06);transition:transform 9s linear}
.cslide.is-on .cslide__bg img{transform:scale(1)}
.cslide__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(11,20,40,.84) 0%,rgba(11,20,40,.6) 44%,rgba(11,20,40,.92) 100%),
  linear-gradient(96deg,rgba(11,20,40,.92) 0%,rgba(11,20,40,.44) 60%,rgba(11,20,40,.22) 100%)}
.cslide__in{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(70px,10vw,120px) clamp(96px,11vw,140px);max-width:920px}
.cslide__in>*{opacity:0;transform:translateY(16px)}
.cslide.is-on .cslide__in>*{animation:rise .8s var(--ease) forwards}
.cslide.is-on .cslide__in>*:nth-child(1){animation-delay:.08s}
.cslide.is-on .cslide__in>*:nth-child(2){animation-delay:.16s}
.cslide.is-on .cslide__in>*:nth-child(3){animation-delay:.26s}
.cslide.is-on .cslide__in>*:nth-child(4){animation-delay:.36s}
.hero--car .hero__h1{font-size:clamp(2.3rem,5.6vw,4.4rem);margin-bottom:.42em}
.hero--car .hero__sub{margin-bottom:1.7em}

/* carousel controls */
.cnav{position:relative;z-index:6;margin-top:auto;padding-bottom:clamp(20px,3vw,34px)}
.cnav__in{display:flex;align-items:center;gap:12px}
.carr,.cplay{width:44px;height:44px;border-radius:50%;flex:0 0 auto;cursor:pointer;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.26);color:#fff;
  display:grid;place-items:center;transition:.16s}
.carr:hover,.cplay:hover{background:var(--flame);border-color:var(--flame);color:#20180A}
.carr svg,.cplay svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.cplay{margin-left:auto}
.cplay svg{fill:currentColor;stroke:none}
.cplay__b{display:none}
.cplay[aria-pressed="true"] .cplay__a{display:none}
.cplay[aria-pressed="true"] .cplay__b{display:block}
.cdots{display:flex;gap:8px;align-items:center}
.cdot{width:auto;height:26px;padding:0;background:none;border:0;cursor:pointer;display:grid;place-items:center}
.cdot span{display:block;width:26px;height:3px;border-radius:2px;background:rgba(255,255,255,.32);
  transition:.24s var(--ease);position:relative;overflow:hidden}
.cdot:hover span{background:rgba(255,255,255,.55)}
.cdot.is-on span{width:52px;background:rgba(255,255,255,.3)}
.cdot.is-on span::after{content:"";position:absolute;inset:0;background:var(--flame);
  transform-origin:left;transform:scaleX(0);animation:cbar var(--dur,7s) linear forwards}
.hero--car.is-paused .cdot.is-on span::after{animation-play-state:paused}
@keyframes cbar{to{transform:scaleX(1)}}

/* stats sit in their own band now the hero is a carousel */
.statsec{padding-block:clamp(34px,4vw,56px)}
.statsec .stats{box-shadow:0 22px 50px -34px rgba(6,12,28,.4)}

/* ── result banner ── */
.rbsec{overflow:hidden}
.rbanner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,3.6vw,52px);
  align-items:center;position:relative;z-index:2;margin-bottom:clamp(30px,4vw,52px)}
.rbanner__n{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r);overflow:hidden}
.rbanner__n li{background:var(--ink);padding:clamp(14px,1.8vw,20px)}
.rbanner__n b{display:block;font-family:var(--f-disp);font-size:clamp(1.5rem,2.6vw,2.1rem);
  font-weight:600;color:var(--flame);line-height:1}
.rbanner__n span{display:block;margin-top:.35em;font-size:.79rem;color:#A9B3CA;line-height:1.4}
.rbanner__n .rband--pass b{color:#fff}

/* ── topper portraits ── */
.tops{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(10px,1.3vw,16px);
  position:relative;z-index:2}
.tops--wall{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.top{margin:0}
.top__img{aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--ink-3);
  border:1px solid rgba(255,255,255,.12)}
.sec--paper .top__img,.sec:not(.sec--ink) .top__img{border-color:var(--line-2);background:var(--paper-2)}
.top__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.top:hover .top__img img{transform:scale(1.05)}
.top figcaption{margin-top:.7em;display:flex;flex-direction:column;gap:1px}
.top figcaption b{font-family:var(--f-disp);font-size:.9rem;font-weight:600;line-height:1.25}
.top__pc{font-weight:700;font-size:.95rem;color:var(--ember)}
.sec--ink .top figcaption b{color:#EDF1F8}
.sec--ink .top__pc{color:var(--flame)}

/* ── year accordions ── */
.ryears{display:grid;gap:10px}
.ryear{border:1px solid var(--line-2);border-radius:var(--r);background:#fff;overflow:hidden}
.sec--paper .ryear{background:var(--paper)}
.ryear summary{cursor:pointer;list-style:none;display:grid;
  grid-template-columns:auto auto 1fr auto;gap:clamp(10px,2vw,22px);align-items:baseline;
  padding:1.05em clamp(16px,2vw,24px)}
.ryear summary::-webkit-details-marker{display:none}
.ryear__y{font-family:var(--f-disp);font-size:1.3rem;font-weight:600;color:var(--ink)}
.ryear__c{font-weight:600;font-size:.95rem;color:var(--ember)}
.ryear__s{font-size:.85rem;color:var(--muted)}
.ryear__top{font-size:.88rem;color:var(--ink);font-weight:500;text-align:right;white-space:nowrap}
.ryear__b{padding:0 clamp(16px,2vw,24px) clamp(20px,2.4vw,28px);border-top:1px solid var(--line-2)}
.ryear__note{margin:1.2em 0 0;font-size:.9rem;color:var(--ember);font-weight:500}
.ryear__src{margin:1.4em 0 0;font-size:.86rem}
.ryear__src a{color:var(--ember);font-weight:600}
.rband{display:flex;flex-wrap:wrap;gap:8px;margin:1.4em 0}
.rband li{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);
  padding:.6em .95em;display:flex;align-items:baseline;gap:.55em}
.rband--pass{background:var(--ink);border-color:var(--ink)}
.rband--pass span{color:#C3CBDC}
.rband--pass .rband__n{color:var(--flame)}
.rband__n{font-family:var(--f-disp);font-weight:600;font-size:1.1rem;color:var(--ink)}
.rband li span{font-size:.8rem;color:var(--muted)}
.ryear .board{margin-top:.6em}
.ryear .tops{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:.6em}

/* ── achievements ── */
.achgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.9vw,24px)}
.ach{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-2);
  border-radius:var(--r);overflow:hidden;transition:.22s var(--ease)}
.ach[hidden]{display:none}
.ach:hover{transform:translateY(-4px);box-shadow:0 24px 46px -26px rgba(12,22,48,.34)}
.ach__b{display:block;width:100%;padding:0;border:0;background:var(--paper-2);cursor:zoom-in;
  position:relative;aspect-ratio:4/3;overflow:hidden}
.ach__img{display:block;height:100%}
.ach__b img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:transform .6s var(--ease)}
.ach__b:hover img{transform:scale(1.04)}
.ach__zoom{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;
  background:rgba(11,20,40,.78);display:grid;place-items:center;opacity:0;transition:opacity .2s}
.ach__b:hover .ach__zoom,.ach__b:focus-visible .ach__zoom{opacity:1}
.ach__zoom svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}
.ach__t{padding:clamp(15px,1.8vw,20px);display:flex;flex-direction:column;gap:.4em}
.ach__meta{margin:0;font-size:.63rem;color:var(--ember)}
.ach__t h3{font-size:1.02rem;margin:0;line-height:1.32}
.ach__t p:last-child{margin:0;font-size:.87rem;color:var(--muted);line-height:1.58}
.lb__fig--doc img{max-height:88vh}

/* press strip on the home page */
.pstrip{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(10px,1.3vw,16px)}
.pcut{display:flex;flex-direction:column;text-decoration:none;border-radius:var(--r);
  overflow:hidden;border:1px solid var(--line-2);background:#fff;transition:.2s var(--ease)}
.pcut:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(12,22,48,.34);border-color:var(--line)}
.pcut__img{display:block;aspect-ratio:3/4;overflow:hidden;background:var(--paper-2)}
.pcut__img img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.pcut__t{padding:11px 12px 13px;display:flex;flex-direction:column;gap:2px}
.pcut__t i{font-style:normal;font-size:.6rem;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ember)}
.pcut__t b{font-family:var(--f-disp);font-size:.83rem;font-weight:500;line-height:1.32;color:var(--ink)}

/* ── notices ── */
.ncards{display:grid;gap:clamp(12px,1.6vw,18px);counter-reset:none}
.ncard{display:grid;grid-template-columns:84px 1fr;gap:clamp(16px,2.4vw,30px);
  background:#fff;border:1px solid var(--line-2);border-radius:var(--r);
  padding:clamp(18px,2.2vw,26px);transition:.2s var(--ease)}
.ncard:hover{border-color:var(--line);box-shadow:0 18px 40px -28px rgba(12,22,48,.3)}
.ncard__d{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  background:var(--ink);color:#fff;border-radius:var(--r);padding:.8em .4em .7em;height:max-content}
.ncard__d b{font-family:var(--f-disp);font-size:1.6rem;font-weight:600;line-height:1}
.ncard__d span{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--flame);margin-top:.25em}
.ncard__d i{font-style:normal;font-size:.68rem;color:#939EB8;margin-top:.2em}
.ncard__tag{margin:0 0 .5em;font-size:.63rem;color:var(--ember)}
.ncard__b h3{font-size:clamp(1.05rem,1.5vw,1.24rem);margin:0 0 .5em;line-height:1.32}
.ncard__b>p:not(.ncard__tag):not(.ncard__l){margin:0;color:#454D64;font-size:.93rem;line-height:1.62;max-width:70ch}
.ncard__l{margin:.9em 0 0}
.ncard__l a{display:inline-flex;align-items:center;gap:.45em;font-weight:600;font-size:.88rem;
  color:var(--ember);text-decoration:none}
.ncard__l a:hover{gap:.7em}
.ncard__l svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round;transition:.16s}
.qlinks{display:grid;gap:2px}
.qlinks a{display:block;padding:.72em 0;color:#DEE4F0;text-decoration:none;font-size:.93rem;
  border-bottom:1px solid rgba(255,255,255,.1);transition:.16s}
.qlinks li:last-child a{border-bottom:0}
.qlinks a:hover{color:var(--flame);padding-left:6px}

/* ── downloads ── */
.dtop{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,18px)}
.dcard{position:relative;display:flex;flex-direction:column;gap:.3em;text-decoration:none;
  background:var(--ink);color:#fff;border-radius:var(--r);padding:clamp(20px,2.3vw,26px);
  transition:.2s var(--ease);overflow:hidden}
.dcard::after{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 88% 8%,rgba(242,166,32,.22),transparent 56%);opacity:0;transition:opacity .25s}
.dcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(6,12,28,.6)}
.dcard:hover::after{opacity:1}
.dcard__k{font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--flame);
  border:1px solid rgba(242,166,32,.4);border-radius:2px;padding:.24em .5em;width:max-content;
  margin-bottom:.7em;position:relative;z-index:2}
.dcard b{font-family:var(--f-disp);font-size:1.06rem;font-weight:600;line-height:1.32;position:relative;z-index:2}
.dcard i{font-style:normal;font-size:.83rem;color:#A9B3CA;position:relative;z-index:2}
.dcard__go{position:absolute;right:clamp(16px,2vw,22px);bottom:clamp(16px,2vw,22px);z-index:2}
.dcard__go svg{width:20px;height:20px;fill:none;stroke:var(--flame);stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}

.dgroups{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.8vw,38px)}
.dgroup__h{display:flex;align-items:center;gap:.6em;font-size:1.08rem;margin:0 0 .9em;
  padding-bottom:.7em;border-bottom:1px solid var(--line)}
.dgroup__h span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line-2);flex:0 0 auto}
.dgroup__h svg{width:17px;height:17px;fill:none;stroke:var(--ember);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.dlist{display:grid;gap:1px}
.dlist a{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:.82em 0;text-decoration:none;border-bottom:1px solid var(--line-2);transition:.16s}
.dlist a:hover{padding-left:6px}
.dlist__t{display:flex;flex-direction:column;gap:1px;min-width:0}
.dlist__t b{font-size:.94rem;font-weight:600;color:var(--ink)}
.dlist__t i{font-style:normal;font-size:.81rem;color:var(--muted)}
.dlist a:hover .dlist__t b{color:var(--ember)}
.dlist__k{display:flex;align-items:center;gap:.5em;flex:0 0 auto;font-size:.62rem;font-weight:700;
  letter-spacing:.1em;color:var(--muted)}
.dlist__k svg{width:16px;height:16px;fill:none;stroke:var(--ember);stroke-width:1.8;stroke-linecap:round}
.dsheets{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dsheets img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 0;
  border-radius:var(--r);border:1px solid var(--line-2);transition:.2s var(--ease)}
.dsheets a:hover img{transform:translateY(-3px);box-shadow:0 18px 34px -20px rgba(12,22,48,.4)}
.fees__wa{margin-top:14px}

/* ═════════ responsive ═════════ */
@media (max-width:1240px){
  .achgrid{grid-template-columns:repeat(2,1fr)}
  .pstrip{grid-template-columns:repeat(3,1fr)}
  .tops{grid-template-columns:repeat(4,1fr)}
  .dtop{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .nav__i--has .nav__c{display:none}
  .nav__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    background:none;border:0;padding:0 0 0 14px;min-width:0;border-left:1px solid rgba(255,255,255,.14);margin:2px 0 6px}
  .nav__sub a{padding:.55em 0;font-size:.9rem;border:0}
  .rbanner{grid-template-columns:1fr}
  .dgroups{grid-template-columns:1fr}
  .ncard{grid-template-columns:64px 1fr;gap:16px}
  .ncard__d b{font-size:1.3rem}
}
@media (max-width:620px){
  .hero--car{min-height:auto}
  .cslide{position:relative;display:none}
  .cslide.is-on{display:block}
  .cslide__in{padding-block:56px 26px}
  .hero--car .hero__stage{position:relative;inset:auto}
  .cnav__in{gap:8px}
  .carr,.cplay{width:40px;height:40px}
  .cdot span{width:18px}
  .cdot.is-on span{width:36px}
  .achgrid,.pstrip{grid-template-columns:1fr 1fr}
  .pcut__t b{font-size:.78rem}
  .tops{grid-template-columns:repeat(3,1fr)}
  .dtop{grid-template-columns:1fr}
  .dsheets{grid-template-columns:repeat(3,1fr)}
  .ryear summary{grid-template-columns:auto 1fr;row-gap:.2em}
  .ryear__s{display:none}
  .ryear__top{grid-column:1/-1;text-align:left;font-size:.84rem;color:var(--muted)}
  .ncard{grid-template-columns:1fr}
  .ncard__d{flex-direction:row;gap:.45em;align-items:baseline;width:max-content;padding:.45em .8em}
  .ncard__d b{font-size:1.05rem}
  .ncard__d span,.ncard__d i{margin-top:0}
}
@media (prefers-reduced-motion:reduce){
  .cslide__bg img{transition:none;transform:none}
  .cdot.is-on span::after{animation:none;transform:scaleX(1)}
  .cslide.is-on .cslide__in>*{animation:none;opacity:1;transform:none}
}
@media print{.cnav,.nav__sub{display:none!important}}


/* ===== 05-php.css ===== */
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:clamp(10px,1.2vw,16px)}
.fcard{margin:0;display:flex;flex-direction:column;gap:.5em}
.fcard img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);background:var(--paper-2);
  filter:saturate(.94);transition:transform .3s var(--ease),filter .3s}
.fcard:hover img{transform:translateY(-3px) scale(1.02);filter:saturate(1.06)}
.fcard figcaption{display:flex;flex-direction:column;line-height:1.25}
.fcard figcaption b{font-family:var(--f-disp);font-size:.85rem;font-weight:600}
.fcard figcaption i{font-style:normal;font-size:.72rem;color:var(--muted);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase}
.top__none{display:grid;place-items:center;width:100%;height:100%;
  font-family:var(--f-disp);font-size:2rem;font-weight:600;color:var(--flame);
  background:linear-gradient(145deg,var(--ink) 0%,var(--ink-3) 100%)}
.sec--paper .top__none,.sec:not(.sec--ink) .top__none{background:var(--paper-2);color:var(--ember)}


/* ═══════════════════════════════════════════════════════════════
   PART 6 — mobile mega menu, notice ticker, quick strip, footer.
   ═══════════════════════════════════════════════════════════════ */

/* ── notice ticker ──
   The hover pause must only apply to devices that really hover. On a phone
   :hover sticks after a tap, so pressing play left the ticker frozen. */
.nt:hover .nt__track{animation-play-state:running}
@media (hover:hover) and (pointer:fine){
  .nt:hover .nt__track{animation-play-state:paused}
}
.nt.is-paused .nt__track{animation-play-state:paused !important}

.nt__pause{display:grid;place-items:center}
.nt__ic{grid-area:1/1;width:20px;height:20px;fill:currentColor}
.nt__ic--play{display:none}
.nt__pause[aria-pressed="true"] .nt__ic--pause{display:none}
.nt__pause[aria-pressed="true"] .nt__ic--play{display:block}
.nt__pause[aria-pressed="true"]{color:var(--madder);background:#fff}

/* ── the "already with us" strip ── */
.quick{background:var(--paper-2);border-block:1px solid var(--line);padding-block:clamp(26px,3.4vw,44px)}
.quick__in{display:block}
.quick__hd{display:grid;grid-template-columns:auto 1fr;gap:0 12px;align-items:center;
  margin-bottom:clamp(14px,1.8vw,20px)}
.quick__mk{grid-row:span 2;width:38px;height:38px;border-radius:50%;background:#fff;
  border:1px solid var(--line);display:grid;place-items:center;color:var(--flame)}
.quick__mk svg{width:26px;height:26px}
.quick__lbl{margin:0;align-self:end;color:var(--ember)}
.quick__sub{margin:0;align-self:start;font-size:.87rem;color:var(--muted)}
.quick__links{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.quick__links a{
  display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line-2);
  border-radius:var(--r);padding:.85em .95em;text-decoration:none;transition:.18s var(--ease);height:100%;
}
.quick__links a:hover{border-color:var(--ember);transform:translateY(-2px);
  box-shadow:0 14px 26px -18px rgba(12,22,48,.34)}
.quick__i{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--paper-2);
  display:grid;place-items:center}
.quick__i svg{width:17px;height:17px;fill:none;stroke:var(--ember);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.quick__t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.quick__t b{font-size:.9rem;font-weight:600;color:var(--ink)}
.quick__t i{font-style:normal;font-size:.76rem;color:var(--muted)}
.quick__go{width:16px;height:16px;margin-left:auto;flex:0 0 auto;fill:none;stroke:var(--line);
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:.18s}
.quick__links a:hover .quick__go{stroke:var(--ember);transform:translateX(2px)}

/* ── footer ── */
.ft{padding-top:0}
.ft__lead{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,44px);align-items:center;
  padding-block:clamp(30px,4vw,46px);border-bottom:1px solid rgba(255,255,255,.1)}
.ft__id{display:flex;align-items:center;gap:16px}
.ft__id img{width:68px;height:68px;object-fit:contain;flex:0 0 auto}
.ft__id div{display:flex;flex-direction:column;line-height:1.25}
.ft__id b{font-family:var(--f-disp);font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:600;color:#fff}
.ft__id i{font-style:normal;font-size:.8rem;color:#939EB8;margin-top:3px}
.ft__motto{margin:0;font-family:var(--f-disp);font-size:clamp(.94rem,1.15vw,1.04rem);
  line-height:1.55;color:#C3CBDC;max-width:52ch;justify-self:end;text-align:right}

.ft__top{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(26px,4vw,60px);
  padding-block:clamp(30px,4vw,48px) clamp(26px,3.4vw,44px)}
.ft__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px)}
.ft__nav h3,.ft__contact h3{font-family:var(--f-body);font-size:.665rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--flame);margin:0 0 1em}
.ft__nav a{display:block;text-decoration:none;font-size:.9rem;padding:.36em 0;color:#B9C2D6;
  transition:color .16s}
.ft__nav a:hover{color:#fff}

.ft__contact address{font-style:normal;font-size:.875rem;line-height:1.65;color:#B9C2D6;margin:0 0 1em}
.ft__cl{display:grid;gap:2px;margin:0 0 1.1em}
.ft__cl a{display:flex;align-items:center;gap:.6em;text-decoration:none;font-size:.875rem;
  color:#B9C2D6;padding:.24em 0}
.ft__cl a:hover{color:#fff}
.ft__cl svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:var(--flame);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.ft__soc{margin:1.2em 0 0;font-size:.78rem;line-height:1.6;color:#7E88A0;max-width:38ch}

.ft__base{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);padding-block:20px}

/* ── mobile drawer as a mega menu ── */
/* .nav__scroll only exists to give the mobile drawer something to scroll. On
   desktop it must not become a layout box, or the nav stacks vertically. */
.nav__scroll{display:flex;align-items:center;gap:2px}

/* The veil must never intercept taps while it is closed. `hidden` alone is not
   enough — a class rule setting display beats the attribute — so it is pinned
   off with both, and pointer-events are only enabled when it is open. */
.nav__veil{position:fixed;inset:0;background:rgba(6,11,24,.6);z-index:94;
  opacity:0;pointer-events:none;transition:opacity .32s var(--ease)}
.nav__veil.open{opacity:1;pointer-events:auto}
.nav__veil[hidden]{display:none !important}
.nav__foot{display:none}

@media (max-width:1240px){
  .hdr__in{position:relative}

  .nav{
    display:block;position:fixed;inset:0 0 0 auto;width:min(400px,88vw);max-width:none;
    background:var(--ink-2);border-left:1px solid rgba(255,255,255,.12);
    padding:0;z-index:95;transform:translateX(100%);visibility:hidden;
    transition:transform .32s var(--ease),visibility .32s;
    box-shadow:-24px 0 60px -20px rgba(0,0,0,.7);
  }
  .nav.open{transform:none;visibility:visible}
  .nav__scroll{display:block;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding:calc(env(safe-area-inset-top) + 76px) 20px calc(env(safe-area-inset-bottom) + 28px)}

  body.nav-open{overflow:hidden}

  /* top-level items become section headings */
  .nav__i{border-top:1px solid rgba(255,255,255,.1);padding:14px 0}
  .nav__i:first-child{border-top:0;padding-top:4px}
  .nav__i>a{
    display:flex;align-items:center;justify-content:space-between;gap:.5em;
    font-family:var(--f-disp);font-size:1.12rem;font-weight:600;color:#fff;
    padding:.2em 0;white-space:normal;text-align:left;
  }
  .nav__i>a::after{display:none}
  .nav__i>a[aria-current="page"]{color:var(--flame)}
  .nav__c{display:none}

  /* children as a two-column card grid — the "mega" part */
  .nav__sub{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    background:none;border:0;padding:0;margin:.7em 0 0;min-width:0;
    display:grid;grid-template-columns:1fr 1fr;gap:7px;
  }
  .nav__sub a{
    display:flex;align-items:center;padding:.72em .8em;font-size:.87rem;color:#CBD3E4;
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
    border-radius:var(--r);white-space:normal;line-height:1.3;min-height:44px;
  }
  .nav__sub a:hover,.nav__sub a:active{background:var(--flame);border-color:var(--flame);color:#20180A}

  /* call to action pinned to the end of the drawer */
  .nav__foot{display:block;margin-top:22px;padding-top:20px;
    border-top:1px solid rgba(255,255,255,.12)}
  .nav__call{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .nav__call a{display:flex;align-items:center;gap:9px;padding:.7em .8em;text-decoration:none;
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r)}
  .nav__call svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:var(--flame);stroke-width:1.7;
    stroke-linecap:round;stroke-linejoin:round}
  .nav__call span{display:flex;flex-direction:column;line-height:1.2;min-width:0}
  .nav__call span{font-size:.82rem;font-weight:600;color:#fff}
  .nav__call i{font-style:normal;font-size:.7rem;font-weight:400;color:#939EB8;margin-top:2px}

  .burger{position:relative;z-index:96}
}

@media (max-width:1240px){
  .quick__links{grid-template-columns:repeat(2,1fr)}
  .ft__lead{grid-template-columns:1fr;gap:18px}
  .ft__motto{justify-self:start;text-align:left;max-width:60ch}
  .ft__top{grid-template-columns:1fr}
}

@media (max-width:760px){
  /* smaller, calmer ticker so the headline is not competing with it */
  .nt__lbl{font-size:.6rem;letter-spacing:.1em;gap:.45em;padding-inline:var(--gut) 12px}
  .nt__pulse{width:5px;height:5px}
  .nt__i{font-size:.82rem;padding:.7em 1.1em;gap:.55em}
  .nt__pause{width:38px}
  .nt__ic{width:17px;height:17px}

  /* headings step down a notch on a phone */
  .hero--car .hero__h1{font-size:clamp(1.85rem,8.4vw,2.4rem);letter-spacing:-.022em}
  .hero--car .hero__sub{font-size:.95rem}
  .phero__h1{font-size:clamp(1.62rem,7.4vw,2.1rem)}
  .phero__sub{font-size:.94rem}
  .h2{font-size:clamp(1.34rem,5.6vw,1.72rem)}
  .sec__sub,.lead{font-size:.95rem}
  .eyebrow{font-size:.645rem;letter-spacing:.13em}

  .quick__links{grid-template-columns:1fr}
  .quick__hd{grid-template-columns:auto 1fr}

  .ft__nav{grid-template-columns:1fr 1fr;gap:16px 18px}
  .ft__nav div:last-child{grid-column:1/-1}
  .ft__id img{width:56px;height:56px}
  .ft__motto{font-size:.92rem}
  .ft__base{flex-direction:column;align-items:flex-start;gap:10px}
  .ft__ids{gap:14px;font-size:.66rem}
}

@media (max-width:440px){
  .nav{width:100%;border-left:0}
}
/* only the narrowest handsets drop to one column */
@media (max-width:359px){
  .nav__sub{grid-template-columns:1fr}
  .nav__call{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .nav,.nav__veil{transition:none}
}

/* Leadership photographs are people sitting at desks: the face is near the top
   of the frame, so the card must crop from the bottom, never the top. */
.msg__media img{object-position:50% 0}

/* Keep the footer's small print clear of the floating assistant button. */
.ft__base{padding-bottom:26px}
@media (min-width:861px){
  .ft__base p{padding-right:230px}
}
@media (max-width:860px){
  .ft__base{padding-bottom:84px}
}

/* ── recent-event feature block ── */
.feat__grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(12px,1.6vw,20px);align-items:start}
.feat__lead{margin:0;border-radius:var(--r);overflow:hidden;background:var(--paper-2);position:relative}
.feat__lead img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s var(--ease)}
.feat__lead:hover img{transform:scale(1.03)}
.feat__lead figcaption,.feat__s figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:2em .9em .75em;color:#fff;
  font-family:var(--f-body);font-size:.72rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;line-height:1.35;
  background:linear-gradient(180deg,transparent,rgba(11,20,40,.9))}
.feat__side{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,20px)}
.feat__s{margin:0;position:relative;border-radius:var(--r);overflow:hidden;background:var(--paper-2)}
.feat__s img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s var(--ease)}
.feat__s:hover img{transform:scale(1.04)}
.feat__s figcaption{font-size:.64rem;padding:1.6em .7em .6em}
@media (max-width:900px){
  .feat__grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .feat__side{grid-template-columns:1fr 1fr}
  .feat__s figcaption{font-size:.58rem;letter-spacing:.06em}
}
