/* =========================================================
   Ascension Leadership Summit 2027 — Threshold Architecture
   Design system. Build 083026 v1.
   Palette per Ascension Threshold Identity File Guide 082726.
   ========================================================= */

:root{
  /* Brand core */
  --navy:#080E29;        /* Midnight Navy - the one navy on the site */
  --navy-deep:#080E29;   /* alias: kept so existing band classes resolve */
  --navy-raise:#161B34;  /* subtle lift on navy: 6% ivory over Midnight Navy */
  --navy-line:rgba(245,239,227,.15);
  --ivory:#F5EFE3;       /* Warm Ivory */
  --ivory-warm:#EEE6D6;  /* Warm Ivory, one step deeper */
  --gold:#FF9600;        /* Summit Gold - principal action colour */
  --gold-lift:#FFAE33;   /* Summit Gold, raised: hover only. Navy on it = 10.3:1 */

  /* Text roles */
  --on-navy:#F5EFE3;
  --on-navy-muted:#B9C2D6;
  --on-ivory:#080E29;
  --on-ivory-muted:#4A5570;

  /* Three-level step glyph lifted from the Threshold mark. Used as a mask so
     the fill stays tokenised. Two placements only - see the V2 block below. */
  --steps:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cg fill='%23000'%3E%3Crect y='8' width='8' height='4'/%3E%3Crect x='10' y='4' width='8' height='8'/%3E%3Crect x='20' y='0' width='8' height='12'/%3E%3C/g%3E%3C/svg%3E");

  /* Type */
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans","Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;

  --fs-hero:clamp(3.1rem,7.4vw,6.4rem);
  --fs-h1:clamp(2.6rem,5.6vw,4.5rem);
  --fs-h2:clamp(2.05rem,4vw,3.4rem);
  --fs-h3:clamp(1.45rem,2.2vw,2.05rem);
  --fs-h4:clamp(1.15rem,1.5vw,1.35rem);
  --fs-lead:clamp(1.125rem,1.25vw,1.375rem);
  --fs-body:1.0625rem;
  --fs-small:0.9375rem;
  --fs-eyebrow:0.8125rem;

  /* Space */
  --gut:clamp(1.25rem,4vw,2.5rem);
  --band:clamp(4.5rem,9vw,8.5rem);
  --max:1200px;
  --max-wide:1340px;
  --max-read:62ch;

  --arch:999px 999px 6px 6px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{
  margin:0;background:var(--ivory);color:var(--on-ivory);
  font-family:var(--sans);font-size:var(--fs-body);line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:600;line-height:1.04;
  letter-spacing:-.015em;font-variation-settings:"SOFT" 0,"WONK" 1}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
ul{margin:0;padding:0;list-style:none}

/* ---------- utility ---------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.wrap-wide{width:100%;max-width:var(--max-wide);margin-inline:auto;padding-inline:var(--gut)}
.band{padding-block:var(--band);position:relative}
.band--navy{background:var(--navy);color:var(--on-navy)}
.band--navy-deep{background:var(--navy-deep);color:var(--on-navy)}
.band--ivory{background:var(--ivory);color:var(--on-ivory)}
.band--warm{background:var(--ivory-warm);color:var(--on-ivory)}
.read{max-width:var(--max-read)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--gut);top:-4rem;z-index:200;background:var(--gold);
  color:var(--navy);padding:.75rem 1.25rem;font-weight:600;border-radius:4px;transition:top .2s}
.skip:focus{top:.75rem}

:where(a,button,summary,input,[tabindex]):focus-visible{
  outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}

/* ---------- eyebrow + rules ---------- */
.eyebrow{
  font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.19em;text-transform:uppercase;
  margin:0 0 1.35rem;display:flex;align-items:center;gap:.85rem;line-height:1.3}
.eyebrow::before{content:"";width:2.25rem;height:3px;background:var(--gold);flex:none}
.band--navy .eyebrow,.band--navy-deep .eyebrow{color:var(--on-navy-muted)}
.band--ivory .eyebrow,.band--warm .eyebrow{color:var(--on-ivory-muted)}

.rule-gold{height:2px;background:var(--gold);width:3.5rem;border:0;margin:0 0 1.75rem}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:.03em;
  padding:1rem 1.75rem;border-radius:3px;border:2px solid transparent;
  text-decoration:none;cursor:pointer;transition:background-color .25s var(--ease),
  color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.btn--primary{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.btn--primary:hover{background:var(--gold-lift);border-color:var(--gold-lift);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--on-navy);border-color:rgba(245,239,227,.42)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.btn--ghost-dark{background:transparent;color:var(--navy);border-color:rgba(8,14,41,.3)}
.btn--ghost-dark:hover{border-color:var(--on-ivory);color:var(--on-ivory);transform:translateY(-2px)}
.btn--sm{padding:.7rem 1.15rem;font-size:.875rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}

.link-arrow{
  display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.9375rem;
  letter-spacing:.03em;text-decoration:none;padding-bottom:.3rem;
  border-bottom:2px solid var(--gold);transition:gap .25s var(--ease),color .25s var(--ease)}
.link-arrow:hover{gap:.95rem}
.band--navy .link-arrow:hover,.band--navy-deep .link-arrow:hover{color:var(--gold)}
.band--ivory .link-arrow:hover,.band--warm .link-arrow:hover{color:var(--on-ivory)}
.link-arrow svg{width:16px;height:16px;flex:none}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(8,14,41,.9);
  backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid var(--navy-line);color:var(--on-navy)}
.site-header__in{display:flex;align-items:center;gap:1.5rem;
  min-height:4.75rem;max-width:var(--max-wide);margin-inline:auto;padding-inline:var(--gut)}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{width:230px;height:auto}
.brand .sublabel{display:none}
.nav{margin-left:auto;display:flex;align-items:center;gap:2rem}
.nav a{
  font-size:.9375rem;font-weight:500;letter-spacing:.02em;text-decoration:none;
  color:var(--on-navy);padding:.35rem 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--gold);transition:right .3s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav-endorse{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--on-navy-muted);border-left:1px solid var(--navy-line);padding-left:1.5rem}
