:root{
  --ink:#0B0B0B;
  --ink-70:rgba(11,11,11,.70);
  --ink-45:rgba(11,11,11,.45);
  --crimson:#AA0000;
  --crimson-lt:#E86A6A;
  --crimson-dark:#6E0000;
  --egg:#F1EDE4;
  --egg-70:rgba(241,237,228,.70);
  --egg-45:rgba(241,237,228,.45);
  --rule:rgba(11,11,11,.14);
  --rule-lt:rgba(241,237,228,.16);
  --display:Georgia,"Times New Roman",serif;
  --body:Arial,Helvetica,sans-serif;
  --gutter:clamp(20px,5vw,72px);
  --maxw:1340px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--egg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--crimson);color:var(--egg)}
:focus-visible{outline:2px solid var(--crimson);outline-offset:3px}

/* ---------------- TYPE ---------------- */
h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:-.015em;line-height:1.06}
h1{font-size:clamp(42px,6.4vw,84px)}
h2{font-size:clamp(31px,4.2vw,58px)}
h3{font-size:clamp(20px,1.9vw,26px);line-height:1.25}
.lede{font-size:clamp(17px,1.4vw,20px);line-height:1.62;color:var(--ink-70);max-width:52ch}
.eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--crimson);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--crimson);flex:none}
.eyebrow .bearing{color:var(--ink-45);font-weight:400;letter-spacing:.16em}

/* --- DARK CONTEXT: every text token re-declared. This is the bug fix. --- */
.dark{background:var(--ink);color:var(--egg)}
.dark h1,.dark h2,.dark h3{color:var(--egg)}
.dark p,.dark li,.dark span{color:inherit}
.dark .lede{color:var(--egg-70)}
.dark .eyebrow{color:var(--crimson-lt)}
.dark .eyebrow::before{background:var(--crimson-lt)}
.dark .eyebrow .bearing{color:var(--egg-45)}

/* ---------------- LAYOUT ---------------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
section{position:relative}
.band{padding:clamp(84px,10vw,150px) 0}
.band--sm{padding:clamp(56px,6.5vw,92px) 0}

/* ---------------- SURVEY SIGNATURE ---------------- */
.meridian{position:fixed;left:calc(var(--gutter)/2);top:0;bottom:0;width:1px;background:var(--rule);z-index:2;pointer-events:none}
.meridian__fill{position:absolute;top:0;left:0;width:100%;height:0;background:var(--crimson)}
.compass{position:fixed;right:calc(var(--gutter)/2 - 24px);bottom:34px;width:48px;height:48px;z-index:3;pointer-events:none;opacity:.55;mix-blend-mode:multiply}
.compass img{width:100%;height:100%;transform-origin:50% 50%}
@media(max-width:900px){.meridian,.compass{display:none}}
.reg{position:absolute;width:11px;height:11px;pointer-events:none;opacity:.6;z-index:4}
.reg::before,.reg::after{content:"";position:absolute;background:var(--crimson)}
.reg::before{width:11px;height:1px;top:0;left:0}
.reg::after{width:1px;height:11px;top:0;left:0}
.reg--tl{top:26px;left:calc(var(--gutter) - 14px)}
.reg--tr{top:26px;right:calc(var(--gutter) - 14px);transform:scaleX(-1)}

