:root{
  --paper:#F8F6F3; --paper-2:#F1EDEB; --paper-cool:#DEEDF3;
  --ink:#33312E; --ink-soft:#54514C; --muted:#989088;
  --line:#EAE6E1; --line-cool:#DEEDF3;
  --pewter-300:#BACDC0; --pewter-400:#AAC0B3; --pewter-700:#70877A;
  --glacier-50:#DEEDF3; --glacier-300:#BAD6E0; --glacier-400:#A7CBD6;
  --glacier-700:#71A8B5; --glacier-950:#4C7B85;
  --tide-50:#F1EDEB; --tide-200:#E3DDD9;
  --ice:var(--glacier-300); --ice-pale:var(--glacier-50); --dove:var(--glacier-400);
  --sage:var(--pewter-300); --sage-grey:var(--pewter-400);
  --ice-deep:#71A8B5; --sage-deep:#70877A;
  --accent:#71A8B5;            /* unified accent, lines + emphasis */
  --color-bg:#F8F6F3; --color-surface:var(--paper-cool);
  --color-ink:var(--ink); --color-text:var(--ink-soft); --color-muted:var(--muted);
  --color-line:var(--line); --color-accent:var(--ice-deep); --color-accent-2:var(--sage-deep);
  --font-display:"Cormorant Garamond","Playfair Display",Georgia,serif;
  --font-body:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --maxw:1720px; --maxw-text:680px;
  --gutter:clamp(1.5rem,3.5vw,4.5rem);
  --section-y:clamp(4rem,8vw,9rem);
  --fs-hero:clamp(32px, 3.6vw, 54px); --fs-h2:clamp(26px, 2.6vw, 38px);
  --fs-h3:clamp(20px, 1.7vw, 26px); --fs-lead:clamp(16px, 1.2vw, 18px);
  --fs-body:16px; --fs-small:14px; --fs-micro:12px;
  --track-wide:0.22em; --track-mega:0.34em;
  --ease:cubic-bezier(.16,.84,.32,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);font-size:var(--fs-body);font-weight:400;line-height:1.8;
  color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-ink);font-weight:400;line-height:1.16;letter-spacing:.002em;}
h1{font-size:var(--fs-hero);} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;}
p{font-size:var(--fs-body);}
a{color:inherit;text-decoration:none;transition:color .4s var(--ease),opacity .4s var(--ease);}
img{max-width:100%;display:block;}
ul,ol{list-style:none;}
::selection{background:var(--ice-pale);color:var(--ink);}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.container--narrow{max-width:1080px;}
.kicker{font-family:var(--font-body);font-size:var(--fs-micro);font-weight:400;
  letter-spacing:var(--track-mega);text-transform:uppercase;color:var(--color-muted);display:inline-block;}
.rule{height:1px;background:var(--accent);border:0;opacity:.5;}
.reveal{opacity:0;transform:translateY(32px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.14s;} .reveal[data-d="2"]{transition-delay:.28s;}
.reveal[data-d="3"]{transition-delay:.42s;} .reveal[data-d="4"]{transition-delay:.56s;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;} html{scroll-behavior:auto;}}

/* ===================== ARTICLE PAGE ===================== */
.art-hero{padding-top:clamp(8rem,14vh,11rem);padding-bottom:clamp(2rem,4vw,3rem);}
.art-hero__crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:clamp(2rem,4vw,3rem);}
.art-hero__crumbs a:hover{color:var(--accent);}
.art-hero__crumbs .sep{opacity:.5;}
.art-hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(1.4rem,2.6vw,2.2rem);max-width:980px;}
.art-hero__cat{color:var(--accent);letter-spacing:var(--track-mega);}
.art-hero__title{font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.1;letter-spacing:.004em;max-width:20ch;}
.art-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;font-size:var(--fs-small);color:var(--color-muted);letter-spacing:.04em;}
.art-hero__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--accent);display:inline-block;}

.art-figure{position:relative;margin-block:clamp(.6rem,1.5vw,1.4rem) clamp(2.2rem,4.5vw,3.4rem);}
.art-figure__frame{position:relative;overflow:hidden;background:var(--paper-cool);border:1px solid var(--line);}
.art-figure__frame img{width:100%;height:auto;display:block;}
.art-figure__cap{margin-top:1rem;font-size:var(--fs-micro);letter-spacing:.04em;color:var(--color-muted);font-style:italic;max-width:80ch;line-height:1.7;}