.menu-btn{display:none;margin-left:auto;background:none;border:0;color:var(--on-navy);
  padding:.6rem;cursor:pointer}
.menu-btn svg{width:26px;height:26px}

.mobile-nav{position:fixed;inset:0;z-index:99;background:var(--navy-deep);color:var(--on-navy);
  transform:translateY(-100%);transition:transform .42s var(--ease);
  display:flex;flex-direction:column;padding:6rem var(--gut) 3rem;visibility:hidden}
.mobile-nav[data-open="true"]{transform:translateY(0);visibility:visible}
.mobile-nav a{font-family:var(--display);font-size:2rem;text-decoration:none;
  padding:.75rem 0;border-bottom:1px solid var(--navy-line)}
.mobile-nav .btn{margin-top:2rem;align-self:flex-start}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--navy);color:var(--on-navy);overflow:hidden;
  padding-block:clamp(3.5rem,7vw,6rem) clamp(3.5rem,6vw,5.5rem)}
.hero__halo{position:absolute;inset:0;pointer-events:none;opacity:0;
  transition:opacity .8s var(--ease);
  background:radial-gradient(420px circle at var(--mx,60%) var(--my,40%),
    rgba(255,150,0,.13),transparent 68%)}
.hero.lit .hero__halo{opacity:1}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);
  align-items:center;max-width:var(--max-wide);margin-inline:auto;padding-inline:var(--gut);
  position:relative;z-index:2}
.hero h1{font-size:var(--fs-hero);margin:0 0 1.5rem;letter-spacing:-.03em}
.hero h1 .accent{color:var(--gold);display:block}
.hero__lead{font-size:var(--fs-lead);color:var(--on-navy-muted);max-width:34rem;margin-bottom:2.25rem}
.hero__meta{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--navy-line);
  font-size:.9375rem;letter-spacing:.06em;color:var(--on-navy-muted);
  display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center}
.hero__meta strong{color:var(--on-navy);font-weight:600;letter-spacing:.04em}
.hero__meta .dot{color:var(--gold)}

/* arch frame */
.arch{border-radius:var(--arch);overflow:hidden;position:relative;isolation:isolate;
  background:var(--navy-raise)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch--hero{max-width:29rem;margin-inline:auto;box-shadow:0 34px 80px -28px rgba(0,0,0,.65)}
.arch--hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,14,41,.42),transparent 46%);pointer-events:none}
.arch-frame{position:relative}

/* ---------- event strip ---------- */
.strip{background:var(--navy-deep);color:var(--on-navy-muted);
  border-block:1px solid var(--navy-line);padding-block:1.1rem}
.strip__in{display:flex;flex-wrap:wrap;gap:.5rem 2rem;align-items:center;
  justify-content:space-between;font-size:.875rem;letter-spacing:.11em;text-transform:uppercase}
.strip__in span{display:flex;align-items:center;gap:.7rem}
.strip__in span::before{content:"";width:6px;height:6px;background:var(--gold);
  border-radius:50%;flex:none}

/* ---------- generic section head ---------- */
.head{max-width:52rem;margin-bottom:clamp(2.5rem,4.5vw,4rem)}
.head h2{font-size:var(--fs-h2);margin-bottom:1.25rem}
.head p{font-size:var(--fs-lead);max-width:var(--max-read)}
.band--navy .head p,.band--navy-deep .head p{color:var(--on-navy-muted)}
.band--ivory .head p,.band--warm .head p{color:var(--on-ivory-muted)}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.split--narrow-img{grid-template-columns:1.1fr .9fr}

/* ---------- pull quote / principle ---------- */
.principle{margin-top:clamp(3rem,5vw,4.5rem);background:var(--navy);color:var(--on-navy);
  padding:clamp(2rem,4vw,3.25rem);border-radius:4px;position:relative;overflow:hidden}
.principle::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--gold)}
.principle .eyebrow{color:var(--on-navy-muted)}
.principle p{font-family:var(--display);font-size:var(--fs-h3);line-height:1.22;
  letter-spacing:-.015em;max-width:44rem;font-variation-settings:"SOFT" 0,"WONK" 1}

