/* ==========================================================================
   HUSSAIN BINGHATTI — "THE LIVING GRID"
   Design system: Midnight Indigo / Ultramarine / Vivid Tangerine / Cloud White
   ========================================================================== */

/* --------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------- */
:root{
  /* Palette */
  --midnight:#101A35;
  --midnight-2:#16213F;
  --midnight-3:#1D2A4D;
  --ultramarine:#3155D8;
  --ultramarine-lift:#4D6DE8;
  --tangerine:#FF7043;
  --tangerine-deep:#E85A2C;
  --cloud:#F7F8FA;
  --mist:#E8EDF7;
  --ink:#111827;
  --slate:#667085;
  --slate-light:#79839A;
  --silver:#D7DDE8;
  /* Tangerine as TEXT on light surfaces: #FF7043 only reaches 2.3:1 there.
     Dark sections override this back to the pure accent, where it is 6.3:1. */
  --tangerine-ink:#C4441A;
  --white:#FFFFFF;

  /* Typography */
  --display:"Plus Jakarta Sans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;

  /* Spacing scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:32px; --s7:48px; --s8:64px; --s9:96px; --s10:128px; --s11:176px;

  /* Layout */
  --shell:1560px;
  --pad:clamp(20px,5vw,88px);
  --nav-h:74px;
  --hair:1px solid var(--silver);
  --hair-dark:1px solid rgba(255,255,255,.14);

  /* Motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* --------------------------------------------------------------
   2. RESET
   -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-h) + 24px);
}
body{
  margin:0;
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  color:var(--ink);
  background:var(--cloud);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  font-feature-settings:"kern" 1,"liga" 1,"cv11" 1;
}
/* Zero accidental horizontal scroll, belt and braces */
html,body{max-width:100%}
img,svg,video{max-width:100%;display:block}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
table{border-collapse:collapse;width:100%}

::selection{background:var(--ultramarine);color:#fff}

/* Visible, consistent focus for keyboard users */
:focus-visible{
  outline:2px solid var(--ultramarine);
  outline-offset:3px;
  border-radius:2px;
}
.on-dark :focus-visible,.nav :focus-visible,.gate :focus-visible{
  outline-color:var(--tangerine);
}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--tangerine);color:#fff;padding:14px 22px;
  font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;
}
.skip-link:focus{left:0}

.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;
}

/* --------------------------------------------------------------
   3. TYPOGRAPHY
   -------------------------------------------------------------- */
.display,h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:.98;
  text-wrap:balance;
}
.t-mega{font-size:clamp(3rem,10.5vw,10.5rem)}
.t-xl{font-size:clamp(2.4rem,6.2vw,5.4rem);line-height:1.02}
.t-lg{font-size:clamp(1.9rem,4vw,3.4rem);line-height:1.06}
.t-md{font-size:clamp(1.4rem,2.5vw,2.15rem);line-height:1.14;letter-spacing:-.028em}
.t-sm{font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.28;letter-spacing:-.02em;font-weight:700}

