/*
Theme Name: Ascend Consulting Partners
Theme URI: https://aconsultingpartner.com/
Author: Brandenacity
Author URI: https://www.brandenacity.com/
Description: Light, ascending. Sage and silver. The Ascend Consulting Partners site - Presence by Proxy - with built-in SEO, JSON-LD, native forms, a 24-question client questionnaire, an after-action review, moderated client reviews and an accessibility panel. No plugins required. Designed and developed by Brandenacity.
Version: 3.0.2
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ascend
Tags: business, consulting, professional, custom-logo, custom-menu, featured-images, accessibility-ready, translation-ready
*/

/* WordPress essentials the design does not otherwise cover. */
.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.alignwide,.alignfull{max-width:none}
img.aligncenter{display:block;margin-inline:auto}
.wp-block-image img{height:auto}

/* ============================================================
   ASCEND CONSULTING PARTNERS — aconsultingpartner.com
   Light, ascending. Sage + silver. Built by Brandenacity.
   Minimum type size anywhere on this site: 15px.
   ============================================================ */

:root{
  /* brand palette (from the brand guide) */
  --slate:#486060;
  --sage:#789060;
  --silver:#A8A8A8;
  --lavender:#C0C0C0;
  --lgray:#D8D8D8;

  /* derived working colours */
  --ink:#20302E;
  --ink-2:#485956;
  --ink-3:#5C6B68;
  --sage-deep:#4E6636;
  --sage-hot:#3F5A28;

  /* signature accent — used only on primary calls to action and key numbers.
     A deep confident blue: it sits opposite the sage on the wheel, so the two
     sharpen each other instead of blending, and it reads financial rather than soft. */
  --accent:#1D5AA8;
  --accent-lift:#2E7BD4;
  --accent-deep:#123A6B;
  --accent-tint:#E9F1FA;
  --accent-line:rgba(29,90,168,.32);
  --sage-lift:#8FA678;
  --sage-tint:#EDF1E7;
  --sage-line:rgba(120,144,96,.34);

  /* silver family */
  --silver-1:#E4E7E5;
  --silver-2:#C9CFCC;
  --silver-3:#A8B0AD;
  --silver-4:#8B9490;
  --silver-sheen:linear-gradient(118deg,#F4F6F4 0%,#C9CFCC 22%,#EDEFEC 42%,#A8B0AD 62%,#E4E7E5 82%,#BFC6C3 100%);

  --paper:#FFFFFF;
  --ivory:#F8F7F3;
  --mist:#F1F3EF;
  --line:rgba(32,48,46,.13);
  --line-soft:rgba(32,48,46,.07);
  --line-silver:rgba(168,176,173,.55);

  /* type */
  --ff-display:'Century Gothic','Questrial','URW Gothic','Poppins',system-ui,sans-serif;
  --ff-body:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;

  --t-micro:clamp(16px,.95rem + .1vw,17px);
  --t-small:clamp(17px,1rem + .2vw,19px);
  --t-body:clamp(18px,1.05rem + .34vw,21px);
  --t-lead:clamp(22px,1.15rem + .9vw,30px);
  --t-h4:clamp(21px,1.1rem + .6vw,27px);
  --t-h3:clamp(25px,1.2rem + 1.3vw,36px);
  --t-h2:clamp(38px,1.6rem + 3.9vw,80px);
  --t-h1:clamp(42px,1.9rem + 5.2vw,96px);
  --t-mega:clamp(44px,1.7rem + 6.2vw,108px);

  /* rhythm */
  --wrap:1420px;
  --pad-x:clamp(22px,5vw,64px);
  --sec-y:clamp(96px,10.5vw,184px);        /* THE vertical rhythm token   */
  --hdr-h:128px;                           /* fixed header clearance      */
  --sec-y-sm:var(--sec-y);                 /* alias: no half-height sections */
  --gap:clamp(24px,3vw,44px);
  --r:8px;
  --r-lg:10px;
  --r-btn:6px;

  /* MOTION — one easing curve, two durations. Nothing else, anywhere. */
  --ease:cubic-bezier(.22,.8,.28,1);
  --ease-out:cubic-bezier(.22,.8,.28,1);   /* alias: identical by design */
  --t-fast:180ms;                          /* hover, focus, state change   */
  --t-slow:700ms;                          /* entrance, reveal             */
  --stagger:90ms;                          /* child delay step             */
  --hvr-lift:6px;

  /* shadows */
  --sh-btn:0 12px 26px -12px rgba(32,48,46,.42), 0 3px 8px -4px rgba(32,48,46,.24);
  --sh-btn-h:0 22px 44px -16px rgba(32,48,46,.5), 0 6px 14px -6px rgba(32,48,46,.28);
  --sh-btn-sage:0 12px 26px -10px rgba(92,113,71,.55), 0 3px 8px -4px rgba(92,113,71,.3);
  --sh-btn-accent:0 12px 26px -10px rgba(18,58,107,.52), 0 3px 8px -4px rgba(18,58,107,.34);
  --sh-btn-accent-h:0 24px 48px -14px rgba(18,58,107,.6), 0 6px 14px -6px rgba(18,58,107,.38);
  --sh-btn-sage-h:0 24px 48px -14px rgba(92,113,71,.62), 0 6px 14px -6px rgba(92,113,71,.34);
  --sh-card:0 26px 60px -30px rgba(32,48,46,.26);
  --logo:url("assets/images/rv-logo.png");
}

.logomark{display:block;background:var(--logo) center/contain no-repeat;aspect-ratio:1200/359}
.logomark--white{filter:brightness(0) invert(1)}

*,*::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(--ivory);color:var(--ink);
  font-family:var(--ff-body);font-size:var(--t-body);font-weight:300;
  line-height:1.62;letter-spacing:.004em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.locked{overflow:hidden}
img,video,iframe{max-width:100%;display:block}
[hidden]{display:none!important}
a{color:inherit}
button{font:inherit;color:inherit}
input,select,textarea{font-family:var(--ff-body);font-size:var(--t-small);line-height:1.5}

h1,h2,h3,h4{font-family:var(--ff-display);font-weight:600;margin:0;color:var(--ink);letter-spacing:-.03em}
h1{font-size:var(--t-h1);line-height:1}
h2{font-size:var(--t-h2);line-height:1.02}
h3{font-size:var(--t-h3);line-height:1.14;letter-spacing:-.022em}
h4{font-size:var(--t-h4);line-height:1.22;letter-spacing:-.018em}
p{margin:0 0 1.15em}
figure,blockquote{margin:0}
p:last-child{margin-bottom:0}
@media (max-width:700px){h1{line-height:1.06}h2{line-height:1.1}}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad-x)}
.wrap--narrow{max-width:1000px}
.wrap--tight{max-width:840px}

.sec{padding-block:var(--sec-y);position:relative}
.sec--sm{padding-block:var(--sec-y-sm)}
.sec--paper{background:var(--paper)}
.sec--ivory{background:var(--ivory)}
.sec--mist{background:var(--mist)}
.sec--tint{background:var(--sage-tint)}
.sec>*{position:relative;z-index:2}
section[id],div[id],article[id]{scroll-margin-top:calc(var(--hdr-h) + 12px)}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:14px 20px;z-index:999;border-radius:0 0 10px 0;font-size:var(--t-small)}
.skip:focus{left:0}

/* ============================================================
   MOVING GRADIENTS
   ============================================================ */