/* ---------------- PHOTO SYSTEM ---------------- */
.shot{position:relative;overflow:hidden;background:#151515;isolation:isolate}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease),filter 1s var(--ease)}
.shot:hover img{transform:scale(1.045)}
.shot::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(241,237,228,.14);
}
.shot__cap{
  position:absolute;left:16px;bottom:14px;z-index:3;
  font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;
  color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.7);
}
.shot__cap::before{content:"";display:inline-block;width:14px;height:1px;background:var(--crimson);margin-right:9px;vertical-align:middle}
/* designed fallback if a remote image fails */
.ph{
  width:100%;height:100%;min-height:220px;position:relative;
  background:
    radial-gradient(120% 100% at 20% 0%,rgba(170,0,0,.55),transparent 60%),
    linear-gradient(160deg,#1C1C1C,#0B0B0B);
  display:flex;align-items:center;justify-content:center;padding:28px;text-align:center;
}
.ph::after{
  content:"";position:absolute;inset:0;opacity:.35;
  background-image:linear-gradient(rgba(241,237,228,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(241,237,228,.06) 1px,transparent 1px);
  background-size:26px 26px;
}
.ph span{position:relative;z-index:2;font:700 10px/1.9 Arial;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,237,228,.75);max-width:30ch}

/* ---------------- HEADER ---------------- */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--crimson);width:0;z-index:60}
header{position:fixed;top:0;left:0;right:0;z-index:50;padding:15px 0;border-bottom:1px solid transparent;transition:background .4s var(--ease),padding .4s var(--ease),border-color .4s var(--ease)}
header.solid{background:rgba(11,11,11,.93);backdrop-filter:blur(14px);padding:8px 0;border-bottom-color:rgba(241,237,228,.12)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:nowrap}
.mark{display:flex;align-items:center;flex:none}
.mark img{height:32px;width:auto;display:block;transition:height .4s var(--ease)}
header.solid .mark img{height:26px}
.mark--ft img{height:46px}
@media(max-width:1180px){.mark img,header.solid .mark img{height:28px}}
.nav__links{display:flex;align-items:center;gap:clamp(14px,1.5vw,22px);flex:none}
.nav__links a{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:rgba(241,237,228,.78);position:relative;padding:5px 0;white-space:nowrap;transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--crimson);transition:width .35s var(--ease)}
.nav__links a:hover{color:var(--egg)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{width:100%}
.nav__links a[aria-current="page"]{color:var(--egg)}
.ext::after{display:none!important}
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--body);font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  padding:17px 32px;border:1px solid transparent;border-radius:999px;
  background:var(--crimson);color:#fff;cursor:pointer;
  transition:background .35s var(--ease),transform .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease);
}
.btn::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(105deg,transparent 32%,rgba(255,255,255,.55) 48%,rgba(255,255,255,.18) 56%,transparent 70%);
  transform:translateX(-115%);
}
.btn:hover::after,.btn:focus-visible::after{animation:sheen .85s var(--ease) forwards}
@keyframes sheen{to{transform:translateX(115%)}}
.btn:hover{background:var(--crimson-dark);transform:translateY(-2px);box-shadow:0 12px 30px rgba(170,0,0,.28)}
.btn .tick{width:14px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.btn:hover .tick{width:26px}
.btn--ghost{background:transparent;border-color:rgba(241,237,228,.34);color:var(--egg);backdrop-filter:blur(2px)}
.btn--ghost:hover{background:rgba(241,237,228,.1);border-color:var(--egg);color:var(--egg);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.btn--ghost::after{background:linear-gradient(105deg,transparent 32%,rgba(255,255,255,.30) 48%,transparent 70%)}
.btn--ink{background:var(--ink);color:var(--egg)}
.btn--ink:hover{background:var(--crimson);box-shadow:0 12px 30px rgba(170,0,0,.3)}
.btn--sm{padding:13px 24px}
/* header CTA — compact so the nav holds one line */
.nav .btn{font-size:10px;letter-spacing:.1em;padding:11px 20px;gap:8px;white-space:nowrap;flex:none}
.nav .btn .tick{width:10px}
.nav .btn:hover .tick{width:18px}
.btn--lg{padding:20px 40px;font-size:13px}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;flex:none}
.burger span{display:block;width:24px;height:2px;background:var(--egg);margin:5px 0}
@media(max-width:1180px){
  .nav__links,.nav>.btn{display:none}
  .burger{display:block}
  header{background:rgba(11,11,11,.93);backdrop-filter:blur(14px);padding:12px 0}
  .mobile{position:fixed;inset:0;background:var(--ink);z-index:49;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 var(--gutter);transform:translateY(-100%);transition:transform .55s var(--ease)}
  .mobile.open{transform:translateY(0)}
  .mobile a{font-family:var(--display);font-size:30px;color:var(--egg);padding:12px 0;border-bottom:1px solid rgba(241,237,228,.1)}
  .mobile .btn{margin-top:26px;justify-content:center;font-family:var(--body);font-size:12px}
}
@media(min-width:1181px){.mobile{display:none}}

/* ---------------- HERO ---------------- */
.hero{min-height:100svh;display:flex;align-items:flex-end;padding:0 0 clamp(46px,5.5vw,74px);position:relative;overflow:hidden}
.hero__media{position:absolute;inset:-10% 0 -10% 0;z-index:0;will-change:transform}
.hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.02) contrast(1.02) brightness(.95)}
/* light, warm scrim — readable but INVITING. no black wash. */
.hero__scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(11,11,11,.62) 0%,rgba(11,11,11,.14) 30%,rgba(11,11,11,.20) 52%,rgba(11,11,11,.90) 100%),
    linear-gradient(92deg,rgba(11,11,11,.72) 0%,rgba(11,11,11,.30) 45%,rgba(11,11,11,0) 78%);
}
.hero__inner{position:relative;z-index:3;width:100%}
.hero h1{max-width:14ch;margin:24px 0 0;text-shadow:0 2px 30px rgba(0,0,0,.45)}
.hero h1 .em{color:var(--crimson-lt);font-style:italic}
.hero .lede{margin-top:24px;text-shadow:0 1px 16px rgba(0,0,0,.6)}
.hero__cta{display:flex;flex-wrap:wrap;gap:13px;margin-top:34px}
.cue{position:absolute;right:var(--gutter);bottom:clamp(46px,5.5vw,74px);z-index:3;writing-mode:vertical-rl;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--egg-45);display:flex;align-items:center;gap:14px}
.cue::after{content:"";width:1px;height:52px;background:linear-gradient(180deg,var(--crimson-lt),transparent);animation:cue 2.4s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:900px){.cue{display:none}}

