/* InoBuilt V4: rebrand tokens (Feb 2026 rebrand only)
   orange #E05F0E | text-safe orange on light #C5540C | grey #545454 | ink #161514 | stone #E6E3DE | white
   Contrast: orange text on ink 5.05:1 OK; white on orange 3.61:1 (large only); ink on orange 5.05:1;
   white on grey 7.57:1; ink on stone 14.25:1; grey on stone 5.92:1. Orange text on stone/white must use #C5540C. */
:root{
  --orange:#E05F0E;--orange-text:#C5540C;--grey:#545454;--ink:#161514;--stone:#E6E3DE;--white:#fff;
  --ink-2:#1f1d1c;--line:rgba(255,255,255,.16);--line-dark:rgba(22,21,20,.16);
  --display:'Cormorant Garamond',Georgia,serif;--sans:'Poppins',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --pad:clamp(20px,6vw,96px);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--stone);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--pad)}
h1,h2,h3{font-family:var(--sans);font-weight:500;margin:0}
em{font-family:var(--display);font-style:italic;font-weight:500;color:var(--orange)}
.eyebrow{font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--orange);display:flex;gap:14px;align-items:center;margin-bottom:26px}
.eyebrow:before{content:'';width:28px;height:1px;background:currentColor}
.eyebrow.dark{color:var(--orange-text)}
.progress{position:fixed;z-index:40;top:0;left:0;height:3px;background:var(--orange);width:0}