.aura{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.aura i{
  position:absolute;display:block;border-radius:50%;
  filter:blur(58px);opacity:.95;will-change:transform;
}
.aura i:nth-child(1){width:52vw;height:52vw;min-width:420px;min-height:420px;left:-12%;top:-18%;
  background:radial-gradient(circle at 40% 40%,rgba(120,144,96,.6),rgba(120,144,96,0) 70%);
  animation:drift1 15s ease-in-out infinite alternate}
.aura i:nth-child(2){width:46vw;height:46vw;min-width:380px;min-height:380px;right:-10%;top:8%;
  background:radial-gradient(circle at 50% 50%,rgba(168,176,173,.72),rgba(168,176,173,0) 70%);
  animation:drift2 19s ease-in-out infinite alternate}
.aura i:nth-child(3){width:40vw;height:40vw;min-width:320px;min-height:320px;left:32%;bottom:-22%;
  background:radial-gradient(circle at 50% 50%,rgba(72,96,96,.46),rgba(72,96,96,0) 70%);
  animation:drift3 23s ease-in-out infinite alternate}
@keyframes drift1{0%{transform:translate3d(-6vw,-6vh,0) scale(.9)}100%{transform:translate3d(26vw,18vh,0) scale(1.4)}}
@keyframes drift2{0%{transform:translate3d(6vw,0,0) scale(1.3)}100%{transform:translate3d(-24vw,22vh,0) scale(.82)}}
@keyframes drift3{0%{transform:translate3d(4vw,6vh,0) scale(.85)}100%{transform:translate3d(-28vw,-20vh,0) scale(1.45)}}
/* 8.4 — one of the three opener blobs carries the deep blue, so the
   house ramp is present in the opener as well as in the headline. */
.hero__aura i:nth-child(2){background:radial-gradient(circle at 50% 50%,rgba(18,58,107,.72),rgba(18,58,107,0) 70%)}
.aura--dark i:nth-child(1){background:radial-gradient(circle at 40% 40%,rgba(120,144,96,.62),rgba(120,144,96,0) 68%)}
.aura--dark i:nth-child(2){background:radial-gradient(circle at 50% 50%,rgba(168,176,173,.34),rgba(168,176,173,0) 68%)}
.aura--dark i:nth-child(3){background:radial-gradient(circle at 50% 50%,rgba(92,113,71,.5),rgba(92,113,71,0) 68%)}

/* animated gradient sheet used behind whole sections */
.flow{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(115deg,var(--sage-tint) 0%,var(--paper) 26%,var(--silver-1) 48%,var(--paper) 68%,var(--sage-tint) 100%);
  background-size:420% 420%;
  background-position:34% 50%;
  opacity:1;
}
@keyframes flowShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* gradient words */
.grad{
  /* the house ramp: dark green into deep blue, bridged by the brand slate.
     The bridge keeps the midpoint out of the muddy grey-teal a direct
     blue-to-green ramp passes through. */
  background-image:linear-gradient(96deg in oklab,var(--sage-deep) 0%,var(--slate) 24%,var(--accent-deep) 58%,var(--accent) 82%,var(--accent-lift) 100%);
  background-size:230% 100%;background-position:22% 50%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:gradRun 12s ease-in-out infinite;
  padding-bottom:.06em;
}
/* The opener runs over darkened footage, so it carries a lifted version of
   the same green-to-blue ramp rather than the dark one used on light pages. */
.hero .grad{
  background-image:linear-gradient(96deg in oklab,#D9E6C6 0%,#F2F7FF 30%,#9CC8F7 62%,#63A6EC 100%);
  background-size:230% 100%;background-position:22% 50%;
}
.grad--silver{
  background-image:linear-gradient(96deg,#8B9490 0%,#E4E7E5 24%,#A8B0AD 48%,#F2F4F2 72%,#9AA3A0 100%);
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.grad--light{
  background-image:linear-gradient(96deg in oklab,#FFFFFF 0%,#DCE8C8 26%,#FFFFFF 50%,#A9CFF6 76%,#FFFFFF 100%);
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
/* if the browser cannot clip a background to text, fall back to a flat colour */
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .grad,.grad--silver,.grad--light{background-image:none;-webkit-text-fill-color:currentColor;color:var(--sage-deep)}
  .grad--light{color:#D8E4C4}
}
@keyframes gradRun{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* silver hairline */
.hair{height:1px;border:0;background:linear-gradient(90deg,rgba(168,176,173,0),var(--silver-3) 22%,var(--silver-2) 50%,var(--silver-3) 78%,rgba(168,176,173,0));margin:0}

/* ============================================================
   TYPE HELPERS
   ============================================================ */
.eyebrow{
  font-family:var(--ff-body);font-size:var(--t-micro);font-weight:700;
  letter-spacing:.3em;text-transform:uppercase;color:var(--sage-deep);
  margin:0 0 26px;display:flex;align-items:center;gap:16px;
}
.eyebrow::before{content:"";width:52px;height:3px;flex:none;border-radius:3px;
  background:linear-gradient(90deg,var(--sage),var(--silver-3))}

/* ---- caps line with a hairline rule either side ---- */
.capline{
  display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,26px);
  font-family:var(--ff-body);font-size:var(--t-micro);font-weight:700;
  letter-spacing:.34em;text-transform:uppercase;color:var(--sage-deep);margin:0;
}
.capline i{display:block;height:1px;flex:none;width:clamp(30px,9vw,170px);
  background:linear-gradient(90deg,rgba(168,176,173,0),var(--silver-3),rgba(168,176,173,0))}
.capline--sm i{width:clamp(24px,5vw,90px)}
.capline--light{color:#E6EFDA}
.capline--light i{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.6),rgba(255,255,255,0))}
@media (max-width:640px){.capline{flex-wrap:wrap;letter-spacing:.24em;line-height:1.5}.capline i{display:none}}

/* ---- NextLevel-style centred section header ---- */
.bighead{text-align:center;max-width:1160px;margin-inline:auto;margin-bottom:clamp(48px,5.6vw,90px)}
.bighead--left{text-align:left;margin-inline:0}
.bighead__top,.bighead__bot{
  display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,26px);
  font-family:var(--ff-body);font-size:var(--t-micro);font-weight:700;
  letter-spacing:.34em;text-transform:uppercase;
}
.bighead__top{color:var(--sage-deep)}
.bighead__bot{color:var(--ink-3);letter-spacing:.28em;font-weight:600}
.bighead__top::before,.bighead__top::after,
.bighead__bot::before,.bighead__bot::after{
  content:"";height:1px;width:clamp(26px,8vw,140px);flex:none;
  background:linear-gradient(90deg,rgba(168,176,173,0),var(--silver-3),rgba(168,176,173,0));
}
.bighead h2{font-size:var(--t-h2);line-height:.98;letter-spacing:-.038em;margin:clamp(16px,1.6vw,24px) 0}
.bighead h2 em{font-style:normal}
.bighead > p:not([class]){max-width:62ch;margin:clamp(24px,2.6vw,36px) auto 0;font-size:var(--t-lead);color:var(--ink-2);line-height:1.42}
.bighead--left > p:not([class]){margin-inline:0}
.bighead--light .bighead__top{color:#D8E4C4}
.bighead--light h2{color:#fff}
.bighead--light .bighead__bot{color:rgba(255,255,255,.68)}
.bighead--light > p:not([class]){color:rgba(255,255,255,.86)}
@media (max-width:640px){
  .bighead__top,.bighead__bot{flex-wrap:wrap;letter-spacing:.24em;line-height:1.5}
  .bighead__top::before,.bighead__top::after,
  .bighead__bot::before,.bighead__bot::after{display:none}
}
.bighead--light .bighead__top::before,.bighead--light .bighead__top::after,
.bighead--light .bighead__bot::before,.bighead--light .bighead__bot::after{
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.55),rgba(255,255,255,0));
}
.eyebrow--plain::before{display:none}
.lead{font-size:var(--t-lead);line-height:1.4;color:var(--ink-2);font-weight:300;letter-spacing:-.012em}
.muted{color:var(--ink-2)}
.small{font-size:var(--t-small);color:var(--ink-2)}
.micro{font-size:var(--t-micro);color:var(--ink-3);letter-spacing:.02em}
.sage-text{color:var(--sage-deep)}
.rule{height:4px;background:linear-gradient(90deg in oklab,var(--sage-deep),var(--accent) 78%,var(--accent-lift));width:96px;border-radius:4px;margin:28px 0}
.shead{max-width:20ch}
.kicker{
  display:inline-flex;align-items:center;gap:11px;
  font-size:var(--t-micro);font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage-deep);background:var(--sage-tint);
  border:1px solid var(--sage-line);border-radius:var(--r-btn);padding:10px 18px;margin-bottom:24px;
}
.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sage);flex:none;
  box-shadow:0 0 0 0 rgba(120,144,96,.6);animation:pulse 2.6s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(120,144,96,0)}100%{box-shadow:0 0 0 0 rgba(120,144,96,0)}}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --bg:var(--ink);--fg:#fff;--bd:var(--ink);--sh:var(--sh-btn);--shh:var(--sh-btn-h);
  display:inline-flex;align-items:center;gap:14px;
  padding:19px 34px;background:var(--bg);color:var(--fg);
  border:1.5px solid var(--bd);border-radius:var(--r-btn);
  font-family:var(--ff-body);font-size:var(--t-small);font-weight:600;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  position:relative;overflow:hidden;box-shadow:var(--sh);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);
}
.btn__arrow{width:22px;height:11px;flex:none;position:relative;transition:transform var(--t-fast) var(--ease)}
.btn__arrow::before{content:"";position:absolute;inset:0;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 11'%3E%3Cpath d='M0 5.5h19M14.5 1l5 4.5-5 4.5' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 11'%3E%3Cpath d='M0 5.5h19M14.5 1l5 4.5-5 4.5' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.btn::after{
  content:"";position:absolute;inset:0;z-index:0;opacity:0;
  background:linear-gradient(100deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.28) 50%,rgba(255,255,255,0) 80%);
  transform:translateX(-70%);transition:opacity var(--t-fast);
}
.btn:hover::after{opacity:1;animation:sheen 1.05s var(--ease) forwards}
@keyframes sheen{to{transform:translateX(70%)}}
.btn > *{position:relative;z-index:1}
.btn:hover{transform:translateY(-3px);box-shadow:var(--shh)}
.btn:hover .btn__arrow{transform:translateX(6px)}
.btn:active{transform:translateY(-1px)}
.btn:focus-visible{outline:3px solid var(--sage-deep);outline-offset:3px}

