/* ===== Cairn — umbrella site ===== */
:root{
  --ink:#16211c;        /* deep pine — text on light */
  --ink-soft:#42504a;
  --paper:#f4f1ea;      /* warm stone */
  --paper-2:#ece7dc;
  --deep:#0d1512;       /* near-black pine — dark sections */
  --deep-2:#152019;
  --gold:#c8a15a;       /* dawn light — on-dark only */
  --gold-soft:#dcc08a;
  --gold-ink:#8a6a24;   /* deep bronze — for gold text on light (AA) */
  --slate:#4d6a73;      /* alpine — darkened for AA on paper */
  --mist:#a9b7b0;
  --line:rgba(22,33,28,.12);
  --line-light:rgba(255,255,255,.14);
  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --wrap:1180px;
  --r:16px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.12;letter-spacing:-.005em;margin:0}
em{font-style:italic}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;width:100%}
@media(max-width:400px){.wrap{padding:0 18px}}

/* focus visibility */
a:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.skip-link{position:absolute;left:-999px;top:0;background:var(--deep);color:#fff;padding:12px 18px;z-index:100;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* ---------- buttons ---------- */
.btn{
  --pad:15px 26px;display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.01em;
  padding:var(--pad);border-radius:100px;text-decoration:none;cursor:pointer;
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease);
  border:1px solid transparent;white-space:nowrap;
}
.btn--gold{background:var(--gold);color:#241a08;box-shadow:0 10px 30px -12px rgba(200,161,90,.7)}
.btn--gold:hover{background:var(--gold-soft);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn--ghost:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.btn--ghost-dark{color:var(--ink);border-color:var(--line)}
.btn--ghost-dark:hover{background:rgba(22,33,28,.06)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,4vw,44px);
  transition:background .35s var(--ease),box-shadow .35s var(--ease),padding .35s var(--ease);
}
.nav.solid{background:rgba(13,21,18,.86);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line-light);padding-top:12px;padding-bottom:12px}
.nav__brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none}
.nav__mark{color:var(--gold);display:flex}
.nav__word{font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:.01em;color:#fff}
.nav__links{display:flex;align-items:center;gap:clamp(14px,2.4vw,30px)}
.nav__links a{color:rgba(255,255,255,.82);text-decoration:none;font-size:14.5px;font-weight:500;transition:color .2s}
.nav__links a:hover{color:#fff}
.nav__cta{border:1px solid rgba(255,255,255,.32);padding:8px 16px;border-radius:100px}
.nav__cta:hover{background:rgba(255,255,255,.12)}
@media(max-width:720px){.nav__links a:not(.nav__cta){display:none}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--deep)}
.hero__bg{position:absolute;inset:-8% 0 0 0;height:120%;will-change:transform}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero__veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(13,21,18,.55) 0%,rgba(13,21,18,.25) 32%,rgba(13,21,18,.72) 78%,rgba(13,21,18,.94) 100%),
  radial-gradient(120% 90% at 20% 30%,transparent 30%,rgba(13,21,18,.5) 100%)}
.hero__inner{position:relative;z-index:3;max-width:var(--wrap);margin:0 auto;padding:120px 24px 90px;width:100%}
.hero__eyebrow{color:var(--gold-soft);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12.5px;margin:0 0 22px}
.hero__title{color:#fff;font-size:clamp(2.4rem,5.6vw,4.8rem);font-weight:700;line-height:1.09;max-width:15ch;text-wrap:balance}
.hero__lead{color:rgba(255,255,255,.82);font-size:clamp(1.05rem,1.7vw,1.32rem);max-width:56ch;margin:28px 0 0;line-height:1.6}
.hero__lead em{color:#fff;font-style:italic}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin:38px 0 0}
.hero__note{color:rgba(255,255,255,.6);font-size:14.5px;font-style:italic;margin:34px 0 0;max-width:52ch;border-left:2px solid var(--gold);padding-left:16px}
.hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.6);font-size:11px;letter-spacing:.22em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:3}
.hero__scroll span{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:drop 2s var(--ease) infinite}
@keyframes drop{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}}

/* ---------- shared section bits ---------- */
.kicker{font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12.5px;color:var(--slate);margin:0 0 18px}
.kicker--light{color:var(--gold-soft)}
.section__head{font-size:clamp(1.7rem,3.6vw,2.9rem);max-width:20ch;line-height:1.12}
.section__head--light{color:#fff}
.section__sub{font-size:clamp(1.02rem,1.5vw,1.18rem);color:var(--ink-soft);max-width:60ch;margin:20px 0 0}
.section__sub--light{color:rgba(255,255,255,.74)}

/* ---------- thesis ---------- */
.thesis{background:var(--paper);padding:clamp(90px,12vw,150px) 0}
.thesis__grid{display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(36px,5vw,68px);align-items:center}
.thesis__head{font-size:clamp(1.55rem,3vw,2.5rem);max-width:24ch;font-weight:400}
.thesis__body{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-soft);max-width:62ch;margin:30px 0 0}
.thesis__law{margin:40px 0 0;font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.7rem);color:var(--ink)}
.thesis__law span{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 8px;font-weight:600}
.thesis__fig{margin:0}
.thesis__fig img{width:100%;border-radius:var(--r);box-shadow:0 30px 60px -30px rgba(22,33,28,.5)}
.thesis__fig figcaption{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:1.02rem;color:var(--slate);text-align:center}
@media(max-width:820px){.thesis__grid{grid-template-columns:1fr}.thesis__fig{max-width:520px}}

