:root{
  /* Brand colours: one main colour (--navy) + one accent (--gold); everything else on the
     page is derived from them. */
  --navy:#0D2620; /* main colour: deep forest green */
  --navy-2:#133229;
  --navy-hover:#11302A;
  --deep:#0A1F1A;
  --paper:#F5F3EE;
  --white:#FFFDF8;
  --blue:#9DB5A7;
  --line-blue:#5A7A6B;
  --text:#14281F;
  --muted-light:#56695F;
  --body-ink:#33473D;
  --placeholder:#9DA89F;
  --gold:#D7A64A;
  --gold-hover:#e2b560;
  --gold-dim:#b9862f;
  --gold-ink:#a77a26;
  --gold-ink-2:#8f6720;
  --navy-rgb:13,38,32;
  --navy2-rgb:19,50,41;
  --deep-rgb:8,22,18;
  --text-rgb:20,40,31;
  --blue-rgb:157,181,167;
  --gold-rgb:215,166,74;

  --rule-dark:rgba(var(--blue-rgb),.2);
  --rule-dark-soft:rgba(var(--blue-rgb),.1);
  --rule-light:rgba(var(--text-rgb),.14);
  --rule-light-soft:rgba(var(--text-rgb),.07);

  --max:1280px;
  --gutter:clamp(18px, 4vw, 48px);
  --display:'Inter Tight', 'Inter', system-ui, sans-serif;
  --sans:'Inter', system-ui, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, Consolas, monospace;
  --ease:cubic-bezier(.6,.05,.2,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:80px;}
body{background:var(--paper); color:var(--text); font-family:var(--sans); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
img,svg{max-width:100%; display:block;}
button,input,select,textarea{font:inherit; color:inherit;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.wrap{max-width:var(--max); margin:0 auto; padding-inline:var(--gutter);}

/* type */
.label{font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;}
.label-gold{color:var(--gold);}
.h-xl,.h-lg,.h-md{font-family:var(--display); font-weight:700; letter-spacing:-.035em; line-height:.96;}
.h-xl{font-size:clamp(42px, 6vw, 86px);}
.h-lg{font-size:clamp(36px, 4.6vw, 66px);}
.h-md{font-size:clamp(30px, 3.6vw, 52px); line-height:1;}
.lede{font-size:clamp(17px, 1.4vw, 19px); line-height:1.55; max-width:560px;}
.muted-d{color:var(--blue);}
.muted-l{color:var(--muted-light);}
.gold{color:var(--gold);}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:12px; padding:16px 24px; font-family:var(--mono); font-size:12.5px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; border:1px solid transparent; border-radius:2px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; white-space:nowrap;}
.btn .arr{transition:transform .2s;}
.btn:hover .arr{transform:translateX(3px);}
.btn-gold{background:var(--gold); color:var(--navy);}
.btn-gold:hover{background:var(--gold-hover);}
.btn-line-d{border-color:var(--rule-dark); color:var(--white);}
.btn-line-d:hover{border-color:var(--blue);}
.btn-navy{background:var(--navy); color:var(--white);}
.btn-navy:hover{background:var(--navy-2);}
.btn-line-navy{border-color:rgba(var(--navy-rgb),.35); color:var(--navy);}
.btn-line-navy:hover{border-color:var(--navy);}

/* grid backgrounds */
.bg-grid-dark{background-image:
  linear-gradient(var(--rule-dark-soft) 1px, transparent 1px),
  linear-gradient(90deg, var(--rule-dark-soft) 1px, transparent 1px);
  background-size:48px 48px;}
.bg-grid-light{background-image:
  linear-gradient(var(--rule-light-soft) 1px, transparent 1px),
  linear-gradient(90deg, var(--rule-light-soft) 1px, transparent 1px);
  background-size:48px 48px;}

/* reveal system */
.js [data-reveal]{opacity:0; transform:translateY(18px); transition:opacity 1s var(--ease), transform 1s var(--ease); transition-delay:var(--d, 0s);}
.js [data-reveal].in{opacity:1; transform:none;}
.js .draw{stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset var(--dur, 2.2s) var(--ease) var(--d, 0s);}
.js .in .draw, .js .draw.in{stroke-dashoffset:0;}
.js .fade{opacity:0; transition:opacity 1.2s ease var(--d, 0s);}
.js .in .fade{opacity:1;}

/* ---------- utility bar + header ---------- */
.utility{background:var(--navy); color:var(--blue); border-bottom:1px solid var(--rule-dark);}
.utility .wrap{display:flex; justify-content:space-between; gap:16px; height:36px; align-items:center; font-size:10.5px;}
.nav{position:sticky; top:0; z-index:60; transition:background .35s, color .35s, border-color .35s; border-bottom:1px solid var(--rule-dark); background:var(--navy); color:var(--white);}
.nav.is-light{background:var(--paper); color:var(--text); border-color:var(--rule-light);}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:72px; gap:24px;}
.logo{display:flex; align-items:center; gap:12px; font-family:var(--display); font-weight:800; font-size:21px; letter-spacing:.16em;}
.logo svg{width:15px; height:18px;}
.nav-links{display:flex; gap:clamp(18px, 2.4vw, 36px);}
.nav-links a{font-size:14px; font-weight:500; opacity:.78; transition:opacity .2s; position:relative;}
.nav-links a:hover{opacity:1;}
.nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);}
.nav-links a:hover::after{transform:scaleX(1);}
.nav .btn{padding:12px 18px;}
.menu-btn{display:none; width:44px; height:40px; background:none; border:1px solid currentColor; border-radius:2px; opacity:.7; cursor:pointer;}
.menu-btn span{display:block; width:18px; height:1.5px; background:currentColor; margin:4px auto;}
.mobile-menu{display:none; padding:8px var(--gutter) 24px; border-top:1px solid var(--rule-dark);}
.nav.is-light .mobile-menu{border-color:var(--rule-light);}
.mobile-menu a{display:block; padding:14px 0; border-bottom:1px solid var(--rule-dark-soft); font-size:16px; font-weight:500;}
.nav.is-light .mobile-menu a{border-color:var(--rule-light-soft);}
.mobile-menu .btn{margin-top:18px; justify-content:center; display:flex; border:none;}
.nav.open .mobile-menu{display:block;}