.art-lead{font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,1.95rem);line-height:1.45;color:var(--ink);font-weight:400;max-width:32ch;}
.art-body{max-width:var(--maxw-text);margin-inline:auto;}

.art-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:start;
  padding-bottom:clamp(2.4rem,4.5vw,3.6rem);margin-bottom:clamp(2.4rem,4.5vw,3.6rem);border-bottom:1px solid var(--accent);}
.art-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.art-stat{background:var(--paper);padding:clamp(1.2rem,2.2vw,1.8rem);}
.art-stat__n{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.6rem);color:var(--accent);line-height:1;margin-bottom:.5rem;}
.art-stat__l{font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);line-height:1.5;}

.prose h2{font-size:var(--fs-h2);margin-top:clamp(2.4rem,4.5vw,3.4rem);margin-bottom:1.1rem;letter-spacing:.004em;position:relative;padding-top:1.4rem;}
.prose h2::before{content:"";position:absolute;top:0;left:0;width:38px;height:2px;background:var(--accent);}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:var(--fs-h3);margin-top:clamp(1.9rem,3.2vw,2.4rem);margin-bottom:.9rem;color:var(--ink);}
.prose p{margin-bottom:1.4rem;color:var(--ink-soft);line-height:1.85;}
.prose strong{color:var(--ink);font-weight:500;}
.prose em{color:var(--accent);font-style:italic;}
.prose .lede-q{font-family:var(--font-display);font-style:italic;font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--accent);line-height:1.5;margin:clamp(1rem,1.8vw,1.4rem) 0 clamp(1.6rem,3vw,2.2rem);}
.prose ul{margin:0 0 1.6rem;display:grid;gap:.85rem;}
.prose ul li{position:relative;padding-left:1.6rem;color:var(--ink-soft);line-height:1.75;}
.prose ul li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--accent);}
.prose ul li strong{color:var(--ink);}

.art-pull{border-left:2px solid var(--accent);padding:.4rem 0 .4rem 1.6rem;margin:clamp(2rem,4vw,2.8rem) 0;
  font-family:var(--font-display);font-size:clamp(1.3rem,2.1vw,1.7rem);line-height:1.4;color:var(--ink);font-style:italic;}

.art-refs{margin-top:clamp(2.6rem,5vw,4rem);padding-top:clamp(1.8rem,3vw,2.4rem);border-top:1px solid var(--accent);}
.art-refs h4{font-family:var(--font-body);font-size:var(--fs-micro);letter-spacing:var(--track-mega);text-transform:uppercase;color:var(--color-muted);margin-bottom:1.2rem;}
.art-refs p{font-size:var(--fs-small);color:var(--muted);line-height:1.7;}
.art-refs em{color:var(--ink-soft);}
.art-refs a{color:var(--accent);border-bottom:1px solid transparent;}
.art-refs a:hover{border-bottom-color:var(--accent);}

/* next / prev nav */
.art-more{border-top:1px solid var(--color-line);padding-block:clamp(3rem,6vw,5rem);}
.art-more__head{text-align:center;margin-bottom:clamp(2rem,3.6vw,2.8rem);}
.art-more__head .kicker{margin-bottom:.9rem;color:var(--accent);}
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2rem);}
.art-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);transition:border-color .5s var(--ease),transform .6s var(--ease),box-shadow .6s var(--ease);}
.art-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 40px -28px rgba(76,123,133,.45);}
.art-card__media{background:var(--paper-cool);overflow:hidden;}
.art-card__media img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease);}
.art-card:hover .art-card__media img{transform:scale(1.05);}
.art-card__b{padding:clamp(1.2rem,2vw,1.6rem);display:flex;flex-direction:column;flex:1;}
.art-card__no{font-family:var(--font-display);font-size:1rem;color:var(--accent);margin-bottom:.5rem;}
.art-card__cat{font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.art-card__t{font-family:var(--font-body);font-weight:500;font-size:var(--fs-h3);line-height:1.3;letter-spacing:.005em;margin-top:.6rem;color:var(--ink);}
.art-card__more{display:inline-block;margin-top:auto;padding-top:1.1rem;font-size:var(--fs-small);letter-spacing:.06em;color:var(--accent);}
.art-card__more span{border-bottom:1px solid var(--accent);padding-bottom:.3rem;}

/* ===================== KNOWLEDGE INDEX ===================== */
.page-rule{height:1px;background:var(--accent);border:0;width:100%;}

/* breadcrumb (matches article-1) */
.ab-crumbs{display:flex;align-items:center;flex-wrap:wrap;padding-top:clamp(7rem,13vh,9rem);margin-bottom:clamp(2rem,4vw,3rem);}
.ab-crumbs a,.ab-crumbs span{font-family:var(--font-body);font-size:var(--fs-micro);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:color .4s var(--ease);}
.ab-crumbs a:hover{color:var(--ice-deep);}
.ab-crumbs a:last-of-type{color:var(--ice-deep);}
.ab-crumbs .sep{margin:0 .8rem;color:var(--color-muted);}

.kn-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:end;}
.kn-hero__right{padding-bottom:.4rem;}
@media (max-width:860px){.kn-hero__grid{grid-template-columns:1fr;gap:1.4rem;align-items:start;}.kn-hero__title{max-width:20ch;}}
.kn-hero{padding-top:0;padding-bottom:clamp(2.5rem,5vw,4rem);}
.kn-hero__kicker{color:var(--accent);margin-bottom:1.4rem;display:block;}
.kn-hero__title{font-size:clamp(2rem,1.4rem + 2.8vw,3rem);line-height:1.12;max-width:none;margin-bottom:0;}
.kn-hero__lead{font-size:var(--fs-lead);color:var(--color-muted);max-width:46ch;font-weight:300;line-height:1.8;margin:0;}