/* ---------- interstitial band ---------- */
.band{position:relative;min-height:56vh;display:flex;align-items:center;overflow:hidden;background:var(--deep)}
.band__bg{position:absolute;inset:-8% 0;height:116%;will-change:transform}
.band__bg img{width:100%;height:100%;object-fit:cover}
.band__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,21,18,.85),rgba(13,21,18,.5) 60%,rgba(13,21,18,.7))}
.band__quote{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:0 24px;width:100%;
  font-family:var(--serif);font-style:italic;font-weight:400;color:#fff;
  font-size:clamp(1.5rem,3.4vw,2.6rem);line-height:1.28;max-width:24ch;text-wrap:balance}

/* ---------- path / signature ---------- */
.path{position:relative;min-height:92svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--deep)}
.path__media{position:absolute;inset:-6% 0 0 0;height:112%;will-change:transform}
.path__video{width:100%;height:100%;object-fit:cover}
.path__fallback{position:absolute;inset:0;background:url('assets/img/dissolve.jpg') center/cover no-repeat;z-index:-1}
.path__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,18,.5),rgba(13,21,18,.2) 40%,rgba(13,21,18,.85))}
.path__copy{position:relative;z-index:3;max-width:var(--wrap);margin:0 auto;padding:0 24px clamp(70px,10vw,120px);width:100%}
.path__head{color:#fff;font-size:clamp(1.7rem,4vw,3.1rem);max-width:20ch}
.path__body{color:rgba(255,255,255,.82);font-size:clamp(1.05rem,1.6vw,1.24rem);max-width:56ch;margin:22px 0 0}

/* ---------- engines ---------- */
.engines{background:linear-gradient(180deg,var(--paper),var(--paper-2));padding:clamp(90px,12vw,150px) 0}
.engines__group{font-size:clamp(1.3rem,2.4vw,1.9rem);margin:64px 0 26px;color:var(--ink);display:flex;align-items:center;gap:16px}
.engines__group::after{content:"";flex:1;height:1px;background:var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:22px}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:30px 28px 28px;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(22,33,28,.04);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.card:hover{transform:translateY(-5px);box-shadow:0 26px 50px -28px rgba(22,33,28,.4);border-color:rgba(200,161,90,.5)}
.card__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.card__name{font-size:1.4rem;font-weight:700}
.card__line{font-family:var(--serif);font-style:italic;font-size:1.12rem;color:var(--gold-ink);margin:0 0 12px;line-height:1.3}
.card__desc{font-size:15.2px;color:var(--ink-soft);margin:0 0 18px;line-height:1.62}
.card__caps{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:8px}
.card__caps li{font-size:14px;color:var(--ink);padding-left:20px;position:relative}
.card__caps li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--slate);transform:rotate(45deg)}
.card__link{margin-top:18px;color:var(--ink);font-weight:600;font-size:14.5px;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;align-self:flex-start;transition:color .2s}
.card__link:hover{color:var(--gold-ink)}
.card__meta{margin-top:16px;font-size:12.5px;letter-spacing:.06em;color:var(--slate);text-transform:lowercase}
.pill{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.04em;padding:5px 11px;border-radius:100px;background:var(--paper-2);color:var(--ink-soft);white-space:nowrap;border:1px solid var(--line)}
.pill--live{background:rgba(111,143,114,.16);color:#3c6b45;border-color:rgba(60,107,69,.3)}
.pill--soon{background:rgba(200,161,90,.16);color:#8a6a24;border-color:rgba(200,161,90,.35)}

/* ---------- doctrine ---------- */
.doctrine{background:var(--deep);color:#fff;padding:clamp(90px,12vw,150px) 0;position:relative}
.doctrine::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 80% 0%,rgba(200,161,90,.1),transparent 60%);pointer-events:none}
.tenets{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px;margin:56px 0 0;background:var(--line-light);border:1px solid var(--line-light);border-radius:var(--r);overflow:hidden}
.tenet{background:var(--deep);padding:34px 30px}
.tenet__no{font-family:var(--serif);font-size:14px;color:var(--gold);letter-spacing:.1em}
.tenet h3{font-size:1.28rem;margin:14px 0 12px;color:#fff}
.tenet p{font-size:14.8px;color:rgba(255,255,255,.72);margin:0;line-height:1.6}
.tenet em{color:var(--gold-soft);font-style:italic}

/* ---------- spine ---------- */
.spine{background:var(--paper);padding:clamp(90px,12vw,150px) 0}
.spine__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(36px,5vw,72px);align-items:center}
.spine__cards{display:flex;flex-direction:column;gap:18px}
.spine__card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 30px;border-left:3px solid var(--gold)}
.spine__card h3{font-size:1.45rem;font-weight:700;margin:0 0 10px}
.spine__card p{font-size:15px;color:var(--ink-soft);margin:0;line-height:1.6}
@media(max-width:820px){.spine__grid{grid-template-columns:1fr}}