/* ---------- 01 HERO ---------- */
.hero{background:var(--navy); color:var(--white); position:relative; overflow:hidden;}
.hero::before{content:""; position:absolute; inset:0; opacity:.55; -webkit-mask-image:linear-gradient(90deg, transparent, #000 45%); mask-image:linear-gradient(90deg, transparent 5%, #000 50%);}
.hero .bg-grid-dark{position:absolute; inset:0; -webkit-mask-image:radial-gradient(ellipse 90% 80% at 70% 40%, #000, transparent 80%); mask-image:radial-gradient(ellipse 90% 80% at 70% 40%, #000, transparent 80%);}
.hero-grid{position:relative; display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px, 5vw, 80px); align-items:center; padding-block:clamp(64px, 9vw, 128px) clamp(64px, 8vw, 112px);}
.hero-grid > *{min-width:0;}
.hero .label{display:flex; align-items:center; gap:14px; margin-bottom:28px;}
.hero .label::before{content:""; width:28px; height:1px; background:var(--gold);}
.hero h1{margin-bottom:28px;}
.hero h1 .gold{color:var(--gold);}
.hero .lede{color:var(--blue); margin-bottom:40px;}
.hero-cta{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px;}
.cred{list-style:none; display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--rule-dark);}
.cred li{flex:1 1 170px; padding:16px 18px 0 0; font-size:13.5px; color:var(--blue); display:flex; gap:10px; align-items:baseline;}
.cred li::before{content:""; flex:none; width:7px; height:7px; border:1px solid var(--gold); transform:rotate(45deg) translateY(-1px);}

.blueprint{position:relative; will-change:transform;}
.blueprint svg{width:100%; height:auto; overflow:visible;}
.bp-line{fill:none; stroke:var(--blue); stroke-width:1.1;}
.bp-thin{fill:none; stroke:var(--line-blue); stroke-width:.8;}
.bp-gold{fill:none; stroke:var(--gold); stroke-width:1;}
.bp-text{font-family:var(--mono); font-size:9px; fill:var(--blue); letter-spacing:.06em;}
.bp-text-g{font-family:var(--mono); font-size:9.5px; fill:var(--gold); letter-spacing:.04em;}
.bp-text-w{font-family:var(--mono); fill:var(--white); letter-spacing:.06em;}
.scan{opacity:0;}
.js .in .scan{animation:scan 9s ease-in-out 3.2s infinite;}
@keyframes scan{0%{transform:translateX(0); opacity:0} 8%{opacity:1} 70%{opacity:1} 80%{transform:translateX(560px); opacity:0} 100%{transform:translateX(560px); opacity:0}}

/* ---------- 02 THE DIFFERENCE ---------- */
.diff{background:var(--paper); position:relative; border-top:1px solid var(--rule-light);}
.diff-transition{height:120px; background:linear-gradient(var(--navy), var(--white));}
.diff-intro{display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:end; padding-block:clamp(40px, 6vw, 88px) clamp(48px, 6vw, 88px); border-bottom:1px solid var(--rule-light);}
.diff-intro .label{margin-bottom:22px; display:block;}
.diff-intro p{color:var(--muted-light); font-size:18px; max-width:420px;}
.diff-flow{display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(32px, 5vw, 72px); position:relative;}
.diff-flow > *{min-width:0;}
.wt-head{grid-column:1; grid-row:1; padding:clamp(48px, 8vh, 96px) 0 0 28px; border-left:1px solid var(--rule-light);}
.wt-head .label{display:flex; align-items:center; gap:14px; margin-bottom:18px; color:var(--gold-ink);}
.wt-head .label::before{content:""; width:28px; height:1px; background:var(--gold);}
.wt-head h2{font-family:var(--display); font-weight:800; font-size:clamp(38px, 3.9vw, 60px); white-space:nowrap; letter-spacing:-.045em; line-height:.9;}
.wt-head h2 span{color:var(--gold);}
.wt-head p{margin-top:16px; color:var(--muted-light); max-width:360px;}
.steps{grid-column:1; grid-row:2;}
.stage-wrap{grid-column:2; grid-row:1 / span 2;}
.steps{padding-block:0 22vh;}
.step{min-height:64vh; display:flex; flex-direction:column; justify-content:center; padding-left:28px; border-left:1px solid var(--rule-light); position:relative; transition:opacity .5s;}
.js .step{opacity:.28;}
.js .step.active{opacity:1;}
.step::before{content:""; position:absolute; left:-1px; top:calc(50% - 60px); height:120px; width:2px; background:var(--gold); transform:scaleY(0); transition:transform .6s var(--ease);}
.step.active::before{transform:scaleY(1);}
.step .num{font-family:var(--mono); font-size:12px; color:var(--line-blue); letter-spacing:.1em; margin-bottom:14px;}
.step.active .num{color:var(--gold-ink);}
.step h3{font-family:var(--display); font-size:clamp(30px, 3.4vw, 48px); font-weight:700; letter-spacing:-.03em; line-height:1; margin-bottom:16px;}
.step p{color:var(--muted-light); max-width:380px;}
.step .out{margin-top:18px; font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--line-blue);}

.stage-wrap{position:sticky; top:104px; align-self:start; padding-top:12vh;}
.stage{background:var(--white); border:1px solid var(--rule-light); box-shadow:0 30px 60px -40px rgba(var(--navy-rgb),.35);}
.stage-bar{display:flex; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--rule-light); font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; color:var(--muted-light); text-transform:uppercase;}
.stage-count{color:var(--gold-ink);}
.stage-body{position:relative; aspect-ratio:640/440; container-type:inline-size; overflow:hidden;}
.stage-body .bg-grid-light{position:absolute; inset:0; background-size:4cqw 4cqw; opacity:.8;}
.plan{position:absolute; inset:0; width:100%; height:100%; transition:opacity .8s;}
.pl-wall{fill:none; stroke:var(--text); stroke-width:5; stroke-linecap:square;}
.pl-door{fill:none; stroke:var(--line-blue); stroke-width:1.2;}
.pl-thin{fill:none; stroke:var(--line-blue); stroke-width:.8;}
.pl-text{font-family:var(--mono); font-size:9.5px; fill:var(--muted-light); letter-spacing:.08em;}
.pl-tag circle{fill:var(--white); stroke:var(--line-blue); stroke-width:.9;}
.pl-tag text{font-family:var(--mono); font-size:7.5px; fill:var(--text); text-anchor:middle;}
.tk{opacity:0; transition:opacity .8s;}
.tk circle{fill:var(--gold);}
.tk text{font-family:var(--mono); font-size:9px; font-weight:500; fill:var(--navy); text-anchor:middle;}
.tk .tk-dim{stroke:var(--gold-dim); stroke-width:1; fill:none;}
.tk .tk-lbl{fill:var(--gold-ink); font-size:9.5px;}
.stage.r4 .tk{opacity:1;}
.stage.r5 .plan{opacity:.28;}

.ov{position:absolute; background:var(--white); border:1px solid rgba(var(--text-rgb),.22); box-shadow:0 14px 30px -18px rgba(var(--navy-rgb),.45); font-family:var(--mono); font-size:max(6.5px, 1.45cqw); color:var(--text); opacity:0; transition:opacity .7s var(--ease), transform .8s var(--ease); pointer-events:none;}
.ov-head{display:flex; justify-content:space-between; gap:8px; padding:.9em 1.2em; border-bottom:1px solid var(--rule-light); letter-spacing:.08em; color:var(--muted-light);}
.ov-head b{color:var(--text); font-weight:500;}
.ov table{width:100%; border-collapse:collapse;}
.ov th{font-weight:500; color:var(--muted-light); text-align:left; padding:.7em 1.2em; border-bottom:1px solid var(--rule-light); letter-spacing:.06em;}
.ov td{padding:.62em 1.2em; border-bottom:1px solid var(--rule-light-soft); white-space:nowrap;}
.ov td.r, .ov th.r{text-align:right;}
.ov tr.hl td{background:rgba(var(--gold-rgb),.14);}
.ov-sched{right:3%; bottom:5%; width:60%; transform:translate(4%, 8%);}
.ov-spec{left:3%; top:5%; width:44%; transform:translate(-4%, -6%); padding-bottom:.8em;}
.ov-spec p{padding:.35em 1.2em; line-height:1.5;}
.ov-spec .sec{color:var(--text); font-weight:500; padding-top:.9em;}
.ov-spec .hl{background:rgba(var(--gold-rgb),.18); box-shadow:inset 2px 0 0 var(--gold);}
.ov-spec .bar{height:.55em; margin:.55em 1.2em; background:var(--rule-light-soft);}
.ov-tally{left:3%; bottom:5%; width:34%; transform:translateY(8%); border-color:var(--gold);}
.ov-tally .ov-head{color:var(--gold-ink);}
.ov-tally td:last-child{text-align:right; color:var(--gold-ink);}
.ov-est{left:50%; top:50%; width:74%; transform:translate(-50%, -44%);}
.ov-est tfoot td{font-weight:500; border-top:1px solid var(--text); border-bottom:none;}
.stage.r2 .ov-sched{opacity:1; transform:none;}
.stage.r3 .ov-spec{opacity:1; transform:none;}

.stage.r4 .ov-sched, .stage.r4 .ov-spec{opacity:0; transform:translateY(4%);}
.stage.r4 .ov-tally{opacity:1; transform:none;}
.stage.r5 .ov-tally{opacity:0;}
.stage.r5 .ov-est{opacity:1; transform:translate(-50%, -50%);}
.stage-rail{display:grid; grid-template-columns:repeat(5, 1fr); border-top:1px solid var(--rule-light);}
.stage-rail span{padding:10px 12px; font-family:var(--mono); font-size:10px; letter-spacing:.08em; color:var(--line-blue); border-left:1px solid var(--rule-light); position:relative; transition:color .4s;}
.stage-rail span:first-child{border-left:none;}
.stage-rail span::after{content:""; position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease);}
.stage.r1 .stage-rail span:nth-child(1)::after, .stage.r2 .stage-rail span:nth-child(2)::after, .stage.r3 .stage-rail span:nth-child(3)::after, .stage.r4 .stage-rail span:nth-child(4)::after, .stage.r5 .stage-rail span:nth-child(5)::after{transform:scaleX(1);}
.stage.r1 .stage-rail span:nth-child(1), .stage.r2 .stage-rail span:nth-child(2), .stage.r3 .stage-rail span:nth-child(3), .stage.r4 .stage-rail span:nth-child(4), .stage.r5 .stage-rail span:nth-child(5){color:var(--text);}