.btn--sage{--bg:linear-gradient(120deg in oklab,var(--sage-hot) 0%,var(--sage-deep) 48%,var(--slate) 100%);--bd:transparent;--fg:#fff;--sh:var(--sh-btn-sage);--shh:var(--sh-btn-sage-h);background-size:200% 100%}
.btn--sage:hover{background-position:100% 0}
.btn--accent{--bg:linear-gradient(120deg in oklab,var(--sage-deep) 0%,var(--slate) 12%,var(--accent-deep) 38%,var(--accent) 100%);--bd:transparent;--fg:#fff;
  --sh:var(--sh-btn-accent);--shh:var(--sh-btn-accent-h);background-size:140% 100%}
.btn--accent:hover{background-position:100% 0}
.btn--ink{--bg:linear-gradient(120deg,#1A2826 0%,var(--ink) 50%,#33463F 100%);--bd:transparent;background-size:200% 100%}
.btn--ink:hover{background-position:100% 0}
.btn--ghost{--bg:rgba(255,255,255,.7);--fg:var(--ink);--bd:var(--silver-3);--sh:0 8px 20px -12px rgba(32,48,46,.34);--shh:0 18px 36px -16px rgba(32,48,46,.4)}
.btn--ghost:hover{--bg:var(--ink);--fg:#fff;--bd:var(--ink)}
.btn--light{--bg:#fff;--fg:var(--ink);--bd:#fff;--sh:0 14px 30px -12px rgba(0,0,0,.5);--shh:0 24px 48px -16px rgba(0,0,0,.58)}
.btn--outline-light{--bg:rgba(255,255,255,.06);--fg:#fff;--bd:rgba(255,255,255,.5);--sh:0 10px 24px -14px rgba(0,0,0,.6);--shh:0 20px 40px -16px rgba(0,0,0,.66)}
.btn--outline-light:hover{--bg:#fff;--fg:var(--ink);--bd:#fff}
.btn--lg{padding:25px 48px;font-size:var(--t-body);font-weight:600;letter-spacing:.05em}
.btn--sm{padding:14px 24px;font-size:var(--t-micro)}
@media (max-width:600px){
  .btn{white-space:normal;text-align:left;max-width:100%}
  .btn--lg{padding:20px 30px}
}

.tlink{
  display:inline-flex;align-items:center;gap:11px;
  font-size:var(--t-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sage-deep);text-decoration:none;padding-bottom:5px;
  border-bottom:1.5px solid var(--sage-line);
  transition:border-color var(--t-fast) var(--ease),gap var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.tlink:hover{border-color:var(--sage);gap:17px}
.tlink--plain{text-transform:none;letter-spacing:.02em}
.tlink .btn__arrow{width:19px;height:10px}
.tlink--light{color:#fff;border-bottom-color:rgba(255,255,255,.45)}
.tlink--light:hover{border-bottom-color:#fff}
.btnrow{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.btnrow--center{justify-content:center}
.btnrow--end{justify-content:flex-end}

/* ============================================================
   HEADER — two rows, fixed, never hides (Sandler structure)
   ============================================================ */
.hdr{position:fixed;inset:0 0 auto 0;z-index:120;
  transition:background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
.hdr::after{content:"";position:absolute;inset:0;z-index:-1;background:transparent;
  transition:background var(--t-fast) var(--ease),backdrop-filter var(--t-fast) var(--ease)}
.hdr.solid::after{background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px)}
.hdr.solid{box-shadow:0 2px 34px rgba(32,48,46,.09);border-bottom:1px solid var(--line-soft)}

/* utility row */
.hdr__util{border-bottom:1px solid rgba(255,255,255,.16);transition:border-color var(--t-fast) var(--ease)}
.hdr.solid .hdr__util{border-bottom-color:var(--line-soft)}
.hdr__util-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:44px}
.hdr__strap{margin:0;font-size:var(--t-micro);color:var(--ink-3);letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr__utilnav{display:flex;align-items:center;gap:clamp(14px,2vw,28px);list-style:none;margin:0;padding:0}
.hdr__utilnav a{font-size:var(--t-micro);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none;position:relative;padding:4px 0;
  transition:color var(--t-fast) var(--ease)}
.hdr__utilnav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:currentColor;transition:right var(--t-fast) var(--ease)}
.hdr__utilnav a:hover,.hdr__utilnav a:focus-visible{color:var(--ink)}
.hdr__utilnav a:hover::after,.hdr__utilnav a:focus-visible::after{right:0}
/* The utility row wraps to two lines before the drawer breakpoint takes over,
   and the row is a fixed 44px, so the second line would spill into the main
   row. Retire it a little earlier instead; its destinations are all in the
   drawer and the footer. */
@media (max-width:1260px){.hdr__util{display:none}}
.hdr__util-in{flex-wrap:nowrap}
.hdr__strap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1260px){:root{--hdr-h:84px}}

/* main row */
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:84px;transition:height var(--t-fast) var(--ease)}
.hdr.solid .hdr__in{height:72px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none;border-radius:var(--r-btn)}
.brand .logomark{width:clamp(148px,15vw,196px);transition:width var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}
.hdr.solid .brand .logomark{width:clamp(136px,13vw,172px)}
.brand:hover .logomark{opacity:.78}

.nav{display:flex;align-items:center;gap:clamp(6px,1.4vw,20px)}
.nav__item{position:relative}
.nav__item > a,.nav__toggle{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-body);font-size:var(--t-small);font-weight:600;letter-spacing:.02em;
  text-decoration:none;color:var(--ink-2);white-space:nowrap;
  background:none;border:0;cursor:pointer;padding:10px 4px;position:relative;
  transition:color var(--t-fast) var(--ease)}
.nav__toggle svg{width:11px;height:8px;transition:transform var(--t-fast) var(--ease)}
.nav__item > a::after,.nav__toggle::after{content:"";position:absolute;left:4px;right:calc(100% - 4px);bottom:4px;height:2px;
  background:linear-gradient(90deg,var(--sage),var(--silver-3));transition:right var(--t-fast) var(--ease)}
.nav__item > a:hover,.nav__item > a:focus-visible,.nav__toggle:hover,.nav__toggle:focus-visible,
.nav__item > a.on{color:var(--ink)}
.nav__item > a:hover::after,.nav__item > a:focus-visible::after,.nav__item > a.on::after,
.nav__toggle:hover::after,.nav__toggle:focus-visible::after{right:4px}
.nav__item--has-menu.open .nav__toggle{color:var(--ink)}
.nav__item--has-menu.open .nav__toggle svg{transform:rotate(180deg)}
.nav__item--has-menu.open .nav__toggle::after{right:4px}

.nav__menu{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-8px);
  min-width:330px;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  box-shadow:0 30px 70px -34px rgba(32,48,46,.45);padding:12px;display:grid;gap:2px;
  opacity:0;visibility:hidden;transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),visibility var(--t-fast)}
.nav__item--has-menu.open .nav__menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav__menu[hidden]{display:grid}
.nav__menu a{display:block;padding:14px 16px;border-radius:var(--r-btn);text-decoration:none;
  transition:background var(--t-fast) var(--ease)}
.nav__menu a:hover,.nav__menu a:focus-visible{background:var(--sage-tint)}
.nav__menu b{display:block;font-size:var(--t-small);font-weight:600;color:var(--ink);margin-bottom:3px}
.nav__menu span{display:block;font-size:var(--t-micro);color:var(--ink-3);line-height:1.4}

.hdr .btn{padding:14px 24px}
@media (max-width:1180px){.nav,.hdr .btn--nav{display:none}}

/* header over a dark hero */
body.dark-hero .hdr:not(.solid) .brand .logomark{filter:brightness(0) invert(1)}
body.dark-hero .hdr:not(.solid) .hdr__strap{color:rgba(255,255,255,.6)}
body.dark-hero .hdr:not(.solid) .hdr__utilnav a{color:rgba(255,255,255,.72)}
body.dark-hero .hdr:not(.solid) .hdr__utilnav a:hover,
body.dark-hero .hdr:not(.solid) .hdr__utilnav a:focus-visible{color:#fff}
body.dark-hero .hdr:not(.solid) .nav__item > a,
body.dark-hero .hdr:not(.solid) .nav__toggle{color:rgba(255,255,255,.84)}
body.dark-hero .hdr:not(.solid) .nav__item > a:hover,
body.dark-hero .hdr:not(.solid) .nav__item > a:focus-visible,
body.dark-hero .hdr:not(.solid) .nav__item > a.on,
body.dark-hero .hdr:not(.solid) .nav__toggle:hover,
body.dark-hero .hdr:not(.solid) .nav__toggle:focus-visible{color:#fff}
body.dark-hero .hdr:not(.solid) .burger{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42)}
body.dark-hero .hdr:not(.solid) .burger span,
body.dark-hero .hdr:not(.solid) .burger span::before,
body.dark-hero .hdr:not(.solid) .burger span::after{background:#fff}
body.dark-hero.menu-open .hdr:not(.solid) .brand .logomark{filter:none}
body.dark-hero.menu-open .hdr:not(.solid) .burger{background:rgba(255,255,255,.72);border-color:var(--line)}
body.dark-hero.menu-open .hdr:not(.solid) .burger span::before,
body.dark-hero.menu-open .hdr:not(.solid) .burger span::after{background:var(--ink)}

.burger{display:none;width:50px;height:50px;border:1.5px solid var(--line);border-radius:var(--r-btn);
  background:rgba(255,255,255,.72);cursor:pointer;align-items:center;justify-content:center;flex:none;
  box-shadow:0 6px 16px -10px rgba(32,48,46,.5);
  transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
.burger:hover{border-color:var(--sage);background:#fff}
.burger span{display:block;width:20px;height:2px;background:var(--ink);position:relative;transition:background var(--t-fast) var(--ease)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);
  transition:transform var(--t-fast) var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
body.menu-open .burger span{background:transparent}
body.menu-open .burger span::before{transform:translateY(6px) rotate(45deg)}
body.menu-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1180px){.burger{display:flex}}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:110;background:var(--ivory);
  opacity:0;visibility:hidden;overflow-y:auto;
  transition:opacity var(--t-fast) var(--ease),visibility var(--t-fast)}
body.menu-open .drawer{opacity:1;visibility:visible}
.drawer__in{padding:112px var(--pad-x) 48px;display:grid;gap:clamp(28px,4vw,44px);min-height:100%;align-content:start}
.drawer nav{display:grid}
.drawer nav a{display:block;text-decoration:none;font-family:var(--ff-display);font-weight:600;
  font-size:clamp(25px,6vw,42px);line-height:1.14;color:var(--ink);
  padding:12px 0;border-bottom:1px solid var(--line-soft);
  opacity:0;transform:translateY(16px);
  transition:color var(--t-fast) var(--ease)}
.drawer nav a:hover,.drawer nav a:focus-visible{color:var(--sage-deep)}
body.menu-open .drawer nav a{animation:drawIn var(--t-slow) var(--ease) forwards}
body.menu-open .drawer nav a:nth-child(1){animation-delay:calc(var(--stagger) * 1)}
body.menu-open .drawer nav a:nth-child(2){animation-delay:calc(var(--stagger) * 2)}
body.menu-open .drawer nav a:nth-child(3){animation-delay:calc(var(--stagger) * 3)}
body.menu-open .drawer nav a:nth-child(4){animation-delay:calc(var(--stagger) * 4)}
body.menu-open .drawer nav a:nth-child(5){animation-delay:calc(var(--stagger) * 5)}
body.menu-open .drawer nav a:nth-child(6){animation-delay:calc(var(--stagger) * 6)}
@keyframes drawIn{to{opacity:1;transform:none}}
.drawer__sub{display:grid;gap:4px;padding-top:8px}
.drawer__sub .capline{justify-content:flex-start;margin-bottom:14px}
.drawer__sub .capline i:first-child{display:none}
.drawer__sub a{display:block;text-decoration:none;font-size:var(--t-body);font-weight:600;color:var(--ink-2);
  padding:12px 0;border-bottom:1px solid var(--line-soft);transition:color var(--t-fast) var(--ease)}
.drawer__sub a:hover,.drawer__sub a:focus-visible{color:var(--sage-deep)}
.drawer__foot{font-size:var(--t-small);color:var(--ink-3)}

/* ============================================================
   CINEMATIC ENTRANCE
   ============================================================ */
.intro{position:fixed;inset:0;z-index:400;pointer-events:none;overflow:hidden}
.intro__panel{position:absolute;left:0;right:0;height:50.5%;background:#1A2624;transition:transform var(--t-slow) cubic-bezier(.76,0,.16,1)}
.intro__panel--t{top:0}
.intro__panel--b{bottom:0}
.intro__glow{position:absolute;inset:0;opacity:.9;
  background:radial-gradient(900px 520px at 50% 50%,rgba(120,144,96,.34),transparent 66%);
  transition:opacity var(--t-fast) ease}
.intro__stage{position:absolute;inset:0;display:grid;place-items:center;gap:0;transition:opacity var(--t-fast) ease}
.intro__mark{display:flex;flex-direction:column;align-items:center;gap:26px}
.intro__mark .logomark{width:clamp(200px,28vw,330px);opacity:0;transform:translateY(14px) scale(.97)}
.intro__line{width:0;height:1.5px;background:linear-gradient(90deg,rgba(255,255,255,0),var(--sage-lift) 30%,#fff 50%,var(--sage-lift) 70%,rgba(255,255,255,0))}
.intro__word{font-family:var(--ff-body);font-size:var(--t-micro);letter-spacing:.42em;text-transform:uppercase;
  color:rgba(255,255,255,.72);opacity:0}
body.intro-run .intro__line{animation:introLine var(--t-slow) var(--ease) .1s forwards}
body.intro-run .intro__mark .logomark{animation:introMark var(--t-slow) var(--ease) .42s forwards}
body.intro-run .intro__word{animation:introMark var(--t-slow) var(--ease) .74s forwards}
@keyframes introLine{to{width:min(430px,66vw)}}
@keyframes introMark{to{opacity:1;transform:none}}
body.lifted .intro__stage{opacity:0}
body.lifted .intro__glow{opacity:0}
body.lifted .intro__panel--t{transform:translateY(-100%)}
body.lifted .intro__panel--b{transform:translateY(100%)}
body.lifted .intro{transition:visibility 0s 1.3s;visibility:hidden}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;
  overflow:hidden;background:var(--ink);padding-block:clamp(140px,16vh,200px) clamp(96px,14vh,150px)}
.hero__media{position:absolute;inset:0;z-index:0;background:var(--ink)}
.hero__media img,.hero__media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:56% 44%;
}
.hero__poster{z-index:0}
.hero__clip{z-index:1;opacity:0;transition:opacity 1.6s ease-in-out}
.hero__clip.show{opacity:1}
.hero__media .kb{animation:heroDrift 30s ease-out both}
@keyframes heroDrift{0%{transform:scale(1.12)}100%{transform:scale(1)}}
.hero__scrim{position:absolute;inset:0;z-index:2;
  background:
    radial-gradient(120% 90% at 50% 45%,rgba(12,20,19,.34) 0%,rgba(12,20,19,.62) 55%,rgba(12,20,19,.86) 100%),
    linear-gradient(to bottom,rgba(12,20,19,.72) 0%,rgba(12,20,19,.3) 22%,rgba(12,20,19,.4) 64%,rgba(12,20,19,.88) 100%);
}
.hero__aura{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:soft-light;opacity:.5}
.hero__grain{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.36;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}
.hero__in{position:relative;z-index:5;width:100%}
.hero__col{max-width:min(1240px,96%);margin-inline:auto;text-align:center}
.hero h1 em{font-style:normal}
@media (max-width:900px){
  .hero__col{max-width:100%;text-align:center}
  .hero__scrim{background:linear-gradient(to bottom,rgba(12,20,19,.78) 0%,rgba(12,20,19,.6) 40%,rgba(12,20,19,.82) 100%)}
}

.hero__kicker{opacity:0;margin-bottom:clamp(26px,3.4vw,46px)}
body.lifted .hero__kicker{animation:fadeUp var(--t-slow) var(--ease) .5s forwards}
.hero h1{font-size:var(--t-mega);line-height:.96;letter-spacing:-.035em;margin:0;color:#fff;text-wrap:balance}
.ln{display:block;overflow:hidden;padding-bottom:.02em}
.ln>span{display:block;transform:translateY(106%);opacity:0}
body.lifted .ln>span{animation:lineUp calc(var(--t-slow) * 1.5) var(--ease) forwards}
body.lifted .ln:nth-of-type(1)>span{animation-delay:.6s}
body.lifted .ln:nth-of-type(2)>span{animation-delay:.72s}
body.lifted .ln:nth-of-type(3)>span{animation-delay:.84s}
@keyframes lineUp{to{transform:none;opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* unused: opener no longer carries a rule */
.hero__rule--unused{height:2px;width:0;border-radius:2px;margin:clamp(24px,2.8vw,38px) 0 clamp(22px,2.4vw,32px);
  background:linear-gradient(90deg,var(--sage),var(--silver-3),rgba(168,176,173,0))}
body.lifted /* unused: opener no longer carries a rule */
.hero__rule--unused{animation:ruleGrow 1.var(--t-slow) var(--ease) 1.02s forwards}
@keyframes ruleGrow{to{width:min(230px,54%)}}
.hero__tagline{opacity:0;margin-top:clamp(26px,3.4vw,46px)}
body.lifted .hero__tagline{animation:fadeUp var(--t-slow) var(--ease) 1.12s forwards}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center;margin-top:clamp(34px,4vw,56px);opacity:0}
body.lifted .hero__cta{animation:fadeUp var(--t-slow) var(--ease) 1.28s forwards}
body.lifted .scrollcue{position:absolute;left:50%;transform:translateX(-50%);bottom:clamp(18px,2.6vw,34px);z-index:6;
  display:flex;flex-direction:column;align-items:center;gap:12px;font-size:var(--t-micro);letter-spacing:.24em;
  text-transform:uppercase;color:rgba(255,255,255,.72);text-decoration:none;opacity:0}
.scrollcue:hover{color:#fff}
body.lifted .scrollcue{animation:fadeUp var(--t-slow) var(--ease) 1.56s forwards}
.scrollcue i{display:block;width:1.5px;height:clamp(30px,4vh,46px);background:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,0));position:relative;overflow:hidden;order:2}
.scrollcue i::after{content:"";position:absolute;left:0;width:1.5px;height:16px;background:#fff;animation:cueRun 2.1s ease-in-out infinite}
@keyframes cueRun{0%{top:-18px}100%{top:56px}}


/* ---- the strip that catches what the opener no longer holds ---- */
.belowfold{background:var(--paper);border-bottom:1px solid var(--line-soft);padding-block:var(--sec-y)}
.belowfold__in{display:grid;gap:clamp(26px,3vw,42px);justify-items:center;text-align:center}
.belowfold__lead{margin:0;max-width:56ch;font-size:var(--t-lead);line-height:1.4;color:var(--ink-2)}
.belowfold__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(18px,3vw,40px)}
.marks{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;gap:clamp(14px,1.4vw,20px) clamp(26px,3.4vw,52px);list-style:none;margin:0;padding:0;
  font-size:var(--t-micro);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.marks li{display:flex;align-items:center}
/* No bullet separators: the row wraps at most viewport widths, and a dot
   left stranded at the end of a wrapped line reads as a mistake. Space does
   the separating instead. */

/* reveal */
/* Gated on html.js, which main.js sets before anything that can throw.
   Without the gate a single JS error - or a blocked script - leaves every
   revealed section at opacity 0 and the site reads as blank. */
html.js .rv{opacity:0;transform:translateY(30px);transition:opacity var(--t-slow) var(--ease-out),transform var(--t-slow) var(--ease-out)}
html.js .rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.09s}.rv[data-d="2"]{transition-delay:var(--t-fast)}
.rv[data-d="3"]{transition-delay:.27s}.rv[data-d="4"]{transition-delay:.36s}
.rv[data-d="5"]{transition-delay:var(--t-fast)}.rv[data-d="6"]{transition-delay:.54s}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .ln>span,.hero__kicker,.hero__tagline,.hero__cta,.scrollcue,.intro__mark .logomark,.intro__word{opacity:1!important;transform:none!important;animation:none!important}
  /* unused: opener no longer carries a rule */
.hero__rule--unused{width:200px!important;animation:none!important}
  .hero__media .kb{animation:none;transform:none}
  .aura i,.flow,.grad,.slab::before,.ticker__track{animation:none!important}
}

/* ============================================================
   LAYOUT + COMPONENTS
   ============================================================ */
.sechead{display:grid;grid-template-columns:1fr;gap:clamp(20px,2.6vw,34px);margin-bottom:clamp(44px,5vw,76px)}
.sechead--split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:end;gap:clamp(28px,4vw,64px)}
@media (max-width:860px){.sechead--split{grid-template-columns:1fr;align-items:start}}
.sechead p{max-width:54ch}

.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1200px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.g3{grid-template-columns:1fr}}
@media (max-width:720px){.g2,.g4{grid-template-columns:1fr}}

.card{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:clamp(28px,3vw,42px);position:relative;overflow:hidden;
  box-shadow:0 2px 10px -6px rgba(32,48,46,.1);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);
}
.card::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--sage),var(--silver-3));transform:scaleX(0);transform-origin:left;
  transition:transform var(--t-slow) var(--ease)}
.card:hover{transform:translateY(-7px);box-shadow:var(--sh-card);border-color:var(--line)}
.card:hover::after{transform:scaleX(1)}
.card h3,.card h4{margin-bottom:12px}
.card p{color:var(--ink-2);font-size:var(--t-small)}
.card__n{font-family:var(--ff-display);font-size:var(--t-micro);letter-spacing:.2em;color:var(--sage-deep);
  display:block;margin-bottom:20px;font-weight:500}
.card--tint{background:linear-gradient(150deg,var(--sage-tint),rgba(237,241,231,.4));border-color:transparent}
.card--silver{background:linear-gradient(150deg,var(--silver-1),rgba(255,255,255,.7));border-color:var(--line-silver)}
.g4 > .card{padding:clamp(24px,2.1vw,32px)}
.g4 > .card .card__n{margin-bottom:16px}

.tile{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:clamp(26px,2.3vw,36px);display:flex;flex-direction:column;gap:14px;
  min-height:clamp(210px,18vw,260px);position:relative;overflow:hidden;
  box-shadow:0 2px 10px -6px rgba(32,48,46,.1);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.tile h4{font-size:clamp(20px,1.05rem + .5vw,25px)}
.tile__ico{width:50px;height:50px;margin-bottom:8px;color:var(--sage-deep)}
.tile__ico svg{width:100%;height:100%;display:block}
.tile p{margin-top:6px;color:var(--ink-2);font-size:var(--t-small)}
.tile:hover{transform:translateY(-7px);box-shadow:var(--sh-card)}
.tile::before{content:"";position:absolute;right:-40px;bottom:-40px;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,var(--sage-tint),rgba(237,241,231,0) 70%);
  opacity:0;transform:scale(.6);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.tile:hover::before{opacity:1;transform:scale(1)}
.tile>*{position:relative;z-index:1}

/* index row */
.idxgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,2.6vw,46px)}
@media (max-width:1000px){.idxgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.idxgrid{grid-template-columns:1fr}}
.idx{border-top:2px solid var(--line-silver);padding-top:clamp(20px,2.2vw,28px);transition:border-color var(--t-fast) var(--ease)}
.idx:hover{border-top-color:var(--sage)}
.idx__n{font-family:var(--ff-display);font-size:var(--t-micro);letter-spacing:.2em;color:var(--sage-deep);
  display:block;margin-bottom:16px;font-weight:500}
.idx h4{margin-bottom:12px;font-size:clamp(20px,1.05rem + .55vw,26px)}
.idx p{font-size:var(--t-small);color:var(--ink-2);margin:0}

/* media bands */
.band{position:relative;min-height:clamp(420px,58vw,760px);display:flex;align-items:flex-end;overflow:hidden}
.band__img{position:absolute;inset:0}
.band__img img{width:100%;height:100%;object-fit:cover;transition:transform calc(var(--t-slow) * 2) var(--ease)}
.band:hover .band__img img{transform:scale(1.035)}
.band__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,24,38,.94) 0%,rgba(14,27,36,.78) 40%,rgba(16,30,40,.36) 74%,rgba(16,30,40,.1) 100%)}
.band__in{position:relative;z-index:2;width:100%;padding-block:var(--sec-y)}
.band__in h2,.band__in h3{color:#fff}
.band__in p{color:rgba(255,255,255,.86)}
.band__in .eyebrow{color:#D8E4C4}
.band__in .eyebrow::before{background:linear-gradient(90deg,#D8E4C4,rgba(216,228,196,0))}
.band--tall{min-height:clamp(500px,70vw,860px)}
.band--center{align-items:center}
.band--center .band__scrim{background:linear-gradient(105deg,rgba(13,24,38,.95) 0%,rgba(14,27,36,.8) 44%,rgba(16,30,40,.34) 100%)}

/* split */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.split--wide-l{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr)}
.split--wide-r{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)}
@media (max-width:900px){.split,.split--wide-l,.split--wide-r{grid-template-columns:minmax(0,1fr);gap:36px}}
.frame{border-radius:var(--r-lg);overflow:hidden;position:relative;background:var(--silver-1);
  box-shadow:0 30px 70px -40px rgba(32,48,46,.5)}
.frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1}
.frame--tall img{aspect-ratio:4/4.9}
.frame--wide img{aspect-ratio:16/10}
.frame__cap{position:absolute;left:0;right:0;bottom:0;padding:26px clamp(20px,2.4vw,30px) 22px;
  background:linear-gradient(to top,rgba(16,26,25,.88),rgba(16,26,25,0));
  color:#fff;font-size:var(--t-small);line-height:1.42}

.stack-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.stack-list li{border-top:1px solid var(--line-silver);padding:clamp(20px,2.2vw,28px) 0;
  display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2vw,28px);align-items:start}
.stack-list li:last-child{border-bottom:1px solid var(--line-silver)}
.stack-list b{font-family:var(--ff-display);font-weight:400;font-size:var(--t-micro);letter-spacing:.18em;color:var(--sage-deep);padding-top:6px}
.stack-list h4{margin-bottom:7px}
.stack-list p{font-size:var(--t-small);color:var(--ink-2);margin:0}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line-silver)}
@media (max-width:820px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{padding:clamp(30px,3.4vw,50px) clamp(14px,2vw,30px);border-bottom:1px solid var(--line-silver);border-right:1px solid var(--line-silver)}
.stat:nth-child(4n){border-right:0}
@media (max-width:820px){.stat:nth-child(2n){border-right:0}.stat:nth-child(4n){border-right:1px solid var(--line-silver)}}
.stat__n{font-family:var(--ff-display);font-size:clamp(46px,7vw,96px);line-height:.92;letter-spacing:-.04em;
  display:block;margin-bottom:14px;
  background:linear-gradient(130deg,var(--accent-deep) 0%,var(--accent) 46%,var(--accent-lift) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.stat p{font-size:var(--t-small);color:var(--ink-2);margin:0;max-width:22ch}

/* process */
.proc{position:relative;display:grid;gap:0}
.proc::before{content:"";position:absolute;left:clamp(22px,2.4vw,30px);top:12px;bottom:12px;width:1.5px;background:var(--line-silver)}
.proc::after{content:"";position:absolute;left:clamp(22px,2.4vw,30px);top:12px;width:1.5px;
  background:linear-gradient(var(--sage),var(--silver-3));height:var(--progress,0%);transition:height 1.6s var(--ease-out)}
.proc__step{display:grid;grid-template-columns:auto 1fr;gap:clamp(22px,3vw,44px);padding:clamp(24px,3vw,42px) 0;align-items:start}
.proc__dot{width:clamp(46px,5vw,62px);height:clamp(46px,5vw,62px);border-radius:50%;
  background:var(--paper);border:1.5px solid var(--line-silver);display:grid;place-items:center;flex:none;
  position:relative;z-index:2;font-family:var(--ff-display);font-size:var(--t-small);letter-spacing:.06em;color:var(--sage-deep);
  box-shadow:0 8px 20px -12px rgba(32,48,46,.44);
  margin-left:calc(clamp(22px,2.4vw,30px) - clamp(23px,2.5vw,31px));
  transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.proc__step:hover .proc__dot{background:linear-gradient(140deg in oklab,var(--sage-hot),var(--slate));border-color:transparent;color:#fff;transform:scale(1.06)}
.proc__b h3{margin-bottom:12px}
.proc__b p{color:var(--ink-2);max-width:58ch;margin:0}

/* chips + standing */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;
  border:1.5px solid var(--line-silver);border-radius:var(--r-btn);font-size:var(--t-small);color:var(--ink-2);
  background:linear-gradient(140deg,var(--paper),var(--silver-1));
  box-shadow:0 6px 16px -12px rgba(32,48,46,.4);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage);flex:none}
.chip:hover{border-color:var(--sage);color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(32,48,46,.5)}

.standing{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line-silver);border-bottom:1px solid var(--line-silver);
  background:linear-gradient(100deg,var(--paper),var(--silver-1) 50%,var(--paper))}
@media (max-width:760px){.standing{grid-template-columns:repeat(2,minmax(0,1fr))}}
.standing div{padding:clamp(24px,2.6vw,34px) clamp(16px,2vw,28px);border-right:1px solid var(--line-soft)}
.standing div:last-child{border-right:0}
.standing b{display:block;font-family:var(--ff-display);font-weight:400;font-size:var(--t-h4);margin-bottom:6px}
.standing span{font-size:var(--t-micro);color:var(--ink-3);letter-spacing:.04em}

/* ticker */
.ticker{background:var(--ink);color:#fff;padding:clamp(15px,1.6vw,20px) 0;overflow:hidden;position:relative}
.ticker::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(92,113,71,.5),rgba(72,96,96,.2) 40%,rgba(120,144,96,.42) 78%,rgba(72,96,96,.24));
  background-size:250% 100%;background-position:38% 50%}
.ticker__track{display:flex;width:max-content;animation:tick 42s linear infinite;position:relative;z-index:2}
.ticker:hover .ticker__track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.ticker__set{display:flex;align-items:center;flex:none}
.ticker__set b{font-weight:400;font-family:var(--ff-display);font-size:var(--t-small);
  letter-spacing:.2em;text-transform:uppercase;padding:0 clamp(20px,2.6vw,38px);white-space:nowrap;
  color:rgba(255,255,255,.95);display:flex;align-items:center;gap:clamp(20px,2.6vw,38px)}
.ticker__set b::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage-lift);flex:none}