/* ---------- ascending list (benefits) ---------- */
.asc-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem)}
.asc h3{font-size:var(--fs-h4);font-family:var(--sans);font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;margin-bottom:1.6rem;padding-bottom:.9rem;
  border-bottom:1px solid var(--navy-line)}
.band--ivory .asc h3,.band--warm .asc h3{border-bottom-color:rgba(8,14,41,.16)}
.asc li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;
  padding:.85rem 0;border-bottom:1px solid rgba(245,239,227,.08)}
.band--ivory .asc li,.band--warm .asc li{border-bottom-color:rgba(8,14,41,.09)}
.asc li:last-child{border-bottom:0}
.asc li::before{content:"";display:block;height:3px;background:var(--gold);border-radius:1px;
  transform:translateY(-.35em)}
.asc li:nth-child(1)::before{width:10px}
.asc li:nth-child(2)::before{width:16px}
.asc li:nth-child(3)::before{width:22px}
.asc li:nth-child(4)::before{width:28px}
.asc li:nth-child(5)::before{width:34px}
.asc li:nth-child(6)::before{width:40px}

/* ---------- callout ---------- */
.callout{margin-top:clamp(2.5rem,4vw,3.5rem);border:1px solid rgba(255,150,0,.5);
  border-left:4px solid var(--gold);padding:clamp(1.5rem,3vw,2.25rem);border-radius:3px}
.callout h3{font-family:var(--sans);font-size:var(--fs-h4);font-weight:600;margin-bottom:.85rem;
  letter-spacing:-.005em}
.callout__actions{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.copy-state{font-size:.875rem;color:var(--on-ivory-muted);opacity:0;transition:opacity .3s}
.band--navy .copy-state,.band--navy-deep .copy-state{color:var(--gold)}
.copy-state.show{opacity:1}

/* ---------- audience tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;
  background:rgba(8,14,41,.14);border:1px solid rgba(8,14,41,.14);border-radius:4px;overflow:hidden}
.tiles li{background:var(--ivory);padding:1.6rem 1.5rem;display:flex;gap:.95rem;align-items:flex-start;
  font-weight:500;line-height:1.42;transition:background-color .3s var(--ease)}
.tiles li:hover{background:var(--ivory-warm)}
.tiles li svg{width:19px;height:24px;flex:none;margin-top:.15rem;color:var(--on-ivory-muted)}

/* ---------- good to know ---------- */
.note{border-top:2px solid var(--gold);padding-top:1.5rem;margin-top:clamp(2.5rem,4vw,3.25rem)}
.note .eyebrow{margin-bottom:.85rem}
.note p{max-width:var(--max-read)}

/* ---------- experience list (home) ---------- */
.exp-list{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--navy-line)}
.exp-list li{border-bottom:1px solid var(--navy-line);padding:1.15rem 0 1.15rem 0;
  display:grid;grid-template-columns:auto 1fr;gap:1.35rem;align-items:center;
  font-size:clamp(1.05rem,1.5vw,1.28rem);font-family:var(--display);font-weight:400;
  letter-spacing:-.01em;transition:padding-left .35s var(--ease)}
.exp-list li:hover{padding-left:.9rem}
.exp-list li::before{content:"";width:34px;height:2px;background:var(--gold);
  transition:width .35s var(--ease),background-color .35s var(--ease)}
.exp-list li:hover::before{width:54px;background:var(--gold-lift)}

/* ---------- full-bleed image band ---------- */
.bleed{position:relative;overflow:hidden;background:var(--navy)}
.bleed img{width:100%;height:clamp(18rem,42vw,30rem);object-fit:cover}
.bleed__cap{position:absolute;left:0;right:0;bottom:0;padding:2.5rem var(--gut) 1.5rem;
  background:linear-gradient(to top,rgba(8,14,41,.88),transparent);color:var(--on-navy);
  font-size:.875rem;letter-spacing:.13em;text-transform:uppercase}
.bleed__cap span{max-width:var(--max-wide);margin-inline:auto;display:block}

/* ---------- closing CTA ---------- */
.close-cta{position:relative;background:var(--navy-deep);color:var(--on-navy);overflow:hidden}
.close-cta__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);
  align-items:center}
.close-cta h2{font-size:var(--fs-h1);margin-bottom:1.5rem}
.close-cta .price{font-family:var(--display);font-size:clamp(3.4rem,7vw,5.4rem);
  line-height:1;color:var(--gold);letter-spacing:-.03em;display:block;margin:.5rem 0 .35rem}
.close-cta .price-note{font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--on-navy-muted)}
.close-cta p{color:var(--on-navy-muted)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);color:var(--on-navy-muted);
  border-top:1px solid var(--navy-line);padding-block:clamp(3rem,6vw,4.5rem) 2rem}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--gold)}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(2rem,5vw,4rem);
  padding-bottom:2.75rem;border-bottom:1px solid var(--navy-line)}
.foot-grid img{width:250px;margin-bottom:1.35rem}
.foot-grid h3{font-family:var(--sans);font-size:.8125rem;font-weight:600;letter-spacing:.19em;
  text-transform:uppercase;color:var(--on-navy);margin-bottom:1.1rem}
.foot-grid li{padding:.35rem 0}
.foot-bottom{padding-top:1.75rem;display:flex;flex-wrap:wrap;gap:.75rem 2rem;
  justify-content:space-between;font-size:.8125rem;letter-spacing:.04em}