.lede{
  font-size:clamp(1.12rem,1.65vw,1.42rem);
  line-height:1.55;
  letter-spacing:-.012em;
  color:var(--ink);
  font-weight:400;
  text-wrap:pretty;
}
.body-text{font-size:1.0625rem;line-height:1.72;color:#374151;text-wrap:pretty}
.body-text + .body-text{margin-top:1.15em}
.on-dark .body-text{color:rgba(255,255,255,.78)}
.on-dark .lede{color:rgba(255,255,255,.9)}
.muted{color:var(--slate)}
.on-dark .muted{color:rgba(255,255,255,.62)}

/* Editorial label — the recurring signature of the system */
.label{
  font-family:var(--body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--slate);
  display:flex;
  align-items:center;
  gap:12px;
  line-height:1;
}
.label::before{
  content:"";
  width:22px;height:2px;background:var(--tangerine);
  flex:0 0 auto;
}
.label--plain::before{display:none}
.on-dark .label{color:rgba(255,255,255,.6)}

/* Oversized index numeral.
   Filled by default so it is never invisible; the outline treatment is applied
   only where -webkit-text-stroke is actually supported. Stroke colours are set
   well above a watermark tint so the numerals read as deliberate, not missing. */
.numeral{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(3.4rem,8vw,7.5rem);
  line-height:.8;
  letter-spacing:-.05em;
  color:#7C89A3;
  user-select:none;
}
.on-dark .numeral,.section--dark .numeral{color:rgba(255,255,255,.45)}
.section--mist .numeral{color:#6F7D99}
@supports (-webkit-text-stroke:1px black){
  .numeral{color:transparent;-webkit-text-stroke:1.5px #7C89A3}
  .on-dark .numeral,.section--dark .numeral{-webkit-text-stroke-color:rgba(255,255,255,.45)}
  .section--mist .numeral{-webkit-text-stroke-color:#6F7D99}
}
/* Solid variant must outrank the surface rules above it (equal specificity, later) */
.numeral.numeral--solid{color:var(--tangerine-ink);-webkit-text-stroke:0}

.accent{color:var(--tangerine-ink)}
.blue{color:var(--ultramarine)}
.on-dark .blue{color:#8CA5F5}

/* Inline contextual link */
.ilink{
  color:var(--ultramarine);
  font-weight:600;
  box-shadow:inset 0 -1px 0 rgba(49,85,216,.35);
  transition:box-shadow .25s var(--ease),color .25s var(--ease);
}
.ilink:hover{box-shadow:inset 0 -2px 0 var(--tangerine);color:var(--tangerine-ink)}
.on-dark .ilink{color:#9FB4F7;box-shadow:inset 0 -1px 0 rgba(159,180,247,.4)}
.on-dark .ilink:hover{color:var(--tangerine);box-shadow:inset 0 -2px 0 var(--tangerine)}

/* --------------------------------------------------------------
   4. LAYOUT PRIMITIVES — the living grid
   -------------------------------------------------------------- */
.shell{
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--pad);
}
.section{padding-block:clamp(64px,9vw,150px)}
.section--tight{padding-block:clamp(48px,6vw,92px)}
.section--dark,.on-dark,.hero,.masthead,.cta,.gate,.footer,.contact-stage{--tangerine-ink:var(--tangerine)}
.section--dark{background:var(--midnight);color:#fff}
.section--mist{background:var(--mist)}
/* Mist is darker than cloud, so secondary text is darkened to hold 4.5:1 */
.section--mist{--slate:#5C6880;--tangerine-ink:#B93F18}
.section--white{background:var(--white)}

/* 12-column living grid */
.grid12{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.6vw,40px);
}
.grid-rule{border-top:var(--hair)}
.on-dark .grid-rule,.section--dark .grid-rule{border-top:var(--hair-dark)}

/* Hairline grid backdrop — the "living grid" texture, pure CSS */
.gridfield{position:relative;isolation:isolate}
.gridfield::before{
  content:"";
  position:absolute;inset:0;
  pointer-events:none;
  z-index:0;
  background-image:linear-gradient(to right,rgba(17,24,39,.055) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
}
.section--dark.gridfield::before{
  background-image:linear-gradient(to right,rgba(255,255,255,.075) 1px,transparent 1px);
}
.gridfield > *{position:relative;z-index:1}

/* --------------------------------------------------------------
   5. BUTTONS
   -------------------------------------------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:17px 30px;
  font-family:var(--body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  border-radius:2px;
  border:1px solid transparent;
  transition:background .3s var(--ease),color .3s var(--ease),
             border-color .3s var(--ease),transform .3s var(--ease);
  will-change:transform;
}
.btn .arw{transition:transform .35s var(--ease-out);flex:0 0 auto}
.btn:hover .arw{transform:translateX(6px)}

.btn--primary{background:var(--ultramarine);color:#fff}
.btn--primary:hover{background:var(--midnight)}

.btn--tang{background:var(--tangerine);color:var(--midnight)}
.btn--tang:hover{background:#fff;color:var(--midnight)}

.btn--ghost{border-color:var(--silver);color:var(--ink);background:transparent}
.btn--ghost:hover{border-color:var(--midnight);background:var(--midnight);color:#fff}

.btn--ghost-light{border-color:rgba(255,255,255,.3);color:#fff;background:transparent}
.btn--ghost-light:hover{background:#fff;color:var(--midnight);border-color:#fff}

/* --------------------------------------------------------------
   6. NAVIGATION — sticky
   -------------------------------------------------------------- */
.nav{
  position:sticky;
  top:0;
  z-index:1000;
  background:var(--midnight);
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:background .3s var(--ease),box-shadow .3s var(--ease);
}
.nav--stuck{
  background:rgba(16,26,53,.94);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.08),0 12px 34px -18px rgba(0,0,0,.7);
}
.nav__inner{
  height:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{display:flex;align-items:baseline;gap:11px;flex:0 0 auto;min-width:0}
.brand__mark{
  font-family:var(--display);
  font-weight:800;
  font-size:16px;
  letter-spacing:-.02em;
  color:#fff;
  white-space:nowrap;
}
.brand__mark .dot{color:var(--tangerine)}
.brand__sub{
  font-size:9.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.44);white-space:nowrap;
}

.nav__links{display:flex;align-items:center;gap:clamp(14px,2vw,34px)}
.nav__link{
  position:relative;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  padding:8px 0;
  transition:color .25s var(--ease);
  white-space:nowrap;
}
.nav__link::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:0;height:2px;background:var(--tangerine);
  transition:width .32s var(--ease-out);
}
.nav__link:hover{color:#fff}
.nav__link:hover::after{width:100%}
.nav__link[aria-current="page"]{color:#fff}
.nav__link[aria-current="page"]::after{width:100%}

.nav__cta{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--ultramarine);
  padding:11px 20px;border-radius:2px;
  transition:background .28s var(--ease);
  white-space:nowrap;
}
.nav__cta:hover{background:var(--tangerine)}

/* Hamburger */
.burger{
  display:none;
  width:46px;height:46px;
  align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.24);
  border-radius:2px;
  flex:0 0 auto;
}
.burger__box{width:20px;height:14px;position:relative}
.burger__box span{
  position:absolute;left:0;height:2px;width:100%;background:#fff;
  transition:transform .34s var(--ease-out),opacity .2s linear,top .34s var(--ease-out);
}
.burger__box span:nth-child(1){top:0}
.burger__box span:nth-child(2){top:6px}
.burger__box span:nth-child(3){top:12px}
.burger[aria-expanded="true"] .burger__box span:nth-child(1){top:6px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger__box span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .burger__box span:nth-child(3){top:6px;transform:rotate(-45deg)}

/* Mobile drawer */
.drawer{
  position:fixed;
  inset:var(--nav-h) 0 0 0;
  background:var(--midnight);
  z-index:999;
  padding:clamp(24px,6vw,44px) var(--pad) 44px;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overscroll-behavior:contain;
  transform:translateY(-12px);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.drawer.is-open{opacity:1;transform:translateY(0);visibility:visible}
.drawer__list{display:flex;flex-direction:column;border-top:var(--hair-dark)}
.drawer__link{
  display:flex;align-items:baseline;gap:16px;
  padding:20px 2px;
  border-bottom:var(--hair-dark);
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1.5rem,7vw,2.1rem);
  letter-spacing:-.03em;
  color:#fff;
  min-height:56px;
  transition:color .22s var(--ease),padding-left .28s var(--ease);
}
.drawer__link:hover,.drawer__link:focus-visible{color:var(--tangerine);padding-left:10px}
.drawer__link[aria-current="page"]{color:var(--tangerine)}
.drawer__num{
  font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.16em;
  color:rgba(255,255,255,.4);flex:0 0 auto;
}
.drawer__foot{
  margin-top:auto;padding-top:34px;
  display:flex;flex-direction:column;gap:8px;
  font-size:14px;color:rgba(255,255,255,.66);
}
.drawer__foot a:hover{color:var(--tangerine)}
body.nav-open{overflow:hidden}

@media (max-width:1080px){
  .nav__links,.nav__cta{display:none}
  .burger{display:flex}
}
@media (min-width:1081px){
  .drawer{display:none}
}

/* --------------------------------------------------------------
   7. PAGE MASTHEAD (internal pages)
   -------------------------------------------------------------- */
.masthead{
  background:var(--midnight);
  color:#fff;
  padding-block:clamp(56px,8vw,120px) clamp(48px,6vw,92px);
  position:relative;
  overflow:hidden;
}
.masthead__grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.6vw,40px);
  align-items:end;
}
.masthead__lead{grid-column:1 / span 8}
.masthead__meta{
  grid-column:10 / span 3;
  padding-top:14px;
  border-top:2px solid var(--tangerine);
}
.masthead h1{margin-top:22px}
.masthead__sub{margin-top:28px;max-width:56ch}
@media (max-width:960px){
  .masthead__lead{grid-column:1 / -1}
  .masthead__meta{grid-column:1 / -1;margin-top:34px}
}

/* --------------------------------------------------------------
   8. MEDIA — faces are never cropped
   -------------------------------------------------------------- */
.plate{
  position:relative;
  background:var(--midnight);
  border-radius:2px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.plate::after{
  content:"";
  position:absolute;inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
}
/* contain guarantees the full face and full subject stay visible */
.plate img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.plate--mist{background:var(--mist)}
.plate--mist::after{box-shadow:inset 0 0 0 1px var(--silver)}
.plate--ratio-1{aspect-ratio:1 / 1}
.plate--ratio-45{aspect-ratio:4 / 5}
.plate--ratio-43{aspect-ratio:4 / 3}
.plate--ratio-169{aspect-ratio:16 / 9}
.plate--auto{aspect-ratio:auto}
.plate--auto img{height:auto}

.figure__cap{
  margin-top:14px;
  font-size:12px;
  letter-spacing:.02em;
  color:var(--slate);
  display:flex;
  gap:10px;
  align-items:flex-start;
  line-height:1.5;
}
.figure__cap::before{
  content:"";width:14px;height:1px;background:var(--tangerine);
  margin-top:9px;flex:0 0 auto;
}
.on-dark .figure__cap{color:rgba(255,255,255,.58)}

/* Tangerine registration tick behind media */
.plate-wrap{position:relative}
.plate-wrap::before{
  content:"";
  position:absolute;
  left:-14px;top:-14px;
  width:64px;height:64px;
  border-left:2px solid var(--tangerine);
  border-top:2px solid var(--tangerine);
  pointer-events:none;
}
@media (max-width:640px){
  .plate-wrap::before{left:-8px;top:-8px;width:40px;height:40px}
}

/* --------------------------------------------------------------
   9. FACT / STAT SYSTEM
   -------------------------------------------------------------- */
.facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  border-top:var(--hair);
}
.section--dark .facts,.on-dark .facts{border-top:var(--hair-dark)}
.fact{
  padding:clamp(26px,3vw,44px) clamp(18px,2vw,32px) clamp(26px,3vw,40px) 0;
  border-bottom:var(--hair);
  border-right:var(--hair);
}
.section--dark .fact,.on-dark .fact{border-bottom:var(--hair-dark);border-right:var(--hair-dark)}
.fact__num{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(2.4rem,4.4vw,3.9rem);
  line-height:1;
  letter-spacing:-.045em;
  color:var(--midnight);
}
.on-dark .fact__num,.section--dark .fact__num{color:#fff}
.fact__num .u{color:var(--tangerine-ink)}
.fact__label{
  margin-top:16px;
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--slate);
}
.on-dark .fact__label,.section--dark .fact__label{color:rgba(255,255,255,.6)}
.fact__note{margin-top:10px;font-size:14px;line-height:1.55;color:var(--slate)}
.on-dark .fact__note,.section--dark .fact__note{color:rgba(255,255,255,.62)}

/* --------------------------------------------------------------
   10. QUOTE
   -------------------------------------------------------------- */
.pullquote{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1.5rem,3.4vw,2.9rem);
  line-height:1.16;
  letter-spacing:-.032em;
  text-wrap:balance;
}
.pullquote__src{
  margin-top:26px;
  font-family:var(--body);
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--slate);
  line-height:1.6;
}
.on-dark .pullquote__src{color:rgba(255,255,255,.6)}

/* --------------------------------------------------------------
   11. FOOTER
   -------------------------------------------------------------- */
.footer{background:var(--midnight);color:#fff;padding-block:clamp(56px,7vw,100px) 0}
.footer__top{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(24px,2.6vw,40px);
  padding-bottom:clamp(40px,5vw,72px);
}
.footer__brand{grid-column:1 / span 4}
.footer__nav{grid-column:6 / span 3}
.footer__contact{grid-column:9 / span 4}
@media (max-width:900px){
  .footer__brand{grid-column:1 / -1}
  .footer__nav{grid-column:1 / span 6;margin-top:38px}
  .footer__contact{grid-column:7 / span 6;margin-top:38px}
}
@media (max-width:600px){
  .footer__nav,.footer__contact{grid-column:1 / -1}
}
.footer__wordmark{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.035em;line-height:1.05;
}
.footer__tag{margin-top:16px;font-size:14.5px;line-height:1.65;color:rgba(255,255,255,.66);max-width:34ch}
.footer__h{
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.44);margin-bottom:20px;
}
.footer__list li + li{margin-top:11px}
.footer__list a{font-size:14.5px;color:rgba(255,255,255,.8);transition:color .22s var(--ease)}
.footer__list a:hover{color:var(--tangerine)}
.footer__dl dt{
  font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.42);
}
.footer__dl dd{margin:6px 0 18px;font-size:15.5px;color:#fff}
.footer__dl dd a{transition:color .22s var(--ease)}
.footer__dl dd a:hover{color:var(--tangerine)}

.social{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.social a{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:2px;
  color:rgba(255,255,255,.82);
  transition:background .26s var(--ease),color .26s var(--ease),
             border-color .26s var(--ease),transform .26s var(--ease);
}
.social a:hover{background:var(--tangerine);border-color:var(--tangerine);color:#fff;transform:translateY(-2px)}
.social svg{width:17px;height:17px;fill:currentColor}

.footer__bar{
  border-top:1px solid rgba(255,255,255,.13);
  padding-block:26px 30px;
  display:flex;
  flex-wrap:wrap;
  gap:14px 32px;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  color:rgba(255,255,255,.6);
}
.footer__bar a{color:rgba(255,255,255,.82);transition:color .22s var(--ease)}
.footer__bar a:hover{color:var(--tangerine)}
.credit strong{font-weight:600}

/* --------------------------------------------------------------
   12. REVEAL ANIMATION
   -------------------------------------------------------------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.09s}
.rv[data-d="2"]{transition-delay:.18s}
.rv[data-d="3"]{transition-delay:.27s}
.rv[data-d="4"]{transition-delay:.36s}

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

/* ==========================================================================
   13. ACCESS GATE (index.html only)
   ========================================================================== */
.gate{
  min-height:100vh;
  min-height:100svh;
  background:var(--midnight);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 20px;
  position:relative;
  overflow:hidden;
}
/* Subtle CSS-only grid field — no imagery */
.gate::before{
  content:"";
  position:absolute;inset:-2px;
  background-image:
    linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 78% 64% at 50% 46%,#000 0%,transparent 100%);
  mask-image:radial-gradient(ellipse 78% 64% at 50% 46%,#000 0%,transparent 100%);
  pointer-events:none;
}
.gate::after{
  content:"";
  position:absolute;
  width:min(760px,120vw);height:min(760px,120vw);
  left:50%;top:44%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(49,85,216,.24) 0%,transparent 62%);
  pointer-events:none;
}
.gate__panel{
  position:relative;
  z-index:2;
  width:100%;
  max-width:452px;
  background:rgba(22,33,63,.7);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.13);
  border-radius:3px;
  padding:clamp(32px,5.5vw,52px);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.85);
}
.gate__tick{
  width:34px;height:2px;background:var(--tangerine);margin-bottom:26px;
}
.gate__label{
  font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(255,255,255,.52);
}
.gate__name{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(1.75rem,5.5vw,2.4rem);
  line-height:1.02;
  letter-spacing:-.038em;
  margin-top:16px;
}
.gate__name span{display:block}
.gate__note{
  margin-top:16px;
  font-size:14px;
  line-height:1.6;
  color:rgba(255,255,255,.6);
}
.gate__form{margin-top:34px}
.gate__field label{
  display:block;
  font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.62);
  margin-bottom:10px;
}
.gate__input{
  width:100%;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.2);
  border-radius:2px;
  padding:16px 17px;
  font-size:16px; /* prevents iOS zoom-on-focus */
  letter-spacing:.14em;
  color:#fff;
  transition:border-color .25s var(--ease),background .25s var(--ease);
}
.gate__input::placeholder{color:rgba(255,255,255,.3);letter-spacing:.2em}
.gate__input:focus{
  outline:none;
  border-color:var(--tangerine);
  background:rgba(255,255,255,.09);
}
.gate__input:focus-visible{outline:2px solid var(--tangerine);outline-offset:2px}
.gate__input[aria-invalid="true"]{border-color:var(--tangerine)}
.gate__btn{
  margin-top:20px;
  width:100%;
  justify-content:center;
  padding:18px 24px;
}
.gate__error{
  margin-top:16px;
  font-size:13.5px;
  line-height:1.5;
  color:#FFB59A;
  display:flex;
  align-items:flex-start;
  gap:9px;
  min-height:1.2em;
}
.gate__error[hidden]{display:none}
.gate__error svg{width:15px;height:15px;flex:0 0 auto;margin-top:2px;fill:var(--tangerine)}