/* ---------- 03 SERVICES ---------- */
.services{background:var(--white); padding-block:clamp(40px, 6vw, 96px) clamp(88px, 11vw, 160px);}
.sec-head{display:grid; grid-template-columns:1.2fr .8fr; gap:32px 48px; align-items:end; margin-bottom:clamp(48px, 6vw, 80px);}
.sec-head .label{display:block; margin-bottom:22px;}
.sec-head p{font-size:18px; max-width:400px;}
.panels{display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--rule-light);}
.panel{padding:clamp(28px, 3.5vw, 52px); display:flex; flex-direction:column; min-width:0; position:relative;}
.panel + .panel{border-left:1px solid var(--rule-light);}
.panel-top{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid var(--rule-light);}
.panel-top .label{color:var(--line-blue);}
.panel-num{font-family:var(--display); font-weight:800; font-size:clamp(88px, 10vw, 150px); letter-spacing:-.06em; line-height:.8; color:var(--navy);}
.panel-num span{color:var(--gold);}
.panel h3{font-family:var(--display); font-size:clamp(30px, 3vw, 44px); font-weight:700; letter-spacing:-.03em; margin:22px 0 12px; line-height:1;}
.panel > p{color:var(--muted-light); max-width:440px; margin-bottom:28px;}
.panel-art{border:1px solid var(--rule-light); background:var(--paper); margin-bottom:28px; position:relative;}
.panel-art .bg-grid-light{position:absolute; inset:0; background-size:24px 24px;}
.panel-art svg{position:relative; width:100%; height:auto;}
.panel-art .cap{position:relative; display:block; text-align:right; padding:7px 10px; border-top:1px solid var(--rule-light); font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; color:var(--line-blue);}
.art-line{fill:none; stroke:var(--text); stroke-width:1.1;}
.art-thin{fill:none; stroke:var(--line-blue); stroke-width:.8;}
.art-gold{fill:none; stroke:var(--gold); stroke-width:1;}
.art-text{font-family:var(--mono); font-size:9px; fill:var(--line-blue); letter-spacing:.06em;}
.art-text-g{font-family:var(--mono); font-size:9.5px; fill:var(--gold-ink);}
.scope{list-style:none; display:grid; grid-template-columns:1fr 1fr; column-gap:28px; margin-bottom:36px; border-top:1px solid var(--rule-light);}
.scope li{display:flex; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--rule-light-soft); font-size:15px; font-weight:500;}
.scope li span{font-family:var(--mono); font-size:11px; color:var(--line-blue); font-weight:400; padding-top:2px; white-space:nowrap;}
.panel-cta{margin-top:auto; display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:12.5px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; padding-top:20px; border-top:1px solid var(--text); width:100%; justify-content:space-between;}
.panel-cta:hover{color:var(--gold-ink);}

/* ---------- 04 DIVISION 10 ---------- */
.d10{background:var(--navy); color:var(--white); padding-block:clamp(88px, 11vw, 160px); position:relative; overflow:clip;}
.d10 .bg-grid-dark{position:absolute; inset:0; -webkit-mask-image:linear-gradient(180deg, #000, transparent 60%); mask-image:linear-gradient(180deg, #000, transparent 60%);}
.d10 .wrap{position:relative;}
.d10 .sec-head p{color:var(--blue);}
.cats{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--rule-dark); border:1px solid var(--rule-dark);}
.cat{background:var(--navy); padding:32px 30px 34px; min-width:0; transition:background .3s;}
.cat:hover{background:var(--navy-hover);}
.cat-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:34px;}
.cat-top .n{font-family:var(--mono); font-size:12px; color:var(--gold); letter-spacing:.1em;}
.cat-top .csi{font-family:var(--mono); font-size:10.5px; color:var(--line-blue); letter-spacing:.08em; margin-top:4px;}
.cat svg{width:56px; height:56px; margin-bottom:24px;}
.ic{fill:none; stroke:var(--blue); stroke-width:1.1;}
.ic-g{fill:none; stroke:var(--gold); stroke-width:1.1;}
.cat h3{font-family:var(--display); font-size:24px; font-weight:700; letter-spacing:-.02em; margin-bottom:16px;}
.cat ul{list-style:none; display:flex; flex-wrap:wrap; gap:6px;}
.cat li{font-size:13px; color:var(--blue); border:1px solid var(--rule-dark); padding:4px 10px; border-radius:2px;}

/* ---------- 05 WHAT YOU RECEIVE ---------- */
.receive{background:var(--paper); padding-block:clamp(88px, 11vw, 160px); position:relative; overflow:hidden;}
.receive-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px, 6vw, 96px); align-items:start;}
.receive-grid > *{min-width:0;}
.receive .label{display:block; margin-bottom:22px;}
.receive .h-lg{margin-bottom:24px;}
.receive .lede{color:var(--muted-light); margin-bottom:48px;}
.dl{list-style:none; border-top:1px solid var(--text);}
.dl li{display:grid; grid-template-columns:56px 1fr; gap:4px 16px; padding:20px 0; border-bottom:1px solid var(--rule-light);}
.dl .n{font-family:var(--mono); font-size:12px; color:var(--gold-ink); padding-top:5px; grid-row:span 2;}
.dl h4{font-family:var(--display); font-size:22px; font-weight:700; letter-spacing:-.02em;}
.dl p{color:var(--muted-light); font-size:15px;}

.stack{position:relative; height:740px; --sep:0; margin-top:40px;}
.doc{position:absolute; width:76%; background:var(--white); border:1px solid rgba(var(--text-rgb),.2); box-shadow:0 1px 0 rgba(var(--text-rgb),.06), 0 24px 44px -28px rgba(var(--navy-rgb),.45); font-family:var(--mono); font-size:10.5px; color:var(--text); transition:transform .15s linear;}
.doc-1{top:0; left:0; transform:translate(calc(var(--sep) * -18px), calc(var(--sep) * -24px)) rotate(calc(-2.2deg - var(--sep) * 1deg));}
.doc-2{top:200px; left:12%; transform:translate(calc(var(--sep) * 6px), calc(var(--sep) * 10px)) rotate(.8deg); z-index:1;}
.doc-3{top:400px; left:24%; transform:translate(calc(var(--sep) * 24px), calc(var(--sep) * 52px)) rotate(calc(1.6deg + var(--sep) * 1deg)); z-index:2;}
.doc-head{display:flex; justify-content:space-between; padding:10px 14px; border-bottom:1px solid var(--rule-light); letter-spacing:.08em;}
.doc-head b{font-weight:500;}
.doc-head span{color:var(--muted-light);}
.doc-foot{display:flex; justify-content:space-between; padding:8px 14px; border-top:1px solid var(--rule-light); color:var(--line-blue); font-size:9.5px; letter-spacing:.08em;}
.doc table{width:100%; border-collapse:collapse;}
.doc th{text-align:left; font-weight:500; color:var(--muted-light); padding:8px 14px; border-bottom:1px solid var(--rule-light); font-size:9.5px; letter-spacing:.06em;}
.doc td{padding:7px 14px; border-bottom:1px solid var(--rule-light-soft); white-space:nowrap;}
.doc .r{text-align:right;}
.doc tfoot td{border-top:1px solid var(--text); font-weight:500;}
.doc-1 svg{width:100%; height:auto; background:var(--white);}
.doc .note{padding:10px 14px; color:var(--muted-light); font-size:9.5px; line-height:1.5; border-top:1px solid var(--rule-light-soft);}

