/* ==========================================================================
   ATLAS AERO — Design System
   Brand: Quetzal mark · navy / teal / silver · Trade Gothic Next + Montserrat
   ========================================================================== */

/* TYPEFACE NOTE — Trade Gothic Next is a licensed Linotype family, not on
   Google Fonts. This build uses Archivo, the closest freely-hostable
   neo-grotesque. To switch: license the webfont, drop it in /assets/fonts/,
   uncomment below, and change --font-display. Nothing else changes.

   @font-face { font-family:"Trade Gothic Next";
     src:url("fonts/TradeGothicNext.woff2") format("woff2");
     font-weight:400 700; font-display:swap; }
   ------------------------------------------------------------------------ */

:root{
  /* --- Brand colours, exactly as specified ------------------------------ */
  --navy:#0A1D33; --teal-deep:#0E6B78; --teal:#17B3B5; --silver:#C0C5CA; --white:#FFF;

  /* --- Surface ladder, all derived from the brand navy ------------------- */
  --deep:#071526;      /* recessed band            */
  --paper:#0A1D33;     /* page ground = brand navy */
  --card:#12293F;      /* elevated surface         */
  --card-2:#183449;    /* hover / nested           */
  --paper-2:var(--deep);
  --ink:var(--navy); --ink-2:var(--card);

  /* --- Type, verified on every surface in the ladder --------------------- */
  --fg:#FFFFFF;        /* 14.8–18.4:1 */
  --fg-muted:#B4C0CA;  /*  6.9–9.9:1  */
  --fg-faint:#9AAAB8;  /*  5.1–7.2:1  — safe at 12px on all four surfaces */
  --on-ink:#FFFFFF; --on-ink-muted:#B4C0CA; --on-ink-faint:#9AAAB8;

  /* Teal is the accent everywhere now: 5.8–7.1:1 across the ladder. */
  --accent:#17B3B5; --accent-on-ink:#17B3B5; --accent-deep:#0E6B78;

  --rule:#1E3A52; --rule-strong:#2C4E6B; --rule-on-ink:#1E3A52;
  --focus:#17B3B5; --danger:#FF6B66;

  --font-display:"Archivo","Trade Gothic Next","Helvetica Neue",Arial,sans-serif;
  --font-body:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --t-label:.75rem; --t-sm:.875rem; --t-base:1rem; --t-lead:1.1875rem;
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2rem; --s-5:3rem; --s-6:4rem; --s-7:6rem; --s-8:8rem;

  --ease:cubic-bezier(.22,1,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:180ms; --dur:260ms; --dur-slow:420ms; --dur-reveal:900ms;

  --gutter:clamp(1.25rem,5vw,5.5rem); --max:1440px; --measure:66ch;
  --z-nav:100; --z-overlay:90;
}
color-scheme: dark;

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;background:var(--paper);color:var(--fg-muted);
  font-family:var(--font-body);font-size:var(--t-base);line-height:1.65;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  /* clip, not hidden: overflow-x:hidden makes body a scroll container and
     silently breaks position:sticky (the scrollytelling). */
  overflow-x:clip;touch-action:manipulation;
}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--teal);color:var(--navy)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:1px}
.on-ink :focus-visible,.section--ink :focus-visible,.theme-ink :focus-visible{outline-color:var(--teal)}

/* --- Type ---------------------------------------------------------------- */
.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
.display-xl{font-size:clamp(2.25rem,6.4vw,5rem)}
.display-lg{font-size:clamp(1.875rem,4.4vw,3.25rem)}
.display-md{font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.15}
.display-sm{font-size:clamp(1.125rem,1.9vw,1.375rem);line-height:1.28;letter-spacing:-.008em}
.display--caps{text-transform:uppercase;letter-spacing:.01em}
.display em{font-style:normal;color:var(--accent)}
.on-ink .display em,.section--ink .display em,.theme-ink .display em{color:var(--accent-on-ink)}

.label{font-family:var(--font-body);font-size:var(--t-label);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted)}
.on-ink .label,.section--ink .label,.theme-ink .label{color:var(--on-ink-muted)}
.label--accent{color:var(--accent)}
.on-ink .label--accent,.section--ink .label--accent,.theme-ink .label--accent{color:var(--accent-on-ink)}

.num{font-family:var(--font-display);font-size:var(--t-label);font-weight:600;
  letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--accent)}
.on-ink .num,.section--ink .num,.theme-ink .num{color:var(--accent-on-ink)}

.lead{font-size:clamp(1.0625rem,1.5vw,var(--t-lead));line-height:1.62;color:var(--fg-muted);max-width:var(--measure)}
.body{color:var(--fg-muted);max-width:var(--measure)}
.on-ink .lead,.on-ink .body,.section--ink .lead,.section--ink .body,
.theme-ink .lead,.theme-ink .body{color:var(--on-ink-muted)}

.pull{font-family:var(--font-display);font-weight:400;font-size:clamp(1.375rem,2.6vw,2.125rem);
  line-height:1.32;letter-spacing:-.012em;text-wrap:balance}
.pull em{font-style:normal;color:var(--accent)}
.on-ink .pull em,.section--ink .pull em,.theme-ink .pull em{color:var(--accent-on-ink)}

/* --- Layout -------------------------------------------------------------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(4rem,9vw,var(--s-8))}
.section--tight{padding-block:clamp(3rem,6vw,var(--s-7))}
.section--ink{background:var(--deep)}
.section--band{background:var(--deep)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-4) var(--s-3)}
@media (max-width:900px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.col-full{grid-column:1/-1}.col-4{grid-column:span 4}.col-5{grid-column:span 5}
.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}
.col-start-6{grid-column:6/-1}.col-start-7{grid-column:7/-1}
@media (max-width:900px){.col-4,.col-5,.col-6,.col-7,.col-8,.col-start-6,.col-start-7{grid-column:1/-1}}

.rule{height:1px;background:var(--rule);border:0;margin:0;transform-origin:left center}
.on-ink .rule,.section--ink .rule,.theme-ink .rule{background:var(--rule-on-ink)}
.stack>*+*{margin-top:var(--s-3)}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-3);align-items:start;padding-bottom:var(--s-4)}
.sec-head__meta{grid-column:span 3;display:flex;align-items:center;gap:var(--s-2)}
.sec-head__title{grid-column:4/-1}
@media (max-width:900px){.sec-head__meta,.sec-head__title{grid-column:1/-1}.sec-head__meta{margin-bottom:var(--s-1)}}

/* --- Brand --------------------------------------------------------------- */
.brand{display:inline-flex;align-items:center;gap:.7rem;padding-block:.4rem}
.brand__mark{width:auto;height:34px;flex:none}
.brand__mark--rev{display:block}