/* ---------- sticky mobile register ---------- */
.sticky-cta{display:none}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(20px);
  transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rv.in{opacity:1;transform:none}

/* =========================================================
   Experience page
   ========================================================= */

/* --- page hero --- */
.phero{background:var(--navy);color:var(--on-navy);overflow:hidden;
  padding-block:clamp(3rem,6vw,5rem) clamp(3.5rem,6vw,5.5rem)}
.phero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4.5rem);
  align-items:center;max-width:var(--max-wide);margin-inline:auto;padding-inline:var(--gut)}
.phero h1{font-size:var(--fs-h1);margin-bottom:1.5rem}
.phero p{font-size:var(--fs-lead);color:var(--on-navy-muted);max-width:38rem}
.arch--page{max-width:24rem;margin-inline:auto;box-shadow:0 30px 70px -26px rgba(0,0,0,.6)}

/* --- six learning tracks: an ascending flight, no icons, no numbering --- */
.tracks{display:grid;gap:0;margin-top:clamp(2rem,4vw,3rem);
  border-top:1px solid rgba(8,14,41,.14)}
.track{
  position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(1.25rem,3vw,2.5rem);
  padding:clamp(1.5rem,3vw,2.25rem) 0;border-bottom:1px solid rgba(8,14,41,.14);
  transition:padding-left .4s var(--ease),background-color .4s var(--ease)}
.track:hover{padding-left:clamp(.5rem,1.5vw,1.25rem);background:rgba(238,230,214,.6)}
/* the riser: a vertical plane whose height steps up track by track */
.track__riser{width:clamp(2.75rem,6vw,4.5rem);align-self:stretch;display:flex;
  align-items:flex-end;justify-content:center}
.track__riser i{display:block;width:100%;background:var(--gold);border-radius:2px 2px 0 0;
  transition:height .45s var(--ease),background-color .45s var(--ease);opacity:.85}
.track:nth-child(1) .track__riser i{height:16%}
.track:nth-child(2) .track__riser i{height:30%}
.track:nth-child(3) .track__riser i{height:45%}
.track:nth-child(4) .track__riser i{height:60%}
.track:nth-child(5) .track__riser i{height:78%}
.track:nth-child(6) .track__riser i{height:100%}
.track:hover .track__riser i{background:var(--gold-lift);opacity:1}
.track h3{font-size:var(--fs-h3);margin-bottom:.7rem;max-width:26ch}
.track p{color:var(--on-ivory-muted);max-width:var(--max-read);margin:0}
.track__body{padding-block:.25rem}

/* --- sessions placeholder note (approved pre-announcement copy) --- */
.pending{border:1px dashed rgba(245,239,227,.3);border-radius:4px;
  padding:clamp(1.5rem,3vw,2.25rem);margin-top:clamp(2rem,4vw,3rem);
  display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.pending__slot{border-left:2px solid var(--gold);padding-left:1.1rem}
.pending__slot .k{font-size:var(--fs-eyebrow);letter-spacing:.19em;text-transform:uppercase;
  color:var(--gold);display:block;margin-bottom:.5rem;font-weight:600}
.pending__slot p{color:var(--on-navy-muted);font-size:var(--fs-small);margin:0}

/* --- weekend panels: Sunday sits a step higher --- */
.weekend{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem);
  align-items:start}
.day{border-radius:4px;overflow:hidden;background:var(--navy-raise);color:var(--on-navy);
  display:flex;flex-direction:column}
.day--sun{background:var(--ivory);color:var(--on-ivory);margin-top:clamp(0rem,4vw,3.5rem)}
.day img{width:100%;height:clamp(11rem,20vw,15rem);object-fit:cover}
.day__body{padding:clamp(1.6rem,3vw,2.4rem)}
.day__label{font-size:var(--fs-eyebrow);letter-spacing:.19em;text-transform:uppercase;
  font-weight:600;color:var(--gold);margin-bottom:.9rem;display:block}
.day--sun .day__label{color:var(--on-ivory)}
.day h3{font-size:var(--fs-h3);margin-bottom:1rem}
.day p{color:var(--on-navy-muted);margin:0}
.day--sun p{color:var(--on-ivory-muted)}

/* --- plan to attend --- */
.plan{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem)}
.plan dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.9rem 1.5rem;align-items:baseline}
.plan dt{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--on-navy-muted);white-space:nowrap}
.plan dd{margin:0;font-weight:500}
.price-block{margin-top:clamp(2rem,4vw,2.75rem);padding-top:1.75rem;border-top:1px solid var(--navy-line)}
.price-block .big{font-family:var(--display);font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;
  color:var(--gold);letter-spacing:-.03em;display:block;margin-bottom:.6rem}

/* --- alumni module --- */
.alumni{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,4vw,3.5rem);
  align-items:center;background:var(--navy);color:var(--on-navy);border-radius:4px;
  overflow:hidden;border-left:5px solid var(--gold)}