.kn-feat{padding-block:clamp(3rem,6vw,5rem);}
.kn-feat__inner{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,5rem);align-items:center;}
.kn-feat__media{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--paper-cool);}
.kn-feat__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;}
.kn-feat__no{font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.4rem);color:var(--accent);line-height:1;}
.kn-feat__cat{margin:.8rem 0 1.1rem;}
.kn-feat__title{font-size:clamp(1.7rem,2.8vw,2.6rem);line-height:1.16;margin-bottom:1.3rem;}
.kn-feat__sum{color:var(--ink-soft);line-height:1.85;margin-bottom:1.8rem;max-width:52ch;}
.kn-feat__link{display:inline-flex;align-items:center;font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:.4rem;}
.kn-feat__link:hover{color:var(--sage-deep);border-color:var(--sage-deep);}

.kn-list{padding-top:clamp(3rem,5vw,4.5rem);padding-bottom:clamp(4rem,8vw,7rem);}
.kn-list__head{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(1rem,3vw,2rem);margin-bottom:clamp(2rem,4vw,3rem);}
.kn-list__head .kicker{color:var(--accent);margin-bottom:.9rem;}
.kn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.4rem);}

/* Browse by Topic — clean & minimal dropdown */
.kn-browse{position:relative;flex:none;}
.kn-browse__btn{display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-body);font-size:var(--fs-small);font-weight:400;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
  background:var(--paper);border:1px solid var(--accent);padding:.7rem 1.1rem;cursor:pointer;
  transition:border-color .4s var(--ease),color .4s var(--ease),background .4s var(--ease);}
.kn-browse__btn:hover{border-color:var(--accent);color:var(--accent);}
.kn-browse.open .kn-browse__btn{border-color:var(--accent);color:var(--accent);}
.kn-browse__caret{width:16px;height:16px;flex:none;transition:transform .45s var(--ease);}
.kn-browse.open .kn-browse__caret{transform:rotate(180deg);}

.kn-browse__menu{position:absolute;top:calc(100% + .6rem);right:0;z-index:60;
  width:min(360px,calc(100vw - 2*var(--gutter)));
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 26px 60px -34px rgba(76,123,133,.5);
  padding:.6rem;
  opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;
  transition:opacity .4s var(--ease),transform .45s var(--ease),visibility .4s var(--ease);}