/* accordion */
.acc{border-top:1px solid var(--line-silver)}
.acc__i{border-bottom:1px solid var(--line-silver)}
.acc__q{width:100%;background:none;border:0;cursor:pointer;text-align:left;
  padding:clamp(24px,2.7vw,34px) 56px clamp(24px,2.7vw,34px) 0;
  font-family:var(--ff-display);font-size:var(--t-h4);line-height:1.28;color:var(--ink);
  position:relative;transition:color var(--t-fast) var(--ease)}
.acc__q:hover{color:var(--sage-deep)}
.acc__q::before,.acc__q::after{content:"";position:absolute;right:8px;top:50%;background:var(--sage);border-radius:2px;
  transition:transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}
.acc__q::before{width:19px;height:2px;margin-top:-1px}
.acc__q::after{width:2px;height:19px;margin-top:-9.5px;right:16.5px}
.acc__i.open .acc__q::after{transform:rotate(90deg);opacity:0}
.acc__a{max-height:0;overflow:hidden;transition:max-height var(--t-slow) var(--ease)}
.acc__a p{padding:0 clamp(40px,7vw,90px) clamp(26px,3vw,36px) 0;color:var(--ink-2);font-size:var(--t-small);max-width:70ch;margin:0}

.pull{font-family:var(--ff-display);font-size:clamp(26px,3.4vw,50px);line-height:1.16;letter-spacing:-.02em;
  max-width:20ch;margin:0;color:var(--ink)}