/* Guard: protected pages ship hidden and are only revealed by a verified
   session, so they fail closed if the guard script cannot run. The noscript
   notice overrides the inherited visibility so it stays readable. */
html.gate-pending body{visibility:hidden}
html.gate-pending .noscript-gate{visibility:visible}

.noscript-gate{
  max-width:600px;
  margin:14vh auto;
  padding:clamp(28px,5vw,44px);
  background:var(--midnight);
  color:#fff;
  border-radius:3px;
  border-left:3px solid var(--tangerine);
}
.noscript-gate__t{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.3rem,3vw,1.7rem);letter-spacing:-.03em;
}
.noscript-gate__d{margin-top:14px;font-size:15.5px;line-height:1.65;color:rgba(255,255,255,.78)}
.noscript-gate a{color:var(--tangerine);text-decoration:underline}

/* ==========================================================================
   14. HOME
   ========================================================================== */
.hero{
  background:var(--midnight);
  color:#fff;
  padding-block:clamp(52px,7vw,104px) clamp(56px,7vw,110px);
  position:relative;
  overflow:hidden;
}
.hero__grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(22px,2.6vw,44px);
  align-items:start;
}
/* Asymmetric: type left, portrait centre, data rail right */
.hero__type{grid-column:1 / span 5;align-self:center}
.hero__media{grid-column:6 / span 4}
.hero__rail{grid-column:11 / span 2;align-self:center}