.brand__type{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;line-height:1;color:#fff}
.brand__type span{font-weight:400;color:var(--teal)}
.on-ink .brand__type,.foot .brand__type,.nav--ink .brand__type{color:#fff}
.on-ink .brand__type span,.foot .brand__type span,.nav--ink .brand__type span{color:var(--teal)}

/* --- Nav ----------------------------------------------------------------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--teal);color:var(--navy);padding:.75rem 1.25rem;z-index:999}
.skip:focus{left:var(--gutter);top:.75rem}
.nav{position:fixed;inset:0 0 auto 0;z-index:var(--z-nav);
  background:color-mix(in srgb,var(--paper) 84%,transparent);
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:transform var(--dur-slow) var(--ease),border-color var(--dur) linear;will-change:transform}
.nav--scrolled{border-bottom-color:var(--rule)}
.nav--hidden{transform:translateY(-100%)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:76px}

.nav--ink.nav--scrolled{border-bottom-color:var(--rule-on-ink)}
.nav--ink .nav__link{color:var(--on-ink-muted)}
.nav--ink .nav__link:hover,.nav--ink .nav__link[aria-current="page"]{color:#fff}
.nav--ink .nav__toggle span,.nav--ink .nav__toggle span::before,.nav--ink .nav__toggle span::after{background:#fff}
.nav__links{display:flex;align-items:center;gap:clamp(.85rem,1.9vw,1.7rem)}
.nav__link{position:relative;font-size:var(--t-sm);font-weight:500;color:var(--fg-muted);
  padding:.9rem 0;transition:color var(--dur-fast) var(--ease)}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:.45rem;height:2px;background:var(--teal);
  transform:scaleX(0);transform-origin:left center;transition:transform var(--dur) var(--ease-out)}
.nav__link:hover{color:var(--fg)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--fg)}
.nav__cta{display:none}
@media (min-width:1100px){.nav__cta{display:inline-flex}}
.nav__toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px}
@media (min-width:900px){.nav__toggle{display:none}}
@media (max-width:899px){.nav__links{display:none}}
.nav__toggle span{position:relative;display:block;width:20px;height:2px;background:var(--fg);transition:background var(--dur-fast) linear}
.nav__toggle span::before,.nav__toggle span::after{content:"";position:absolute;left:0;width:20px;height:2px;
  background:var(--fg);transition:transform var(--dur) var(--ease)}
.nav__toggle span::before{top:-6px}.nav__toggle span::after{top:6px}
.nav__toggle[aria-expanded="true"] span{background:transparent}
.nav__toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.drawer{position:fixed;inset:76px 0 0 0;z-index:var(--z-overlay);background:var(--paper);
  padding:var(--s-4) var(--gutter) var(--s-6);display:flex;flex-direction:column;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur)}
.drawer[data-open="true"]{opacity:1;visibility:visible;transform:none}
.drawer__link{font-family:var(--font-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.4rem;padding:.7rem 0;border-bottom:1px solid var(--rule)}
.drawer__link[aria-current="page"]{color:var(--accent)}
.drawer .btn{margin-top:var(--s-4);align-self:flex-start}
.theme-ink .drawer{background:var(--ink)}
.theme-ink .drawer__link{color:#fff;border-bottom-color:var(--rule-on-ink)}
@media (min-width:900px){.drawer{display:none}}

/* --- Buttons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;padding:.75rem 1.5rem;
  font-family:var(--font-body);font-size:var(--t-sm);font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;border:1px solid var(--teal);background:var(--teal);color:var(--navy);
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.btn svg{width:15px;height:15px;transition:transform var(--dur) var(--ease-out)}
.btn:hover{background:#fff;border-color:#fff;color:var(--navy)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{background:var(--teal);border-color:var(--teal)}
.btn--ghost{background:transparent;color:#fff;border-color:var(--rule-strong)}
.btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.section--ink .btn,.on-ink .btn,.theme-ink .btn{background:var(--teal);border-color:var(--teal);color:var(--navy)}
.section--ink .btn:hover,.on-ink .btn:hover,.theme-ink .btn:hover{background:#fff;border-color:#fff;color:var(--navy)}
.alink{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:var(--t-sm);
  font-weight:600;letter-spacing:.02em;color:var(--accent)}
.alink span{padding-bottom:2px;background-image:linear-gradient(var(--teal),var(--teal));
  background-size:0 2px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size var(--dur) var(--ease-out)}
.alink:hover span{background-size:100% 2px}
.alink svg{width:14px;height:14px;transition:transform var(--dur) var(--ease-out)}
.alink:hover svg{transform:translateX(4px)}
.on-ink .alink,.section--ink .alink,.theme-ink .alink{color:var(--accent-on-ink)}

/* --- Hero ---------------------------------------------------------------- */
.hero{position:relative;padding-top:clamp(8rem,17vh,11.5rem);padding-bottom:clamp(3.5rem,7vw,6rem);overflow:hidden}
.hero--ink{background:var(--ink);color:var(--on-ink)}
.hero__eyebrow{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap}
.hero__eyebrow .rule{flex:1;min-width:40px;max-width:140px}
.hero__title{margin-bottom:var(--s-4)}
.hero__foot{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-3);align-items:end;
  margin-top:clamp(2.5rem,5vw,var(--s-6));padding-top:var(--s-3);border-top:1px solid var(--rule)}
.hero--ink .hero__foot{border-top-color:var(--rule-on-ink)}
@media (max-width:900px){.hero__foot{grid-template-columns:1fr}}
.hero__grid{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(to right,var(--rule) 1px,transparent 1px);
  background-size:calc(100%/12) 100%;opacity:.55;
  mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 72%,transparent);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 72%,transparent)}