/* ---------- 06 BUILT AROUND YOUR BID ---------- */
.built{background:var(--navy-2); color:var(--white); padding-block:clamp(88px, 11vw, 150px);}
.built .sec-head p{color:var(--blue);}
.blocks{display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--rule-dark);}
.block{padding:36px 28px 40px 0; border-right:1px solid var(--rule-dark); min-width:0;}
.block + .block{padding-left:28px;}
.block:last-child{border-right:none;}
.block .n{font-family:var(--mono); font-size:12px; color:var(--gold); letter-spacing:.1em; display:block; margin-bottom:72px;}
.block h3{font-family:var(--display); font-size:clamp(24px, 2.2vw, 32px); font-weight:700; letter-spacing:-.025em; line-height:1.02; margin-bottom:14px;}
.block p{color:var(--blue); font-size:15px;}

/* ---------- 07 SAMPLE ESTIMATE ---------- */
.sample{background:var(--deep); color:var(--white); padding-block:clamp(88px, 11vw, 160px); position:relative; overflow:hidden; border-top:1px solid var(--rule-dark);}
.sample .bg-grid-dark{position:absolute; inset:0; opacity:.8;}
.sample .wrap{position:relative;}
.sample .sec-head p{color:var(--blue);}
.sample .sec-head p strong{display:block; color:var(--white); font-family:var(--display); font-size:24px; letter-spacing:-.02em; font-weight:600; margin-bottom:8px;}
.story{display:grid; grid-template-columns:repeat(4, 1fr); margin-bottom:40px; border:1px solid var(--rule-dark);}
.story div{padding:14px 18px; font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; color:var(--blue); position:relative; display:flex; gap:12px; align-items:center;}
.story div + div{border-left:1px solid var(--rule-dark);}
.story div b{color:var(--gold); font-weight:500;}
.story div:not(:last-child)::after{content:"→"; position:absolute; right:14px; color:var(--line-blue);}
.sample-grid{display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(28px, 4vw, 56px); align-items:start;}
.sample-grid > *{min-width:0;}
.est{background:var(--white); color:var(--text); font-family:var(--mono); font-size:11.5px; border:1px solid rgba(255,255,255,.1);}
.est-head{display:grid; grid-template-columns:1fr auto; gap:16px; padding:18px 22px; border-bottom:1px solid var(--rule-light);}
.est-head h4{font-family:var(--display); font-size:22px; letter-spacing:-.02em; font-weight:700;}
.est-head .demo{align-self:start; border:1px solid var(--gold); color:var(--gold-ink-2); padding:5px 10px; font-size:10px; letter-spacing:.1em; text-align:right; line-height:1.4;}
.est-meta{display:grid; grid-template-columns:repeat(3, 1fr); border-bottom:1px solid var(--rule-light);}
.est-meta div{padding:10px 22px; font-size:10px; color:var(--muted-light); letter-spacing:.06em;}
.est-meta div + div{border-left:1px solid var(--rule-light);}
.est-meta b{display:block; color:var(--text); font-weight:500; font-size:11px;}
.est-scroll{overflow-x:auto;}
.est table{width:100%; border-collapse:collapse; min-width:640px;}
.est th{text-align:left; font-weight:500; font-size:10px; letter-spacing:.08em; color:var(--muted-light); padding:12px 14px; border-bottom:1px solid var(--rule-light);}
.est td{padding:13px 14px; border-bottom:1px solid var(--rule-light-soft); white-space:nowrap;}
.est th:first-child, .est td:first-child{padding-left:22px;}
.est th:last-child, .est td:last-child{padding-right:22px;}
.est .r{text-align:right;}
.est .csi{color:var(--line-blue); font-size:10px; display:block;}
.est .src{color:var(--gold-ink-2); font-size:10.5px;}
.est tbody tr.hl td{background:rgba(var(--gold-rgb),.12);}
.est tfoot td{font-weight:500; border-top:1px solid var(--text); border-bottom:none; padding-block:16px;}
.js .est tbody tr{opacity:0; transform:translateX(-8px); transition:opacity .6s ease, transform .6s var(--ease); transition-delay:calc(var(--i) * .25s + .3s);}
.js .est.in tbody tr{opacity:1; transform:none;}
.est-notes{display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--rule-light);}
.est-notes div{padding:14px 22px; font-size:10.5px; color:var(--muted-light); line-height:1.6;}
.est-notes div + div{border-left:1px solid var(--rule-light);}
.est-notes b{color:var(--text); font-weight:500; display:block; letter-spacing:.08em; margin-bottom:4px;}
.detail{border:1px solid var(--rule-dark); background:rgba(var(--navy2-rgb),.6); margin-bottom:28px;}
.detail-head{display:flex; justify-content:space-between; padding:10px 14px; border-bottom:1px solid var(--rule-dark); font-family:var(--mono); font-size:10px; letter-spacing:.08em; color:var(--blue);}
.detail svg{width:100%; height:auto;}
.points{list-style:none; border-top:1px solid var(--rule-dark);}
.points li{padding:16px 0; border-bottom:1px solid var(--rule-dark); display:grid; grid-template-columns:32px 1fr; font-size:15px;}
.points li span{font-family:var(--mono); font-size:11px; color:var(--gold); padding-top:3px;}

/* ---------- 08 PROCESS ---------- */
.process{background:var(--white); padding-block:clamp(88px, 11vw, 160px); --prog:0;}
.timeline{position:relative; display:grid; grid-template-columns:repeat(4, 1fr); margin-top:24px;}
.timeline::before, .timeline::after{content:""; position:absolute; left:0; right:0; top:22px; height:1px; background:var(--rule-light);}
.timeline::after{background:var(--gold); height:2px; top:21.5px; transform:scaleX(var(--prog)); transform-origin:left;}
.tstep{position:relative; padding:0 28px 0 0; min-width:0;}
.tstep .tick{width:45px; height:45px; border:1px solid var(--text); background:var(--white); display:grid; place-items:center; font-family:var(--mono); font-size:12px; position:relative; z-index:1; margin-bottom:40px; transition:background .4s, color .4s, border-color .4s;}
.tstep.on .tick{background:var(--navy); color:var(--gold); border-color:var(--navy);}
.tstep .meas{position:absolute; top:52px; left:22px; height:24px; border-left:1px dashed var(--rule-light);}
.tstep h3{font-family:var(--display); font-size:clamp(34px, 3.8vw, 56px); font-weight:800; letter-spacing:-.04em; line-height:.95; margin-bottom:16px;}
.tstep p{color:var(--muted-light); max-width:260px;}
.tstep .files{margin-top:20px; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; color:var(--line-blue);}

/* ---------- 09 CTA ---------- */
.cta{background:var(--gold); color:var(--navy); padding-block:clamp(88px, 11vw, 150px); position:relative; overflow:hidden;}
.cta-lines{position:absolute; inset:0; pointer-events:none; opacity:.9;}
.cta-lines svg{position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:min(720px, 70vw); height:auto;}
.cta .wrap{position:relative;}
.cta .label{display:block; margin-bottom:26px; color:rgba(var(--navy-rgb),.7);}
.cta h2{font-size:clamp(48px, 7.5vw, 112px); margin-bottom:32px; max-width:1000px;}
.cta p{font-size:clamp(17px, 1.5vw, 20px); max-width:560px; margin-bottom:40px; color:rgba(var(--navy-rgb),.82);}
.cta-actions{display:flex; gap:12px; flex-wrap:wrap;}