/* slab CTA */
.slab{position:relative;overflow:hidden;color:#fff;padding-block:var(--sec-y);
  background:linear-gradient(125deg in oklab,#1B2A28 0%,#20312F 38%,#16283C 72%,#12304E 100%)}
/* 8.3 — a very slow drift of the house ramp over the dark base. Low opacity
   on purpose: it should only be noticeable if you stop and look. */
.slab::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(118deg in oklab,var(--sage-hot) 0%,var(--slate) 34%,var(--accent-deep) 72%,var(--accent) 100%);
  background-size:320% 320%;background-position:46% 50%;opacity:.2;animation:flowShift 18s ease-in-out infinite}
.slab__stairs{position:absolute;right:-2%;bottom:-6%;width:min(560px,52vw);opacity:.12;pointer-events:none;z-index:1}
.slab__in{position:relative;z-index:3}
.slab h2{color:#fff;max-width:15ch}
.slab .bighead h2{max-width:19ch;margin-inline:auto}
.slab .bighead > p:not([class]){max-width:56ch}
.slab p{color:rgba(255,255,255,.82);max-width:56ch;font-size:var(--t-lead)}
.slab .eyebrow{color:#D8E4C4}
.slab .eyebrow::before{background:linear-gradient(90deg,#D8E4C4,rgba(216,228,196,0))}
.slab__row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:clamp(30px,3.4vw,44px)}

/* page nav */
.pnav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-silver);background:var(--ivory)}
@media (max-width:720px){.pnav{grid-template-columns:1fr}}
.pnav a{display:block;text-decoration:none;padding:clamp(30px,3.6vw,52px) var(--pad-x);
  border-right:1px solid var(--line-silver);transition:background var(--t-fast) var(--ease)}
.pnav a:last-child{border-right:0;text-align:right}
@media (max-width:720px){.pnav a{text-align:left!important;border-right:0;border-bottom:1px solid var(--line-silver)}}
.pnav a:hover{background:var(--mist)}
.pnav span{display:block;font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:10px}
.pnav b{font-family:var(--ff-display);font-weight:400;font-size:var(--t-h3);color:var(--ink)}

/* inner page hero */
.phero{position:relative;padding:calc(var(--hdr-h) + var(--sec-y) * .55) 0 var(--sec-y);background:var(--paper);overflow:hidden}
.phero__in{position:relative;z-index:3}
.phero h1{max-width:17ch;margin-top:14px}
.phero p{max-width:56ch;margin-top:clamp(22px,2.4vw,32px)}
.crumbs{display:flex;align-items:center;gap:10px;font-size:var(--t-micro);color:var(--ink-3);margin-bottom:26px;letter-spacing:.04em}
.crumbs a{text-decoration:none;color:var(--ink-3);transition:color var(--t-fast)}
.crumbs a:hover{color:var(--sage-deep)}
.crumbs span{color:var(--ink-3)}
.phero--img{background:var(--ink)}
.phero--img .phero__bg{position:absolute;inset:0;z-index:0}
.phero--img .phero__bg img{width:100%;height:100%;object-fit:cover}
.phero--img .phero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(16,26,25,.95) 0%,rgba(16,26,25,.82) 46%,rgba(16,26,25,.36) 100%)}
@media (max-width:900px){
  .phero--img .phero__bg::after{background:linear-gradient(to bottom,rgba(16,26,25,.9) 0%,rgba(16,26,25,.86) 40%,rgba(16,26,25,.9) 100%)}
}
.phero--img h1,.phero--img .crumbs a,.phero--img .crumbs{color:#fff}
.phero--img .crumbs span{color:rgba(255,255,255,.78)}
.phero--img p{color:rgba(255,255,255,.85)}
.phero--img .eyebrow{color:#D8E4C4}
.phero--img .eyebrow::before{background:linear-gradient(90deg,#D8E4C4,rgba(216,228,196,0))}
.phero--img .kicker{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff}

/* ============================================================
   VIDEO BAND — a second moving moment
   ============================================================ */
.vband{position:relative;min-height:clamp(540px,74vw,880px);display:flex;align-items:center;overflow:hidden;background:var(--ink)}
.vband__media{position:absolute;inset:0;z-index:0}
.vband__media img,.vband__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.vband__media video{opacity:0;transition:opacity calc(var(--t-slow) * 2) var(--ease)}
.vband__media video.show{opacity:1}
.vband__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to bottom,rgba(14,24,22,.86) 0%,rgba(14,24,22,.6) 34%,rgba(14,24,22,.68) 66%,rgba(14,24,22,.92) 100%)}
.vband__grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.3;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}
.vband__in{position:relative;z-index:3;width:100%;padding-block:var(--sec-y)}

/* ============================================================
   QUOTE BAND
   ============================================================ */
.quoteband{position:relative;overflow:hidden;background:var(--paper);padding-block:var(--sec-y)}
.quoteband__in{position:relative;z-index:3;max-width:1120px;margin-inline:auto;text-align:center}
.quoteband .mark{font-family:var(--ff-display);font-size:clamp(90px,12vw,180px);line-height:.6;
  color:var(--sage);opacity:.22;display:block;margin-bottom:clamp(6px,1vw,14px)}
.quoteband blockquote{margin:0;font-family:var(--ff-display);font-weight:600;
  font-size:clamp(30px,4.4vw,70px);line-height:1.06;letter-spacing:-.035em;color:var(--ink)}
.quoteband cite{display:block;font-style:normal;margin-top:clamp(28px,3.2vw,44px);
  font-size:var(--t-micro);font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--sage-deep)}
.quoteband cite span{display:block;margin-top:10px;letter-spacing:.18em;font-weight:500;color:var(--ink-3)}

/* ============================================================
   AT A GLANCE  (machine-readable facts, human-readable panel)
   ============================================================ */