/* ---------- proof strip ---------- */
.proof{background:var(--deep-2);color:#fff;padding:52px 0;border-top:1px solid var(--line-light)}
.proof__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px}
.proof__item{display:flex;flex-direction:column;gap:6px;min-width:130px;flex:1}
.proof__num{font-family:var(--serif);font-weight:700;font-size:clamp(2.2rem,4vw,3.1rem);color:var(--gold);line-height:1}
.proof__lbl{font-size:13.5px;color:rgba(255,255,255,.68);max-width:20ch}

/* ---------- cta ---------- */
.cta{position:relative;overflow:hidden;background:var(--deep);padding:clamp(96px,14vw,170px) 0;text-align:center}
.cta__bg{position:absolute;inset:-8% 0;height:116%;will-change:transform}
.cta__bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.cta__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,18,.78),rgba(13,21,18,.55) 45%,rgba(13,21,18,.82))}
.cta__inner{position:relative;z-index:2;max-width:760px;margin:0 auto}
.cta__head{font-size:clamp(1.9rem,4vw,3.1rem);max-width:18ch;margin:0 auto;color:#fff}
.cta__body{font-size:clamp(1.05rem,1.6vw,1.22rem);color:rgba(255,255,255,.82);margin:24px auto 0;max-width:52ch}
.cta__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:36px 0 0}

/* ---------- footer ---------- */
.foot{background:var(--deep);color:#fff;padding:70px 0 40px}
.foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.foot__brand .nav__word{font-size:26px}
.foot__brand p{color:rgba(255,255,255,.62);font-size:14.5px;max-width:38ch;margin:14px 0 0;line-height:1.6}
.foot__col{display:flex;flex-direction:column;gap:9px}
.foot__col h3{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 6px}
.foot__col a,.foot__col span{color:rgba(255,255,255,.72);font-size:14.5px;text-decoration:none}
.foot__col a:hover{color:#fff}
.foot__col span{color:rgba(255,255,255,.5)}
.foot__note{grid-column:1/-1;border-top:1px solid var(--line-light);margin-top:22px;padding-top:24px}
.foot__note p{color:rgba(255,255,255,.55);font-size:13px;max-width:92ch;margin:0;line-height:1.6}
.foot__note strong{color:rgba(255,255,255,.8)}
.foot__copy{margin-top:14px !important;color:rgba(255,255,255,.4) !important}
@media(max-width:760px){.foot__grid{grid-template-columns:1fr 1fr}.foot__brand{grid-column:1/-1}}

/* ---------- reveal + parallax ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*70ms)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__bg,.path__media{transform:none !important}
  .hero__scroll span{animation:none}
}

/* ---------- engines: group note + compliance minigrid ---------- */
.engines__groupnote{color:var(--ink-soft);font-size:15.5px;max-width:64ch;margin:-10px 0 26px}
.minigrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.mini{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.mini h4{font-size:1.05rem;margin:0 0 6px}
.mini p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.5}

/* ---------- synergy map ---------- */
.map{background:var(--paper-2);padding:clamp(90px,12vw,150px) 0}
.map__item{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px 36px;margin-top:26px}
.map__item:first-of-type{margin-top:48px}
.map__item h3{font-size:1.45rem;margin:0 0 18px}
.map__item>p{color:var(--ink-soft);font-size:15.5px;line-height:1.7;margin:18px 0 0;max-width:78ch}
.map__item>p:only-of-type{margin-top:0}
.map__item strong{color:var(--ink)}
.flow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.flow__stage{flex:0 1 auto;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 20px;display:flex;flex-direction:column;gap:4px;max-width:34ch}
.flow__when{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.flow__who{font-family:var(--serif);font-weight:700;font-size:1.02rem;line-height:1.4}
.flow__arrow{align-self:center;color:var(--gold-ink);font-size:1.3rem;flex:0 0 auto}
@media(max-width:700px){
  .flow{flex-direction:column;align-items:flex-start}
  .flow__arrow{transform:rotate(90deg);margin-left:22px}
  .map__item{padding:26px 22px}
}

/* ---------- spine card extras ---------- */
.spine__card h3 .pill{vertical-align:middle;margin-left:10px}
.spine__card .card__link{display:inline-block;margin-top:12px;font-family:var(--sans);font-weight:600;font-size:14px;color:var(--gold-ink);text-decoration:none}
.spine__card .card__link:hover{text-decoration:underline}