.hero__eyebrow{margin-bottom:26px}
.hero__name{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(2.7rem,6.4vw,6.4rem);
  line-height:.9;
  letter-spacing:-.045em;
}
.hero__name span{display:block}
.hero__name .l2{color:rgba(255,255,255,.6)}
@supports (-webkit-text-stroke:1px black){
  .hero__name .l2{color:transparent;-webkit-text-stroke:1.6px rgba(255,255,255,.6)}
}
.hero__rule{
  height:2px;width:84px;background:var(--tangerine);
  margin:32px 0 26px;
}
.hero__statement{
  font-size:clamp(1.02rem,1.35vw,1.22rem);
  line-height:1.6;
  color:rgba(255,255,255,.82);
  max-width:44ch;
}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}

.hero__rail-item{padding:16px 0;border-top:1px solid rgba(255,255,255,.16)}
.hero__rail-item:first-child{border-top:2px solid var(--tangerine)}
.hero__rail-k{
  font-family:var(--display);font-weight:800;font-size:1.5rem;letter-spacing:-.035em;line-height:1;
}
.hero__rail-v{
  margin-top:8px;font-size:10.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(255,255,255,.58);line-height:1.5;
}

@media (max-width:1180px){
  .hero__type{grid-column:1 / span 6}
  .hero__media{grid-column:7 / span 6}
  .hero__rail{grid-column:1 / -1;margin-top:44px;display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 28px}
  .hero__rail-item:first-child{border-top:1px solid rgba(255,255,255,.16)}
}
@media (max-width:820px){
  .hero__type{grid-column:1 / -1}
  .hero__media{grid-column:1 / -1;margin-top:40px;max-width:440px}
}