.rise{display:block;overflow:hidden}
.rise>span{display:block;transform:translateY(105%);transition:transform 1.05s var(--ease)}
.ready .rise>span{transform:translateY(0)}
.ready .rise:nth-child(2)>span{transition-delay:.09s}
.ready .rise:nth-child(3)>span{transition-delay:.18s}
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.ready .fade-up{opacity:1;transform:none}
.ready .d1{transition-delay:.34s}.ready .d2{transition-delay:.46s}.ready .d3{transition-delay:.58s}

/* ---------------- LEDGER ---------------- */
.ledger{background:var(--ink);border-top:1px solid var(--rule-lt)}
.ledger__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.ledger__cell{padding:clamp(32px,3.6vw,50px) clamp(18px,2.2vw,34px);border-right:1px solid var(--rule-lt);position:relative;overflow:hidden}
.ledger__cell:last-child{border-right:0}
.ledger__cell::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--crimson);transition:width 1.1s var(--ease)}
.ledger__cell.in::before{width:100%}
.ledger__num{font-family:var(--display);font-size:clamp(36px,4.2vw,56px);color:var(--egg);line-height:1;display:block}
.ledger__num .u{color:var(--crimson-lt);font-size:.5em;vertical-align:super;margin-left:2px}
.ledger__lbl{margin-top:13px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--egg-45);font-weight:700}
.ledger__note{margin-top:7px;font-size:13px;color:rgba(241,237,228,.38);line-height:1.5}
@media(max-width:900px){
  .ledger__grid{grid-template-columns:repeat(2,1fr)}
  .ledger__cell:nth-child(2n){border-right:0}
  .ledger__cell:nth-child(-n+2){border-bottom:1px solid var(--rule-lt)}
}

/* ---------------- REVEAL ---------------- */
.rv{opacity:0;transform:translateY(28px);transition:opacity .95s var(--ease),transform .95s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.1s}.rv[data-d="2"]{transition-delay:.2s}
.rv[data-d="3"]{transition-delay:.3s}.rv[data-d="4"]{transition-delay:.4s}
.drawn{height:1px;background:var(--rule);position:relative}
.drawn::after{content:"";position:absolute;left:0;top:0;height:1px;width:0;background:var(--crimson);transition:width 1.4s var(--ease)}
.drawn.in::after{width:100%}

/* ---------------- THESIS (image-led) ---------------- */
.thesis{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,5vw,80px);align-items:center}
.thesis__shot{aspect-ratio:4/5}
.thesis__stmt{font-family:var(--display);font-size:clamp(25px,2.8vw,40px);line-height:1.24;letter-spacing:-.015em}
.thesis__stmt .hi{background-image:linear-gradient(var(--crimson),var(--crimson));background-repeat:no-repeat;background-position:0 92%;background-size:0 2px;transition:background-size 1.2s var(--ease) .35s}
.thesis__stmt.in .hi{background-size:100% 2px}
.thesis__body p{margin-top:22px;color:var(--ink-70);max-width:56ch}
@media(max-width:900px){.thesis{grid-template-columns:1fr}}

/* ---------------- GALLERY (parallax mosaic) ---------------- */
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.6vw,22px);margin-top:clamp(40px,5vw,64px)}
.gal .shot{will-change:transform}
.g1{grid-column:span 5;aspect-ratio:4/5}
.g2{grid-column:span 4;aspect-ratio:3/4;margin-top:clamp(28px,4vw,64px)}
.g3{grid-column:span 3;aspect-ratio:2/3}
.g4{grid-column:span 7;aspect-ratio:16/9}
.g5{grid-column:span 5;aspect-ratio:5/4;margin-top:clamp(-64px,-4vw,-28px)}
@media(max-width:900px){
  .gal{grid-template-columns:repeat(2,1fr)}
  .g1,.g2,.g3,.g4,.g5{grid-column:span 1;aspect-ratio:4/5;margin-top:0}
  .g4{grid-column:span 2;aspect-ratio:16/9}
}