.glance{border-top:1px solid var(--line-silver);border-bottom:1px solid var(--line-silver);
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
@media (max-width:900px){.glance{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.glance{grid-template-columns:1fr}}
.glance__i{padding:clamp(26px,2.8vw,40px) clamp(18px,2vw,34px);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.glance__i:nth-child(3n){border-right:0}
@media (max-width:900px){.glance__i{border-right:1px solid var(--line-soft)}.glance__i:nth-child(2n){border-right:0}}
@media (max-width:560px){.glance__i{border-right:0}}
.glance dt{font-size:var(--t-micro);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:12px}
.glance dd{margin:0;font-family:var(--ff-display);font-weight:600;font-size:var(--t-h4);line-height:1.18;color:var(--ink);letter-spacing:-.02em}
.glance dd span{display:block;font-family:var(--ff-body);font-weight:300;font-size:var(--t-small);
  color:var(--ink-2);letter-spacing:0;margin-top:9px;line-height:1.45}

/* ============================================================
   ENGAGEMENT TABLE — what you are actually buying
   ============================================================ */
.terms{border-top:2px solid var(--ink)}
.terms__row{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(16px,3vw,48px);
  padding:clamp(24px,2.8vw,36px) 0;border-bottom:1px solid var(--line-silver);align-items:start}
@media (max-width:760px){.terms__row{grid-template-columns:1fr;gap:10px}}
.terms__k{font-family:var(--ff-display);font-weight:600;font-size:var(--t-h4);color:var(--ink);letter-spacing:-.02em}
.terms__v{color:var(--ink-2);font-size:var(--t-small);margin:0}
.terms__v b{color:var(--ink);font-weight:600}
.terms__row--flag{background:linear-gradient(100deg,var(--sage-tint),rgba(237,241,231,.35));
  padding-inline:clamp(18px,2vw,28px);border-left:4px solid var(--sage)}

/* ============================================================
   PROOF — client wall + outcome cases (self-hiding)
   ============================================================ */
.logowall{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;
  background:var(--line-silver);border:1px solid var(--line-silver)}
.logowall__i{background:var(--paper);display:grid;place-items:center;padding:clamp(24px,3vw,42px);min-height:130px}
.logowall__i img{max-height:52px;width:auto;filter:grayscale(1);opacity:.72;transition:filter var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}
.logowall__i:hover img{filter:none;opacity:1}
.logowall__i span{font-family:var(--ff-display);font-weight:600;font-size:var(--t-h4);color:var(--ink-3);text-align:center}
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
@media (max-width:1000px){.cases{grid-template-columns:1fr}}
.case{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;gap:14px;
  box-shadow:0 4px 18px -12px rgba(32,48,46,.24);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.case:hover{transform:translateY(-6px);box-shadow:var(--sh-card)}
.case__tag{font-size:var(--t-micro);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep)}
.case__n{font-family:var(--ff-display);font-weight:600;font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:-.035em;
  background:linear-gradient(130deg,var(--accent-deep),var(--accent-lift));-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent}
.case p{margin:0;color:var(--ink-2);font-size:var(--t-small)}
.case__meta{margin-top:auto;padding-top:12px;border-top:1px solid var(--line-soft);font-size:var(--t-micro);color:var(--ink-3)}
.slot{border:1.5px dashed var(--silver-3);border-radius:var(--r-lg);
  padding:clamp(34px,4.4vw,64px) clamp(24px,3vw,48px);text-align:center;
  background:linear-gradient(140deg,rgba(255,255,255,.7),rgba(237,241,231,.5))}
.slot h3{margin-bottom:12px}
.slot p{max-width:52ch;margin-inline:auto;color:var(--ink-2);font-size:var(--t-small)}

/* ============================================================
   INVESTMENT PANEL
   ============================================================ */
.invest{
  display:flex;flex-wrap:wrap;gap:26px 48px;align-items:center;justify-content:space-between;
  background:linear-gradient(122deg,var(--sage-tint),rgba(255,255,255,.75) 58%,var(--silver-1));
  background-size:240% 240%;background-position:40% 50%;
  border:1px solid var(--line-silver);border-left:5px solid var(--sage-deep);border-radius:var(--r-lg);
  padding:clamp(30px,3.4vw,52px);margin-bottom:clamp(34px,4vw,56px);
  box-shadow:0 24px 56px -38px rgba(32,48,46,.4);
}
.invest__k{font-size:var(--t-micro);font-weight:700;letter-spacing:.28em;text-transform:uppercase;
  color:var(--sage-deep);margin:0 0 14px}
.invest__n{font-family:var(--ff-display);font-weight:600;letter-spacing:-.03em;line-height:1.04;
  font-size:clamp(26px,3.2vw,50px);color:var(--ink);margin:0}
.invest__d{margin:16px 0 0;font-size:var(--t-small);color:var(--ink-2);max-width:52ch}

/* ============================================================
   CREDENTIALS — the judgment you are hiring
   ============================================================ */
.creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  background:var(--line-silver);border:1px solid var(--line-silver);border-radius:var(--r-lg);overflow:hidden}
@media (max-width:1000px){.creds{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.creds{grid-template-columns:1fr}}
.cred{background:var(--paper);padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;gap:12px;
  transition:background var(--t-fast) var(--ease)}
.cred:hover{background:linear-gradient(160deg,var(--sage-tint),var(--paper) 70%)}
.cred__ico{width:40px;height:40px;color:var(--sage-deep);margin-bottom:6px}
.cred__ico svg{width:100%;height:100%;display:block}
.cred h3{font-size:var(--t-h4);margin:0}
.cred p{margin:0;font-size:var(--t-small);color:var(--ink-2)}
.credbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(28px,3vw,42px)}
.credbar span{display:inline-flex;align-items:center;gap:10px;padding:13px 24px;
  border:1.5px solid var(--sage-line);border-radius:var(--r-btn);background:var(--sage-tint);
  font-size:var(--t-small);font-weight:600;color:var(--sage-deep);letter-spacing:.04em}
.credbar span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sage);flex:none}

/* ============================================================
   FOUNDER PORTRAIT + VIDEO SLOTS
   ============================================================ */
.portrait.portrait--photo{padding:0;min-height:0;display:block;background:var(--silver-1);gap:0}
.portrait.portrait--photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.portrait.portrait--photo figcaption{padding:clamp(22px,2.4vw,32px);background:var(--paper);
  border-top:1px solid var(--line-soft)}
.portrait.portrait--photo figcaption b{display:block;font-family:var(--ff-display);font-weight:600;
  font-size:var(--t-h3);letter-spacing:-.025em;margin-bottom:6px}
.portrait.portrait--photo figcaption span{font-size:var(--t-small);color:var(--ink-2)}
.vslot{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);
  box-shadow:0 30px 70px -42px rgba(32,48,46,.55)}
.vslot video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--ink)}

/* ============================================================
   FORMS
   ============================================================ */
.form{display:grid;gap:clamp(22px,2.4vw,30px)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2vw,26px)}
.fgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.fgrid,.fgrid--3{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:10px}
.field--full{grid-column:1/-1}
.field label,.qlabel{font-size:var(--t-small);font-weight:500;color:var(--ink);letter-spacing:.01em;line-height:1.45}
.req{color:var(--sage-deep);margin-left:3px}
.hint{font-size:var(--t-micro);color:var(--ink-3);line-height:1.5}
.field input,.field select,.field textarea{
  width:100%;font-weight:300;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line-silver);border-radius:var(--r);padding:16px 18px;
  box-shadow:0 2px 6px -4px rgba(32,48,46,.2);
  transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
  -webkit-appearance:none;appearance:none;
}
.field textarea{min-height:140px;resize:vertical;line-height:1.6}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%236C7B78' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 18px center;background-size:14px;padding-right:46px;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sage-deep);box-shadow:0 0 0 4px rgba(120,144,96,.16)}
.field input::placeholder,.field textarea::placeholder{color:#9BA5A2}

.opts{display:grid;gap:11px}
.opts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.opts--2,.opts--3{grid-template-columns:1fr}}
.opt{display:flex;align-items:flex-start;gap:13px;padding:15px 18px;
  border:1.5px solid var(--line-silver);border-radius:var(--r);background:var(--paper);cursor:pointer;
  font-size:var(--t-small);color:var(--ink-2);line-height:1.45;
  box-shadow:0 2px 6px -4px rgba(32,48,46,.18);
  transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.opt:hover{border-color:var(--silver-4);transform:translateY(-1px)}
.opt input{-webkit-appearance:none;appearance:none;margin:0;flex:none;width:21px;height:21px;
  border:1.5px solid var(--silver-3);background:#fff;border-radius:5px;position:relative;cursor:pointer;margin-top:1px;
  transition:border-color var(--t-fast),background var(--t-fast)}
.opt input[type=radio]{border-radius:50%}
.opt input:checked{background:linear-gradient(140deg in oklab,var(--sage-hot),var(--sage-deep));border-color:var(--sage)}
.opt input[type=checkbox]:checked::after{content:"";position:absolute;left:6.5px;top:3px;width:6px;height:11px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(43deg)}
.opt input[type=radio]:checked::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}
.opt input:focus-visible{outline:3px solid var(--sage);outline-offset:2px}
.opt:has(input:checked){border-color:var(--sage);background:var(--sage-tint);color:var(--ink)}

.scale{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.scale__end{font-size:var(--t-micro);color:var(--ink-3);white-space:nowrap}
.scale__set{display:flex;gap:9px;flex-wrap:wrap}
.scale__set label{position:relative;width:56px;height:56px;border:1.5px solid var(--line-silver);border-radius:var(--r);
  background:var(--paper);display:grid;place-items:center;cursor:pointer;
  font-family:var(--ff-display);font-size:var(--t-body);color:var(--ink-2);
  box-shadow:0 3px 8px -6px rgba(32,48,46,.3);transition:all var(--t-fast) var(--ease)}
.scale__set label:hover{border-color:var(--sage);transform:translateY(-2px)}
.scale__set input{position:absolute;opacity:0;width:0;height:0}
.scale__set label:has(input:checked){background:linear-gradient(140deg in oklab,var(--sage-hot),var(--slate));border-color:transparent;color:#fff}
.scale__set label:has(input:focus-visible){outline:3px solid var(--sage);outline-offset:2px}

.qsec{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:clamp(28px,3.4vw,52px);box-shadow:0 4px 20px -14px rgba(32,48,46,.24)}
.qsec__h{display:flex;align-items:baseline;gap:16px;margin-bottom:10px;flex-wrap:wrap}
.qsec__n{font-family:var(--ff-display);font-size:var(--t-micro);letter-spacing:.2em;color:var(--sage-deep)}
.qsec__t{font-size:var(--t-h3)}
.qsec__d{font-size:var(--t-small);color:var(--ink-2);margin:0 0 clamp(26px,3vw,36px);max-width:62ch}
.qnote{background:linear-gradient(120deg,var(--sage-tint),rgba(237,241,231,.4));
  border-left:3px solid var(--sage);border-radius:0 var(--r) var(--r) 0;padding:24px 28px;
  font-size:var(--t-small);color:var(--ink-2);line-height:1.55}
.formfoot{display:flex;flex-wrap:wrap;align-items:center;gap:20px;justify-content:space-between;padding-top:clamp(8px,1vw,14px)}
.notice{border:1.5px dashed var(--silver-3);border-radius:var(--r);padding:20px 24px;
  font-size:var(--t-small);color:var(--ink-2);background:rgba(255,255,255,.7)}
.notice b{color:var(--ink);font-weight:500}
.notice[hidden]{display:none}
.notice.ok{border-style:solid;border-color:var(--sage);background:var(--sage-tint)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#B4553F;box-shadow:0 0 0 4px rgba(180,85,63,.12)}
.opt.invalid{border-color:#B4553F}

.startgate{
  background:linear-gradient(140deg,var(--sage-tint),rgba(255,255,255,.8) 58%,var(--silver-1));
  background-size:240% 240%;background-position:40% 50%;
  border:1px solid var(--line-silver);border-radius:var(--r-lg);
  padding:clamp(40px,5.5vw,84px) clamp(26px,4vw,64px);text-align:center;
  display:grid;gap:20px;justify-items:center;
  box-shadow:0 24px 60px -40px rgba(32,48,46,.45)}
.startgate h2{font-size:var(--t-h2);max-width:18ch;margin:0}
.startgate > p{max-width:56ch;margin:0;color:var(--ink-2);font-size:var(--t-lead);line-height:1.42}
.startgate .btn{margin-top:10px}
.startgate__alt{font-size:var(--t-small);color:var(--ink-3);margin:0}
.startgate__alt a{color:var(--sage-deep)}
.startgate.gone{display:none}

/* ============================================================
   WIZARD
   ============================================================ */
.wiz{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  box-shadow:0 30px 70px -44px rgba(32,48,46,.4);overflow:hidden}
.wiz__bar{padding:clamp(22px,2.6vw,30px) clamp(24px,3vw,44px);border-bottom:1px solid var(--line-soft);
  background:linear-gradient(120deg,var(--paper),var(--silver-1) 60%,var(--paper));background-size:220% 100%;
  background-position:42% 50%}
.wiz__meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;justify-content:space-between;margin-bottom:16px}
.wiz__step{font-family:var(--ff-display);font-size:var(--t-h4);color:var(--ink)}
.wiz__count{font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);font-weight:700}
.wiz__track{height:9px;border-radius:3px;background:var(--silver-1);overflow:hidden;box-shadow:inset 0 1px 3px rgba(32,48,46,.14)}
.wiz__fill{height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--accent-deep),var(--accent) 45%,var(--accent-lift));
  background-size:100% 100%;
  transition:width var(--t-slow) var(--ease)}