/* Section header pattern */
.shead{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.6vw,40px);
  align-items:start;
  padding-top:clamp(26px,3vw,44px);
  border-top:var(--hair);
}
.section--dark .shead{border-top:var(--hair-dark)}
.shead__num{grid-column:1 / span 2}
.shead__title{grid-column:3 / span 5}
.shead__aside{grid-column:9 / span 4;padding-top:8px}
@media (max-width:900px){
  .shead__num{grid-column:1 / -1}
  .shead__title{grid-column:1 / -1;margin-top:18px}
  .shead__aside{grid-column:1 / -1;margin-top:24px}
}

/* Journey preview — horizontal progression */
.progression{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(255px,1fr);
  gap:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;
}
.prog{
  scroll-snap-align:start;
  padding:30px clamp(20px,2vw,34px) 34px 0;
  border-top:2px solid rgba(255,255,255,.16);
  border-right:1px solid rgba(255,255,255,.13);
  padding-left:clamp(20px,2vw,32px);
  position:relative;
  transition:border-top-color .35s var(--ease);
}
.prog:first-child{padding-left:0}
.prog:last-child{border-right:0}
.prog:hover{border-top-color:var(--tangerine)}
.prog__yr{
  font-family:var(--display);font-weight:800;font-size:1.05rem;
  letter-spacing:.02em;color:var(--tangerine-ink);
}
.prog__t{margin-top:16px;font-family:var(--display);font-weight:800;
  font-size:1.2rem;line-height:1.2;letter-spacing:-.025em}