/* ---------------- MAP ---------------- */
.map{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.map__plate{position:relative;background:#0F0F0F;border:1px solid var(--rule-lt);padding:clamp(16px,2vw,28px)}
.map__svg{width:100%;height:auto;display:block;overflow:visible}
.cty-q{fill:#1A1A1A;stroke:#2A2A2A;stroke-width:.6}
.map__outline{fill:none;stroke:rgba(241,237,228,.28);stroke-width:1.2}
.cty-f{fill:#6E6E6E;stroke:var(--crimson);stroke-width:1.2;stroke-dasharray:5 3;transition:fill .4s var(--ease)}
.cty-s{fill:rgba(170,0,0,.28);stroke:var(--crimson-lt);stroke-width:1;stroke-dasharray:4 3;filter:url(#liftSoft);transition:fill .4s var(--ease),transform .5s var(--ease)}
.cty-a{fill:var(--crimson);stroke:#FF9B9B;stroke-width:1;filter:url(#lift);transform:translateY(0);transform-box:fill-box;transform-origin:center;transition:transform .55s var(--ease),fill .4s var(--ease);opacity:0}
.map__plate.in .cty-a{opacity:1;transform:translateY(-6px)}
.map__plate.in .cty-a:nth-child(1){transition-delay:.05s}
.map__plate.in .cty-a:nth-child(2){transition-delay:.15s}
.map__plate.in .cty-a:nth-child(3){transition-delay:.25s}
.map__plate.in .cty-a:nth-child(4){transition-delay:.35s}
.cty-a.hot{fill:#D40000;transform:translateY(-11px)}
.cty-s.hot{fill:rgba(232,106,106,.5)}
.cty-f.hot{fill:#8C8C8C;stroke:var(--crimson-lt)}
.pin{transition:r .35s var(--ease),fill .35s var(--ease)}
.pin--a{fill:#fff;stroke:var(--crimson);stroke-width:1.5}
.pin--s{fill:var(--crimson-lt);stroke:rgba(11,11,11,.6);stroke-width:1}
.pin--f{fill:rgba(241,237,228,.55);stroke:none}
.pin.hot{fill:#fff;r:7}
.map__n{fill:var(--egg-45);font:700 10px Arial;letter-spacing:.2em;text-anchor:end}
.map__cap{margin-top:14px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,237,228,.35)}

.cties{list-style:none;margin-top:26px}
.cties li{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--rule-lt);cursor:default;transition:padding-left .35s var(--ease),background .35s var(--ease)}
.cties li:hover{padding-left:10px;background:rgba(241,237,228,.03)}
.cties .cty{font-family:var(--display);font-size:18px;color:var(--egg);flex:1;line-height:1.3}
.cties .cty i{display:block;font-style:normal;font-family:var(--body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--egg-45);margin-top:4px}
.cties .st{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:5px 10px;border:1px solid;white-space:nowrap}
.st--a{color:var(--crimson-lt);border-color:rgba(232,106,106,.45);background:rgba(170,0,0,.18)}
.st--s{color:var(--crimson-lt);border-color:rgba(232,106,106,.3)}
.st--f{color:var(--egg-45);border-color:rgba(241,237,228,.2)}
.cties__h{
  display:flex;align-items:center;gap:12px;margin:30px 0 4px;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--crimson-lt);
}
.cties__h:first-child{margin-top:0}
.cties__h::after{content:"";flex:1;height:1px;background:var(--rule-lt)}
.cties__h.q{color:var(--egg-45)}
@media(max-width:900px){.map{grid-template-columns:1fr}}

/* ---------------- SEQUENCE ---------------- */
.seq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,80px);align-items:start}
.seq__sticky{position:sticky;top:118px}
.seq__shot{aspect-ratio:3/4;margin-bottom:26px}
.seq__count{font-family:var(--display);font-size:clamp(56px,7vw,92px);line-height:.9;color:var(--crimson);display:block}
.seq__count .of{color:var(--ink-45);font-size:.3em;vertical-align:super}
.seq__now{margin-top:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink-45)}
.step{padding:clamp(32px,4vw,54px) 0;border-top:1px solid var(--rule);position:relative;opacity:.32;transition:opacity .6s var(--ease)}
.step:last-child{border-bottom:1px solid var(--rule)}
.step.active{opacity:1}
.step::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--crimson);transition:width .8s var(--ease)}
.step.active::before{width:64px}
.step__k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--crimson);display:block;margin-bottom:12px}
.step p{margin-top:12px;color:var(--ink-70);max-width:50ch}
@media(max-width:900px){.seq{grid-template-columns:1fr}.seq__sticky{position:static}.seq__shot{display:none}.step{opacity:1}}

/* ---------------- PILLARS (image cards) ---------------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,26px);margin-top:clamp(40px,5vw,64px)}
.pcard{background:#131313;border:1px solid var(--rule-lt);overflow:hidden;transition:transform .55s var(--ease),border-color .55s var(--ease)}
.pcard:hover{transform:translateY(-8px);border-color:rgba(232,106,106,.4)}
.pcard .shot{aspect-ratio:16/10}
.pcard__b{padding:clamp(24px,2.6vw,36px)}
.pcard h3{margin-bottom:12px}
.pcard p{color:var(--egg-70);font-size:15px;line-height:1.65}
.pcard__k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--crimson-lt);display:block;margin-bottom:14px}
@media(max-width:900px){.pillars{grid-template-columns:1fr}}

/* ---------------- RECOGNITION ---------------- */
.recog{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,80px);align-items:start}
.awards{list-style:none}
.awards li{padding:22px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:82px 1fr;gap:22px;align-items:baseline}
.awards li:last-child{border-bottom:1px solid var(--rule)}
.awards .yr{font-family:var(--display);font-size:17px;color:var(--crimson)}
.awards .aw b{font-weight:400;font-family:var(--display);font-size:18px;display:block;margin-bottom:3px}
.awards .aw span{color:var(--ink-45);font-size:13px}
.book{border:1px solid var(--rule);background:#fff;overflow:hidden}
.bookcover{position:relative;background:#0B0B0B;padding:clamp(30px,3.4vw,46px);display:flex;justify-content:center;overflow:hidden}
.bookcover::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 40%,rgba(170,0,0,.18),transparent 70%);pointer-events:none}
.bookcover img{
  width:min(230px,58%);height:auto;position:relative;z-index:2;
  box-shadow:0 24px 54px rgba(0,0,0,.66),0 2px 0 rgba(255,255,255,.06);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.book:hover .bookcover img{transform:translateY(-8px) rotate(-1.4deg);box-shadow:0 34px 70px rgba(0,0,0,.75)}
.book .shot{aspect-ratio:16/9}
.book__b{padding:clamp(26px,3vw,40px);position:relative}
.book__b::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--crimson)}
.book h3{margin:14px 0 10px}
.book p{color:var(--ink-70);font-size:15px;margin-bottom:20px}
.book a{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--crimson);display:inline-flex;gap:9px;align-items:center;transition:gap .3s var(--ease)}
.book a:hover{gap:16px}
@media(max-width:900px){.recog{grid-template-columns:1fr}}