.alumni img{width:100%;height:100%;min-height:16rem;object-fit:cover}
.alumni__body{padding:clamp(2rem,4vw,3.25rem) clamp(2rem,4vw,3.25rem) clamp(2rem,4vw,3.25rem) 0}
.alumni h2{font-size:var(--fs-h3);margin-bottom:1.1rem}
.alumni p{color:var(--on-navy-muted)}
.alumni .flag{margin-top:1.35rem;font-size:var(--fs-small);border-top:1px solid var(--navy-line);
  padding-top:1.1rem;color:var(--on-navy-muted)}

/* --- FAQ --- */
.faq{max-width:56rem;border-top:1px solid rgba(8,14,41,.16)}
.faq details{border-bottom:1px solid rgba(8,14,41,.16)}
.faq summary{list-style:none;cursor:pointer;padding:1.4rem 3rem 1.4rem 0;position:relative;
  font-family:var(--display);font-size:clamp(1.1rem,1.7vw,1.35rem);font-weight:600;
  line-height:1.28;letter-spacing:-.012em;transition:color .25s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--on-ivory)}
.faq summary::after{content:"";position:absolute;right:.35rem;top:50%;width:14px;height:14px;
  margin-top:-9px;border-right:2px solid var(--on-ivory);border-bottom:2px solid var(--on-ivory);
  transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-4px}
.faq .a{padding:0 3rem 1.6rem 0;color:var(--on-ivory-muted);max-width:var(--max-read)}
.faq details[open] .a{animation:fade .4s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* --- share dialog --- */
dialog.share{border:0;padding:0;border-radius:5px;max-width:44rem;width:calc(100% - 2rem);
  background:var(--ivory);color:var(--on-ivory)}
dialog.share::backdrop{background:rgba(8,14,41,.72)}
.share__in{padding:clamp(1.75rem,4vw,2.75rem)}
.share h2{font-size:var(--fs-h3);margin-bottom:.6rem}
.share__sub{color:var(--on-ivory-muted);font-size:var(--fs-small);margin-bottom:1.75rem}
.share__block{border-left:3px solid var(--gold);padding-left:1.15rem;margin-bottom:1.6rem}
.share__block h3{font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;margin-bottom:.7rem;color:var(--on-ivory-muted)}
.share__block p{font-size:var(--fs-small);margin-bottom:.9rem}
.share__close{position:absolute;top:1rem;right:1rem;background:none;border:0;cursor:pointer;
  font-size:1.6rem;line-height:1;color:var(--on-ivory-muted);padding:.4rem}

/* =========================================================
   Mobile — a designed pass, not a shrink
   ========================================================= */
@media (max-width:1040px){
  .hero__grid{grid-template-columns:1fr;gap:2.75rem}
  .arch--hero{max-width:22rem}
  .phero__grid{grid-template-columns:1fr;gap:2.5rem}
  .close-cta__grid{grid-template-columns:1fr;gap:2.5rem}
  .alumni{grid-template-columns:1fr}
  .alumni__body{padding:2rem}
  .alumni img{min-height:13rem}
  .foot-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:860px){
  .nav{display:none}
  .menu-btn{display:block}
  .brand img{width:186px}
  .split,.asc-cols,.weekend,.plan{grid-template-columns:1fr;gap:2.25rem}
  .day--sun{margin-top:0}
  /* image goes below the argument on phones */
  .split .arch-frame{order:2}
  .tiles{grid-template-columns:1fr}
  .bleed__cap{font-size:.75rem;letter-spacing:.1em;padding:2rem 1.25rem 1.15rem}
  /* persistent, unobtrusive registration */
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:95;
    background:rgba(8,14,41,.96);backdrop-filter:blur(12px);
    border-top:1px solid var(--navy-line);padding:.7rem var(--gut) calc(.7rem + env(safe-area-inset-bottom))}
  .sticky-cta .btn{width:100%;padding:.9rem 1rem}
  body{padding-bottom:4.5rem}
  .site-header .btn{display:none}
  .track{grid-template-columns:1fr;gap:.9rem;padding-block:1.6rem}
  .track:hover{padding-left:0}
  /* risers become a left indent that steps down the list */
  .track__riser{width:auto;height:4px;align-items:stretch}
  .track__riser i{height:4px !important;width:2.5rem;border-radius:2px}
  .track:nth-child(2) .track__riser i{width:3.5rem}
  .track:nth-child(3) .track__riser i{width:4.5rem}
  .track:nth-child(4) .track__riser i{width:5.5rem}
  .track:nth-child(5) .track__riser i{width:6.5rem}
  .track:nth-child(6) .track__riser i{width:7.5rem}
  .hero__meta{font-size:.875rem;letter-spacing:.04em}
  .exp-list li:hover{padding-left:0}
  .faq summary{padding-right:2.25rem;font-size:1.08rem}
  .faq .a{padding-right:0}
}

@media (max-width:560px){
  :root{--fs-hero:clamp(2.75rem,11vw,3.5rem);--band:3.5rem}
  .foot-grid{grid-template-columns:1fr;gap:2rem}
  .foot-grid img{width:200px}
  .strip__in{font-size:.75rem;gap:.4rem 1.1rem;letter-spacing:.08em}
  .btn-row .btn{width:100%}
  .arch--hero{max-width:17rem}
  .arch--page{max-width:15rem}
  .principle p{font-size:1.35rem}
  .hero__meta{flex-direction:column;align-items:flex-start;gap:.25rem}
  .hero__meta .dot{display:none}
  .callout__actions .btn{width:100%}
}