/* ---------- 10 FORM ---------- */
.lead{background:var(--paper); padding-block:clamp(88px, 11vw, 150px);}
.lead-grid{display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(40px, 6vw, 96px); align-items:start;}
.lead-grid > *{min-width:0;}
.lead .label{display:block; margin-bottom:22px;}
.lead .h-lg{margin-bottom:22px;}
.lead-aside p{color:var(--muted-light); font-size:17px; margin-bottom:40px; max-width:380px;}
.contact-sheet{border:1px solid var(--rule-light); background:var(--white); font-size:14px;}
.contact-sheet div{display:flex; justify-content:space-between; gap:16px; padding:14px 18px; border-bottom:1px solid var(--rule-light-soft);}
.contact-sheet div:last-child{border-bottom:none;}
.contact-sheet div > span:first-child{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--line-blue); text-transform:uppercase; padding-top:2px;}
.contact-sheet a:hover{color:var(--gold-ink);}
form.intake{background:var(--white); border:1px solid var(--rule-light);}
.form-head{display:flex; justify-content:space-between; padding:14px 28px; border-bottom:1px solid var(--rule-light); font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--line-blue);}
.form-body{padding:28px;}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:0 20px;}
.f{margin-bottom:22px; min-width:0;}
.f > label, .f legend{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-light); margin-bottom:8px;}
.f input[type=text], .f input[type=email], .f input[type=tel], .f input[type=date], .f textarea{width:100%; border:none; border-bottom:1px solid rgba(var(--text-rgb),.3); background:transparent; padding:10px 0 11px; font-size:16px; border-radius:0; transition:border-color .2s;}
.f input:focus, .f textarea:focus{outline:none; border-bottom:1px solid var(--gold); box-shadow:0 1px 0 var(--gold);}
.f textarea{resize:vertical; min-height:90px;}
.f input::placeholder, .f textarea::placeholder{color:var(--placeholder);}
fieldset.f{border:none;}
.seg{display:grid; grid-template-columns:repeat(3, 1fr); border:1px solid rgba(var(--text-rgb),.3); border-radius:2px;}
.seg label{position:relative; text-align:center; padding:12px 8px; font-size:14px; font-weight:500; cursor:pointer; transition:background .2s, color .2s;}
.seg label + label{border-left:1px solid rgba(var(--text-rgb),.3);}
.seg input{position:absolute; opacity:0; inset:0; cursor:pointer;}
.seg label:has(input:checked){background:var(--navy); color:var(--white);}
.seg label:has(input:focus-visible){outline:2px solid var(--gold); outline-offset:-2px;}
.drop{position:relative; border:1px dashed rgba(var(--text-rgb),.4); background:var(--paper); padding:28px 20px; display:flex; gap:18px; align-items:center; transition:border-color .2s, background .2s;}
.drop.drag, .drop:focus-within{border-color:var(--gold); background:rgba(var(--gold-rgb),.08);}
.drop input{position:absolute; inset:0; opacity:0; cursor:pointer;}
.drop svg{width:40px; height:40px; flex:none;}
.drop strong{display:block; font-weight:600; font-size:15px;}
.drop span{font-size:13px; color:var(--muted-light);}
.files-list{list-style:none; font-family:var(--mono); font-size:11.5px; margin-top:8px;}
.files-list li{display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--rule-light-soft);}
.form-foot{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding:20px 28px; border-top:1px solid var(--rule-light); background:var(--paper);}
.form-foot p{font-size:13px; color:var(--muted-light);}
.form-msg{font-size:13px; color:#a0442c; min-height:1em;}
.form-msg.busy{color:var(--muted-light);}
.form-msg:empty{display:none;}
.ts-box{flex-basis:100%;}
.ts-box:empty{display:none;}
.upload-progress{flex-basis:100%; display:grid; gap:8px;}
.upload-progress[hidden]{display:none;}
.upload-progress .bar{height:4px; background:var(--rule-light);}
.upload-progress .bar i{display:block; height:100%; width:0; background:var(--gold); transition:width .3s;}
.upload-progress span{font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--muted-light);}
form.intake.busy .form-body{opacity:.6; pointer-events:none;}
button[disabled]{opacity:.6; cursor:progress;}
.done{display:none; padding:72px 28px; text-align:center;}
.done h3{font-family:var(--display); font-size:36px; letter-spacing:-.03em; margin:18px 0 10px;}
.done p{color:var(--muted-light); max-width:420px; margin:0 auto;}
.done .label{color:var(--gold-ink);}
form.intake.sent .form-body, form.intake.sent .form-foot{display:none;}
form.intake.sent .done{display:block;}

/* ---------- FOOTER ---------- */
footer{background:var(--navy); color:var(--white); padding-block:80px 32px;}
.foot{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--rule-dark);}
.foot p{color:var(--blue); max-width:340px; margin-top:22px; font-size:15px;}
.foot h4{font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--line-blue); margin-bottom:18px;}
.foot ul{list-style:none; display:grid; gap:10px; font-size:15px;}
.foot ul a:hover{color:var(--gold);}
.foot-base{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:26px; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--line-blue); text-transform:uppercase;}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .nav-links{gap:18px;}
  .nav-links a{font-size:13px;}
  .blocks{grid-template-columns:1fr 1fr;}
  .block:nth-child(2){border-right:none;}
  .block:nth-child(3){padding-left:0;}
  .block:nth-child(n+3){border-top:1px solid var(--rule-dark);}
  .block .n{margin-bottom:40px;}
  .cats{grid-template-columns:1fr 1fr;}
}
@media (max-width:960px){
  .utility .u-right{display:none;}
  .nav-links, .nav .btn-desk{display:none;}
  .menu-btn{display:block;}
  .hero-grid{grid-template-columns:1fr;}
  .blueprint{max-width:620px;}
  .diff-intro, .sec-head{grid-template-columns:1fr;}
  .diff-flow{grid-template-columns:1fr; gap:0;}
  .wt-head{grid-column:1; grid-row:1; padding:40px 0 28px 20px;}
  .stage-wrap{grid-column:1; grid-row:2; top:72px; padding-top:12px; padding-bottom:12px; z-index:5; background:var(--paper); margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter);}
  .steps{grid-column:1; grid-row:3; padding-block:4vh 16vh;}
  .d10 .stage-wrap{background:var(--navy);}
  .step{min-height:52vh; justify-content:flex-start; padding-top:24px;}
  .step::before{top:24px; height:60px;}
  .panels{grid-template-columns:1fr;}
  .panel + .panel{border-left:none; border-top:1px solid var(--rule-light);}
  .receive-grid{grid-template-columns:1fr;}
  .sample-grid{grid-template-columns:1fr;}
  .lead-grid{grid-template-columns:1fr;}
  .foot{grid-template-columns:repeat(3, 1fr);}
  .foot > div:first-child{grid-column:1 / -1;}
}
@media (max-width:720px){
  .utility .wrap{justify-content:center;}
  .cred li{flex-basis:100%;}
  .ov{font-size:max(6px, 2.1cqw);}
  .ov-sched{width:86%;}
  .ov-spec{width:70%;}
  .ov-tally{width:52%;}
  .ov-est{width:92%;}
  .stage-rail span{font-size:0; padding:5px;}
  .stage-rail span::before{content:attr(data-n); font-size:9.5px;}
  .scope{grid-template-columns:1fr;}
  .cats{grid-template-columns:1fr;}
  .stack{height:auto; display:grid; gap:18px;}
  .stack > .doc{min-width:0; overflow-x:auto;}
  .sb-long{display:none;}
  .cta-lines{display:none;}
  .est-head{grid-template-columns:1fr;}
  .est-head .demo{text-align:left; justify-self:start;}
  .doc{position:relative; top:auto; left:auto; width:100%; transform:none !important;}
  .blocks{grid-template-columns:1fr;}
  .block, .block + .block{padding:28px 0; border-right:none; padding-left:0;}
  .block + .block{border-top:1px solid var(--rule-dark);}
  .block .n{margin-bottom:18px;}
  .story{grid-template-columns:1fr 1fr;}
  .story div:nth-child(3){border-left:none;}
  .story div:nth-child(n+3){border-top:1px solid var(--rule-dark);}
  .story div:nth-child(2)::after{display:none;}
  .est-meta{grid-template-columns:1fr;}
  .est-meta div + div{border-left:none; border-top:1px solid var(--rule-light);}
  .est-notes{grid-template-columns:1fr;}
  .est-notes div + div{border-left:none; border-top:1px solid var(--rule-light);}
  .timeline{grid-template-columns:1fr; padding-left:66px;}
  .timeline::before, .timeline::after{left:22px; right:auto; top:0; bottom:0; width:1px; height:auto;}
  .timeline::after{width:2px; left:21.5px; transform:scaleY(var(--prog)); transform-origin:top;}
  .tstep{padding:0 0 44px;}
  .tstep .tick{position:absolute; left:-66px; top:0; margin:0;}
  .tstep .meas{display:none;}
  .frow{grid-template-columns:1fr;}
  .seg{grid-template-columns:1fr;}
  .seg label + label{border-left:none; border-top:1px solid rgba(var(--text-rgb),.3);}
  .form-body{padding:22px 18px;}
  .form-head, .form-foot{padding-inline:18px;}
  .foot{grid-template-columns:1fr;} .foot > div:first-child{grid-column:auto;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .js [data-reveal], .js .est tbody tr, .js .step{opacity:1; transform:none; transition:none;}
  .js .draw{stroke-dashoffset:0; transition:none;}
  .js .fade{opacity:1; transition:none;}
  .js .in .scan{animation:none;}
  .doc{transition:none;}
}
.to-top{position:fixed; right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom)); z-index:80; width:50px; height:50px; display:grid; place-items:center; background:var(--navy); color:var(--gold); border:1px solid rgba(var(--gold-rgb),.55); border-radius:2px; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .35s ease, transform .35s ease, visibility .35s, background .25s, color .25s; box-shadow:0 10px 24px -14px rgba(0,0,0,.45);}
.to-top.show{opacity:1; visibility:visible; transform:none;}
.to-top:hover{background:var(--gold); color:var(--navy);}
.to-top:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.to-top svg{width:18px; height:18px; transition:transform .3s ease;}
.to-top:hover svg{transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){.to-top, .to-top svg{transition:none;}}