/* ---------------- Q&A ---------------- */
.qa{border-top:1px solid var(--rule)}
.qa__item{border-bottom:1px solid var(--rule);padding:clamp(28px,3.2vw,42px) 0;display:grid;grid-template-columns:.9fr 1.6fr;gap:clamp(22px,4vw,60px)}
.qa__q{font-family:var(--display);font-size:clamp(19px,1.8vw,25px);line-height:1.28}
.qa__a{color:var(--ink-70);font-size:16px;line-height:1.72;max-width:62ch}
.qa__a strong{color:var(--ink);font-weight:400;box-shadow:inset 0 -2px 0 rgba(170,0,0,.22)}
@media(max-width:900px){.qa__item{grid-template-columns:1fr;gap:12px}}

/* ---------------- CTA ---------------- */
.cta{position:relative;overflow:hidden;background:var(--crimson);color:#fff}
.cta__media{position:absolute;inset:0;z-index:0;opacity:.22}
.cta__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.cta__inner{position:relative;z-index:3;text-align:center;padding:clamp(80px,9vw,138px) 0}
.cta h2{color:#fff;max-width:18ch;margin:20px auto 0}
.cta .lede{color:rgba(255,255,255,.86);margin:22px auto 0;text-align:center}
.cta .eyebrow{color:rgba(255,255,255,.75);justify-content:center}
.cta .eyebrow::before{background:rgba(255,255,255,.75)}
.cta .eyebrow .bearing{color:rgba(255,255,255,.55)}
.cta__cta{display:flex;justify-content:center;flex-wrap:wrap;gap:13px;margin-top:34px}
.cta .btn{background:var(--ink);color:var(--egg)}
.cta .btn:hover{background:#fff;color:var(--ink);box-shadow:0 14px 34px rgba(0,0,0,.32)}
.cta .btn--ghost{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.cta .btn--ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.cta__rose{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:38%;opacity:.10;z-index:2}
.cta__rose img{width:100%;height:auto}

/* ---------------- FOOTER ---------------- */
footer{background:var(--ink);color:var(--egg-70);padding:clamp(60px,7vw,92px) 0 32px}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(26px,4vw,52px)}
.foot h4{font-family:var(--body);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--egg);margin-bottom:20px;font-weight:700}
.foot p,.foot a,.foot li{font-size:14px;line-height:1.85;color:var(--egg-70)}
.foot a:hover{color:var(--crimson-lt)}
.foot ul{list-style:none}
.foot__brand p{max-width:32ch;margin-top:20px}
.foot__brand .btn{margin-top:24px}
.foot__addr{margin-bottom:18px}
.foot__addr b{display:block;color:rgba(241,237,228,.9);font-weight:400;font-family:var(--display);font-size:15px;margin-bottom:2px}
.foot__soon{color:var(--crimson-lt);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.foot__bar{margin-top:clamp(44px,5vw,72px);padding-top:24px;border-top:1px solid var(--rule-lt);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;color:rgba(241,237,228,.4)}
.foot__bar a{font-size:12px}
@media(max-width:900px){.foot{grid-template-columns:1fr 1fr}.foot__brand{grid-column:1/-1}}
@media(max-width:560px){.foot{grid-template-columns:1fr}}

/* ---------------- SERVICES ---------------- */
.phero{padding:clamp(148px,16vw,224px) 0 clamp(66px,7vw,104px);position:relative;overflow:hidden}
.phero__media{position:absolute;inset:0;z-index:0}
.phero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.92)}
.phero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(94deg,rgba(11,11,11,.92) 26%,rgba(11,11,11,.45) 66%,rgba(11,11,11,.18) 100%),linear-gradient(180deg,rgba(11,11,11,.7),rgba(11,11,11,.25) 40%,rgba(11,11,11,.6))}
.phero__inner{position:relative;z-index:3}
.crumb{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--egg-45);margin-bottom:26px}
.crumb a:hover{color:var(--crimson-lt)}
.crumb span{margin:0 10px;opacity:.5}
.phero h1{max-width:15ch;margin-top:22px}
.phero .lede{margin-top:22px}