.prog__d{margin-top:12px;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.68)}

/* Perspective list */
.plist{border-top:var(--hair)}
.section--dark .plist{border-top:var(--hair-dark)}
.pitem{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(16px,2.4vw,40px);
  align-items:baseline;
  padding:clamp(26px,3.2vw,44px) 0;
  border-bottom:var(--hair);
  transition:padding-left .4s var(--ease),background .4s var(--ease);
}
.section--dark .pitem{border-bottom:var(--hair-dark)}
.pitem:hover{padding-left:14px}
.pitem__i{grid-column:1 / span 1;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--tangerine-ink)}
.pitem__t{grid-column:2 / span 5}
.pitem__d{grid-column:8 / span 5}
@media (max-width:860px){
  .pitem__i{grid-column:1 / -1}
  .pitem__t{grid-column:1 / -1;margin-top:12px}
  .pitem__d{grid-column:1 / -1;margin-top:14px}
}

/* CTA band */
.cta{
  background:var(--ultramarine);
  color:#fff;
  padding-block:clamp(60px,8vw,124px);
  position:relative;
  overflow:hidden;
}
.cta::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(to right,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:calc(100% / 8) 100%;
}
.cta__inner{position:relative;z-index:1;display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,2.6vw,40px);align-items:end}
.cta__lead{grid-column:1 / span 7}
.cta__act{grid-column:9 / span 4;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
@media (max-width:900px){
  .cta__lead{grid-column:1 / -1}
  .cta__act{grid-column:1 / -1;margin-top:36px}
}
.cta .lede{color:rgba(255,255,255,.9)}

/* ==========================================================================
   15. ABOUT
   ========================================================================== */
.split{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(24px,3vw,56px);
  align-items:start;
}
.split__a{grid-column:1 / span 5}
.split__b{grid-column:7 / span 6}
.split--rev .split__a{grid-column:8 / span 5;order:2}
.split--rev .split__b{grid-column:1 / span 6;order:1}
@media (max-width:900px){
  .split__a,.split__b,
  .split--rev .split__a,.split--rev .split__b{grid-column:1 / -1;order:initial}
  .split__b{margin-top:32px}
  .split--rev .split__a{margin-top:32px}
}

.narrow{max-width:68ch}

/* Credential ledger */
.ledger{border-top:var(--hair)}
.section--dark .ledger,.on-dark .ledger{border-top:var(--hair-dark)}
.ledger__row{
  display:grid;
  grid-template-columns:minmax(90px,1fr) minmax(0,3.2fr) minmax(0,2.4fr);
  gap:clamp(16px,2.4vw,40px);
  padding:26px 0;
  border-bottom:var(--hair);
  align-items:baseline;
}
.section--dark .ledger__row,.on-dark .ledger__row{border-bottom:var(--hair-dark)}
.ledger__k{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tangerine-ink)}
.ledger__t{font-family:var(--display);font-weight:700;font-size:1.08rem;letter-spacing:-.02em;line-height:1.35}
.ledger__d{font-size:14.5px;line-height:1.62;color:var(--slate)}
.on-dark .ledger__d,.section--dark .ledger__d{color:rgba(255,255,255,.66)}
@media (max-width:780px){
  .ledger__row{grid-template-columns:1fr;gap:9px;padding:22px 0}
}

/* Principle blocks */
.principles{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:0;
  border-top:var(--hair);
}
.section--dark .principles{border-top:var(--hair-dark)}
.principle{
  padding:clamp(26px,3vw,44px) clamp(20px,2.4vw,40px) clamp(30px,3.4vw,50px) 0;
  border-bottom:var(--hair);
  border-right:var(--hair);
}
.section--dark .principle{border-bottom:var(--hair-dark);border-right:var(--hair-dark)}
.principle__n{
  font-family:var(--display);font-weight:800;font-size:.95rem;
  letter-spacing:.06em;color:var(--tangerine-ink);margin-bottom:20px;
}
.principle__t{font-family:var(--display);font-weight:800;font-size:1.28rem;
  letter-spacing:-.028em;line-height:1.18}
.principle__d{margin-top:14px;font-size:15px;line-height:1.65;color:var(--slate)}
.section--dark .principle__d{color:rgba(255,255,255,.68)}

/* ==========================================================================
   16. JOURNEY — modular chapters, not a plain timeline
   ========================================================================== */