.hero--ink .hero__grid{background-image:linear-gradient(to right,var(--rule-on-ink) 1px,transparent 1px)}
@media (max-width:900px){.hero__grid{background-size:calc(100%/4) 100%}}
.hero__glow{position:absolute;left:50%;top:8%;width:min(1100px,120vw);aspect-ratio:2/1;translate:-50% 0;
  background:radial-gradient(ellipse at center,color-mix(in srgb,var(--teal) 22%,transparent) 0,transparent 62%);
  filter:blur(38px);pointer-events:none}
.hero__scrollcue{display:flex;align-items:center;gap:.875rem;margin-top:var(--s-5)}
.cue{width:22px;height:36px;border:1px solid var(--rule-on-ink);border-radius:12px;display:inline-flex;justify-content:center;padding-top:6px}
.cue span{width:3px;height:7px;border-radius:2px;background:var(--teal);animation:cue 1.9s var(--ease) infinite}
@keyframes cue{0%,100%{transform:translateY(0);opacity:1}55%{transform:translateY(11px);opacity:.15}}

/* --- Dark page shell ------------------------------------------------------ */
.theme-ink{background:var(--paper)}


.theme-ink .display{color:#fff}
.theme-ink .drow{border-color:var(--rule-on-ink)}

/* --- Reading progress ----------------------------------------------------- */
.readbar{position:fixed;inset:0 0 auto 0;height:2px;z-index:200;pointer-events:none}
.readbar span{display:block;height:100%;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left center}

/* --- Pillars --------------------------------------------------------------*/
.pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rule-on-ink)}
@media (max-width:1000px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pillars{grid-template-columns:1fr}}
.pillar{padding:var(--s-4) var(--s-3) var(--s-4) 0;border-bottom:1px solid var(--rule-on-ink);
  display:flex;flex-direction:column;gap:.75rem}
.pillar+.pillar{border-left:1px solid var(--rule-on-ink);padding-left:var(--s-3)}
@media (max-width:1000px){.pillar:nth-child(odd){border-left:0;padding-left:0}
  .pillar:nth-child(even){border-left:1px solid var(--rule-on-ink);padding-left:var(--s-3)}}
@media (max-width:640px){.pillar{border-left:0!important;padding-left:0!important}}
.pillar__icon{width:30px;height:30px;color:var(--teal)}
.pillar__title{font-family:var(--font-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;font-size:.9375rem;line-height:1.3}
.pillar__title span{display:block;font-weight:400;color:var(--on-ink-muted)}

/* --- Statement ------------------------------------------------------------*/
.stmt{display:grid;gap:var(--s-2)}
.stmt__row{display:flex;align-items:baseline;gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--rule-on-ink)}
.stmt__row .num{flex:none}
.stmt__text{font-family:var(--font-display);font-weight:400;font-size:clamp(1.25rem,2.6vw,1.875rem);
  line-height:1.24;color:var(--on-ink-faint);position:relative}
.stmt__text::after{content:"";position:absolute;left:0;right:0;top:52%;height:2px;background:var(--teal);
  transform:scaleX(0);transform-origin:left center;transition:transform 620ms var(--ease-out);transition-delay:var(--strike-delay,0ms)}
.is-revealed .stmt__text::after{transform:scaleX(1)}
.stmt__resolve{margin-top:var(--s-4);font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.5rem,3.4vw,2.75rem);line-height:1.14;color:var(--on-ink)}
.stmt__resolve em{font-style:normal;color:var(--teal)}

/* --- Service rows ---------------------------------------------------------*/
.slist{border-top:1px solid var(--rule);position:relative;isolation:isolate}
.srow{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:var(--s-2) var(--s-3);
  padding:clamp(1.5rem,2.6vw,2.25rem) 0;border-bottom:1px solid var(--rule);position:relative}
.srow::before{content:"";position:absolute;left:calc(var(--gutter)*-1);right:calc(var(--gutter)*-1);
  top:-1px;bottom:-1px;background:var(--card);opacity:0;transition:opacity var(--dur) var(--ease);z-index:-1}

.srow:hover::before{opacity:1}
.srow__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-3);align-items:start}
@media (max-width:900px){.srow{grid-template-columns:3rem minmax(0,1fr)}.srow__body{grid-template-columns:1fr;gap:var(--s-1)}}
.srow__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.125rem,2vw,1.5rem);
  line-height:1.2;transition:color var(--dur) var(--ease)}
.srow:hover .srow__title{color:var(--accent)}
.srow__desc{color:var(--fg-muted);font-size:var(--t-sm);line-height:1.65;max-width:44ch}

/* --- Cards ----------------------------------------------------------------*/
.card{background:var(--card);border:1px solid var(--rule);padding:clamp(1.5rem,2.4vw,2.25rem);
  display:flex;flex-direction:column;gap:var(--s-2);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out)}
.card:hover{border-color:var(--teal);transform:translateY(-2px)}
.card__rule{width:52px;height:3px;background:var(--teal);transform:scaleX(.54);transform-origin:left center;
  transition:transform var(--dur) var(--ease-out)}
.card:hover .card__rule{transform:scaleX(1)}
.section--band .card,.section--ink .card{background:var(--card);border-color:var(--rule)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--s-2)}
[data-spotlight] .card{position:relative;overflow:hidden}
[data-spotlight] .card::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),
    color-mix(in srgb,var(--teal) 13%,transparent),transparent 62%);
  opacity:0;transition:opacity var(--dur) var(--ease)}
[data-spotlight] .card:hover::after{opacity:1}

/* --- Steps ----------------------------------------------------------------*/
.steps{display:grid}
.step{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:var(--s-3);
  padding:clamp(2rem,4vw,3.25rem) 0;border-top:1px solid var(--rule)}
.step:last-child{border-bottom:1px solid var(--rule)}
@media (max-width:900px){.step{grid-template-columns:1fr;gap:var(--s-2)}}
.step__idx{font-family:var(--font-display);font-weight:600;font-size:clamp(2.5rem,5vw,3.75rem);
  line-height:.9;color:var(--rule-strong);font-variant-numeric:tabular-nums;transition:color var(--dur) var(--ease)}