.scope{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.8vw,26px);margin-top:clamp(40px,5vw,64px)}
.scard{border:1px solid var(--rule);background:#fff;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.scard:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(11,11,11,.10)}
.scard .shot{aspect-ratio:21/9}
.scard__b{padding:clamp(24px,2.8vw,38px)}
.scard__n{font-size:10px;letter-spacing:.2em;font-weight:700;color:var(--crimson);display:block;margin-bottom:14px}
.scard h3{margin-bottom:14px}
.scard ul{list-style:none}
.scard li{font-size:15px;line-height:1.5;padding:9px 0 9px 20px;position:relative;color:var(--ink-70);border-top:1px solid rgba(11,11,11,.07)}
.scard li:first-child{border-top:0}
.scard li::before{content:"";position:absolute;left:0;top:17px;width:8px;height:1px;background:var(--crimson)}
@media(max-width:900px){.scope{grid-template-columns:1fr}}

.fit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,26px);margin-top:clamp(40px,5vw,60px)}
.fcol{background:#131313;border:1px solid var(--rule-lt);padding:clamp(28px,3.2vw,44px)}
.fcol h3{margin-bottom:20px;font-size:21px}
.fcol ul{list-style:none}
.fcol li{font-size:15px;line-height:1.6;padding:12px 0 12px 26px;position:relative;color:var(--egg-70);border-top:1px solid rgba(241,237,228,.09)}
.fcol li:first-child{border-top:0}
.fit--y{border-color:rgba(232,106,106,.35)}
.fit--y h3{color:var(--crimson-lt)}
.fit--y li::before{content:"";position:absolute;left:0;top:19px;width:11px;height:1px;background:var(--crimson-lt)}
.fit--n li::before{content:"";position:absolute;left:0;top:14px;width:11px;height:11px;border:1px solid rgba(241,237,228,.22)}
@media(max-width:900px){.fit{grid-template-columns:1fr}}

.strip{position:relative;height:clamp(320px,42vh,480px);overflow:hidden}
.strip img{width:100%;height:120%;object-fit:cover;will-change:transform}
.strip__ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,11,.85),rgba(11,11,11,.25) 70%,rgba(170,0,0,.25));display:flex;align-items:center}
.strip__ov .wrap{width:100%}
.strip q{display:block;font-family:var(--display);font-size:clamp(24px,3vw,44px);line-height:1.24;color:var(--egg);max-width:22ch;quotes:none}
.strip cite{display:block;margin-top:20px;font-style:normal;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--egg-45)}


/* ================= ABOUT ================= */
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.story__shot{aspect-ratio:5/6}
.story p{margin-top:20px;color:var(--ink-70);max-width:56ch}
.story p:first-of-type{margin-top:0}
@media(max-width:900px){.story{grid-template-columns:1fr}}