/* ---------- Division 10 walkthrough (dark variant of the Division 08 flow) ---------- */
.d10 .diff-flow{margin-top:clamp(24px, 4vw, 48px);}
.d10 .wt-head{border-color:var(--rule-dark);}
.d10 .wt-head .label{color:var(--gold);}
.d10 .wt-head p{color:var(--blue);}
.d10 .step{border-color:var(--rule-dark);}
.d10 .step .num{color:var(--line-blue);}
.d10 .step.active .num{color:var(--gold);}
.d10 .step p{color:var(--blue);}
.d10 .step .out{color:var(--line-blue);}
.d10 .stage{border-color:rgba(255,255,255,.1); box-shadow:0 30px 60px -30px rgba(0,0,0,.6);}
.pl-fix{fill:none; stroke:var(--line-blue); stroke-width:1;}
.pl-fix-fill{fill:var(--paper); stroke:var(--line-blue); stroke-width:1;}
.cats-head{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin:clamp(56px, 7vw, 96px) 0 20px; padding-bottom:14px; border-bottom:1px solid var(--rule-dark);}
.cats-head h3{font-family:var(--display); font-size:clamp(24px, 2.4vw, 32px); font-weight:700; letter-spacing:-.02em;}
.cats-head .label{color:var(--line-blue);}

/* ---------- 06 WHO WE ARE ---------- */
.who{background:var(--navy-2); color:var(--white); padding-block:clamp(88px, 11vw, 150px); position:relative; overflow:hidden;}
.who .sec-head p{color:var(--blue);}
.who-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px, 5vw, 72px); align-items:start; border-top:1px solid var(--rule-dark); padding-top:40px;}
.who-grid > *{min-width:0;}
.founder{border:1px solid var(--rule-dark); background:rgba(var(--navy-rgb),.5);}
.founder-photo{aspect-ratio:4/4.2; max-width:100%; position:relative; display:grid; place-items:center; border-bottom:1px solid var(--rule-dark); overflow:hidden;}
.founder-photo .bg-grid-dark{position:absolute; inset:0;}
.founder-photo > div{position:relative; text-align:center;}
.founder-photo svg{width:88px; height:88px; margin:0 auto 14px;}
.founder-photo span{font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--line-blue); line-height:1.8;}
.founder-initials .initials{display:grid; place-items:center; width:132px; height:132px; border:1px solid var(--gold); border-radius:50%; outline:1px solid var(--rule-dark); outline-offset:10px; font-family:var(--display); font-size:46px; font-weight:700; letter-spacing:.04em; line-height:1; color:var(--gold);}
.founder-meta{padding:20px 22px 24px;}
.founder-meta h3{font-family:var(--display); font-size:28px; font-weight:700; letter-spacing:-.02em; line-height:1.1;}
.founder-meta .label{display:block; color:var(--gold); margin-top:8px;}
.founder-meta p{color:var(--blue); font-size:15px; margin-top:14px;}
.who-intro{font-size:clamp(18px, 1.6vw, 21px); line-height:1.55; color:var(--white); max-width:620px; margin-bottom:44px;}
.journey-label{display:block; color:var(--line-blue); margin-bottom:26px;}
.journey{list-style:none; display:grid; grid-template-columns:repeat(4, 1fr); position:relative; border-top:1px solid var(--rule-dark);}
.journey li{position:relative; padding:28px 22px 8px 0; min-width:0;}
.journey li::before{content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; background:var(--navy-2); border:1px solid var(--gold); transform:rotate(45deg);}
.journey li:last-child::before{background:var(--gold);}
.journey .yr{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; color:var(--gold); display:block; margin-bottom:10px;}
.journey h4{font-family:var(--display); font-size:20px; font-weight:700; letter-spacing:-.02em; line-height:1.15; margin-bottom:8px;}
.journey p{color:var(--blue); font-size:14.5px;}
.tbd{font-style:italic; opacity:.75;}
.values{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--rule-dark); border:1px solid var(--rule-dark); margin-top:48px;}
.values div{background:var(--navy-2); padding:22px 22px 24px;}
.values b{display:block; font-family:var(--display); font-size:19px; letter-spacing:-.015em; margin-bottom:6px;}
.values span{color:var(--blue); font-size:14.5px;}

/* ---------- CTA platforms line ---------- */
.platforms{margin-top:44px; padding-top:22px; border-top:1px solid rgba(var(--navy-rgb),.22); display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; max-width:880px;}
.platforms .label{color:rgba(var(--navy-rgb),.7); margin-right:6px;}
.platforms .chip{font-family:var(--mono); font-size:12px; letter-spacing:.06em; padding:6px 12px; border:1px solid rgba(var(--navy-rgb),.35); border-radius:2px;}
.platforms .chip.tbc{border-style:dashed; color:rgba(var(--navy-rgb),.68);}