.step:hover .step__idx{color:var(--teal)}
.section--ink .step__idx,.theme-ink .step__idx{color:var(--rule-on-ink)}

/* --- Roster / promise / cta ----------------------------------------------*/
.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));border-top:1px solid var(--rule-on-ink)}
.roster li{padding:clamp(.875rem,1.6vw,1.25rem) 0;border-bottom:1px solid var(--rule-on-ink);
  display:flex;align-items:center;gap:.75rem;font-size:var(--t-sm)}
.roster li::before{content:"";width:5px;height:5px;flex:none;background:var(--teal);transform:rotate(45deg)}
.promise{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-3);align-items:start}
.promise__mark{grid-column:span 1}
.promise__mark::before{content:"";display:block;width:3px;height:64px;background:var(--teal)}
.promise__body{grid-column:2/-1}
@media (max-width:900px){.promise__mark,.promise__body{grid-column:1/-1}.promise__mark::before{width:48px;height:3px}}
.cta{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-4) var(--s-3);align-items:end}
.cta__title{grid-column:span 7}
.cta__act{grid-column:9/-1;display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-start}
@media (max-width:900px){.cta__title,.cta__act{grid-column:1/-1}}

/* --- Forms ----------------------------------------------------------------*/
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:var(--t-sm);font-weight:600}
.field .hint{font-size:var(--t-label);color:var(--fg-faint)}
.field input,.field select,.field textarea{font:inherit;font-size:var(--t-base);min-height:48px;
  padding:.7rem .85rem;background:var(--card);color:#fff;border:1px solid var(--rule-strong);border-radius:0;
  transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.field textarea{min-height:140px;resize:vertical;line-height:1.6}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--silver)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 26%,transparent)}
.field[data-invalid="true"] input,.field[data-invalid="true"] select,.field[data-invalid="true"] textarea{border-color:var(--danger)}
.error{display:none;align-items:center;gap:.4rem;font-size:var(--t-label);color:var(--danger)}
.error svg{width:13px;height:13px;flex:none}
.field[data-invalid="true"] .error{display:flex}
.form-note{display:flex;gap:.6rem;align-items:flex-start;padding:var(--s-2);background:var(--card);
  border-left:3px solid var(--teal);font-size:var(--t-sm);color:var(--fg-muted)}
.form-status{display:none;gap:.6rem;align-items:flex-start;padding:var(--s-2);
  border-left:3px solid var(--teal);background:var(--card);font-size:var(--t-sm)}
.form-status[data-shown="true"]{display:flex}

/* --- Detail rows / footer -------------------------------------------------*/
.drow{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--s-2);padding:var(--s-2) 0;
  border-bottom:1px solid var(--rule);align-items:baseline}
@media (max-width:640px){.drow{grid-template-columns:1fr;gap:.25rem}}
.drow:first-child{border-top:1px solid var(--rule)}
.section--ink .drow,.on-ink .drow{border-color:var(--rule-on-ink)}
.foot{background:var(--deep);color:var(--fg-muted);padding-block:var(--s-6) var(--s-4)}
.foot__top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-4) var(--s-3);padding-bottom:var(--s-5)}
.foot__brand{grid-column:span 5}.foot__nav{grid-column:7/span 3}.foot__contact{grid-column:10/-1}
@media (max-width:900px){.foot__brand,.foot__nav,.foot__contact{grid-column:1/-1}}
.foot__list li+li{margin-top:.6rem}
.foot__list a{font-size:var(--t-sm);color:var(--on-ink-muted);display:inline-block;min-height:24px;
  transition:color var(--dur-fast) var(--ease)}
.foot__list a:hover{color:var(--teal)}
.foot__bottom{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);justify-content:space-between;
  align-items:center;padding-top:var(--s-3);border-top:1px solid var(--rule-on-ink)}
.foot__fine{font-size:var(--t-label);color:var(--on-ink-faint);letter-spacing:.02em}

/* --- Reveal ---------------------------------------------------------------*/
[data-reveal]{opacity:0;transform:translateY(18px);
  transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out);
  transition-delay:var(--d,0ms)}
[data-reveal].is-revealed{opacity:1;transform:none}
[data-reveal="rule"]{opacity:1;transform:scaleX(0);transition:transform 820ms var(--ease-out);transition-delay:var(--d,0ms)}
[data-reveal="rule"].is-revealed{transform:scaleX(1)}
.line{display:block;overflow:hidden}
.line>span{display:block;transform:translateY(106%);transition:transform 1050ms var(--ease-out);transition-delay:var(--d,0ms)}
.is-revealed .line>span,.line.is-revealed>span{transform:none}

/* --- Utilities ------------------------------------------------------------*/
.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}
.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}
.mt-4{margin-top:var(--s-4)}.mt-5{margin-top:var(--s-5)}.mt-6{margin-top:var(--s-6)}
.mb-2{margin-bottom:var(--s-2)}.mb-3{margin-bottom:var(--s-3)}.mb-4{margin-bottom:var(--s-4)}.mb-5{margin-bottom:var(--s-5)}
.measure-sm{max-width:52ch}
.flow-y>*+*{margin-top:var(--s-2)}

/* ==========================================================================
   CINEMATIC LAYER — engine, scrollytelling, metrics, explorer
   Everything below degrades to a static, fully readable page.
   ========================================================================== */

.scrolly{position:relative}
.scrolly__sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center;overflow:hidden}
.scrolly__track{height:640vh}
.scrolly__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(1.5rem,4vw,4rem);align-items:center;width:100%}
@media (max-width:1000px){.scrolly__inner{grid-template-columns:1fr;gap:var(--s-3)}.scrolly__track{height:720vh}}
.stage__ticks{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:var(--s-3);font-size:.6875rem;
  letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--on-ink-faint)}
.stage__ticks li{display:inline-flex;align-items:center;gap:.45rem;transition:color var(--dur) var(--ease)}
.stage__ticks li span{width:5px;height:5px;background:currentColor;transform:rotate(45deg);
  transition:transform var(--dur) var(--ease)}