.wiz__dots{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.wiz__dots i{width:28px;height:4px;border-radius:2px;background:var(--silver-2);transition:background var(--t-fast) var(--ease)}
.wiz__dots i.done{background:var(--accent)}
.wiz__dots i.now{background:var(--ink)}
.wiz__body{padding:clamp(28px,3.4vw,48px)}
.wiz__panel{display:none}
.wiz__panel.on{display:grid;gap:clamp(24px,2.6vw,34px);animation:wizIn .55s var(--ease-out)}
@keyframes wizIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.wiz__intro{font-size:var(--t-small);color:var(--ink-2);margin:0}
.wiz__q{display:grid;gap:12px}
.wiz__q > .qlabel{font-size:var(--t-body);font-weight:400;line-height:1.4}
.wiz__nav{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  padding:clamp(20px,2.4vw,28px) clamp(24px,3vw,44px);border-top:1px solid var(--line-soft);background:var(--ivory)}
.wiz__navL{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.wiz__hint{font-size:var(--t-micro);color:var(--ink-3)}
.wiz__done{display:none;text-align:center;padding:clamp(40px,6vw,84px) clamp(24px,3vw,44px)}
.wiz.finished .wiz__body,.wiz.finished .wiz__nav{display:none}
.wiz.finished .wiz__done{display:block}
.wiz__done h3{font-size:var(--t-h2);margin-bottom:16px}
.wiz__done p{max-width:52ch;margin-inline:auto;color:var(--ink-2)}

/* ============================================================
   REVIEWS
   ============================================================ */
.stars{display:inline-flex;gap:4px;align-items:center}
.stars svg{width:20px;height:20px;display:block}
.stars--lg svg{width:26px;height:26px}
.star-empty{fill:none;stroke:var(--silver-3);stroke-width:1.6}
.star-full{fill:url(#starGrad);stroke:none}
.rating-input{display:flex;gap:8px;flex-wrap:wrap}
.rating-input label{position:relative;width:54px;height:54px;border-radius:var(--r);border:1.5px solid var(--line-silver);
  background:var(--paper);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 3px 8px -6px rgba(32,48,46,.3);transition:all var(--t-fast) var(--ease)}
.rating-input label svg{width:24px;height:24px;stroke:var(--silver-3);fill:none;stroke-width:1.6;transition:all var(--t-fast)}
.rating-input input{position:absolute;opacity:0;width:0;height:0}
.rating-input label:hover{transform:translateY(-2px);border-color:var(--sage)}
.rating-input label.lit{background:linear-gradient(140deg in oklab,var(--sage-hot),var(--slate));border-color:transparent}
.rating-input label.lit svg{stroke:#fff;fill:#fff}
.rating-input label:has(input:focus-visible){outline:3px solid var(--sage);outline-offset:2px}

.revgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.revgrid[data-n="1"]{grid-template-columns:minmax(0,600px);justify-content:center}
.revgrid[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:940px;margin-inline:auto}
@media (max-width:1000px){.revgrid,.revgrid[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.revgrid{grid-template-columns:1fr}}
.rev{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  padding:clamp(26px,2.6vw,38px);display:flex;flex-direction:column;gap:16px;
  box-shadow:0 4px 18px -12px rgba(32,48,46,.24);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.rev:hover{transform:translateY(-5px);box-shadow:var(--sh-card)}
.rev__q{font-family:var(--ff-display);font-size:var(--t-h4);line-height:1.36;color:var(--ink);margin:0}
.rev__who{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:6px}
.rev__who .rev__av{width:52px;height:52px;border-radius:var(--r-btn);flex:none;display:grid;place-items:center;
  font-family:var(--ff-display);font-size:var(--t-small);color:#fff;
  background:linear-gradient(140deg in oklab,var(--sage-hot),var(--slate));color:#fff;font-size:var(--t-small);letter-spacing:.02em}
.rev__who b{display:block;font-weight:500;font-size:var(--t-small);color:var(--ink)}
.rev__who span{display:block;font-size:var(--t-micro);color:var(--ink-3)}
.rev__empty{border:1.5px dashed var(--silver-3);border-radius:var(--r-lg);
  padding:clamp(38px,5vw,72px) clamp(26px,3vw,48px);text-align:center;
  background:linear-gradient(140deg,rgba(255,255,255,.7),rgba(237,241,231,.5))}
.rev__empty h3{margin-bottom:12px}
.rev__empty p{max-width:46ch;margin-inline:auto;color:var(--ink-2);font-size:var(--t-small)}
.revcta{
  display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between;
  background:linear-gradient(130deg,var(--sage-tint),rgba(255,255,255,.75) 60%,var(--silver-1));
  background-size:220% 220%;background-position:40% 50%;
  border:1px solid var(--line-silver);border-radius:var(--r-lg);
  padding:clamp(28px,3.2vw,46px);box-shadow:0 20px 50px -34px rgba(32,48,46,.4);
}
.revcta h3{margin-bottom:8px}
.revcta p{margin:0;color:var(--ink-2);font-size:var(--t-small);max-width:44ch}
.revcta.gone{display:none}
.revform{animation:wizIn .5s var(--ease-out)}
.revclose{
  display:block;margin:22px auto 0;background:none;border:0;cursor:pointer;
  font-size:var(--t-small);color:var(--ink-3);text-decoration:underline;text-underline-offset:4px;
}
.revclose:hover{color:var(--ink)}
.slab__row--center{justify-content:center}
.revsum{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 26px;margin-bottom:clamp(30px,3.4vw,44px)}
.revsum__n{font-family:var(--ff-display);font-size:clamp(40px,5vw,64px);line-height:1;color:var(--ink)}
.revsum__t{font-size:var(--t-small);color:var(--ink-2)}

/* ============================================================
   INSIGHTS
   ============================================================ */
.artgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
@media (max-width:1000px){.artgrid{grid-template-columns:1fr}}
.art{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 4px 18px -12px rgba(32,48,46,.24);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.art:hover{transform:translateY(-6px);box-shadow:var(--sh-card)}
.art__img{aspect-ratio:16/9;overflow:hidden;background:var(--silver-1)}
.art__img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.art:hover .art__img img{transform:scale(1.06)}
.art__b{padding:clamp(24px,2.6vw,34px);display:flex;flex-direction:column;gap:12px;flex:1}
.art__tag{font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);font-weight:500}
.art__b h3{margin:0}
.art__b p{font-size:var(--t-small);color:var(--ink-2);margin:0}
.art__b .tlink{margin-top:auto;align-self:flex-start}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;
  font-size:var(--t-micro);color:var(--ink-3);letter-spacing:.02em;margin:0 0 clamp(24px,2.6vw,34px)}
.byline b{font-weight:600;color:var(--ink)}
.byline span{width:4px;height:4px;border-radius:50%;background:var(--silver-3)}
.byline a{color:var(--sage-deep);text-decoration:none;border-bottom:1px solid var(--sage-line)}
.longread{max-width:74ch}
.longread h2{font-size:var(--t-h3);margin:clamp(34px,3.6vw,52px) 0 14px}
.longread h2:first-child{margin-top:0}
.longread p{color:var(--ink-2)}
.longread ul{padding-left:22px;color:var(--ink-2)}
.longread li{margin-bottom:9px;font-size:var(--t-small)}
.longread blockquote{margin:clamp(28px,3vw,40px) 0;padding:0 0 0 clamp(20px,2.4vw,30px);
  border-left:3px solid var(--sage);font-family:var(--ff-display);font-size:var(--t-h4);line-height:1.4;color:var(--ink)}

/* ============================================================
   CALENDAR
   ============================================================ */
.calwrap{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:0 30px 70px -40px rgba(32,48,46,.44)}
.calwrap__h{padding:24px clamp(22px,2.6vw,32px);border-bottom:1px solid var(--line-soft);
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  background:linear-gradient(110deg,var(--paper),var(--silver-1) 55%,var(--paper))}
.calwrap__h b{font-family:var(--ff-display);font-weight:400;font-size:var(--t-h4)}
.calwrap__stage{position:relative;min-height:660px;background:var(--paper)}
.calwrap iframe{width:100%;height:660px;border:0;display:block;background:#fff;position:relative;z-index:2}
.calwrap__fallback{position:absolute;inset:0;z-index:1;display:none;flex-direction:column;align-items:center;
  justify-content:center;gap:18px;text-align:center;padding:40px clamp(24px,4vw,48px);background:var(--sage-tint)}
.calwrap.offline .calwrap__fallback{display:flex}
.calwrap.offline iframe{display:none}
.calwrap__fallback p{font-size:var(--t-small);color:var(--ink-2);max-width:38ch;margin:0}
.calwrap__fallback b{font-family:var(--ff-display);font-weight:400;font-size:var(--t-h3);color:var(--ink)}
@media (max-width:760px){.calwrap iframe,.calwrap__stage{height:740px;min-height:740px}}
.callive{display:inline-flex;align-items:center;gap:9px;font-size:var(--t-micro);color:var(--sage-deep);letter-spacing:.06em}
.callive::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sage);
  box-shadow:0 0 0 0 rgba(120,144,96,.6);animation:pulse 2.4s infinite}

/* ============================================================
   LEGAL
   ============================================================ */
.legal{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(36px,5vw,80px);align-items:start}
@media (max-width:960px){.legal{grid-template-columns:1fr}}
.legal__toc{position:sticky;top:calc(var(--hdr-h) + 16px);border-left:2px solid var(--line-silver);padding-left:24px}
@media (max-width:960px){.legal__toc{position:static;border-left:0;border-top:2px solid var(--line-silver);padding:26px 0 0}}
.legal__toc b{display:block;font-size:var(--t-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:18px}
.legal__toc a{display:block;font-size:var(--t-small);color:var(--ink-2);text-decoration:none;padding:7px 0;transition:color var(--t-fast),padding-left var(--t-fast)}
.legal__toc a:hover{color:var(--sage-deep);padding-left:6px}
.legal__body section{padding-bottom:clamp(34px,3.6vw,50px);scroll-margin-top:120px}
.legal__body h2{font-size:var(--t-h3);margin-bottom:16px}
.legal__body p,.legal__body li{font-size:var(--t-small);color:var(--ink-2)}
.legal__body ul{padding-left:22px;margin:0 0 1.1em}
.legal__body li{margin-bottom:9px}
.legal__body a{color:var(--sage-deep)}
.eff{font-size:var(--t-small);color:var(--ink-3);padding-bottom:26px;border-bottom:1px solid var(--line-silver);margin-bottom:36px}

/* ============================================================
   FOOTER — brand block + three nav columns + legal bar (Sandler)
   ============================================================ */
.ftr{background:var(--ink);color:rgba(255,255,255,.78);position:relative;overflow:hidden}
.ftr__in{position:relative;z-index:3;padding-block:var(--sec-y);
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,2fr);gap:clamp(40px,5vw,80px)}
@media (max-width:960px){.ftr__in{grid-template-columns:1fr}}
.ftr__brand{display:grid;gap:22px;align-content:start}
.ftr__logo{display:inline-block;width:190px;border-radius:var(--r-btn);
  transition:opacity var(--t-fast) var(--ease)}
.ftr__logo:hover{opacity:.78}
.ftr__strap{margin:0;font-size:var(--t-small);color:rgba(255,255,255,.74);max-width:42ch;line-height:1.6}
.ftr__addr{font-style:normal;font-size:var(--t-micro);color:rgba(255,255,255,.56);line-height:1.75;margin:0}
.ftr__brand .btn{justify-self:start}

.ftr__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,52px)}
@media (max-width:820px){.ftr__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ftr__cols{grid-template-columns:1fr}}
.ftr__col h2{font-family:var(--ff-body);font-size:var(--t-micro);font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:#D8E4C4;margin:0 0 22px}
.ftr__col ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ftr__col a{font-size:var(--t-small);color:rgba(255,255,255,.8);text-decoration:none;
  position:relative;display:inline-block;padding-bottom:2px;
  transition:color var(--t-fast) var(--ease)}
.ftr__col a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;
  transition:right var(--t-fast) var(--ease)}
.ftr__col a:hover,.ftr__col a:focus-visible{color:#fff}
.ftr__col a:hover::after,.ftr__col a:focus-visible::after{right:0}
.ftr__facts li{font-size:var(--t-small);color:rgba(255,255,255,.68);line-height:1.55}

.ftr__bar{position:relative;z-index:3;border-top:1px solid rgba(255,255,255,.14)}
.ftr__bar-in{display:flex;flex-wrap:wrap;gap:16px 30px;justify-content:space-between;align-items:center;
  padding-block:26px 32px;font-size:var(--t-micro);color:rgba(255,255,255,.6)}
.ftr__legal{display:flex;flex-wrap:wrap;gap:22px}
.ftr__bar a{color:rgba(255,255,255,.76);text-decoration:none;position:relative;padding-bottom:2px;
  transition:color var(--t-fast) var(--ease)}
.ftr__bar a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;
  transition:right var(--t-fast) var(--ease)}
.ftr__bar a:hover,.ftr__bar a:focus-visible{color:#fff}
.ftr__bar a:hover::after,.ftr__bar a:focus-visible::after{right:0}

/* ============================================================
   ACCESSIBILITY CONTROL
   ============================================================ */
.a11y{position:fixed;left:0;bottom:clamp(18px,4vh,44px);z-index:150}
.a11y__btn{
  width:56px;height:60px;border:0;cursor:pointer;display:grid;place-items:center;
  background:linear-gradient(120deg,#2E403F,var(--slate));
  color:#fff;border-radius:0 var(--r-lg) var(--r-lg) 0;
  box-shadow:0 14px 34px -12px rgba(32,48,46,.7);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.a11y__btn svg{width:28px;height:28px}
.a11y__btn:hover{transform:translateX(4px);box-shadow:0 20px 44px -12px rgba(32,48,46,.85)}
.a11y__btn:focus-visible{outline:3px solid var(--sage);outline-offset:3px}
.a11y__panel{
  position:absolute;left:calc(100% + 12px);bottom:0;width:min(330px,calc(100vw - 84px));
  background:var(--paper);border:1px solid var(--line-silver);border-radius:var(--r-lg);
  box-shadow:0 34px 80px -30px rgba(32,48,46,.5);padding:22px;display:grid;gap:12px;
  opacity:0;transform:translateY(10px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.a11y__panel[hidden]{display:none}
.a11y.open .a11y__panel{opacity:1;transform:none}
.a11y__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}
.a11y__head h2{font-size:var(--t-h4);margin:0}
.a11y__close{width:34px;height:34px;border:1.5px solid var(--line-silver);background:var(--paper);
  border-radius:var(--r-btn);display:grid;place-items:center;cursor:pointer;color:var(--ink-2);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.a11y__close svg{width:15px;height:15px}
.a11y__close:hover{border-color:var(--ink);color:var(--ink)}
.a11y__row{display:grid;gap:10px}
.a11y__label{font-size:var(--t-small);font-weight:600;color:var(--ink)}
.a11y__seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
  background:var(--silver-1);border-radius:var(--r-btn);padding:5px}
.a11y__seg button{border:0;background:transparent;cursor:pointer;padding:11px 6px;border-radius:4px;
  font-size:var(--t-micro);font-weight:600;color:var(--ink-2);
  transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.a11y__seg button:hover{color:var(--ink)}
.a11y__seg button[aria-pressed="true"]{background:var(--paper);color:var(--ink);box-shadow:0 2px 6px -3px rgba(32,48,46,.4)}
.a11y__toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  padding:14px 16px;border:1.5px solid var(--line-silver);border-radius:var(--r);background:var(--paper);
  cursor:pointer;text-align:left;transition:border-color var(--t-fast) var(--ease)}
.a11y__toggle:hover{border-color:var(--silver-4)}
.a11y__switch{width:46px;height:26px;border-radius:100px;background:var(--silver-2);flex:none;
  position:relative;transition:background var(--t-fast) var(--ease)}
.a11y__switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.3);transition:transform var(--t-fast) var(--ease)}
.a11y__toggle[aria-pressed="true"]{border-color:var(--sage)}
.a11y__toggle[aria-pressed="true"] .a11y__switch{background:var(--sage)}
.a11y__toggle[aria-pressed="true"] .a11y__switch i{transform:translateX(20px)}
.a11y__reset{border:0;background:none;cursor:pointer;padding:6px 0;text-align:left;
  font-size:var(--t-small);color:var(--ink-2);text-decoration:underline;text-underline-offset:4px;
  transition:color var(--t-fast) var(--ease)}
.a11y__reset:hover{color:var(--ink)}
.a11y__note{margin:0;font-size:var(--t-micro);color:var(--ink-3);line-height:1.5}
@media (max-width:520px){
  .a11y__panel{left:12px;right:auto;bottom:calc(100% + 12px);width:min(330px,calc(100vw - 24px))}
}

/* ---- text size ---- */
html.a11y-text-1{
  --t-micro:clamp(17px,1rem + .1vw,18px); --t-small:clamp(18px,1.05rem + .2vw,20px);
  --t-body:clamp(19px,1.1rem + .34vw,22px); --t-lead:clamp(23px,1.2rem + .9vw,32px);
  --t-h4:clamp(22px,1.15rem + .6vw,29px); --t-h3:clamp(26px,1.25rem + 1.3vw,38px);
}
html.a11y-text-2{
  --t-micro:clamp(18px,1.05rem + .1vw,19px); --t-small:clamp(19px,1.1rem + .2vw,21px);
  --t-body:clamp(21px,1.2rem + .34vw,24px); --t-lead:clamp(25px,1.3rem + .9vw,34px);
  --t-h4:clamp(24px,1.25rem + .6vw,31px); --t-h3:clamp(28px,1.35rem + 1.3vw,40px);
}

/* ---- high contrast ---- */
html.a11y-contrast{
  --ink:#000; --ink-2:#141414; --ink-3:#242424;
  --paper:#fff; --ivory:#fff; --mist:#fff; --sage-tint:#fff; --accent-tint:#fff;
  --line:#000; --line-soft:#000; --line-silver:#000; --silver-1:#fff; --silver-2:#000;
  --sage-deep:#14351C; --accent:#0A2E5C; --accent-deep:#061B38;
}
html.a11y-contrast body{background:#fff}
html.a11y-contrast .grad,html.a11y-contrast .grad--silver,html.a11y-contrast .grad--light,
html.a11y-contrast .stat__n,html.a11y-contrast .case__n,html.a11y-contrast .portrait__mono{
  background-image:none!important;-webkit-text-fill-color:currentColor!important;color:inherit!important}
html.a11y-contrast .aura,html.a11y-contrast .flow,html.a11y-contrast .hero__grain,
html.a11y-contrast .vband__grain,html.a11y-contrast .slab__stairs{display:none!important}
html.a11y-contrast .band__scrim,html.a11y-contrast .hero__scrim,html.a11y-contrast .vband__scrim,
html.a11y-contrast .phero--img .phero__bg::after{background:rgba(0,0,0,.86)!important}
html.a11y-contrast .card,html.a11y-contrast .tile,html.a11y-contrast .qsec,html.a11y-contrast .rev,
html.a11y-contrast .case,html.a11y-contrast .cred,html.a11y-contrast .art{border:2px solid #000;box-shadow:none}
html.a11y-contrast .btn{border-width:2px}
html.a11y-contrast .slab,html.a11y-contrast .ftr,html.a11y-contrast .vband{background:#000}

/* ---- highlight links ---- */
html.a11y-links a:not(.btn):not(.brand):not(.ftr__logo){
  text-decoration:underline!important;text-underline-offset:3px;text-decoration-thickness:2px;
  background:#FFF3C4;color:#1A1A1A!important;box-shadow:0 0 0 2px #FFF3C4}
html.a11y-links .band__in a:not(.btn),html.a11y-links .slab a:not(.btn),
html.a11y-links .ftr a:not(.btn):not(.ftr__logo),html.a11y-links .vband a:not(.btn){
  background:#FFF3C4;color:#1A1A1A!important}
html.a11y-links .btn{outline:2px dashed currentColor;outline-offset:3px}

/* ---- reduce motion (panel toggle; mirrors the media query) ---- */
html.a11y-motion *,html.a11y-motion *::before,html.a11y-motion *::after{
  animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;
  transition-duration:1ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
html.a11y-motion .rv{opacity:1!important;transform:none!important}
html.a11y-motion .ln>span,html.a11y-motion .hero__kicker,html.a11y-motion .hero__tagline,
html.a11y-motion .hero__cta,html.a11y-motion .scrollcue,html.a11y-motion .intro__mark .logomark,
html.a11y-motion .intro__word{opacity:1!important;transform:none!important}
html.a11y-motion .hero__media .kb{transform:none!important}
html.a11y-motion .hero__clip,html.a11y-motion .vband__media video{display:none!important}
html.a11y-motion .ticker__track{animation:none!important;transform:none!important}
html.a11y-motion .aura i,html.a11y-motion .flow,html.a11y-motion .grad,
html.a11y-motion .slab::before{animation:none!important}
html.a11y-motion .proc::after{transition:none!important}

/* router */
/* WordPress serves real pages, so the offline file's page-switcher is gone.
   It cannot simply stay either: WordPress puts a bare `page` class on <body>
   for every static page, so `.page{display:none}` hid the whole site. */
#main > .page{display:block;animation:pageIn .75s var(--ease-out)}
@keyframes pageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.topbar{position:fixed;left:0;top:0;height:3px;z-index:300;width:0;
  background:linear-gradient(90deg,var(--sage-deep),var(--sage),var(--silver-3));transition:width .15s linear}

/* founder portrait */
.portrait{position:relative;overflow:hidden;
  background:linear-gradient(155deg,var(--sage-tint) 0%,var(--paper) 55%,var(--silver-1) 100%);
  border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:clamp(30px,3.4vw,48px);
  display:flex;flex-direction:column;gap:clamp(24px,3vw,38px);
  min-height:clamp(360px,42vw,520px);justify-content:space-between;
  box-shadow:0 30px 70px -44px rgba(32,48,46,.42)}
.portrait__mono{font-family:var(--ff-display);font-size:clamp(130px,20vw,230px);line-height:.78;
  letter-spacing:-.05em;opacity:.3;
  background:linear-gradient(140deg,var(--sage),var(--silver-3));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.portrait__body{position:relative;z-index:2}
.portrait__role{font-size:var(--t-micro);letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep);margin:0 0 12px}
.portrait__name{font-size:var(--t-h2);line-height:1.04;margin-bottom:10px}
.portrait__tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.portrait__tags span{font-size:var(--t-micro);color:var(--ink-2);background:rgba(255,255,255,.9);
  border:1px solid var(--line-silver);border-radius:var(--r-btn);padding:9px 16px}
.portrait__stairs{position:absolute;right:-6%;top:6%;width:min(230px,44%);color:var(--sage);opacity:.18;pointer-events:none}

/* utility */
.center{text-align:center}
.mt-s{margin-top:clamp(20px,2.2vw,30px)}
.mt-m{margin-top:clamp(30px,3.4vw,48px)}
.mt-l{margin-top:clamp(44px,5vw,72px)}
.maxw{max-width:60ch}
::selection{background:var(--sage-deep);color:#fff}
:focus-visible{outline:3px solid var(--sage);outline-offset:3px;border-radius:4px}

.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}
.card--flush{padding:clamp(30px,3.2vw,46px)}

@media print{
  .hdr,.drawer,.burger,.ticker,.pnav,.slab,.scrollcue,.intro,.topbar,.aura,.flow{display:none!important}
  #main > .page{display:block!important}
  body{background:#fff}
  .rv{opacity:1!important;transform:none!important}
}