.chapter{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.8vw,48px);
  padding-block:clamp(44px,5.5vw,86px);
  border-top:var(--hair);
  position:relative;
}
.section--dark .chapter{border-top:var(--hair-dark)}
.chapter__rail{grid-column:1 / span 2}
.chapter__body{grid-column:3 / span 6}
.chapter__side{grid-column:10 / span 3}
/* alternating rhythm so the grid visibly "lives" */
.chapter--shift .chapter__body{grid-column:4 / span 6}
.chapter--shift .chapter__side{grid-column:10 / span 3}
.chapter--wide .chapter__body{grid-column:3 / span 8}
.chapter--wide .chapter__side{display:none}
@media (max-width:980px){
  .chapter__rail{grid-column:1 / -1}
  .chapter__body,.chapter--shift .chapter__body,.chapter--wide .chapter__body{grid-column:1 / -1;margin-top:20px}
  .chapter__side,.chapter--shift .chapter__side{grid-column:1 / -1;margin-top:28px}
}
.chapter__yr{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.03em;line-height:1;
  color:var(--midnight);
}
.section--dark .chapter__yr{color:#fff}
.chapter__tag{
  margin-top:14px;font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tangerine-ink);
}
.chapter__t{margin-bottom:20px}
.chapter__sig{
  margin-top:26px;padding-top:18px;border-top:2px solid var(--tangerine);
  font-size:14.5px;line-height:1.6;color:var(--slate);
}
.section--dark .chapter__sig{color:rgba(255,255,255,.7)}
.chapter__sig strong{
  display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);margin-bottom:8px;font-weight:700;
}
.section--dark .chapter__sig strong{color:#fff}

/* ==========================================================================
   17. WORK — every case has its own composition
   ========================================================================== */
.case{padding-block:clamp(48px,6vw,96px);border-top:var(--hair)}
.section--dark .case{border-top:var(--hair-dark)}
.case__head{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.6vw,40px);align-items:baseline;margin-bottom:clamp(28px,3.4vw,52px);
}
.case__n{grid-column:1 / span 2}
.case__ttl{grid-column:3 / span 6}
.case__meta{grid-column:10 / span 3;padding-top:10px;border-top:2px solid var(--tangerine)}
@media (max-width:900px){
  .case__n{grid-column:1 / -1}
  .case__ttl{grid-column:1 / -1;margin-top:14px}
  .case__meta{grid-column:1 / -1;margin-top:24px}
}
.case__meta dt{font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--slate)}
.section--dark .case__meta dt{color:rgba(255,255,255,.55)}
.case__meta dd{margin:5px 0 15px;font-size:14.5px;line-height:1.5}

.case__body{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(22px,3vw,52px);align-items:start;
}
/* Layout variants */
.lay-a .case__col{grid-column:1 / span 5}
.lay-a .case__col2{grid-column:7 / span 6}
.lay-b .case__col{grid-column:8 / span 5}
.lay-b .case__col2{grid-column:1 / span 6}
.lay-c .case__col{grid-column:1 / span 7}
.lay-c .case__col2{grid-column:9 / span 4}
.lay-d .case__col{grid-column:3 / span 8}
.lay-d .case__col2{grid-column:3 / span 8;margin-top:26px}
@media (max-width:900px){
  .case__body > *{grid-column:1 / -1 !important;margin-top:0}
  .case__body > * + *{margin-top:28px}
}

.spec{border-top:var(--hair);margin-top:28px}
.section--dark .spec{border-top:var(--hair-dark)}
.spec__row{
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
  padding:15px 0;border-bottom:var(--hair);font-size:14.5px;
}
.section--dark .spec__row{border-bottom:var(--hair-dark)}
.spec__k{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--slate)}
.section--dark .spec__k{color:rgba(255,255,255,.55)}
.spec__v{text-align:right;font-weight:500;flex:1 1 200px}

/* ==========================================================================
   18. INSIGHTS — editorial index, not a card grid
   ========================================================================== */
.feature{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(24px,3vw,56px);align-items:center;
}
.feature__t{grid-column:1 / span 7}
.feature__s{grid-column:9 / span 4}
@media (max-width:900px){
  .feature__t,.feature__s{grid-column:1 / -1}
  .feature__s{margin-top:32px}
}

.index-list{border-top:2px solid var(--midnight)}
.section--dark .index-list{border-top:2px solid rgba(255,255,255,.4)}
.entry{
  display:grid;
  grid-template-columns:minmax(52px,.6fr) minmax(0,4.4fr) minmax(0,3.2fr) minmax(96px,1.1fr);
  gap:clamp(14px,2.4vw,38px);
  padding:clamp(24px,2.8vw,38px) 0;
  border-bottom:var(--hair);
  align-items:start;
  transition:background .35s var(--ease);
}
.section--dark .entry{border-bottom:var(--hair-dark)}
.entry__n{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--tangerine-ink);padding-top:5px}
.entry__t{font-family:var(--display);font-weight:800;font-size:clamp(1.18rem,2.1vw,1.62rem);
  letter-spacing:-.03em;line-height:1.16}