/* Header */
.site-header{position:fixed;z-index:30;inset:0 0 auto 0;display:flex;align-items:center;justify-content:space-between;padding:22px var(--pad);transition:background .3s,padding .3s}
.site-header.solid{background:rgba(22,21,20,.92);backdrop-filter:blur(10px);padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.logo img{height:44px;width:auto}.site-header.solid .logo img{height:38px}
.site-header nav{display:flex;align-items:center;gap:34px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.site-header nav a:not(.cta){opacity:.85;transition:opacity .2s,color .2s}.site-header nav a:not(.cta):hover{opacity:1;color:var(--orange)}
.cta{background:var(--orange);color:var(--ink);padding:12px 22px;border-radius:2px;transition:background .2s}.cta:hover{background:#f07422}

/* Journey / 3D stage */
.journey{height:640vh}.journey.build{height:300vh}.journey.tour{height:560vh}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 68% 42%,#34302d 0%,#1d1b1a 45%,#161514 78%)}
canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,21,20,.9),transparent 55%),linear-gradient(0deg,#161514 0,transparent 20%);pointer-events:none}
.o-watermark{position:absolute;right:-6vw;top:50%;transform:translateY(-50%);height:96vh;width:auto;opacity:.045;pointer-events:none}
.copy{position:absolute;left:var(--pad);top:27%;width:min(40%,560px);pointer-events:none}
.copy h1{font-size:clamp(40px,5.4vw,88px);line-height:1.02;letter-spacing:-.035em;font-weight:600}
.copy h1 em{font-size:1.08em;letter-spacing:-.01em}
#description{font-size:15px;line-height:1.8;color:#b9b4ac;max-width:340px;margin-top:26px}
.status{position:absolute;right:var(--pad);top:120px;font:500 10px/2 var(--sans);letter-spacing:.2em;color:#a9a49c;text-align:right}.status b{color:var(--orange);font-weight:500}
.chapter-label{position:absolute;bottom:112px;left:var(--pad);font:500 10px/1.9 var(--sans);letter-spacing:.2em;color:#a9a49c}.chapter-label span{color:var(--orange)}
.rail{position:absolute;bottom:46px;left:var(--pad);right:var(--pad);display:flex;border-top:1px solid var(--line);padding-top:18px;justify-content:space-between;gap:15px}
.rail button{background:none;border:0;text-align:left;opacity:.45;font-size:11px;letter-spacing:.14em;padding:5px 0;transition:opacity .2s}
.rail button span{color:var(--orange);margin-right:12px}.rail button.active{opacity:1}
.note{position:absolute;left:var(--pad);bottom:14px;font-size:10px;color:#827d76;letter-spacing:.04em}
.tools{position:fixed;z-index:31;right:var(--pad);bottom:12px;display:flex;gap:18px}.tools button{font-size:10px;background:none;border:0;color:#a9a49c;letter-spacing:.06em}

/* Statement */
.statement{background:var(--stone);color:var(--ink);padding:clamp(80px,11vw,150px) 0}
.statement h2{font-size:clamp(34px,5vw,78px);line-height:1.04;letter-spacing:-.035em;font-weight:600;max-width:15ch}
.statement h2 span{display:block;color:var(--grey)}
.tagline{font:italic 500 clamp(26px,3vw,40px)/1.2 var(--display);color:var(--orange-text);margin:28px 0 0}
.lede{max-width:640px;margin:26px 0 0;font-size:17px;color:#3a3836}
.reasons{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:70px;border-top:1px solid var(--line-dark)}
.reasons article{padding:28px 28px 8px 0;border-right:1px solid var(--line-dark);padding-left:28px}.reasons article:first-child{padding-left:0}.reasons article:last-child{border-right:0}
.n{font:500 11px/1 var(--sans);letter-spacing:.2em;color:var(--orange-text)}
.reasons h3{font-size:19px;margin:16px 0 10px;letter-spacing:-.01em}.reasons p{font-size:14px;color:#4a4745;margin:0}

/* Section heads */
.section-head{display:grid;grid-template-columns:1.3fr 1fr;gap:6vw;align-items:end;margin-bottom:56px}
.section-head h2{font-size:clamp(32px,4.3vw,64px);line-height:1.06;letter-spacing:-.03em;font-weight:600}
.section-head p{margin:0;color:#b9b4ac;max-width:420px;justify-self:end}
.section-head.light p{color:#4a4745}

/* Projects */
.projects{padding:clamp(80px,10vw,140px) 0;background:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card .ph{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--ink-2)}
.card.wide{grid-column:span 2}.card.wide .ph{aspect-ratio:16/10}
.card img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.04);transform:scale(1.001);transition:filter .5s,transform .8s}
.card:hover img{filter:none;transform:scale(1.04)}
.tag{position:absolute;left:0;top:18px;background:var(--orange);color:var(--ink);font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:9px 16px 9px 14px}
.meta{padding:18px 0 0}.meta .type{font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--orange)}
.meta h3{font-size:24px;letter-spacing:-.02em;margin:10px 0 2px}.meta .area{font-size:13px;color:#a9a49c}.meta p{font-size:14px;color:#b9b4ac;margin:12px 0 0;max-width:46ch}

/* Band */
.band{display:grid;grid-template-columns:1.1fr 1fr;background:var(--grey);color:#fff}
.band img{width:100%;height:100%;min-height:440px;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.band-copy{padding:clamp(40px,7vw,110px) var(--pad);align-self:center}
.band-copy h2{font-size:clamp(28px,3.4vw,52px);line-height:1.1;letter-spacing:-.03em;font-weight:600}
.band-copy em{color:#ff8a43}.band-copy p{color:#e8e5e0;max-width:44ch;margin-top:20px}.band .eyebrow{color:#ff9a5c}

/* Interiors */
.interiors{background:var(--stone);color:var(--ink);padding:clamp(80px,10vw,140px) 0}
.interiors em{color:var(--orange-text)}
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(110px,14vw,210px);gap:16px}
.mosaic figure{margin:0;overflow:hidden;background:#d4d0c8}.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.mosaic figure:hover img{transform:scale(1.05)}
.m1{grid-column:span 7;grid-row:span 2}.m2{grid-column:span 5;grid-row:span 2}.m3{grid-column:span 4;grid-row:span 2}.m4{grid-column:span 4;grid-row:span 2}.m5{grid-column:span 2;grid-row:span 2}.m6{grid-column:span 2;grid-row:span 2}

/* Divisions */
.divisions{padding:clamp(80px,10vw,140px) 0;background:var(--ink)}
.div-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.div-grid article{padding:34px 30px 40px 0;border-bottom:1px solid var(--line)}
.div-grid article:not(:nth-child(3n+1)){padding-left:30px;border-left:1px solid var(--line)}
.div-grid .n{color:var(--orange)}.div-grid h3{font-size:26px;letter-spacing:-.02em;margin:16px 0 10px}.div-grid p{font-size:14px;color:#b9b4ac;margin:0;max-width:34ch}

/* Credentials */
.creds{background:var(--stone);color:var(--ink);border-top:1px solid var(--line-dark)}
.creds-row{padding-top:46px;padding-bottom:46px;display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.creds .eyebrow{margin:0}.creds ul{list-style:none;display:flex;gap:46px;align-items:center;flex-wrap:wrap;margin:0;padding:0}
.creds li img{height:62px;width:auto;mix-blend-mode:multiply}
.creds li.chip{background:var(--ink);padding:10px 18px}.creds li.chip img{height:44px;mix-blend-mode:normal}.creds li.text{display:flex;flex-direction:column;font-size:13px;line-height:1.4}.creds li.text b{font-weight:600}.creds li.text span{color:#4a4745}
[data-verify]{font-style:normal;color:var(--orange-text);font-size:11px}

/* Contact (brand orange block, ink text for 5:1 contrast) */
.contact{background:var(--orange);color:var(--ink);padding:clamp(80px,10vw,140px) 0}
.contact .eyebrow{color:var(--ink)}.contact h2{font-size:clamp(36px,5vw,76px);line-height:1.02;letter-spacing:-.035em;font-weight:600}
.contact h2 em{color:var(--white)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:start}
.contact p{max-width:40ch}.phone{display:block;font-size:clamp(28px,3.2vw,44px);font-weight:600;letter-spacing:-.03em;margin-top:34px}
.mail{display:inline-block;border-bottom:2px solid var(--ink);margin-top:8px;font-weight:500}
.small{font-size:12px;opacity:.8}
.form{display:grid;gap:16px;background:var(--ink);color:var(--stone);padding:clamp(24px,3vw,44px)}
.form label{display:grid;gap:8px;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#b9b4ac}
.form input,.form textarea{background:transparent;border:0;border-bottom:1px solid #6b6660;color:#fff;font:400 16px/1.5 var(--sans);padding:8px 0;border-radius:0}
.form input:focus,.form textarea:focus{border-color:var(--orange);outline:none}
.form button{background:var(--orange);color:var(--ink);border:0;padding:16px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;margin-top:6px}.form button:hover{background:#f07422}
.form .small{margin:0;color:#a9a49c}

/* Footer */
.site-footer{background:var(--ink);padding:60px 0 40px;border-top:1px solid var(--line)}
.foot{display:grid;gap:12px}.foot img{height:56px;width:auto;justify-self:start}.foot p{margin:0;color:#b9b4ac;font-size:13px}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease var(--d,0ms),transform .8s ease var(--d,0ms)}.reveal.in{opacity:1;transform:none}

@media(max-width:1000px){
  .reasons{grid-template-columns:1fr 1fr}.reasons article{border-right:0;padding-left:0;border-bottom:1px solid var(--line-dark);padding-bottom:26px}
  .grid{grid-template-columns:1fr 1fr}.card.wide{grid-column:span 2}
  .band{grid-template-columns:1fr}.band img{min-height:300px}
  .div-grid{grid-template-columns:1fr 1fr}.div-grid article{padding-left:0!important;border-left:0!important}
  .contact-grid,.section-head{grid-template-columns:1fr}.section-head p{justify-self:start}
}
@media(max-width:700px){
  .site-header nav a:not(.cta){display:none}.logo img{height:34px}
  .copy{left:var(--pad);right:var(--pad);top:17%;width:auto}.copy h1{font-size:44px}
  #description{font-size:13px;max-width:260px}
  .vignette{background:linear-gradient(rgba(22,21,20,.55),transparent 45%,#161514 93%)}
  .rail{gap:6px;bottom:50px}.rail button{font-size:8px;letter-spacing:.04em}.rail button span{display:block;margin:0 0 8px}
  .status{top:auto;bottom:140px;font-size:8px}.chapter-label{bottom:146px;font-size:8px;max-width:130px}.note{bottom:30px;max-width:240px;font-size:8px}
  .reasons,.grid,.div-grid{grid-template-columns:1fr}.card.wide{grid-column:auto}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.mosaic figure{grid-column:span 1!important;grid-row:span 1!important}.m1{grid-column:span 2!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.card img,.mosaic img{transition:none}}

/* East Keith photo journey */
.shots{position:absolute;inset:0;overflow:hidden;background:var(--ink);isolation:isolate;z-index:0}
.shot{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.shot .box{position:absolute;left:0;top:0;will-change:transform;transform-origin:50% 50%}
.shot img{position:absolute;inset:0;width:100%;height:100%;display:block;filter:saturate(.88) contrast(1.05)}
.shot .co{position:absolute;transform:translate(-50%,-50%);width:0;height:0;pointer-events:none}
.grid-lines{position:absolute;inset:0;pointer-events:none;opacity:.5;background:
  linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px) 0 0/calc(100%/12) 100%,
  linear-gradient(0deg,rgba(255,255,255,.07) 1px,transparent 1px) 0 0/100% calc(100%/8);mix-blend-mode:overlay}
.plumb{position:absolute;top:0;bottom:0;width:2px;background:var(--orange);box-shadow:0 0 18px rgba(224,95,14,.7);opacity:0;pointer-events:none;z-index:3}
.plumb:before,.plumb:after{content:'';position:absolute;left:-6px;width:14px;height:2px;background:var(--orange)}.plumb:before{top:16%}.plumb:after{bottom:20%}
.callouts{position:absolute;inset:0;pointer-events:none;z-index:4}
.callout{position:absolute;display:flex;align-items:center;gap:10px;font:500 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s;white-space:nowrap}
.callout.on{opacity:1;transform:none}
.callout i{width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(224,95,14,.28)}
.callout b{font-weight:500;background:rgba(22,21,20,.78);padding:8px 12px;border-left:2px solid var(--orange);backdrop-filter:blur(4px)}
.callout.l{flex-direction:row-reverse}
.copy.swap h1,.copy.swap #description,.copy.swap .eyebrow{animation:rise .7s ease both}
.copy.swap #description{animation-delay:.08s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.vignette{background:linear-gradient(90deg,rgba(22,21,20,.88) 0,rgba(22,21,20,.5) 34%,transparent 62%),linear-gradient(0deg,#161514 0,rgba(22,21,20,.55) 14%,transparent 34%),linear-gradient(180deg,rgba(22,21,20,.55) 0,transparent 20%)}
@media(max-width:700px){.callouts{display:none}.vignette{background:linear-gradient(rgba(22,21,20,.7),rgba(22,21,20,.2) 40%,#161514 94%)}.grid-lines{display:none}}
@media(prefers-reduced-motion:reduce){.copy.swap h1,.copy.swap #description,.copy.swap .eyebrow{animation:none}.plumb{display:none}}

.copy h1 em,.copy h1{text-shadow:0 2px 28px rgba(22,21,20,.55)}.copy h1 em{color:#ff8a43}
#description{color:#e1ddd6;text-shadow:0 1px 14px rgba(22,21,20,.8)}
.status,.chapter-label,.note{text-shadow:0 1px 10px rgba(22,21,20,.9)}.note{color:#b9b4ac}
.vignette{background:linear-gradient(90deg,rgba(22,21,20,.93) 0,rgba(22,21,20,.72) 38%,rgba(22,21,20,.15) 66%,transparent 80%),linear-gradient(0deg,#161514 0,rgba(22,21,20,.6) 14%,transparent 34%),linear-gradient(180deg,rgba(22,21,20,.6) 0,transparent 20%)}
@media(max-width:700px){.vignette{background:linear-gradient(rgba(22,21,20,.78),rgba(22,21,20,.62) 46%,rgba(22,21,20,.25) 66%,#161514 96%)}}

/* 3D build hero */
.build .stage{background:radial-gradient(ellipse at 68% 46%,#34302d 0%,#1d1b1a 46%,#161514 78%)}
.build canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.build .vignette{background:linear-gradient(90deg,rgba(22,21,20,.82) 0,rgba(22,21,20,.4) 32%,transparent 56%),linear-gradient(0deg,#161514 0,transparent 18%)}
.poster{display:none}.nogl .poster{display:block;position:absolute;inset:0;background:url(assets/img/keith/k-front.jpg) center/cover}
.rail .t{font-style:normal}
.proof{position:absolute;right:var(--pad);bottom:130px;margin:0;width:min(25vw,300px);border:1px solid rgba(255,255,255,.28);background:var(--ink);padding:6px;opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s;pointer-events:none;z-index:5}
.proof.on{opacity:1;transform:none}.proof img{width:100%;aspect-ratio:3/2;object-fit:cover}
.proof figcaption{font:500 9px/1 var(--sans);letter-spacing:.2em;color:var(--orange);padding:9px 4px 4px}
@media(max-width:1000px){.rail .t{font-size:9px;letter-spacing:.06em}}
@media(max-width:700px){.proof{display:none}.rail button:not(.active) .t{display:none}.rail button span{margin:0}.rail{gap:2px}.rail button{text-align:center;flex:1}.rail button.active{flex:3}.rail button.active .t{display:block;margin-top:6px}.build .vignette{background:linear-gradient(rgba(22,21,20,.7),rgba(22,21,20,.2) 40%,rgba(22,21,20,.2) 62%,#161514 94%)}}
.proof{right:auto;left:var(--pad);bottom:150px;width:min(20vw,240px)}

/* v8: frame-sequence hero */
.journey.build{height:300vh}
.build .frames{position:absolute;inset:0;overflow:hidden;z-index:0;background:#161514}
.build .frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;transform:scale(var(--zoom,1.045));transform-origin:62% 60%;will-change:clip-path,opacity;opacity:0}
.build .frame:first-child{opacity:1}
.build .scanline{position:absolute;left:0;right:0;height:2px;background:var(--orange);box-shadow:0 0 18px 2px rgba(224,95,14,.55);opacity:0;z-index:40;pointer-events:none}
.build .vignette{z-index:2}
@media(max-width:700px){.build .frame{object-position:58% 50%}}
/* v9: legibility, photo sits right of the copy */
@media(min-width:701px){
 .build .frames{left:14%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);mask-image:linear-gradient(90deg,transparent 0,#000 24%)}
 .build .frame{object-position:50% 50%;transform-origin:50% 60%}
}
.build .vignette{background:linear-gradient(90deg,rgba(22,21,20,.94) 0,rgba(22,21,20,.78) 26%,rgba(22,21,20,.2) 48%,transparent 64%),linear-gradient(0deg,#161514 0,rgba(22,21,20,.7) 12%,transparent 30%),linear-gradient(180deg,rgba(22,21,20,.55) 0,transparent 16%)}
@media(max-width:700px){.build .vignette{background:linear-gradient(rgba(22,21,20,.78),rgba(22,21,20,.55) 40%,rgba(22,21,20,.15) 62%,#161514 96%)}}
.build .copy,.build .status,.build .rail,.build .note,.build .chapter-label,.build .o-watermark{position:absolute;z-index:6}.build .copy{position:absolute}
/* v11: smoother frame stack with simulated orbit */
.journey.build{height:340vh}
.build .frame{transform-origin:50% 62%;will-change:transform,opacity,mask-image;backface-visibility:hidden}
.build .proof{left:auto;right:var(--pad);bottom:128px;width:min(17vw,210px)}@media(max-height:820px){.build .proof{bottom:112px}}
/* v13: scroll-scrubbed video segments over the still frames */
.build .vidlayer{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .35s}
.build .vidlayer.live{opacity:1}
.build .vidlayer .seg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.build .vidlayer .seg.on{opacity:1}
@media(min-width:701px){.build .vidlayer{left:14%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);mask-image:linear-gradient(90deg,transparent 0,#000 24%)}}
/* v14: continuous build video + InoBuilt brand layer */
.journey.build.vidmode{height:640vh}
.build .vidlayer .seg{filter:contrast(1.05) saturate(.9) brightness(.98)}
.build .vidlayer .grade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 60% 45%,transparent 45%,rgba(22,21,20,.45) 100%),linear-gradient(180deg,rgba(224,95,14,.06),rgba(22,21,20,.12));mix-blend-mode:multiply;z-index:2}
.build .vidlayer .wrapfx{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:3;pointer-events:none}
.build .vidlayer .stopsweep{position:absolute;left:0;right:0;top:0;height:2px;background:var(--orange);box-shadow:0 0 22px 3px rgba(224,95,14,.6);opacity:0;z-index:4}
.build .vidlayer .stopchip{position:absolute;right:calc(var(--pad) - 0px);top:112px;z-index:4;font:600 11px/1 var(--sans);letter-spacing:.22em;color:#fff;background:rgba(22,21,20,.55);border-left:3px solid var(--orange);padding:10px 14px;opacity:0;transform:translateX(12px);backdrop-filter:blur(6px)}
.build .vidlayer.stopfx .stopsweep{animation:inoSweep 1.1s cubic-bezier(.6,0,.2,1) both}
.build .vidlayer.stopfx .stopchip{animation:inoChip 2.4s ease both}
@keyframes inoSweep{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:100%;opacity:0}}
@keyframes inoChip{0%{opacity:0;transform:translateX(12px)}15%,75%{opacity:1;transform:none}100%{opacity:0}}
.build .vidlayer .endlogo{position:absolute;left:50%;top:9%;width:min(22vw,300px);transform:translateX(-50%);opacity:0;z-index:4;filter:drop-shadow(0 2px 14px rgba(0,0,0,.45));pointer-events:none}
.build.vidmode .status{display:none}
@media(max-width:700px){.build .vidlayer .stopchip{top:auto;bottom:190px;right:16px}.build .vidlayer .endlogo{width:46vw;top:14%}}
@media(prefers-reduced-motion:reduce){.build .vidlayer .stopsweep,.build .vidlayer .stopchip{animation:none!important}}
.build .vidlayer .endlogo{display:none}

/* v20: once the video is ready it owns the stage; stills are hidden so seeks never flash them */
.build.vidready .frames{visibility:hidden}
.build .vidlayer.live{transition:none}
/* v21: full-bleed video (no side crop at 16:9), legibility from a left fade instead of an offset panel */
@media(min-width:701px){
 .build .vidlayer{left:0;-webkit-mask-image:none;mask-image:none}
 .build.vidready .vignette{background:linear-gradient(90deg,rgba(22,21,20,.9) 0,rgba(22,21,20,.66) 26%,rgba(22,21,20,.12) 50%,transparent 62%),linear-gradient(0deg,#161514 0,rgba(22,21,20,.55) 13%,transparent 30%),linear-gradient(180deg,rgba(22,21,20,.55) 0,transparent 16%)}
}
.build .vidlayer .seg{object-position:62% 55%}
.build .vidlayer .seg{object-position:50% 50%}

/* v23: HQ stop stills over the video */
.build .vidlayer .hqstop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;z-index:1;pointer-events:none;filter:contrast(1.05) saturate(.9) brightness(.98)}

/* v24: split hero. Brand plate on the left, media on the right with feathered (blurred-in) edges */
.build .brandplate{position:absolute;inset:0;z-index:0;pointer-events:none;
 background:
  radial-gradient(ellipse 60% 70% at 18% 45%,rgba(224,95,14,.10),transparent 70%),
  linear-gradient(90deg,var(--ink) 0,var(--ink-2) 45%,var(--ink) 100%);}
.build .brandplate:before{content:'';position:absolute;inset:0;
 background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
 background-size:96px 96px;opacity:.22;
 -webkit-mask-image:linear-gradient(90deg,#000 0,#000 40%,transparent 70%);mask-image:linear-gradient(90deg,#000 0,#000 40%,transparent 70%)}
.build .brandplate .bp-lines{position:absolute;left:0;top:0;height:100%;width:52%}
@media(min-width:901px){
 .build.vidready .frames{visibility:hidden}
 .build .vidlayer{left:36%!important;right:0;top:0;bottom:0;
  -webkit-mask-image:radial-gradient(ellipse 72% 78% at 58% 50%,#000 46%,rgba(0,0,0,.55) 70%,transparent 100%)!important;
  mask-image:radial-gradient(ellipse 72% 78% at 58% 50%,#000 46%,rgba(0,0,0,.55) 70%,transparent 100%)!important}
 .build.vidready .vignette{background:linear-gradient(0deg,#161514 0,rgba(22,21,20,.4) 10%,transparent 24%),linear-gradient(180deg,rgba(22,21,20,.5) 0,transparent 14%)!important}
 .build .vidlayer .grade{background:radial-gradient(ellipse at 55% 45%,transparent 50%,rgba(22,21,20,.35) 100%)}
 .build .copy{width:min(31%,500px)}
 .build .copy h1{font-size:clamp(40px,4.4vw,76px)}
 .build .proof{right:var(--pad)}
 .build .vidlayer .stopchip{right:var(--pad)}
}
@media(max-width:900px){.build .brandplate .bp-lines{display:none}}
/* v25: true feather. Fade to 0 at the left edge and soft top/bottom/right falloff */
@media(min-width:901px){
 .build .vidlayer{left:30%!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 12%,#000 34%,#000 94%,rgba(0,0,0,.6) 100%),linear-gradient(180deg,transparent 0,#000 12%,#000 82%,transparent 100%)!important;
  -webkit-mask-composite:source-in!important;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 12%,#000 34%,#000 94%,rgba(0,0,0,.6) 100%),linear-gradient(180deg,transparent 0,#000 12%,#000 82%,transparent 100%)!important;
  mask-composite:intersect!important}
}
/* v26: zoomed-out media (whole 16:9 frame visible) + wide feather into the brand plate */
@media(min-width:901px){
 .build .vidlayer{left:12%!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.08) 10%,rgba(0,0,0,.45) 26%,#000 46%,#000 90%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,transparent 0,rgba(0,0,0,.6) 9%,#000 20%,#000 76%,rgba(0,0,0,.5) 88%,transparent 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.08) 10%,rgba(0,0,0,.45) 26%,#000 46%,#000 90%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,transparent 0,rgba(0,0,0,.6) 9%,#000 20%,#000 76%,rgba(0,0,0,.5) 88%,transparent 100%)!important}
 .build .vidlayer .seg,.build .vidlayer .hqstop{object-fit:contain;object-position:62% 50%;transform:scale(.97);transform-origin:62% 50%}
}
/* v27: separate pages (hash routed) */
.page[hidden]{display:none}
.page{animation:pageIn .5s ease both}.page.enter{animation:none}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.site-header nav a.active:not(.cta){opacity:1;color:var(--orange)}
.site-header nav a.cta.active{background:#f07422}
.page-head{position:relative;background:var(--ink);padding:clamp(150px,18vw,220px) 0 clamp(56px,7vw,96px);overflow:hidden;border-bottom:1px solid var(--line)}
.page-head:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 80% at 12% 40%,rgba(224,95,14,.12),transparent 70%),linear-gradient(var(--line) 1px,transparent 1px) 0 0/96px 96px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/96px 96px;opacity:.5;pointer-events:none}
.page-head .wrap{position:relative}
.page-head h1{font-size:clamp(40px,6vw,92px);line-height:1.02;letter-spacing:-.035em;font-weight:600;max-width:16ch}
.page-head p{max-width:560px;margin:24px 0 0;color:#b9b4ac;font-size:17px}
.page-head + .statement{padding-top:clamp(60px,8vw,110px)}
/* home teaser */
.teaser{background:var(--stone);color:var(--ink);padding:clamp(80px,10vw,140px) 0}
.teaser .eyebrow{color:var(--orange-text)}.teaser em{color:var(--orange-text)}
.teaser h2{font-size:clamp(34px,4.6vw,70px);line-height:1.04;letter-spacing:-.035em;font-weight:600;max-width:18ch}
.teaser-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:60px;border-top:1px solid var(--line-dark)}
.tcard{display:flex;flex-direction:column;gap:12px;padding:30px 28px 34px 0;border-right:1px solid var(--line-dark);transition:background .3s}
.tcard:not(:first-child){padding-left:28px}.tcard:last-child{border-right:0}
.tcard h3{font-size:22px;letter-spacing:-.02em}.tcard p{margin:0;font-size:14px;color:#4a4745;flex:1}
.tcard b{font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--orange-text);transition:transform .25s}
.tcard:hover b{transform:translateX(6px)}.tcard:hover h3{color:var(--orange-text)}
.tcard.cta-card{background:var(--ink);color:var(--stone);padding:30px 28px 34px}.tcard.cta-card p{color:#b9b4ac}.tcard.cta-card b{color:var(--orange)}.tcard.cta-card .n{color:var(--orange)}
.contact{padding-top:clamp(60px,8vw,110px)}
@media(max-width:1000px){.teaser-grid{grid-template-columns:1fr 1fr}.tcard{border-right:0;border-bottom:1px solid var(--line-dark);padding-left:0!important}.tcard.cta-card{padding:30px 24px!important}}
@media(max-width:700px){.teaser-grid{grid-template-columns:1fr}}
.menu{display:none;background:none;border:0;width:40px;height:40px;position:relative;padding:0}
.menu span:not(.sr){position:absolute;left:9px;right:9px;height:2px;background:var(--stone);transition:transform .25s,top .25s}
.menu span:nth-child(1){top:15px}.menu span:nth-child(2){top:23px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:700px){
 .menu{display:block;z-index:2}
 .site-header nav{position:fixed;inset:0 0 auto 0;top:0;padding:96px var(--pad) 34px;background:rgba(22,21,20,.97);backdrop-filter:blur(10px);flex-direction:column;align-items:flex-start;gap:22px;font-size:15px;transform:translateY(-102%);transition:transform .35s ease;border-bottom:1px solid var(--line)}
 .site-header nav a:not(.cta),.site-header nav a[data-nav="home"]{display:block}
 .site-header.open nav{transform:none}
 .site-header.open .menu span:nth-child(1){top:19px;transform:rotate(45deg)}.site-header.open .menu span:nth-child(2){top:19px;transform:rotate(-45deg)}
 .site-header .logo{position:relative;z-index:2}
}
.tools[hidden]{display:none}
.lead-in{color:#b9b4ac;max-width:560px;margin:0 0 48px;font-size:16px}
.page-head + .projects{padding-top:clamp(56px,7vw,96px)}
/* v28: mobile hero spacing (rail, footnote and back-to-start no longer overlap) */
@media(max-width:700px){
 .build .note{bottom:10px;max-width:none;right:var(--pad);line-height:1.5}
 .build .rail{bottom:56px}
 .build .chapter-label{bottom:128px}
 .tools{display:none}
}
/* v29: process page, timeline, FAQ, architects, testimonials, placeholder styling */
.tbc{background:rgba(224,95,14,.16);color:inherit;border:1px dashed var(--orange);padding:1px 6px;border-radius:2px;font-style:normal}
.tbc-note{font-size:12px;color:var(--orange);letter-spacing:.04em;margin-top:18px}
.tbc-box{outline:1px dashed rgba(224,95,14,.7);outline-offset:-1px}
.btn-line{display:inline-block;margin-top:30px;font-weight:600;font-size:13px;letter-spacing:.08em;border-bottom:2px solid currentColor;padding-bottom:4px;color:var(--orange-text)}
.btn-solid{display:inline-block;margin-top:56px;background:var(--orange);color:var(--ink);padding:16px 26px;font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.btn-solid:hover{background:#f07422}
/* process */
.process{background:var(--ink);padding:clamp(60px,8vw,110px) 0 clamp(80px,10vw,140px)}
.phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.phases li{padding:34px 30px 40px 0;border-bottom:1px solid var(--line)}
.phases li:not(:nth-child(3n+1)){padding-left:30px;border-left:1px solid var(--line)}
.phases .n{color:var(--orange)}.phases h3{font-size:24px;letter-spacing:-.02em;margin:16px 0 10px}.phases p{font-size:14px;color:#b9b4ac;margin:0;max-width:36ch}
.phases a{color:var(--orange);border-bottom:1px solid}
.timeline,.faq{margin-top:clamp(70px,9vw,120px)}
.timeline h2,.faq h2,.architects h2,.testimonials h2{font-size:clamp(30px,3.8vw,56px);line-height:1.06;letter-spacing:-.03em;font-weight:600}
.timeline table{width:100%;border-collapse:collapse;margin-top:34px;font-size:15px}
.timeline th{text-align:left;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#a9a49c;padding:0 16px 14px 0;border-bottom:1px solid var(--line)}
.timeline td{padding:18px 16px 18px 0;border-bottom:1px solid var(--line);color:#e1ddd6;vertical-align:top}
.timeline td:last-child{color:#a9a49c;font-size:14px}
.faq details{border-bottom:1px solid var(--line);padding:0}
.faq details:first-of-type{border-top:1px solid var(--line);margin-top:30px}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-size:18px;font-weight:500;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:'+';position:absolute;right:4px;top:18px;font-size:24px;color:var(--orange);transition:transform .25s}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{margin:0 0 24px;max-width:70ch;color:#b9b4ac;font-size:15px}
/* architects */
.architects{background:var(--stone);color:var(--ink);padding:clamp(80px,10vw,140px) 0;border-top:1px solid var(--line-dark)}
.architects em{color:var(--orange-text)}
.arch-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:6vw;align-items:start}
.arch-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark)}
.arch-list li{display:grid;gap:6px;padding:20px 0;border-bottom:1px solid var(--line-dark)}
.arch-list b{font-weight:600;font-size:16px}.arch-list span{font-size:14px;color:#4a4745}
.arch-steps{margin-top:56px;display:flex;gap:40px;align-items:baseline;flex-wrap:wrap;background:var(--ink);color:var(--stone);padding:26px 30px}
.arch-steps span{font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--orange)}
.arch-steps ol{margin:0;padding-left:18px;display:flex;gap:36px;flex-wrap:wrap;font-size:14px;color:#e1ddd6}
/* testimonials */
.testimonials{background:var(--ink-2);padding:clamp(70px,9vw,120px) 0;border-top:1px solid var(--line)}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:10px}
.tq{margin:0;padding:30px;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:220px}
.tq blockquote{margin:0;font:italic 500 22px/1.35 var(--display);color:#e1ddd6}
.tq figcaption{font:500 10px/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--orange)}
@media(max-width:1000px){.phases{grid-template-columns:1fr 1fr}.phases li{padding-left:0!important;border-left:0!important}.arch-grid{grid-template-columns:1fr}.t-grid{grid-template-columns:1fr}}
@media(max-width:700px){.phases{grid-template-columns:1fr}.timeline table,.timeline thead,.timeline tbody,.timeline tr,.timeline td{display:block}.timeline thead{display:none}.timeline tr{border-bottom:1px solid var(--line);padding:14px 0}.timeline td{border:0;padding:3px 0}.arch-steps ol{flex-direction:column;gap:10px}}
@media(max-width:1200px) and (min-width:701px){.site-header nav{gap:20px;font-size:11px;letter-spacing:.1em}}
/* v30: benchmark sitemap pages */
.m-only{display:none!important}
.site-header nav{gap:24px;font-size:11px;letter-spacing:.12em}
@media(max-width:1250px) and (min-width:701px){.site-header nav{gap:14px;font-size:10px;letter-spacing:.08em}.site-header nav .cta{padding:10px 14px}}
@media(max-width:1000px){
 .menu{display:block;z-index:2}
 .site-header nav{position:fixed;inset:0 0 auto 0;top:0;padding:96px var(--pad) 34px;background:rgba(22,21,20,.97);backdrop-filter:blur(10px);flex-direction:column;align-items:flex-start;gap:20px;font-size:14px;transform:translateY(-102%);transition:transform .35s ease;border-bottom:1px solid var(--line)}
 .site-header nav a:not(.cta){display:block}
 .site-header nav .m-only{display:block!important}
 .site-header.open nav{transform:none}
 .site-header.open .menu span:nth-child(1){top:19px;transform:rotate(45deg)}.site-header.open .menu span:nth-child(2){top:19px;transform:rotate(-45deg)}
 .site-header .logo{position:relative;z-index:2}
}
.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:6vw;align-items:start}
.ticks{list-style:none;margin:20px 0 34px;padding:0}.ticks li{position:relative;padding:10px 0 10px 26px;border-bottom:1px solid var(--line);color:#e1ddd6;font-size:15px}
.ticks li:before{content:'';position:absolute;left:0;top:19px;width:12px;height:2px;background:var(--orange)}
.note-tbc{font-size:13px;color:#a9a49c;margin-top:18px}
.more-link{margin-top:40px}.more-link a{color:var(--orange);border-bottom:1px solid;font-weight:500}
.btn-line.light{color:var(--orange);margin:0}
/* home */
.audiences{background:var(--stone);color:var(--ink);padding:clamp(80px,10vw,140px) 0}
.audiences .eyebrow,.audiences em{color:var(--orange-text)}
.audiences h2{font-size:clamp(34px,4.6vw,70px);line-height:1.04;letter-spacing:-.035em;font-weight:600;max-width:18ch}
.aud-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
.aud{display:flex;flex-direction:column;gap:12px;padding:30px;background:#fff;border:1px solid var(--line-dark);transition:transform .3s,box-shadow .3s}
.aud:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(22,21,20,.12)}
.aud .n{color:var(--orange-text)}.aud h3{font-size:24px;letter-spacing:-.02em}.aud p{margin:0;font-size:14px;color:#4a4745;flex:1}.aud b{font-size:13px;color:var(--orange-text)}
.featured{background:var(--ink);padding:clamp(80px,10vw,140px) 0}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feat{display:block}.feat img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.4);transition:filter .5s,transform .8s}
.feat:hover img{filter:none}.feat .type{display:block;margin-top:16px;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--orange)}
.feat h3{font-size:22px;letter-spacing:-.02em;margin-top:8px}
.proof-strip{background:var(--ink-2);padding:clamp(50px,6vw,80px) 0;border-top:1px solid var(--line)}
.proof-row{display:grid;grid-template-columns:1.2fr 1fr;gap:5vw;align-items:center}
.cred-mini{list-style:none;margin:0;padding:0;display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.cred-mini img{height:44px;width:auto;background:#fff;padding:6px}.cred-mini li{display:flex;flex-direction:column;font-size:12px;color:#b9b4ac}.cred-mini b{color:#fff;font-size:15px}
.cta-band{background:var(--orange);color:var(--ink);padding:clamp(50px,6vw,80px) 0}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(28px,3.4vw,48px);letter-spacing:-.03em;font-weight:600}.cta-band p{margin:8px 0 0;max-width:52ch}
.cta-band .btn-solid{margin:0;background:var(--ink);color:#fff}.cta-band .btn-solid:hover{background:#000}
/* services */
.svc-sec,.svc-detail,.case,.inv,.guide{background:var(--ink);padding:clamp(60px,8vw,110px) 0}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.svc{display:flex;flex-direction:column;gap:12px;padding:34px;border:1px solid var(--line);transition:border-color .3s,background .3s}
.svc:hover{border-color:var(--orange);background:var(--ink-2)}.svc .n{color:var(--orange)}.svc h3{font-size:28px;letter-spacing:-.02em}.svc p{margin:0;color:#b9b4ac;font-size:15px}.svc b{color:var(--orange);font-size:13px}
.svc-detail h2,.case h2,.guide h2,.founder h2{font-size:clamp(24px,2.6vw,36px);letter-spacing:-.02em;font-weight:600;margin-top:10px}
.svc-detail p,.case p,.guide p{color:#b9b4ac;font-size:15px;max-width:60ch}.svc-detail a,.case .story a{color:var(--orange);border-bottom:1px solid}
.empty-proj{padding:40px 24px;text-align:center}
/* case studies */
.case-head{position:relative;padding:clamp(170px,22vw,280px) 0 clamp(50px,6vw,80px);background:linear-gradient(0deg,rgba(22,21,20,.95),rgba(22,21,20,.35) 70%,rgba(22,21,20,.6)),var(--bg) center/cover}
.case-head h1{font-size:clamp(40px,6vw,92px);line-height:1.02;letter-spacing:-.035em;font-weight:600}.case-head p{max-width:560px;color:#e1ddd6;font-size:17px;margin:18px 0 0}
.case-head .back{display:inline-block;margin-bottom:24px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#e1ddd6}
.facts{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.facts th{text-align:left;font:500 10px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#a9a49c;padding:16px 16px 16px 0;width:38%;vertical-align:top;border-bottom:1px solid var(--line)}
.facts td{padding:14px 0;border-bottom:1px solid var(--line);color:#e1ddd6;font-size:15px}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:60px}.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card-link{display:block;color:inherit}.card .more{display:inline-block;margin-top:12px;font-size:13px;color:var(--orange)}
/* investors */
.inv-list{grid-template-columns:repeat(3,1fr)}
/* guide */
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw}
.guide .timeline,.guide .faq{margin-top:clamp(60px,8vw,110px)}
/* about */
.founder{background:var(--stone);color:var(--ink);padding:clamp(70px,9vw,120px) 0}
.founder-photo{aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:#d4d0c8}
.founder p{color:#3a3836;font-size:16px}.fq{margin:26px 0 0;font:italic 500 26px/1.3 var(--display);color:var(--orange-text)}
/* contact form selects */
.form select{background:transparent;border:0;border-bottom:1px solid #6b6660;color:#fff;font:400 16px/1.5 var(--sans);padding:8px 0;border-radius:0;-webkit-appearance:none;appearance:none}
.form select option{color:#161514}
.foot-nav{display:flex;flex-wrap:wrap;gap:20px;margin-top:10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#a9a49c}.foot-nav a:hover{color:var(--orange)}
/* mobile call bar */
.callbar{display:none}
@media(max-width:700px){
 .m-only{display:block!important}
 .callbar:not([hidden]){display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:35;background:var(--ink);border-top:1px solid var(--line)}
 .callbar a{padding:16px 10px;text-align:center;font-weight:600;font-size:13px;letter-spacing:.06em}.callbar .go{background:var(--orange);color:var(--ink)}
 body[data-page]:not([data-page="home"]) .site-footer{padding-bottom:90px}
}
@media(max-width:1000px){.aud-grid,.feat-grid,.inv-list{grid-template-columns:1fr}.two-col,.guide-grid,.proof-row,.svc-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}}
.cred-mini li:first-child img{background:none;padding:0}
/* v31: 5-stop hero with continuous progress line + travelling phase label */
.journey.build.vidmode{height:420vh}
.build .rail{position:absolute}
.build .rail .prog{position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--line);pointer-events:none}
.build .rail .prog b{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--orange);box-shadow:0 0 12px rgba(224,95,14,.6)}
.build .rail .phase{position:absolute;top:-30px;transform:translateX(-50%);font:600 9.5px/1 var(--sans);letter-spacing:.2em;color:#fff;background:var(--orange);padding:5px 8px;border-radius:2px;opacity:0;transition:opacity .25s;white-space:nowrap;pointer-events:none}
.build .rail .phase.moving{opacity:1}
.build .rail .phase:after{content:'';position:absolute;left:50%;bottom:-4px;margin-left:-4px;border:4px solid transparent;border-bottom:0;border-top-color:var(--orange)}
.build .rail button{position:relative}
.build .rail button:before{content:'';position:absolute;left:0;top:-23px;width:7px;height:7px;border-radius:50%;background:#3a3633;border:1px solid #6b6660}
.build .rail button.active:before{background:var(--orange);border-color:var(--orange)}
@media(max-width:700px){.build .rail button:before{left:50%;margin-left:-4px}.build .rail .phase{font-size:8.5px}}
@media(min-width:701px){.build .chapter-label{bottom:132px}}
/* v32: blurred, feathered top and bottom on the scrolling hero media */
.build .stage::before,.build .stage::after{content:'';position:absolute;left:0;right:0;z-index:3;pointer-events:none;
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.build .stage::before{top:0;height:24%;background:linear-gradient(180deg,rgba(22,21,20,.85),rgba(22,21,20,0));
 -webkit-mask-image:linear-gradient(180deg,#000 30%,transparent);mask-image:linear-gradient(180deg,#000 30%,transparent)}
.build .stage::after{bottom:0;height:34%;background:linear-gradient(0deg,rgba(22,21,20,.92),rgba(22,21,20,0));
 -webkit-mask-image:linear-gradient(0deg,#000 35%,transparent);mask-image:linear-gradient(0deg,#000 35%,transparent)}
@media(max-width:700px){.build .stage::before{height:22%}.build .stage::after{height:40%}}
/* ============ v33: design-review fixes 1-9 ============ */
/* 1. hero: chip removed in scrub.js; phase tag in ink; bigger mobile rail text */
.build .rail .phase{color:var(--ink);font-size:10px}
.build .rail .phase:after{border-top-color:var(--orange)}
@media(max-width:700px){
 .build .rail .phase{font-size:10px;padding:5px 7px}
 .build .rail button{font-size:10px}
 .build .note{font-size:10px}
 .build .chapter-label{font-size:9px}
}
/* 2. HAVAN mini logo on a dark chip, like the About credentials row */
.cred-mini li.chip{background:var(--ink);padding:8px 14px;flex-direction:row}
.cred-mini li.chip img{height:34px;background:none;padding:0;mix-blend-mode:normal}
.cred-mini li:first-child img{background:none;padding:0}
/* 3. contrast: darker orange for small text on light; rail inactive readable */
:root{--orange-text:#A8460A}
.rail button{opacity:.6}
.rail button.active{opacity:1}
/* 4. page headers: shorter, and photographic on the pages that have a hero image */
.page-head{padding:clamp(110px,13vw,150px) 0 clamp(48px,6vw,80px)}
.page-head.shot{background:linear-gradient(0deg,var(--ink) 2%,rgba(22,21,20,.82) 45%,rgba(22,21,20,.55)),var(--bg) center/cover;border-bottom:0}
.page-head.shot:before{opacity:.22}
.page-head.shot p{color:#e8e5e0}
/* 5. photography in colour by default */
.card img{filter:none;transition:transform .8s}
.card:hover img{transform:scale(1.04)}
.feat img{filter:none}
.feat:hover img{transform:scale(1.03)}
.band img{filter:grayscale(.25) contrast(1.04)}
.grid{grid-template-columns:repeat(3,1fr)}
.card.wide{grid-column:auto}.card.wide .ph{aspect-ratio:4/3}
/* 6. mobile: tap targets, room under the call bar, tighter cards */
@media(max-width:1000px){
 .site-header nav a{display:flex;align-items:center;min-height:44px;width:100%}
 .site-header nav{gap:4px}
}
@media(max-width:700px){
 body:has(.callbar:not([hidden])) main{padding-bottom:76px}
 .aud,.svc,.tcard{padding:22px}
 .svc h3{font-size:24px}
 .tq{padding:24px;min-height:0}
 .cta-band .wrap{gap:20px}
}
/* 7. keyboard and screen readers */
.skip{position:absolute;left:-9999px;top:0;z-index:60;background:var(--orange);color:var(--ink);padding:14px 20px;font-weight:600}
.skip:focus{left:0}
main:focus{outline:none}
.site-header nav a{padding:10px 0}
.rail button{padding:10px 0 5px}
.req{color:var(--orange);font-style:normal;margin-left:2px}
/* 9. contact: what happens next */
.next-steps{list-style:none;counter-reset:ns;margin:40px 0 0;padding:0;max-width:46ch}
.next-steps li{counter-increment:ns;position:relative;padding:0 0 20px 42px}
.next-steps li:before{content:counter(ns,decimal-leading-zero);position:absolute;left:0;top:1px;font:600 11px/1.6 var(--sans);letter-spacing:.14em;color:var(--ink);opacity:.55}
.next-steps b{display:block;font-size:16px;font-weight:600}
.next-steps span{font-size:14px;opacity:.82}
.have-ready{font-size:14px;margin-top:6px;max-width:46ch;opacity:.9}
.form .ok{background:var(--ink-2);border-left:3px solid var(--orange);padding:22px 24px}
.form .ok h3{font-size:20px;margin-bottom:8px}
.form .ok p{color:#b9b4ac;font-size:14px;margin:0}
.form .err{color:#ffb38a;font-size:12px;margin-top:6px}
.form label.bad input,.form label.bad textarea,.form label.bad select{border-bottom-color:#ff8a43}

/* ---- v34: last contrast fix. The band's copy column sat on mid-grey (#545454), where the
   11px orange eyebrow measured 3.62:1 and the em 3.1:1 — both under AA. Ink-2 ground. ---- */
.band{background:var(--ink-2)}
.band .eyebrow{color:#ff9a5c}
.band-copy em{color:#ffa870}