.stage__ticks li.on{color:var(--teal)}
.stage__ticks li.on span{transform:rotate(45deg) scale(1.5)}
@media (max-width:720px){.stage__ticks{display:none}}
.scrolly__copy{position:relative;min-height:340px}
@media (max-width:1000px){.scrolly__copy{min-height:300px}}
.chap{position:absolute;inset:0;opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity 460ms var(--ease),transform 560ms var(--ease)}
.chap.on{opacity:1;transform:none;pointer-events:auto}
.chap__note{border-left:3px solid var(--teal);padding-left:.95rem}
@media (max-width:1000px){.chap .body{font-size:var(--t-sm)}.chap .lead{font-size:1rem}}
@media (max-width:720px){.chap__note{display:none}}

/* --- Engine drawing -------------------------------------------------------*/
.engine{width:100%;height:auto;overflow:visible}
.engine .mod{transition:opacity 520ms var(--ease),transform 900ms var(--ease);transform-box:fill-box}
.engine .cowl{fill:#16304A;stroke:var(--silver);stroke-width:1.6}
.engine .duct{fill:#0E2439;stroke:#2C4A63;stroke-width:1.2}
.engine .case,.engine .casing{fill:#1B3550;stroke:var(--silver);stroke-width:1.4}
.engine .casing.hot{fill:#2A2F3D;stroke:var(--teal)}
.engine .spinner{fill:var(--silver);stroke:#E8EDF1;stroke-width:1.2}
.engine .fanblade{fill:#9FB3C4;stroke:#DCE4EA;stroke-width:1.2}
.engine .fanblade.fb2{fill:#7E97AC}
.engine .hub{fill:#14293F;stroke:#2C4A63;stroke-width:1.2}
.engine .bl{stroke-width:.9}
.engine .rotor{fill:var(--silver);stroke:#E4EAEF}
.engine .stator{fill:#6F8698;stroke:#97A9B7}
.engine .hotblade{fill:var(--teal);stroke:#7FE3E4}
.engine .cancase{fill:#23303F;stroke:var(--teal);stroke-width:1.5}
.engine .flame{fill:var(--teal-deep);stroke:var(--teal);stroke-width:1.2;opacity:.92}
.engine .nozzlejet{fill:var(--teal);opacity:.8}
.engine .plug{fill:#16304A;stroke:var(--silver);stroke-width:1.4}
.engine .shaft{fill:#55697C;stroke:#7E93A6;stroke-width:.9}
.engine .shaft.n1{fill:var(--teal-deep);stroke:var(--teal)}
.engine .agb{fill:#16304A;stroke:var(--silver);stroke-width:1.4}
.engine .agbdrive{stroke:var(--silver);stroke-width:2}
.engine .gear{fill:#24405A;stroke:var(--silver);stroke-width:1.2}
.engine .flow{fill:none;stroke-linecap:round;stroke-dasharray:10 14;stroke-width:2;opacity:0;
  transition:opacity 700ms var(--ease)}
.engine .flow.bypass{stroke:var(--silver)}
.engine .flow.core{stroke:var(--teal)}
[data-stage].flowing .flow{opacity:.55;animation:drift 2.4s linear infinite}
[data-stage].flowing .flow.core{opacity:.85}
@keyframes drift{to{stroke-dashoffset:-48}}
.engine #callouts .co{opacity:0;transition:opacity 420ms var(--ease)}
.engine #callouts path{stroke:var(--teal);stroke-width:1.1;fill:none}
.engine #callouts text{fill:#fff;font-family:var(--font-body);font-size:15px;font-weight:600;
  letter-spacing:.14em;text-anchor:middle}
[data-stage="explode"] #callouts .co{opacity:1}
@media (max-width:900px){.engine #callouts{display:none}}

/* stage choreography */
[data-stage="fan"] .mod,[data-stage="lpc"] .mod,[data-stage="hpc"] .mod,
[data-stage="comb"] .mod,[data-stage="hpt"] .mod,[data-stage="lpt"] .mod,
[data-stage="agb"] .mod{opacity:.16}
[data-stage="intro"] .mod,[data-stage="explode"] .mod{opacity:1}
[data-stage="fan"] #m-fan,[data-stage="lpc"] #m-lpc,[data-stage="hpc"] #m-hpc,
[data-stage="comb"] #m-comb,[data-stage="hpt"] #m-hpt,[data-stage="lpt"] #m-lpt,
[data-stage="agb"] #m-agb{opacity:1}
[data-stage="fan"] #m-nacelle{opacity:.55}
[data-stage="agb"] #m-nacelle{opacity:.3}
[data-stage="fan"] #m-shaft,[data-stage="lpc"] #m-shaft,[data-stage="hpc"] #m-shaft,
[data-stage="comb"] #m-shaft,[data-stage="hpt"] #m-shaft,[data-stage="lpt"] #m-shaft,
[data-stage="agb"] #m-shaft{opacity:.42}
[data-stage="explode"] #m-nacelle{opacity:.14}
[data-stage="explode"] #m-fan{transform:translateX(-116px)}
[data-stage="explode"] #m-lpc{transform:translateX(-58px)}
[data-stage="explode"] #m-comb{transform:translateX(58px)}
[data-stage="explode"] #m-hpt{transform:translateX(116px)}
[data-stage="explode"] #m-lpt{transform:translateX(174px)}
[data-stage="explode"] #m-exh{transform:translateX(232px)}
[data-stage="explode"] #m-agb{transform:translateY(46px)}
[data-stage="explode"] #m-shaft{opacity:.28}

/* --- Metrics --------------------------------------------------------------*/
.metric__val{font-family:var(--font-display);font-weight:600;font-size:clamp(2.5rem,6vw,4.25rem);
  line-height:1;color:var(--teal);font-variant-numeric:tabular-nums;display:block}
.metric__val sup{font-size:.42em;vertical-align:super;margin-left:.1em}
.gauge{height:4px;background:var(--rule-on-ink);overflow:hidden}
.gauge span{display:block;height:100%;background:var(--teal);transform:scaleX(0);transform-origin:left center;
  transition:transform 1400ms var(--ease-out)}
.gauge.on span{transform:scaleX(var(--fill,.72))}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
  gap:var(--s-3);border-top:1px solid var(--rule-on-ink)}
.statgrid>li{padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--rule-on-ink)}
.statgrid .metric__val{font-size:clamp(2rem,4.4vw,3rem)}

/* --- Variant matrix -------------------------------------------------------*/
.vtable{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.vtable caption{text-align:left;padding-bottom:var(--s-2);color:var(--on-ink-muted);font-size:var(--t-sm)}
.vtable th,.vtable td{text-align:left;padding:.85rem .9rem;border-bottom:1px solid var(--rule-on-ink);vertical-align:top}
.vtable thead th{font-family:var(--font-body);font-size:var(--t-label);font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--on-ink-faint);border-bottom-color:var(--silver)}
.vtable tbody th{font-family:var(--font-display);font-weight:600;font-size:1rem;color:#fff;white-space:nowrap}
.vtable td{color:var(--on-ink-muted)}
.vtable tbody tr{transition:background var(--dur) var(--ease)}
.vtable tbody tr:hover{background:color-mix(in srgb,var(--teal) 8%,transparent)}
.vscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:720px){.vtable{min-width:640px}}

/* --- Workscope explorer ---------------------------------------------------*/
.explorer{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
@media (max-width:900px){.explorer{grid-template-columns:1fr}}
.qset{border-top:1px solid var(--rule-on-ink)}
.qset fieldset{border:0;margin:0;padding:var(--s-3) 0;border-bottom:1px solid var(--rule-on-ink)}
.qset legend{padding:0;font-family:var(--font-body);font-size:var(--t-label);font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-faint);margin-bottom:.75rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opt{position:relative}
.opt input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt span{display:inline-flex;align-items:center;min-height:44px;padding:.55rem 1rem;
  border:1px solid var(--rule-on-ink);color:var(--on-ink-muted);font-size:var(--t-sm);font-weight:500;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.opt input:hover+span{border-color:var(--silver);color:#fff}
.opt input:checked+span{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,transparent);color:#fff}
.opt input:focus-visible+span{outline:2px solid var(--teal);outline-offset:3px}

.paths{border-top:1px solid var(--rule-on-ink)}
.path{padding:var(--s-3) 0;border-bottom:1px solid var(--rule-on-ink);
  transition:opacity var(--dur) var(--ease)}
.path[data-rank="off"]{opacity:.3}
.path__head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.path__name{font-family:var(--font-display);font-weight:600;font-size:1.125rem;color:#fff}
.path__tag{font-size:var(--t-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  padding:.2rem .5rem;border:1px solid currentColor}
.path[data-rank="lead"] .path__tag{color:var(--teal)}
.path[data-rank="also"] .path__tag{color:var(--on-ink-faint)}
.path[data-rank="off"] .path__tag{color:var(--on-ink-faint)}
.path__why{font-size:var(--t-sm);color:var(--on-ink-muted);margin-top:.5rem;max-width:52ch}
.explorer__note{margin-top:var(--s-3);padding:var(--s-2);border-left:3px solid var(--teal);
  font-size:var(--t-sm);color:var(--on-ink-muted)}

/* --- Anatomy teaser -------------------------------------------------------*/
.teaser{position:relative;overflow:hidden}
.teaser__glow{position:absolute;left:78%;top:10%;width:min(720px,90vw);aspect-ratio:1;translate:-50% 0;
  background:radial-gradient(circle at center,color-mix(in srgb,var(--teal) 16%,transparent) 0,transparent 62%);
  filter:blur(46px);pointer-events:none}
.teaser__list{border-top:1px solid var(--rule-on-ink)}
.teaser__list li{display:grid;grid-template-columns:3rem 12rem minmax(0,1fr);gap:var(--s-2);align-items:baseline;
  padding:var(--s-2) 0;border-bottom:1px solid var(--rule-on-ink);transition:border-color var(--dur) var(--ease)}
.teaser__list li:hover{border-bottom-color:var(--teal)}
.teaser__list li>span:nth-child(2){font-weight:600;color:#fff}
.teaser__list li>span:nth-child(3){font-size:var(--t-sm);color:var(--on-ink-muted)}
@media (max-width:720px){.teaser__list li{grid-template-columns:2.5rem minmax(0,1fr)}
  .teaser__list li>span:nth-child(3){grid-column:2}}

/* --- Sticky index (services) ---------------------------------------------*/
.sticky-index{position:sticky;top:110px}
@media (max-width:900px){.sticky-index{position:static}}
.sticky-index li{padding:.55rem 0;border-bottom:1px solid var(--rule);font-size:var(--t-sm);
  display:flex;gap:.75rem;color:var(--fg-faint);transition:color var(--dur) var(--ease)}
.sticky-index li.on{color:var(--fg)}
.sticky-index li.on .num{color:var(--accent)}

/* --- Reduced motion -------------------------------------------------------*/
@media (prefers-reduced-motion:reduce){
  .scrolly__sticky{position:static;height:auto;padding-block:var(--s-5)}
  .scrolly__track{display:none}
  .scrolly__inner{grid-template-columns:1fr}
  .scrolly__copy{min-height:0}
  .chap{position:static;opacity:1;transform:none;pointer-events:auto;padding-block:var(--s-4);
    border-top:1px solid var(--rule-on-ink)}
  .engine .mod{opacity:1!important;transform:none!important}
  .engine #callouts .co{opacity:1}
  .engine .flow{opacity:.5;animation:none}
  .cue span{animation:none}
  .gauge span{transform:scaleX(var(--fill,.72));transition:none}
  .readbar{display:none}
  .stage__ticks{display:none}
  .sticky-index{position:static}
  [data-reveal],[data-reveal="rule"],.line>span{opacity:1!important;transform:none!important;transition:none!important}
  .stmt__text::after{transform:scaleX(1)!important;transition:none!important}
  .nav{transition:none}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important}
}

/* --- Identity manual (internal page) --------------------------------------*/
.spec{background:var(--card);border:1px solid var(--rule);padding:clamp(1.5rem,3vw,2.5rem);
  display:grid;place-items:center;min-height:200px}
.spec img{max-height:150px;width:auto}
.swatch{border:1px solid var(--rule)}
.swatch__chip{height:92px}
.swatch__meta{padding:.75rem .875rem;background:var(--card)}
.swatch__meta code{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:var(--t-label);
  color:var(--fg-muted);letter-spacing:.04em}
.no{border-left:3px solid var(--danger);padding-left:.875rem}
.yes{border-left:3px solid var(--teal);padding-left:.875rem}

/* Breakpoint ladder: 640 / 720 / 900 / 1000 / 1100. The 899/900 pair is one
   boundary expressed twice (max- and min-) so nav and drawer never overlap. */

/* ==========================================================================
   SCROLL SET PIECES — shared figure language
   One vocabulary across every diagram: silver structure, teal focus,
   dimmed context. Same choreography as the engine.
   ========================================================================== */
.figure{width:100%;height:auto;overflow:visible}
.figure text{font-family:var(--font-body);fill:var(--fg-muted)}

/* --- Seven paths ---------------------------------------------------------*/
.fig-paths .lead-line{stroke:var(--rule-strong);stroke-width:1.4;
  transition:stroke 420ms var(--ease),stroke-width 420ms var(--ease),opacity 420ms var(--ease)}
.fig-paths .node-core{fill:var(--card);stroke:var(--silver);stroke-width:1.6}
.fig-paths .node-ring{fill:none;stroke:var(--rule-strong);stroke-width:1;stroke-dasharray:3 6}
.fig-paths .node-label{fill:#fff;font-size:13px;font-weight:600;letter-spacing:.16em;text-anchor:middle}
.fig-paths .pill{fill:var(--card);stroke:var(--rule-strong);stroke-width:1.2;
  transition:stroke 420ms var(--ease),fill 420ms var(--ease)}
.fig-paths .pill-key{fill:var(--fg-faint);font-size:13px;font-weight:600;letter-spacing:.1em;
  transition:fill 420ms var(--ease)}
.fig-paths .pill-name{fill:var(--fg-muted);font-size:15px;font-weight:500;
  transition:fill 420ms var(--ease)}
.fig-paths .endpoint{transition:opacity 420ms var(--ease)}
[data-stage^="p-"] .endpoint,[data-stage^="p-"] .lead-line{opacity:.28}
[data-stage="p-all"] .endpoint,[data-stage="p-all"] .lead-line{opacity:1}
[data-stage="p-a"] [data-path="a"],[data-stage="p-b"] [data-path="b"],
[data-stage="p-c"] [data-path="c"],[data-stage="p-d"] [data-path="d"],
[data-stage="p-e"] [data-path="e"],[data-stage="p-f"] [data-path="f"],
[data-stage="p-g"] [data-path="g"]{opacity:1}
[data-stage="p-a"] [data-path="a"].lead-line,[data-stage="p-b"] [data-path="b"].lead-line,
[data-stage="p-c"] [data-path="c"].lead-line,[data-stage="p-d"] [data-path="d"].lead-line,
[data-stage="p-e"] [data-path="e"].lead-line,[data-stage="p-f"] [data-path="f"].lead-line,
[data-stage="p-g"] [data-path="g"].lead-line{stroke:var(--teal);stroke-width:2.4}
[data-stage="p-a"] [data-path="a"] .pill,[data-stage="p-b"] [data-path="b"] .pill,
[data-stage="p-c"] [data-path="c"] .pill,[data-stage="p-d"] [data-path="d"] .pill,
[data-stage="p-e"] [data-path="e"] .pill,[data-stage="p-f"] [data-path="f"] .pill,
[data-stage="p-g"] [data-path="g"] .pill{stroke:var(--teal);fill:var(--card-2)}
[data-stage="p-a"] [data-path="a"] .pill-name,[data-stage="p-b"] [data-path="b"] .pill-name,
[data-stage="p-c"] [data-path="c"] .pill-name,[data-stage="p-d"] [data-path="d"] .pill-name,
[data-stage="p-e"] [data-path="e"] .pill-name,[data-stage="p-f"] [data-path="f"] .pill-name,
[data-stage="p-g"] [data-path="g"] .pill-name{fill:#fff}
[data-stage="p-a"] [data-path="a"] .pill-key,[data-stage="p-b"] [data-path="b"] .pill-key,
[data-stage="p-c"] [data-path="c"] .pill-key,[data-stage="p-d"] [data-path="d"] .pill-key,
[data-stage="p-e"] [data-path="e"] .pill-key,[data-stage="p-f"] [data-path="f"] .pill-key,
[data-stage="p-g"] [data-path="g"] .pill-key{fill:var(--teal)}

/* --- Lifecycle spine -----------------------------------------------------*/
.fig-life .spine{stroke:var(--silver);stroke-width:2}
.fig-life .tickline{stroke:var(--rule-strong);stroke-width:1.2}
.fig-life .phase{fill:var(--fg-faint);font-size:11px;font-weight:600;letter-spacing:.16em;text-anchor:middle}
.fig-life .stem{stroke:var(--rule-strong);stroke-width:1.2;transition:stroke 420ms var(--ease)}
.fig-life .dot{fill:var(--silver);transition:fill 420ms var(--ease)}
.fig-life .halo{fill:none;stroke:var(--teal);stroke-width:1.4;opacity:0;
  transition:opacity 420ms var(--ease),r 420ms var(--ease)}
.fig-life .svc-name{fill:var(--fg-muted);font-size:12.5px;font-weight:600;letter-spacing:.1em;
  transition:fill 420ms var(--ease)}
.fig-life .svc{transition:opacity 420ms var(--ease)}
[data-stage^="s-"] .svc{opacity:.26}
[data-stage="s-all"] .svc{opacity:1}
[data-stage="s-asset-strategy"] [data-svc="asset-strategy"]{opacity:1}
[data-stage="s-asset-strategy"] [data-svc="asset-strategy"] .stem{stroke:var(--teal)}
[data-stage="s-asset-strategy"] [data-svc="asset-strategy"] .dot{fill:var(--teal)}
[data-stage="s-asset-strategy"] [data-svc="asset-strategy"] .halo{opacity:1}
[data-stage="s-asset-strategy"] [data-svc="asset-strategy"] .svc-name{fill:#fff}
[data-stage="s-engine-advisory"] [data-svc="engine-advisory"]{opacity:1}
[data-stage="s-engine-advisory"] [data-svc="engine-advisory"] .stem{stroke:var(--teal)}
[data-stage="s-engine-advisory"] [data-svc="engine-advisory"] .dot{fill:var(--teal)}
[data-stage="s-engine-advisory"] [data-svc="engine-advisory"] .halo{opacity:1}
[data-stage="s-engine-advisory"] [data-svc="engine-advisory"] .svc-name{fill:#fff}
[data-stage="s-due-diligence"] [data-svc="due-diligence"]{opacity:1}
[data-stage="s-due-diligence"] [data-svc="due-diligence"] .stem{stroke:var(--teal)}
[data-stage="s-due-diligence"] [data-svc="due-diligence"] .dot{fill:var(--teal)}
[data-stage="s-due-diligence"] [data-svc="due-diligence"] .halo{opacity:1}
[data-stage="s-due-diligence"] [data-svc="due-diligence"] .svc-name{fill:#fff}
[data-stage="s-mro-advisory"] [data-svc="mro-advisory"]{opacity:1}
[data-stage="s-mro-advisory"] [data-svc="mro-advisory"] .stem{stroke:var(--teal)}
[data-stage="s-mro-advisory"] [data-svc="mro-advisory"] .dot{fill:var(--teal)}
[data-stage="s-mro-advisory"] [data-svc="mro-advisory"] .halo{opacity:1}
[data-stage="s-mro-advisory"] [data-svc="mro-advisory"] .svc-name{fill:#fff}
[data-stage="s-transactions"] [data-svc="transactions"]{opacity:1}
[data-stage="s-transactions"] [data-svc="transactions"] .stem{stroke:var(--teal)}
[data-stage="s-transactions"] [data-svc="transactions"] .dot{fill:var(--teal)}
[data-stage="s-transactions"] [data-svc="transactions"] .halo{opacity:1}
[data-stage="s-transactions"] [data-svc="transactions"] .svc-name{fill:#fff}
[data-stage="s-lease-transition"] [data-svc="lease-transition"]{opacity:1}
[data-stage="s-lease-transition"] [data-svc="lease-transition"] .stem{stroke:var(--teal)}
[data-stage="s-lease-transition"] [data-svc="lease-transition"] .dot{fill:var(--teal)}
[data-stage="s-lease-transition"] [data-svc="lease-transition"] .halo{opacity:1}
[data-stage="s-lease-transition"] [data-svc="lease-transition"] .svc-name{fill:#fff}
[data-stage="s-asset-management"] [data-svc="asset-management"]{opacity:1}
[data-stage="s-asset-management"] [data-svc="asset-management"] .stem{stroke:var(--teal)}
[data-stage="s-asset-management"] [data-svc="asset-management"] .dot{fill:var(--teal)}
[data-stage="s-asset-management"] [data-svc="asset-management"] .halo{opacity:1}
[data-stage="s-asset-management"] [data-svc="asset-management"] .svc-name{fill:#fff}
[data-stage="s-market-intelligence"] [data-svc="market-intelligence"]{opacity:1}
[data-stage="s-market-intelligence"] [data-svc="market-intelligence"] .stem{stroke:var(--teal)}
[data-stage="s-market-intelligence"] [data-svc="market-intelligence"] .dot{fill:var(--teal)}
[data-stage="s-market-intelligence"] [data-svc="market-intelligence"] .halo{opacity:1}
[data-stage="s-market-intelligence"] [data-svc="market-intelligence"] .svc-name{fill:#fff}

/* --- Decision funnel -----------------------------------------------------*/
.fig-funnel .box{fill:var(--card);stroke:var(--rule-strong);stroke-width:1.2;
  transition:stroke 420ms var(--ease),fill 420ms var(--ease)}
.fig-funnel .box.out{fill:var(--card-2);stroke:var(--teal);stroke-width:1.6}
.fig-funnel .box-t{fill:var(--fg-muted);font-size:14px;font-weight:600;letter-spacing:.08em;text-anchor:middle;
  transition:fill 420ms var(--ease)}
.fig-funnel .box-t.sm{font-size:11.5px;letter-spacing:.1em}
.fig-funnel .box-t.dim{fill:var(--fg-faint)}
.fig-funnel .box-t.out-t{fill:#fff;font-size:15px;letter-spacing:.16em}
.fig-funnel .link{stroke:var(--rule-strong);stroke-width:1.2;transition:stroke 420ms var(--ease)}
.fig-funnel .pnode{fill:var(--card);stroke:var(--rule-strong);stroke-width:1.4;
  transition:stroke 420ms var(--ease),fill 420ms var(--ease)}
.fig-funnel .pnode-t{fill:var(--fg-faint);font-size:13px;font-weight:600;text-anchor:middle;
  transition:fill 420ms var(--ease)}
.fig-funnel .fstage,.fig-funnel [data-stage-n]{transition:opacity 500ms var(--ease)}
[data-stage^="f-"] [data-stage-n]{opacity:.2}
[data-stage="f-1"] [data-stage-n="1"],
[data-stage="f-2"] [data-stage-n="1"],[data-stage="f-2"] [data-stage-n="2"],
[data-stage="f-3"] [data-stage-n="1"],[data-stage="f-3"] [data-stage-n="2"],[data-stage="f-3"] [data-stage-n="3"],
[data-stage="f-4"] [data-stage-n]{opacity:1}
[data-stage="f-2"] [data-stage-n="2"] .pnode,
[data-stage="f-3"] [data-stage-n="3"] .box.test,
[data-stage="f-4"] .box.out{stroke:var(--teal)}
[data-stage="f-2"] [data-stage-n="2"] .pnode-t{fill:var(--teal)}
[data-stage="f-4"] [data-stage-n="4"] .link{stroke:var(--teal)}

/* --- Figure container ----------------------------------------------------*/
.fig-wrap{position:relative}
@media (prefers-reduced-motion:reduce){
  .figure [data-stage-n],.figure .svc,.figure .endpoint,.figure .lead-line{opacity:1!important}
  .fig-life .halo{opacity:1}
}

/* Identity manual: show each lockup on the surface it is actually made for. */
.spec--light{background:#FFFFFF;border-color:var(--rule-strong)}
.spec--dark{background:var(--paper);border-color:var(--rule)}