.entry__d{margin-top:12px;font-size:15px;line-height:1.65;color:var(--slate)}
.section--dark .entry__d{color:rgba(255,255,255,.68)}
.entry__x{font-size:14.5px;line-height:1.65;color:var(--slate);padding-top:4px}
.section--dark .entry__x{color:rgba(255,255,255,.66)}
.entry__m{text-align:right;padding-top:5px}
.entry__cat{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ultramarine);
  border:1px solid var(--silver);padding:6px 10px;border-radius:2px;
}
.section--dark .entry__cat{color:#9FB4F7;border-color:rgba(255,255,255,.22)}
.entry__read{margin-top:10px;font-size:12px;color:var(--slate);display:block}
.section--dark .entry__read{color:rgba(255,255,255,.55)}
@media (max-width:1000px){
  .entry{grid-template-columns:minmax(40px,.5fr) minmax(0,1fr);row-gap:0}
  .entry__x{grid-column:2;margin-top:16px;padding-top:0}
  .entry__m{grid-column:2;text-align:left;margin-top:18px;padding-top:0}
  .entry__read{display:inline-block;margin-top:0;margin-left:14px}
}

/* ==========================================================================
   19. CONTACT
   ========================================================================== */
.contact-stage{background:var(--midnight);color:#fff;position:relative;overflow:hidden}
.contact-grid{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(24px,3vw,56px);align-items:start;
}
.contact-rail{grid-column:1 / span 4}
.contact-panel{grid-column:6 / span 7}
@media (max-width:1000px){
  .contact-rail{grid-column:1 / -1}
  .contact-panel{grid-column:1 / -1;margin-top:44px}
}
.rail-item{padding:24px 0;border-top:1px solid rgba(255,255,255,.16)}
.rail-item:first-of-type{border-top:2px solid var(--tangerine)}
.rail-item dt{font-size:10.5px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.5)}
.rail-item dd{margin:10px 0 0;font-family:var(--display);font-weight:700;
  font-size:clamp(1.05rem,1.7vw,1.35rem);letter-spacing:-.022em;word-break:break-word}
.rail-item dd a{transition:color .24s var(--ease)}
.rail-item dd a:hover{color:var(--tangerine)}

/* Floating form panel */
.form-panel{
  background:var(--white);
  color:var(--ink);
  border-radius:3px;
  padding:clamp(26px,3.6vw,52px);
  box-shadow:0 50px 100px -50px rgba(0,0,0,.6);
}
.form-panel__h{margin-bottom:8px}
.form-panel__p{font-size:15px;line-height:1.6;color:var(--slate);margin-bottom:32px}

.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
.field{display:flex;flex-direction:column}
.field--full{grid-column:1 / -1}
@media (max-width:640px){
  .fgrid{grid-template-columns:1fr}
  .field{grid-column:1 / -1}
}
.field label{
  font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink);margin-bottom:9px;
}
.field .req{color:var(--tangerine-ink);margin-left:3px}
.field .opt{color:var(--slate);font-weight:600;letter-spacing:.08em;text-transform:none;font-size:10.5px}
.input{
  width:100%;
  background:var(--cloud);
  border:1px solid var(--silver);
  border-radius:2px;
  padding:14px 15px;
  font-size:16px; /* no iOS zoom */
  line-height:1.45;
  color:var(--ink);
  transition:border-color .24s var(--ease),background .24s var(--ease),box-shadow .24s var(--ease);
}
.input::placeholder{color:var(--slate-light)}
.input:hover{border-color:#B9C2D4}
.input:focus{
  outline:none;background:#fff;border-color:var(--ultramarine);
  box-shadow:0 0 0 3px rgba(49,85,216,.13);
}
.input:focus-visible{outline:2px solid var(--ultramarine);outline-offset:1px}
textarea.input{resize:vertical;min-height:148px}
.input[aria-invalid="true"]{border-color:var(--tangerine);background:#FFF6F2}
.input[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(255,112,67,.18)}
.err{
  margin-top:7px;font-size:12.5px;line-height:1.45;color:var(--tangerine-ink);font-weight:500;
}
.err[hidden]{display:none}

.form-foot{
  margin-top:30px;padding-top:26px;border-top:var(--hair);
  display:flex;flex-wrap:wrap;gap:18px 26px;align-items:center;justify-content:space-between;
}
.form-note{font-size:12.5px;line-height:1.55;color:var(--slate);max-width:44ch}

.form-status{
  margin-top:24px;padding:18px 20px;border-radius:2px;
  font-size:14.5px;line-height:1.6;border-left:3px solid;
}
.form-status[hidden]{display:none}
.form-status--ok{background:var(--mist);border-color:var(--ultramarine);color:var(--ink)}
.form-status--bad{background:#FFF3EE;border-color:var(--tangerine);color:#8A3413}
.form-status a{font-weight:700;color:var(--ultramarine);text-decoration:underline}
.form-status--bad a{color:#8A3413}

/* ==========================================================================
   20. SHARED SMALL PIECES
   ========================================================================== */
.next-up{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.6vw,40px);align-items:center;
  padding-block:clamp(40px,5vw,76px);border-top:var(--hair);
}
.section--dark .next-up{border-top:var(--hair-dark)}
.next-up__l{grid-column:1 / span 6}
.next-up__r{grid-column:8 / span 5;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
@media (max-width:820px){
  .next-up__l,.next-up__r{grid-column:1 / -1}
  .next-up__r{justify-content:flex-start;margin-top:24px}
}

/* Anything that could ever exceed the viewport scrolls inside itself */
.scroll-x{overflow-x:auto;overscroll-behavior-x:contain}

@media (max-width:400px){
  :root{--nav-h:66px}
  body{font-size:16px}
}