.kn-browse.open .kn-browse__menu{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
.kn-browse__topic{display:block;width:100%;text-align:left;cursor:pointer;
  font-family:var(--font-body);font-weight:400;font-size:clamp(.95rem,1.2vw,1.05rem);
  letter-spacing:.01em;line-height:1.35;color:var(--ink);background:none;border:0;
  padding:.85rem 1rem;transition:color .35s var(--ease),background .35s var(--ease);}
.kn-browse__topic + .kn-browse__topic{border-top:1px solid var(--line);}
.kn-browse__topic:hover,.kn-browse__topic.is-active{color:var(--accent);background:var(--paper-2);}
.kn-browse__topic--all{font-family:var(--font-body);font-size:var(--fs-small);
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.kn-browse__topic--all:hover{color:var(--accent);}

/* active filter indicator */
.kn-list__active{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin-top:.9rem;font-size:var(--fs-small);color:var(--ink-soft);font-weight:300;}
.kn-list__active[hidden]{display:none;}
.kn-list__active span{color:var(--accent);}
.kn-list__clear{font-family:var(--font-body);font-size:var(--fs-micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft);background:none;border:0;cursor:pointer;
  border-bottom:1px solid var(--line);padding-bottom:.15rem;transition:color .35s var(--ease),border-color .35s var(--ease);}
.kn-list__clear:hover{color:var(--accent);border-color:var(--accent);}

/* filtered-out cards */
.art-card.is-hidden{display:none;}

@media (max-width:620px){
  .kn-list__head{flex-direction:column;align-items:flex-start;}
  .kn-browse{width:100%;}
  .kn-browse__btn{width:100%;justify-content:space-between;}
  .kn-browse__menu{right:auto;left:0;width:100%;}
}

/* ===== Hero ripples (mirrors skin-insight-360 candidacy) ===== */
.kn-hero__grid{position:relative;}
.kn-hero__left,.kn-hero__right{position:relative;z-index:1;}
.kn-hero__rings{position:absolute;top:50%;left:42%;transform:translate(-50%,-50%);
  width:min(26vw,260px);aspect-ratio:1/1;z-index:0;opacity:.5;pointer-events:none;}
.kn-ring{position:absolute;top:50%;left:50%;border-radius:50%;transform:translate(-50%,-50%);}
.kn-ring--static{border:1px solid rgba(113,168,181,.30);}
.kn-ring--static.s1{width:100%;height:100%;}
.kn-ring--static.s2{width:66%;height:66%;}
.kn-ring--static.s3{width:34%;height:34%;}
.kn-ring--glow{width:58%;height:58%;border:0;
  background:radial-gradient(circle at 50% 50%, rgba(113,168,181,.55) 0%, rgba(222,237,243,.55) 40%, rgba(255,255,255,0) 72%);
  filter:blur(2px);animation:kn-breathe 6.5s ease-in-out infinite;}
.kn-ring--pulse{width:34%;height:34%;border:1px solid rgba(113,168,181,.42);
  animation:kn-ripple 8s var(--ease) infinite;}
.kn-ring--pulse.p2{animation-delay:2.6s;}
.kn-ring--pulse.p3{animation-delay:5.2s;}
@keyframes kn-ripple{
  0%{transform:translate(-50%,-50%) scale(.55);opacity:0;}
  12%{opacity:.5;}
  100%{transform:translate(-50%,-50%) scale(3);opacity:0;}}
@keyframes kn-breathe{
  0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.8;}
  50%{transform:translate(-50%,-50%) scale(1.08);opacity:1;}}
@media (max-width:860px){
  .kn-hero__rings{opacity:.3;width:min(60vw,280px);}
}

/* Pagination */
.kn-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-top:clamp(2.6rem,5vw,4rem);}
.kn-page{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;
  padding:0 .4rem;font-family:var(--font-body);font-size:var(--fs-small);letter-spacing:.04em;
  color:var(--ink-soft);border:1px solid var(--line);background:var(--paper);
  transition:border-color .4s var(--ease),color .4s var(--ease),background .4s var(--ease);}
.kn-page:hover{border-color:var(--accent);color:var(--accent);}
.kn-page.is-current{border-color:var(--accent);background:var(--accent);color:#fff;}
.kn-page--nav{color:var(--accent);}
.kn-page.is-disabled{color:var(--muted);border-color:var(--line);pointer-events:none;opacity:.5;}

@media (max-width:980px){
  .kn-feat__inner{grid-template-columns:1fr;}
  .kn-feat__media{order:-1;}
}
@media (max-width:1080px){
  .kn-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .art-intro{grid-template-columns:1fr;}
  .art-grid{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .kn-grid{grid-template-columns:1fr;}
}

/* === NAVBAR + FOOTER (verbatim from shayne.html) === */
/* ============================================================
   NAVBAR — logo centred (closed) → shifts left when menu opens
   ============================================================ */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 1000;
  transition: background .7s var(--ease), border-color .7s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav__inner {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  min-height: 92px; gap: 1.5rem;
}

/* Logo — centred by default (Aman) */
.nav__logo {
  grid-column: 2; grid-row: 1; justify-self: center;
  display: block; line-height: 0; position: relative;
  transition: transform .8s var(--ease);
}
.nav__logo img { height: 22px; width: auto; }

/* Burger — left */
.nav__burger {
  grid-column: 1; grid-row: 1; justify-self: start;
  display: flex; flex-direction: column; gap: 6px; width: 40px; height: 40px;
  align-items: flex-start; justify-content: center; background: none; border: none; cursor: pointer;
}
.nav__burger span { width: 26px; height: 1px; background: var(--color-ink); transition: transform .5s var(--ease), opacity .5s var(--ease), width .5s var(--ease), background .7s var(--ease); }
.nav__burger span:nth-child(2) { width: 18px; }
.nav__burger.open span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); width: 26px; }
.nav__burger.open span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); width: 26px; }