/* ---------- form additions ---------- */
.req{color:#a0442c; margin-left:3px;}
.f.err > label, .f.err legend{color:#a0442c;}
.f.err input, .f.err textarea{border-bottom-color:#a0442c;}
.f.err .seg, .f.err .drop{border-color:#a0442c;}
.field-err{display:block; font-size:12.5px; color:#a0442c; margin-top:6px;}
.field-err:empty{display:none;}
.files-list li.bad{color:#a0442c;}
.files-list li .fname{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;}
.files-list li .fmeta{display:flex; gap:10px; flex:none; align-items:center;}
.files-list li button{background:none; border:none; cursor:pointer; color:var(--muted-light); font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;}
.files-list li button:hover{color:#a0442c;}
.done .btn{margin-top:28px;}
.done .done-sum{font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--line-blue); margin-top:16px;}

/* ---------- footer additions ---------- */
.foot ul li{display:flex; gap:8px; align-items:baseline; flex-wrap:wrap;}
.foot .soon{font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--line-blue); border:1px solid var(--rule-dark); padding:1px 6px; border-radius:2px;}
.foot .dim{color:var(--blue); opacity:.75;}
.foot-base a:hover{color:var(--gold);}

/* ---------- inner pages ---------- */
.page-hero{background:var(--navy); color:var(--white); position:relative; overflow:hidden; padding-block:clamp(56px, 7vw, 104px) clamp(56px, 7vw, 96px);}
.page-hero .bg-grid-dark{position:absolute; inset:0; -webkit-mask-image:radial-gradient(ellipse 80% 90% at 80% 30%, #000, transparent 75%); mask-image:radial-gradient(ellipse 80% 90% at 80% 30%, #000, transparent 75%);}
.page-hero .wrap{position:relative;}
.page-hero .label{display:flex; align-items:center; gap:14px; margin-bottom:24px;}
.page-hero .label::before{content:""; width:28px; height:1px; background:var(--gold);}
.page-hero h1{margin-bottom:22px; max-width:900px;}
.page-hero .lede{color:var(--blue);}
.crumbs{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--line-blue); margin-bottom:36px; display:flex; gap:10px;}
.crumbs a:hover{color:var(--gold);}
.contact-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px, 6vw, 96px); align-items:start; padding-block:clamp(64px, 8vw, 120px);}
.contact-grid > *{min-width:0;}
.contact-cards{display:grid; gap:1px; background:var(--rule-light); border:1px solid var(--rule-light);}
.contact-cards > div{background:var(--white); padding:20px 22px;}
.contact-cards .label{display:block; color:var(--line-blue); margin-bottom:6px;}
.contact-cards b{font-family:var(--display); font-weight:600; font-size:20px; letter-spacing:-.015em; display:block; overflow-wrap:anywhere;}
.contact-cards p{color:var(--muted-light); font-size:14px; margin-top:4px;}
.contact-cards .socials{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;}
.contact-cards .socials span{font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; border:1px dashed rgba(var(--text-rgb),.35); padding:5px 10px; border-radius:2px; color:var(--muted-light);}
.next-steps{list-style:none; margin-top:40px; border-top:1px solid var(--text);}
.next-steps li{display:grid; grid-template-columns:44px 1fr; padding:16px 0; border-bottom:1px solid var(--rule-light);}
.next-steps span{font-family:var(--mono); font-size:12px; color:var(--gold-ink); padding-top:3px;}
.next-steps b{display:block; font-family:var(--display); font-size:19px; letter-spacing:-.015em;}
.next-steps p{color:var(--muted-light); font-size:14.5px;}
.legal-wrap{display:grid; grid-template-columns:240px 1fr; gap:clamp(32px, 5vw, 80px); padding-block:clamp(56px, 7vw, 104px); align-items:start;}
.legal-wrap > *{min-width:0;}
.toc{position:sticky; top:100px; font-size:14px; border-top:1px solid var(--text);}
.toc a{display:block; padding:9px 0; border-bottom:1px solid var(--rule-light-soft); color:var(--muted-light);}
.toc a:hover{color:var(--text);}
.legal{max-width:720px;}
.legal .draft{border:1px dashed var(--gold-dim); background:rgba(var(--gold-rgb),.1); padding:14px 18px; font-size:14.5px; margin-bottom:40px;}
.legal .draft b{font-family:var(--mono); font-size:11px; letter-spacing:.1em; display:block; color:var(--gold-ink-2); margin-bottom:4px; font-weight:500;}
.legal h2{font-family:var(--display); font-size:clamp(24px, 2.4vw, 30px); font-weight:700; letter-spacing:-.02em; margin:44px 0 12px; scroll-margin-top:100px;}
.legal h2 .n{font-family:var(--mono); font-size:12px; color:var(--gold-ink); letter-spacing:.1em; display:block; margin-bottom:6px; font-weight:500;}
.legal p, .legal li{color:var(--body-ink); font-size:16px; line-height:1.7;}
.legal p + p{margin-top:12px;}
.legal ul{padding-left:20px; margin-top:10px; display:grid; gap:6px;}

@media (max-width:960px){
  .who-grid, .contact-grid{grid-template-columns:1fr;}
  .founder{max-width:420px;}
  .journey{grid-template-columns:1fr 1fr; row-gap:8px;}
  .legal-wrap{grid-template-columns:1fr;}
  .toc{position:static;}
}
@media (max-width:720px){
  .journey{grid-template-columns:1fr; border-top:none; border-left:1px solid var(--rule-dark); margin-left:4px;}
  .journey li{padding:0 0 28px 26px;}
  .journey li::before{top:4px; left:-5px;}
  .values{grid-template-columns:1fr;}
  .cats-head{flex-direction:column; gap:6px;}
  .platforms{margin-top:32px;}
}

/* five Division 10 cards: 3 + 2 */
.cats{grid-template-columns:repeat(6, 1fr);}
.cats .cat{grid-column:span 2;}
.cats .cat:nth-child(n+4){grid-column:span 3;}
.logo-wrap{display:flex; align-items:center; gap:10px;}
.scope-note{margin-top:14px; text-align:right;}
@media (max-width:1100px){
  .cats .cat, .cats .cat:nth-child(n+4){grid-column:span 3;}
  .cats .cat:last-child{grid-column:1 / -1;}
}
@media (max-width:720px){
  .cats .cat, .cats .cat:nth-child(n+4), .cats .cat:last-child{grid-column:1 / -1;}
}
.legal ul + p{margin-top:12px;}

/* ---------- Contact Us popup ---------- */
.cm{margin:auto; padding:0; border:none; background:transparent; max-width:min(980px, calc(100vw - 32px)); width:100%; max-height:calc(100dvh - 32px); color:var(--text); overflow:visible;}
.cm::backdrop{background:rgba(var(--deep-rgb),.62); backdrop-filter:blur(3px);}
.cm[open]{animation:cm-in .35s var(--ease);}
@keyframes cm-in{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}
.cm-box{display:grid; grid-template-columns:.85fr 1.15fr; background:var(--white); border:1px solid rgba(var(--text-rgb),.25); box-shadow:0 40px 80px -30px rgba(0,0,0,.6); max-height:calc(100dvh - 32px); overflow:auto; position:relative;}
.cm-side{background:var(--navy); color:var(--white); padding:clamp(24px, 3vw, 36px); position:relative; overflow:hidden; display:flex; flex-direction:column; gap:22px;}
.cm-side .bg-grid-dark{position:absolute; inset:0; -webkit-mask-image:linear-gradient(160deg, #000, transparent 70%); mask-image:linear-gradient(160deg, #000, transparent 70%);}
.cm-side > *{position:relative;}
.cm-side .label{display:flex; align-items:center; gap:12px; color:var(--gold);}
.cm-side .label::before{content:""; width:24px; height:1px; background:var(--gold);}
.cm-side h2{font-family:var(--display); font-weight:700; font-size:clamp(30px, 3.2vw, 42px); letter-spacing:-.035em; line-height:.98;}
.cm-side h2 span{color:var(--gold);}
.cm-side > p{color:var(--blue); font-size:15px;}
.cm-lines{list-style:none; border-top:1px solid var(--rule-dark);}
.cm-lines li{display:grid; grid-template-columns:82px 1fr; gap:10px; padding:12px 0; border-bottom:1px solid var(--rule-dark); font-size:14.5px; align-items:baseline;}
.cm-lines li > span:first-child{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--line-blue);}
.cm-lines a:hover{color:var(--gold);}
.cm-social{display:flex; flex-wrap:wrap; gap:6px;}
.cm-social span{font-family:var(--mono); font-size:11px; letter-spacing:.06em; border:1px dashed var(--rule-dark); padding:4px 9px; border-radius:2px; color:var(--blue);}
.cm-side .cm-intake{margin-top:auto; font-size:14px; color:var(--blue); padding-top:4px;}
.cm-side .cm-intake a{color:var(--gold); border-bottom:1px solid rgba(var(--gold-rgb),.4);}
.cm-main{padding:clamp(24px, 3vw, 36px); min-width:0; display:flex; flex-direction:column;}
.cm-head{display:flex; justify-content:space-between; align-items:center; gap:12px; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--line-blue); padding-bottom:14px; margin-bottom:22px; border-bottom:1px solid var(--rule-light);}
.cm-close{width:36px; height:36px; display:grid; place-items:center; background:none; border:1px solid var(--rule-light); border-radius:2px; cursor:pointer; color:var(--text); font-size:18px; line-height:1;}
.cm-close:hover{border-color:var(--text);}
.cm form .frow{gap:0 18px;}
.cm form .f{margin-bottom:18px;}
.cm-foot{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:6px;}
.cm-foot p{font-size:13px; color:var(--muted-light);}
.cm-done{display:none; text-align:center; padding:40px 8px; margin:auto 0;}
.cm-done .label{color:var(--gold-ink);}
.cm-done h3{font-family:var(--display); font-size:32px; letter-spacing:-.03em; margin:14px 0 10px; line-height:1.05;}
.cm-done p{color:var(--muted-light); max-width:380px; margin:0 auto;}
.cm-done .btn{margin-top:24px;}
.cm.sent form{display:none;}
.cm.sent .cm-done{display:block;}
body.cm-lock{overflow:hidden;}
@media (max-width:760px){
  .cm{max-width:100vw; max-height:100dvh; height:100dvh; margin:0;}
  .cm-box{grid-template-columns:1fr; max-height:100dvh; height:100dvh; border:none;}
  .cm-main{order:-1;}
  .cm-side{gap:16px;}
  .cm-side h2{display:none;}
  .cm-side > p{display:none;}
  .cm form .frow{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){.cm[open]{animation:none;}}

/* ---------- Mobile walkthrough: swipeable step cards with progress + play/pause ---------- */
.wt-ctrl{display:none; justify-content:center; align-items:center; gap:10px; grid-column:1; grid-row:4; padding:16px 0 4px;}
.wt-dots{display:flex; gap:6px; align-items:center; height:44px; padding:0 14px; border:1px solid var(--rule-light); background:var(--white); border-radius:2px;}
.wt-dot{all:unset; box-sizing:border-box; width:14px; height:4px; background:rgba(var(--text-rgb),.22); cursor:pointer; position:relative; overflow:hidden; transition:width .35s var(--ease);}
.wt-dot::after{content:""; position:absolute; inset:-14px -3px;} /* larger tap target */
.wt-dot.on{width:40px; background:rgba(var(--text-rgb),.14);}
.wt-dot i{position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left;}
.wt-dot.on i{transform:scaleX(1);}
.wt-ctrl.playing .wt-dot.on i{animation:wt-fill var(--wt-dur, 4.5s) linear forwards;}
@keyframes wt-fill{from{transform:scaleX(0);} to{transform:scaleX(1);}}
.wt-play{all:unset; box-sizing:border-box; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--rule-light); background:var(--white); border-radius:2px; cursor:pointer; color:var(--text);}
.wt-play svg{width:14px; height:14px;}
.wt-play .i-play{display:block;} .wt-play .i-pause{display:none;}
.wt-ctrl.playing .wt-play .i-play{display:none;} .wt-ctrl.playing .wt-play .i-pause{display:block;}
.wt-dot:focus-visible, .wt-play:focus-visible, .steps:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.d10 .wt-dots, .d10 .wt-play{background:rgba(var(--navy2-rgb),.7); border-color:var(--rule-dark); color:var(--white);}
.d10 .wt-dot{background:rgba(var(--blue-rgb),.3);}
.d10 .wt-dot.on{background:rgba(var(--blue-rgb),.16);}

@media (max-width:960px){
  .wt-ctrl{display:flex;}
  .stage-wrap, .d10 .stage-wrap{position:relative; top:auto; z-index:auto; padding:0; margin-inline:0; background:none;}
  .steps{grid-row:3; position:relative; display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain;
    padding:16px var(--gutter) 2px; margin-inline:calc(var(--gutter) * -1); scroll-padding-inline:var(--gutter);}
  .steps::-webkit-scrollbar{display:none;}
  .step{flex:0 0 86%; min-height:0; scroll-snap-align:start; justify-content:flex-start; padding:20px 20px 22px; border:1px solid var(--rule-light); background:var(--white);}
  .js .step{opacity:.5;}
  .js .step.active{opacity:1;}
  .step::before{left:0; right:0; top:-1px; width:auto; height:2px; transform:scaleX(0); transform-origin:left;}
  .step.active::before{transform:scaleX(1);}
  .step h3{font-size:28px; margin-bottom:10px;}
  .step p{font-size:15px;}
  .d10 .step{background:rgba(var(--navy2-rgb),.7); border-color:var(--rule-dark);}
}
@media (prefers-reduced-motion:reduce){
  .wt-ctrl.playing .wt-dot.on i{animation:none; transform:scaleX(1);}
  .wt-dot{transition:none;}
}

.contact-sheet .cs-val{text-align:right;}
.platforms .chips{display:contents;}
.cm-social a{font-family:var(--mono); font-size:11px; letter-spacing:.06em; border:1px solid var(--rule-dark); padding:4px 9px; border-radius:2px; color:var(--white);}
.cm-social a:hover{border-color:var(--gold); color:var(--gold);}

/* ---------- Brand logo (redrawn from the client's logo for the mockup) ---------- */
.logo{gap:10px; font-weight:600; font-size:20px; letter-spacing:.2em;}
.logo svg.logo-mark{width:auto; height:30px; flex:none;}
.logo-word{display:inline-flex; align-items:baseline;}
.logo svg.logo-a{width:.66em; height:.7em; margin:0 .2em 0 .02em; overflow:visible;}
.logo-a path{fill:none; stroke:var(--gold); stroke-width:1.45; stroke-linejoin:miter;}
.foot .logo svg.logo-mark{height:40px;}
.foot .logo{font-size:22px;}
.logo-tag{display:flex; align-items:center; gap:10px; margin-top:12px; font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);}
.logo-tag::before, .logo-tag::after{content:""; width:22px; height:1px; background:currentColor; opacity:.7;}

/* ---------- Who we are: client copy ---------- */
.founder-sub{color:var(--blue); font-size:14px; margin-top:4px !important;}
.founder-quote{font-family:var(--display); font-size:19px !important; font-weight:600; letter-spacing:-.01em; line-height:1.3; color:var(--white) !important; padding-top:14px; margin-top:16px !important; border-top:1px solid var(--rule-dark);}
.who-body{display:grid; gap:14px; margin-bottom:44px; max-width:640px;}
.who-body p{color:var(--blue); font-size:15.5px;}
.who-body .who-intro{margin-bottom:4px; color:var(--white);}
.who-close{margin-top:36px; padding-top:22px; border-top:1px solid var(--rule-dark); font-family:var(--display); font-size:clamp(20px, 2vw, 26px); font-weight:600; letter-spacing:-.02em; color:var(--gold);}
@media (max-width:720px){ .logo{font-size:17px; letter-spacing:.16em;} .logo svg.logo-mark{height:26px;} }
.done h3{line-height:1.08; text-wrap:balance; font-size:clamp(26px, 3vw, 34px); max-width:520px; margin-inline:auto;}

/* ---------- Client logo (their render on black; screen blend drops the black onto the dark green) ---------- */
.logo .logo-img{display:block; width:auto; height:40px; mix-blend-mode:screen;}
.logo-foot{display:inline-block;}
.logo-foot .logo-full{display:block; width:100%; height:auto; mix-blend-mode:screen;}
.logo-foot{width:230px; margin-left:-9px;}
.logo-foot .logo-tag{padding-inline:4%;}
.logo-foot .logo-tag{justify-content:center; margin-top:6px; font-size:9.5px; letter-spacing:.24em; white-space:nowrap; font-family:var(--display); font-weight:600;}
.logo-foot .logo-tag::before, .logo-foot .logo-tag::after{flex:1; width:auto; min-width:14px;}
@media (max-width:720px){ .logo .logo-img{height:30px;} }

/* header logo: their mark + name, tagline as text so it stays sharp */
.nav .logo{gap:8px; align-items:center;}
.nav .logo-mark-img{display:block; height:44px; width:auto; mix-blend-mode:screen;}
.nav .logo-text{display:flex; flex-direction:column; gap:5px; width:150px;}
.nav .logo-word-img{display:block; width:100%; height:auto; mix-blend-mode:screen;}
.nav .logo-tag{margin:0; justify-content:center; gap:6px; font-family:var(--display); font-weight:600; font-size:7.6px; letter-spacing:.2em; white-space:nowrap;}
.nav .logo-tag::before, .nav .logo-tag::after{flex:1; width:auto; min-width:6px;}
@media (max-width:720px){ .nav .logo-mark-img{height:38px;} .nav .logo-text{width:128px;} .nav .logo-tag{font-size:6.6px; letter-spacing:.16em; gap:4px;} }