/* =========================================================
   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}
  .rv{opacity:1;transform:none}
  .hero__halo{display:none}
}

@media print{
  .site-header,.mobile-nav,.sticky-cta,.hero__halo{display:none}
  body{background:#fff;color:#000;padding:0}
  .band{padding-block:1.5rem}
}

/* =========================================================
   Build corrections — 083026
   ========================================================= */

/* A full dome suits a tall portrait. On a landscape frame it swallows the
   picture, so wide images get a shallower threshold curve. */
.arch--wide{border-radius:clamp(70px,11vw,150px) clamp(70px,11vw,150px) 4px 4px}

/* the eyebrow inside a pull-quote must stay in the sans */
.principle .eyebrow{font-family:var(--sans);font-weight:600}

/* Audience list reads as an editorial index — a boxed grid leaves dead cells
   whenever the item count doesn't fill the last row. */
.tiles{background:transparent;border:0;border-radius:0;gap:0 clamp(1.5rem,3vw,3rem);
  border-top:1px solid rgba(8,14,41,.18)}
.tiles li{background:transparent;padding:1.3rem 0;align-items:flex-start;
  border-bottom:1px solid rgba(8,14,41,.13)}
.tiles li:hover{background:transparent}
.tiles li:hover svg{color:var(--on-ivory)}
.tiles li svg{transition:color .3s var(--ease)}

/* closing headline sits in a half-width column — h1 scale is too large there */
.close-cta h2{font-size:var(--fs-h2)}

/* --- tracks: title and description share the width instead of stacking in a
       narrow column with dead space beside them --- */
@media (min-width:861px){
  .track{grid-template-columns:auto minmax(0,.95fr) minmax(0,1.2fr);align-items:start}
  .track__body{display:contents}
  .track h3{max-width:22ch;margin-bottom:0}
  .track p{max-width:50ch;padding-top:.3rem}
}
.track__riser{width:clamp(2rem,3.2vw,2.6rem)}
.track:nth-child(1) .track__riser i{height:24%}
.track:nth-child(2) .track__riser i{height:38%}
.track:nth-child(3) .track__riser i{height:52%}
.track:nth-child(4) .track__riser i{height:67%}
.track:nth-child(5) .track__riser i{height:83%}
.track:nth-child(6) .track__riser i{height:100%}

/* --- alumni: the photo must fill its column, not float in it --- */
.alumni{align-items:stretch}
.alumni picture{display:block;height:100%}
.alumni__body{align-self:center}

/* --- full-bleed captions need a real scrim to stay legible over faces --- */
.bleed__cap{padding-top:4.5rem;
  background:linear-gradient(to top,rgba(8,14,41,.94),rgba(8,14,41,.6) 42%,transparent)}

/* --- riser widths belong to the desktop flight only; on phones the mobile
       block above owns them, so keep this rule out of its way --- */
@media (min-width:861px){ .track__riser{width:clamp(2rem,3.2vw,2.6rem)} }