/* CTA on the right (closed bar) */
.nav__cta {
  grid-column: 3; grid-row: 1; justify-self: end;
  font-family: var(--font-body); font-size: var(--fs-small);
  font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--color-ink); position: relative; padding-block: .4rem; white-space: nowrap;
}
.nav__cta::after { content: ""; position: absolute; left: 0; bottom: .15rem; width: 0; height: 1px; background: currentColor; transition: width .6s var(--ease); }
.nav__cta:hover::after { width: 100%; }

/* Dark theme over hero — keep burger + cta black for contrast (logo stays dark) */
.nav[data-theme="dark"]:not(.scrolled) .nav__cta { color: #000000; }
.nav[data-theme="dark"]:not(.scrolled) .nav__burger span { background: #000000; }

/* Scrolled — warm frosted bar */
.nav.scrolled {
  background: rgba(248,246,243,.88);
  backdrop-filter: saturate(120%) blur(18px); -webkit-backdrop-filter: saturate(120%) blur(18px);
  border-bottom-color: var(--color-line);
}
.nav.scrolled .nav__inner { min-height: 70px; }
.nav.scrolled .nav__cta { color: var(--color-ink); }
.nav.scrolled .nav__burger span { background: var(--color-ink); }

/* ===== Menu OPEN: logo slides to top-left, burger/cta hidden, dark ink ===== */
body.menu-open .nav__inner { grid-template-columns: auto 1fr auto; }
body.menu-open .nav__logo {
  grid-column: 1; justify-self: start; transform: none;
}
body.menu-open .nav__inner > .nav__cta { opacity: 0; pointer-events: none; }
body.menu-open .nav__burger { grid-column: 3; justify-self: end; }
body.menu-open .nav__burger span { background: #000000; }
.nav__burger.open span { background: #000000; }

/* ===== Full overlay drawer (0do style) ===== */
.nav__menu {
  position: fixed; inset: 0; z-index: 1900;
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(5rem, 12vh, 8rem) clamp(2.5rem, 8vw, 8rem) clamp(2rem, 6vh, 4rem);
  background: var(--paper);
  opacity: 0; visibility: hidden; transform: scale(1.02);
  transition: opacity .7s var(--ease), transform .9s var(--ease), visibility .7s var(--ease);
}
.nav__menu.open { opacity: 1; visibility: visible; transform: none; }

/* Links list — left aligned */
.nav__menu-links { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(.8rem, 2vw, 1.5rem); }
/* Display-type styling shared by top-level links and the dropdown toggle */
.nav__menu-links > a,
.nav__dd-link {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: .01em; line-height: 1.1;
  color: var(--ink); position: relative; padding-block: .15rem;
}
/* Reveal stagger — applies to each top-level item (link or dropdown wrapper) */
.nav__menu-links > a,
.nav__menu-links > .nav__dd {
  opacity: 0; transform: translateY(16px);
  transition: color .5s var(--ease), opacity .8s var(--ease), transform .8s var(--ease);
}
.nav__menu.open .nav__menu-links > a,
.nav__menu.open .nav__menu-links > .nav__dd { opacity: 1; transform: none; }
.nav__menu.open .nav__menu-links > *:nth-child(1) { transition-delay: .12s; }
.nav__menu.open .nav__menu-links > *:nth-child(2) { transition-delay: .18s; }
.nav__menu.open .nav__menu-links > *:nth-child(3) { transition-delay: .24s; }
.nav__menu.open .nav__menu-links > *:nth-child(4) { transition-delay: .30s; }
.nav__menu.open .nav__menu-links > *:nth-child(5) { transition-delay: .36s; }
.nav__menu.open .nav__menu-links > *:nth-child(6) { transition-delay: .42s; }
.nav__menu-links > a:hover,
.nav__menu-links > a.active,
.nav__dd-link:hover { color: var(--ice-deep); }
.nav__menu-links > a.active::after,
.nav__menu-links > a:hover::after,
.nav__dd-link:hover::after {
  content: ""; position: absolute; left: 0; bottom: -.1rem;
  width: clamp(70px, 8vw, 110px); height: 1px; background: currentColor;
}

/* ===== Program dropdown (within the overlay menu) ===== */
.nav__dd { position: relative; display: flex; flex-direction: column; align-items: flex-start; }
/* Program link + caret toggle sit on one row; submenu drops below */
.nav__dd-head { display: inline-flex; align-items: center; gap: .5rem; }
.nav__dd-toggle {
  display: inline-flex; align-items: center;
  background: none; border: 0; cursor: pointer; padding: .2rem;
  color: var(--ink); line-height: 0;
}
.nav__dd-toggle:hover { color: var(--ice-deep); }
.nav__dd-caret {
  width: clamp(18px, 2.2vw, 26px); height: clamp(18px, 2.2vw, 26px);
  flex: none; transition: transform .45s var(--ease);
}
.nav__dd:hover .nav__dd-caret,
.nav__dd.open .nav__dd-caret { transform: rotate(180deg); }
.nav__dd-menu {
  display: grid; gap: clamp(.45rem, 1vw, .75rem);
  padding-left: clamp(.9rem, 2vw, 1.5rem);
  max-height: 0; overflow: hidden; opacity: 0; margin-top: 0;
  transition: max-height .55s var(--ease), opacity .45s var(--ease), margin-top .45s var(--ease);
}
.nav__dd:hover .nav__dd-menu,
.nav__dd.open .nav__dd-menu {
  max-height: 60vh; opacity: 1; margin-top: clamp(.5rem, 1.4vw, 1rem);
}
.nav__dd-menu a {
  font-family: var(--font-body); font-weight: 300;
  font-size: clamp(1rem, 1.5vw, 1.2rem); letter-spacing: .02em; line-height: 1.3;
  color: var(--ink-soft); width: max-content; max-width: 100%;
  position: relative; transition: color .4s var(--ease);
}
.nav__dd-menu a:hover { color: var(--ice-deep); }

/* Bottom-right actions (contact + book) */
.nav__menu-actions {
  position: absolute; right: clamp(2.5rem, 8vw, 8rem); bottom: clamp(2rem, 6vh, 4rem);
  display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.5rem);
  opacity: 0; transform: translateY(12px);
  transition: opacity .8s var(--ease) .4s, transform .8s var(--ease) .4s;
}
.nav__menu.open .nav__menu-actions { opacity: 1; transform: none; }
.nav__menu-contact {
  font-family: var(--font-body); font-size: var(--fs-small);
  letter-spacing: .08em; color: var(--ink-soft); position: relative; padding-left: 3rem;
}
.nav__menu-contact::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 2rem; height: 1px; background: currentColor;
}
.nav__menu-contact:hover { color: var(--ice-deep); }
.nav__menu-actions .nav__cta {
  position: static; grid-column: auto; justify-self: auto;
  font-family: var(--font-body); font-size: var(--fs-small);
  text-transform: uppercase; letter-spacing: .12em; color: var(--ink-soft);
  border: 1px solid var(--line); padding: .9rem 2rem; background: var(--paper-2);
}
.nav__menu-actions .nav__cta::after { display: none; }
.nav__menu-actions .nav__cta:hover { background: var(--ice-deep); color: #fff; border-color: var(--ice-deep); }

/* keep logo + burger above the overlay while open */
body.menu-open .nav { z-index: 2000; }
/* backdrop-filter on .nav makes it a containing block for the fixed menu,
   collapsing the overlay to the header height — disable it while open */
body.menu-open .nav.scrolled { backdrop-filter: none; -webkit-backdrop-filter: none; background: transparent; border-bottom-color: transparent; }
body.menu-open .nav__menu { z-index: 2000; }
.nav__menu.open ~ .nav__inner,
body.menu-open .nav__burger,
body.menu-open .nav__logo { z-index: 2010; }

@media (max-width: 600px) {
  /* Links group toward the top/center, actions pinned to the bottom */
  .nav__menu { align-items: stretch; justify-content: space-between; padding-block: clamp(7rem, 16vh, 9rem) clamp(2.5rem, 6vh, 3.5rem); }
  .nav__menu-actions { position: static; margin-top: 0; flex-direction: column; align-items: center; gap: 1.25rem; }
  .nav__menu-actions .nav__cta { width: 100%; max-width: 280px; text-align: center; }
  /* Center the logo and hide the Book CTA on mobile */
  .nav__inner { grid-template-columns: 1fr auto 1fr; }
  .nav__logo { grid-column: 2; justify-self: center; transform: none; }
  .nav__burger { grid-column: 1; justify-self: start; }
  .nav__inner > .nav__cta { display: none; }
  /* Keep logo centered even when the menu is open */
  body.menu-open .nav__inner { grid-template-columns: 1fr auto 1fr; }
  body.menu-open .nav__logo { grid-column: 2; justify-self: center; }
  body.menu-open .nav__burger { grid-column: 3; justify-self: end; }
  /* Center the open menu links */
  .nav__menu-links { align-items: center; text-align: center; justify-content: center; }
  /* Program dropdown — centre on mobile to match the centred menu */
  .nav__dd { align-items: center; }
  .nav__dd-toggle { justify-content: center; }
  .nav__dd-menu { padding-left: 0; justify-items: center; text-align: center; }
  .nav__menu-links a.active::after,
  .nav__menu-links a:hover::after { left: 50%; transform: translateX(-50%); }
  .nav__menu-contact { padding-left: 0; }
  .nav__menu-contact::before { display: none; }
}

.footer {
  background: var(--glacier-50);
  color: var(--ink-soft);
  padding-top: clamp(4rem, 9vw, 7rem);
}
.footer a { color: var(--ink-soft); }
.footer a:hover { color: var(--ice-deep); }
.footer__h {
  display: block; font-size: var(--fs-micro);
  letter-spacing: var(--track-wide); text-transform: uppercase;
  color: var(--glacier-950); margin-bottom: 1.3rem;
}

.footer__top {
  display: grid; grid-template-columns: 1.4fr 2fr;
  gap: clamp(2rem, 5vw, 5rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
.footer__logo { height: 20px; width: auto; margin-bottom: 1.6rem; opacity: .95; }
.footer__tagline { font-family: var(--font-body); font-size: .9rem; line-height: 1.6; color: var(--ink); max-width: 30ch; font-weight: 300; margin-top: 1.6rem; }

/* Follow us — sits below the tagline */
.footer__brand .footer__follow { margin-top: 1.6rem; }

.footer__nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.footer__col a { display: block; font-size: var(--fs-small); margin-bottom: .9rem; }

.footer__bottom {
  display: flex; justify-content: space-between; align-items: center; gap: clamp(1rem, 3vw, 2rem); flex-wrap: nowrap;
  margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(1.8rem, 3vw, 2.6rem); padding-bottom: clamp(1.8rem, 3vw, 2.6rem);
  border-top: 1px solid var(--glacier-300);
  font-size: var(--fs-micro); letter-spacing: .03em; color: var(--color-muted);
}
.footer__bottom-logo { flex: none; display: block; line-height: 0; }
.footer__bottom-logo img { height: clamp(22px, 2.6vw, 30px); width: auto; opacity: .95; }

.footer__follow { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.4rem); }
.footer__follow-label { font-family: var(--font-body); font-size: var(--fs-small); color: var(--ink-soft); letter-spacing: .02em; white-space: nowrap; }
.footer__icons { display: flex; align-items: center; gap: clamp(.8rem, 1.8vw, 1.5rem); }
.footer__icons a { color: var(--glacier-950); display: inline-flex; transition: color .4s var(--ease), transform .4s var(--ease); }
.footer__icons a:hover { color: var(--ice-deep); transform: translateY(-2px); }

.footer__copy { margin: 0; text-align: left; line-height: 1.6; white-space: nowrap; }

@media (max-width: 860px) {
  .footer__top { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer__nav { grid-template-columns: 1fr 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: 1.6rem; flex-wrap: wrap; }
  .footer__copy { text-align: left; white-space: normal; }
}
@media (max-width: 560px) {
  .footer__nav { grid-template-columns: 1fr; }
  .footer__follow { flex-wrap: wrap; }
}