.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-lt);margin-top:clamp(40px,5vw,64px)}
.fig{background:var(--ink);padding:clamp(28px,3vw,42px)}
.fig b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(34px,3.8vw,52px);color:var(--crimson-lt);line-height:1}
.fig span{display:block;margin-top:12px;font-size:13px;line-height:1.55;color:var(--egg-70)}
@media(max-width:900px){.figs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.figs{grid-template-columns:1fr}}

.entity{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;border:1px solid var(--rule);padding:clamp(30px,4vw,56px);border-radius:28px;background:#fff}
.entity h3{margin-bottom:14px}
.entity p{color:var(--ink-70);font-size:15px;margin-top:12px}
.entity__tree{display:flex;flex-direction:column;gap:10px}
.ent{border:1px solid var(--rule);border-radius:999px;padding:16px 26px;display:flex;align-items:center;gap:14px;font-size:14px}
.ent b{font-family:var(--display);font-weight:400;font-size:17px}
.ent--p{background:var(--ink);color:var(--egg);border-color:var(--ink)}
.ent--c{margin-left:clamp(16px,3vw,40px);border-color:var(--crimson);color:var(--crimson)}
.ent__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
@media(max-width:900px){.entity{grid-template-columns:1fr}}

/* ================= FORMS ================= */
.formwrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
@media(max-width:900px){.formwrap{grid-template-columns:1fr}}
.form{display:grid;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink-45)}
.field input,.field textarea,.field select{
  font-family:var(--body);font-size:16px;color:var(--ink);
  background:#fff;border:1px solid var(--rule);border-radius:14px;
  padding:15px 18px;outline:none;transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--crimson);box-shadow:0 0 0 3px rgba(170,0,0,.10)}
.field--2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:560px){.field--2{grid-template-columns:1fr}}
.radios{display:flex;gap:10px;flex-wrap:wrap}
.radios label{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  border:1px solid var(--rule);border-radius:999px;padding:12px 20px;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-70);
  background:#fff;transition:border-color .3s,color .3s,background .3s;
}
.radios label:has(input:checked){border-color:var(--crimson);color:var(--crimson);background:rgba(170,0,0,.05)}
.radios input{accent-color:var(--crimson)}
.formnote{font-size:13px;color:var(--ink-45);margin-top:4px}
.form .btn{justify-self:start;margin-top:6px}

.contactcard{border:1px solid var(--rule);border-radius:24px;background:#fff;padding:clamp(26px,3vw,40px);margin-bottom:18px;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.contactcard:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(11,11,11,.09)}
.contactcard h3{margin-bottom:6px}
.contactcard .tag{font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--crimson);display:block;margin-bottom:14px}
.contactcard address{font-style:normal;color:var(--ink-70);font-size:15px;line-height:1.75}
.contactcard .soon{display:inline-block;margin-top:10px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--crimson);border:1px solid rgba(170,0,0,.3);border-radius:999px;padding:6px 14px}
.portalcard{background:var(--ink);color:var(--egg);border-radius:24px;padding:clamp(26px,3vw,40px);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.portalcard h3{color:var(--egg);margin-bottom:6px}
.portalcard p{color:var(--egg-70);font-size:14px;max-width:40ch}

/* ================= RESOURCES ================= */
.gate{
  position:relative;border-radius:32px;overflow:hidden;background:var(--ink);color:var(--egg);
  display:grid;grid-template-columns:1.05fr .95fr;align-items:center;
}
.gate__media{position:relative;height:100%;min-height:340px}
.gate__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.8)}
.gate__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 40%,var(--ink) 96%)}
.gate__b{padding:clamp(30px,4vw,60px)}
.gate__b h2{margin:18px 0 14px}
.gate__b .lede{color:var(--egg-70);margin-bottom:26px}
.gate .field label{color:var(--egg-45)}
.gate .field input{background:rgba(241,237,228,.06);border-color:rgba(241,237,228,.2);color:var(--egg);border-radius:999px;padding:16px 22px}
.gate .field input::placeholder{color:rgba(241,237,228,.35)}
.gate .field input:focus{border-color:var(--crimson-lt);box-shadow:0 0 0 3px rgba(170,0,0,.25)}
.gate .check{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:var(--egg-70);line-height:1.5}
.gate .check input{accent-color:var(--crimson);margin-top:3px}
@media(max-width:900px){.gate{grid-template-columns:1fr}.gate__media{min-height:220px}}