/* --- hamburger becomes a close mark while the panel is open --- */
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded="true"] .i-menu{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
/* the register control in the panel is a button, not a display-type nav item */
.mobile-nav .btn{font-family:var(--sans);font-size:.9375rem;font-weight:600;
  border-bottom:0;padding:1rem 1.75rem}

/* --- the sticky bar waits until the hero's own CTA has scrolled away,
       so the first screen isn't asking twice --- */
@media (max-width:860px){
  .sticky-cta{transform:translateY(120%);transition:transform .4s var(--ease)}
  body.cta-on .sticky-cta{transform:none}
}

/* --- long eyebrows must hold one line on a phone --- */
@media (max-width:560px){
  .eyebrow{font-size:.75rem;letter-spacing:.13em;align-items:center}
  .eyebrow::before{width:1.5rem;margin-top:0}
}

/* --- contrast corrections found in audit ---
   .nav a / .mobile-nav a set an ivory color that out-specified the button rule,
   leaving ivory-on-orange at 3.0:1. Navy on orange is 5.1:1. --- */
.btn.btn--primary{color:var(--navy)}
.btn.btn--primary:hover{color:var(--navy)}
/* the alumni module is a navy card sitting inside an ivory band, so it needs
   the navy-surface eyebrow color, not the band's */
.alumni .eyebrow{color:var(--on-navy-muted)}

/* --- the open menu panel owns its own header.
   Locking scroll on <html> displaces the sticky site header, which took the
   close control with it. The panel now sits above the header and carries its
   own logo and close button, so dismissal never depends on what's underneath. */
.mobile-nav{z-index:110;padding:0 var(--gut) 3rem}
.mobile-nav__top{display:flex;align-items:center;justify-content:space-between;
  gap:1rem;min-height:4.75rem;margin-bottom:2rem;border-bottom:1px solid var(--navy-line)}
.mobile-nav__top img{width:186px;height:auto}
.mobile-nav__close{background:none;border:0;color:var(--on-navy);padding:.6rem;
  cursor:pointer;margin-right:-.6rem}
.mobile-nav__close svg{width:26px;height:26px;display:block}

/* =========================================================
   Revision 2 — 083026
   New Threshold identity artwork in the header. The supplied dark-background
   SVG carries its own #080E29 plate, so the surfaces it sits on are moved to
   that exact navy; otherwise the logo reads as a pasted-in rectangle.
   ========================================================= */
:root{ --navy-deep:#080E29 }

.site-header{background:rgba(8,14,41,.92)}
.site-header__in{min-height:5.75rem}
.hero,.phero{background:var(--navy-deep)}

/* logo: 256px wide gives ~48px of visible artwork, enough to read the
   layered steps. The mark replaces it below the nav breakpoint. */
.brand picture{display:block}
.brand img{width:256px;height:auto}
@media (max-width:860px){ .brand img{width:52px;height:52px} }

/* the event strip animates in place of the removed stair device */
.strip__in span.rv{opacity:0;transform:translateY(10px)}
.strip__in span.rv.in{opacity:1;transform:none}

/* hero photograph settles on load — the one motion cue at the top of the page */
@keyframes archSettle{from{transform:scale(1.055);opacity:.55}to{transform:none;opacity:1}}
.arch--hero img,.arch--page img{animation:archSettle 1.25s var(--ease) both}

/* full-bleed bands: the container ratio now matches the asset, so the browser
   is never re-cropping heads out of the frame */
.bleed img{height:auto;aspect-ratio:21/9}
@media (max-width:860px){ .bleed img{aspect-ratio:4/3} }

/* The header was translucent, so at the top of the page it composited over the
   ivory body and sat a shade lighter than the logo's own #080E29 plate.
   With plated artwork the header has to be solid. */
.site-header{background:var(--navy-deep);backdrop-filter:none;-webkit-backdrop-filter:none}
.site-header .btn--sm{padding:.85rem 1.5rem}

/* =========================================================
   VERSION 2 — Threshold identity as the source of the system
   Midnight Navy #080E29 · Summit Gold #FF9600 · Warm Ivory #F5EFE3
   Coral is retired from the interface. Gold is the single accent and the
   only action colour. On ivory, gold is decorative only (1.91:1) — every
   gold element on an ivory surface below is ornament, never information.
   ========================================================= */

/* --- focus: gold ring, navy keyline ---------------------------------------
   The brief asks for a gold focus outline. Gold alone on Warm Ivory is
   1.91:1 and fails SC 1.4.11 for a control that must be seen. A 2px navy
   keyline just outside the gold ring carries the contrast (16.6:1 on ivory)
   and disappears into the navy surfaces, so one indicator serves both. */
:where(a,button,summary,input,[tabindex]):focus-visible{
  outline:3px solid var(--gold);outline-offset:2px;
  box-shadow:0 0 0 7px rgba(8,14,41,.95);border-radius:2px}

/* --- the step device, placement 1 of 2 ------------------------------------
   ONE eyebrow per page carries the three-level step lifted from the mark:
   the hero eyebrow on index.html and the page-hero eyebrow on
   experience.html. Both sit on Midnight Navy, so the gold reads at 8.7:1.
   Every other eyebrow keeps the plain gold rule. Repeating it further would
   make the page themed rather than branded. */
.eyebrow--steps::before{
  width:2.375rem;height:.95rem;background:var(--gold);
  -webkit-mask:var(--steps) left bottom/contain no-repeat;
          mask:var(--steps) left bottom/contain no-repeat}

/* --- the photo arch -------------------------------------------------------
   One thin Summit Gold outline, on the photograph itself. The V1
   .arch-frame::before offset outline is gone: it drew a second full
   threshold shape around the picture. */
.arch::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  border:1px solid var(--gold);border-radius:inherit}
.arch--hero::after,.arch--page::after{
  background:linear-gradient(to top,rgba(8,14,41,.62),transparent 48%)}

/* --- the step device, placement 2 of 2 ------------------------------------
   A stepped termination at the base of the two hero photographs, where the
   arch meets its floor — the one place the mark's own geometry belongs.
   It sits on the scrim above, so it reads at full gold-on-navy contrast. */
.arch--hero::before,.arch--page::before{
  content:"";position:absolute;z-index:4;pointer-events:none;
  left:clamp(.9rem,5%,1.6rem);bottom:clamp(.8rem,4%,1.35rem);
  width:clamp(2.1rem,17%,3rem);aspect-ratio:5/2;background:var(--gold);
  -webkit-mask:var(--steps) left bottom/contain no-repeat;
          mask:var(--steps) left bottom/contain no-repeat}

/* --- riser flight on ivory: full strength, since gold on Warm Ivory is
       already a quiet value relationship --- */
.track__riser i{opacity:1}

@media (max-width:560px){
  .eyebrow--steps::before{width:1.9rem;height:.76rem}
}
@media (prefers-reduced-motion:reduce){
  .arch--hero img,.arch--page img{animation:none}
}

/* =========================================================
   Revision 3 — 083026
   ========================================================= */

/* logo up 25% (256 -> 320), header grown to hold it with breathing room */
.site-header__in{min-height:6.9rem}
.brand img{width:320px;height:auto}
@media (max-width:860px){ .brand img{width:65px;height:65px} }
html{scroll-padding-top:7.5rem}

/* --- founder's word ------------------------------------------------- */
.founder{background:var(--navy);color:var(--on-navy);padding-block:clamp(3.5rem,7vw,6rem)}
.founder blockquote{margin:0;max-width:52rem}
.founder p{font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,3.1vw,2.5rem);line-height:1.26;letter-spacing:-.018em;
  font-variation-settings:"SOFT" 0,"WONK" 1}