.locks{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,24px);margin-top:clamp(40px,5vw,60px)}
.lock{
  position:relative;border:1px solid var(--rule);border-radius:22px;background:#fff;
  padding:clamp(24px,2.8vw,36px);overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.lock:hover{transform:translateY(-6px);box-shadow:0 20px 46px rgba(11,11,11,.09);border-color:rgba(170,0,0,.3)}
.lock__i{width:32px;height:32px;margin-bottom:20px;color:var(--crimson)}
.lock h3{font-size:20px;margin-bottom:10px}
.lock p{font-size:14px;color:var(--ink-70);line-height:1.6}
.lock__c{margin-top:18px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--ink-45);display:flex;align-items:center;gap:8px}
.lock__c::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--crimson);opacity:.4}
@media(max-width:900px){.locks{grid-template-columns:1fr}}

/* ================= BLOG ================= */
.feat{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;margin-top:clamp(36px,4.5vw,56px)}
.feat .shot{aspect-ratio:16/10;border-radius:24px}
.feat__tag{display:inline-flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--crimson);margin-bottom:18px}
.feat h2{margin-bottom:18px}
.feat p{color:var(--ink-70);max-width:52ch;margin-bottom:24px}
.meta{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.meta span{display:flex;align-items:center;gap:14px}
.meta span::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--crimson);opacity:.5}
.meta span:last-child::after{display:none}
@media(max-width:900px){.feat{grid-template-columns:1fr}}

.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px);margin-top:clamp(40px,5vw,64px)}
.post{border:1px solid var(--rule);border-radius:24px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.post:hover{transform:translateY(-7px);box-shadow:0 22px 50px rgba(11,11,11,.10)}
.post .shot{aspect-ratio:16/10}
.post__b{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;flex:1}
.post__cat{font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--crimson);margin-bottom:14px}
.post h3{font-size:21px;margin-bottom:12px;line-height:1.24}
.post p{font-size:14px;color:var(--ink-70);line-height:1.6;flex:1}
.post .meta{margin-top:20px;font-size:11px}
@media(max-width:900px){.posts{grid-template-columns:1fr}}

/* ================= ARTICLE ================= */
.article{max-width:74ch;margin:0 auto}
.article p{margin-top:24px;font-size:18px;line-height:1.78;color:rgba(11,11,11,.82)}
.article h2{font-size:clamp(26px,2.6vw,36px);margin-top:52px}
.article h3{margin-top:40px}
.article ul{margin-top:22px;list-style:none}
.article li{padding:10px 0 10px 24px;position:relative;color:var(--ink-70);font-size:17px;line-height:1.6}
.article li::before{content:"";position:absolute;left:0;top:20px;width:11px;height:1px;background:var(--crimson)}
.pull{
  margin:52px 0;padding:34px 0 34px 34px;border-left:3px solid var(--crimson);
  font-family:var(--display);font-size:clamp(22px,2.3vw,31px);line-height:1.32;color:var(--ink);
}
.article__lead{font-size:21px!important;line-height:1.6!important;color:var(--ink-70)!important}
.byline{display:flex;align-items:center;gap:16px;padding:22px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:36px}
.byline__m{width:38px;height:38px;border-radius:50%;background:var(--crimson);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--display);font-size:16px}
.byline b{font-family:var(--display);font-weight:400;font-size:16px;display:block}
.byline span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45)}

.page{display:none}
.page.live{display:block}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .btn::after{display:none}
  .rv,.fade-up{opacity:1!important;transform:none!important}
  .rise>span{transform:none!important}
  .step{opacity:1!important}
  .cty-a{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}
/* ================= GLOSSARY ================= */
.gtoc{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:8px}
.gchip{
  display:inline-flex;align-items:center;border:1px solid var(--rule);border-radius:999px;
  padding:9px 16px;font-size:12px;color:var(--ink-70);background:#fff;
  transition:border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
}
.gchip:hover{border-color:var(--crimson);color:var(--crimson);transform:translateY(-2px)}
.glist{border-top:1px solid var(--rule);margin-top:18px}
.gterm{
  border-bottom:1px solid var(--rule);padding:clamp(26px,3vw,38px) 0;
  display:grid;grid-template-columns:.85fr 1.6fr;gap:clamp(24px,4vw,60px);
  scroll-margin-top:110px;
}
.gterm__t{font-family:var(--display);font-size:clamp(20px,1.9vw,25px);line-height:1.25;margin-bottom:10px}
.gterm__s{font-size:14px;color:var(--crimson);line-height:1.5;display:block}
.gterm__d{color:var(--ink-70);font-size:16px;line-height:1.75;max-width:64ch}
.gterm:target .gterm__t{color:var(--crimson)}
@media(max-width:900px){.gterm{grid-template-columns:1fr;gap:14px}}

/* service-area cards reuse .lock */
.lock h3 a:hover{color:var(--crimson)}