.founder p em{font-style:normal;color:var(--gold)}
.founder footer{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--navy-line);
  font-family:var(--sans);font-size:var(--fs-small);letter-spacing:.13em;
  text-transform:uppercase;color:var(--on-navy-muted)}
.founder footer strong{color:var(--on-navy);font-weight:600}

/* --- hotel / room block --------------------------------------------- */
.lodging{margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:clamp(2rem,4vw,2.75rem);
  border-top:1px solid var(--navy-line)}
.lodging__grid{display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin-top:1.75rem}
.lodging dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.85rem 1.5rem;align-items:baseline}
.lodging dt{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--on-navy-muted);white-space:nowrap}
.lodging dd{margin:0;font-weight:500}
.lodging dd a{color:var(--gold);text-underline-offset:3px}
.lodging__rate{font-family:var(--display);font-size:clamp(2rem,4vw,2.9rem);line-height:1;
  color:var(--gold);letter-spacing:-.03em;display:block;margin-bottom:.5rem}
.lodging__note{font-size:var(--fs-small);color:var(--on-navy-muted);margin-top:1.25rem}

/* --- employer request template -------------------------------------- */
.tmpl{margin-top:clamp(2rem,4vw,3rem);border:1px solid rgba(16,27,59,.18);
  border-left:4px solid var(--gold);border-radius:3px;overflow:hidden}
.tmpl__head{padding:1.15rem clamp(1.25rem,3vw,1.9rem);
  border-bottom:1px solid rgba(16,27,59,.14);display:flex;flex-wrap:wrap;gap:.85rem 1.5rem;
  align-items:center;justify-content:space-between;background:rgba(255,150,0,.07)}
.tmpl__head h3{font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;margin:0;color:var(--on-ivory-muted)}
.tmpl__body{padding:clamp(1.4rem,3vw,2rem);font-size:var(--fs-small);line-height:1.72}
.tmpl__body p{margin-bottom:1em}
.tmpl__body ul{margin:0 0 1em;padding-left:0}
.tmpl__body li{position:relative;padding-left:1.35rem;margin-bottom:.4rem}
.tmpl__body li::before{content:"";position:absolute;left:0;top:.62em;width:.55rem;height:2px;
  background:var(--navy)}
.tmpl__body .fill{background:rgba(255,150,0,.16);padding:0 .25rem;border-radius:2px;
  box-shadow:inset 0 -1px 0 rgba(16,27,59,.28)}

/* --- sponsor interest ------------------------------------------------ */
.sponsor__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);
  align-items:start}
.sponsor__ways{margin-top:.5rem}
.sponsor__ways li{padding:1.05rem 0;border-bottom:1px solid var(--navy-line);
  display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:baseline}
.sponsor__ways li:last-child{border-bottom:0}
.sponsor__ways li::before{content:"";display:block;height:3px;background:var(--gold);
  border-radius:1px;transform:translateY(-.35em)}
.sponsor__ways li:nth-child(1)::before{width:14px}
.sponsor__ways li:nth-child(2)::before{width:22px}
.sponsor__ways li:nth-child(3)::before{width:30px}
.sponsor__ways li:nth-child(4)::before{width:38px}
.sponsor__ways strong{display:block;font-weight:600;margin-bottom:.2rem}
.sponsor__ways span{color:var(--on-navy-muted);font-size:var(--fs-small)}

/* --- sponsored track credit ------------------------------------------ */
.track__sponsor{display:inline-flex;align-items:center;gap:.5rem;margin-top:.75rem;
  font-family:var(--sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--on-ivory-muted)}
.track__sponsor::before{content:"";width:1.1rem;height:2px;background:var(--gold);flex:none}

@media (max-width:860px){
  .lodging__grid,.sponsor__grid{grid-template-columns:1fr;gap:2rem}
  html{scroll-padding-top:6rem}
  .tmpl__head{flex-direction:column;align-items:flex-start}
  .tmpl__head .btn{width:100%}
}

/* --- fixes found in review ---
   .track__body is display:contents on desktop, so every child becomes a grid
   item. A fourth item (the sponsor credit) wrapped onto a new row at column 1
   and dragged the title with it. Place the three columns explicitly instead. */
@media (min-width:861px){
  .track__riser{grid-column:1;grid-row:1 / -1}
  .track h3{grid-column:2;grid-row:1;align-self:start}
  .track p{grid-column:3;grid-row:1}
  .track .track__sponsor{grid-column:3;grid-row:2;margin-top:.9rem}
}
/* the eyebrow inside the founder quote must stay in the sans, like every other */
.founder .eyebrow{font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;
  line-height:1.3;letter-spacing:.19em;margin-bottom:1.5rem}
