/* =====================================================================
   DunRite — "THE BUILD" cinematic scroll experience
   Luxury / high-end · GSAP + ScrollTrigger + Lenis
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Archivo+Expanded:wght@500;600;700;800;900&family=Saira+Condensed:wght@600;700;800&family=Spline+Sans+Mono:wght@400;500;600&display=swap');

:root{
  --black:#0b0b0c;
  --near:#101012;
  --panel:#16161a;
  --line:rgba(255,255,255,.12);
  --line-2:rgba(255,255,255,.06);
  --white:#f5f2ea;
  --dim:#b6b2a8;
  --dim-2:#7c7972;
  --gold:#5B9FCC;
  --gold-deep:#4A82A7;
  --on-gold:#06121c;

  --display:"Archivo Expanded","Archivo",system-ui,sans-serif;
  --cond:"Saira Condensed",sans-serif;
  --mono:"Spline Sans Mono",ui-monospace,monospace;
  --body:"Archivo",system-ui,sans-serif;

  --gutter:clamp(20px,4vw,72px);
  --maxw:1400px;
}

*{box-sizing:border-box;}
html{scroll-behavior:auto;}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:var(--body);-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.lock{overflow:hidden;height:100vh;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold);color:var(--on-gold);}

h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.96;letter-spacing:-.01em;margin:0;text-transform:uppercase;}
.mono{font-family:var(--mono);}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}

/* grain overlay (global) */
.grain-fx{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.vignette{position:fixed;inset:0;z-index:8999;pointer-events:none;
  box-shadow:inset 0 0 240px 60px rgba(0,0,0,.55);}

/* ---------------- preloader ---------------- */
.pre{position:fixed;inset:0;z-index:10000;background:var(--black);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:30px;}
.pre img{height:46px;opacity:0;transform:translateY(14px);}
.pre .pre-bar{width:min(420px,62vw);height:2px;background:var(--line);position:relative;overflow:hidden;}
.pre .pre-bar i{position:absolute;inset:0;width:0%;background:var(--gold);}
.pre .pre-count{font-family:var(--cond);font-weight:800;font-size:clamp(64px,12vw,150px);line-height:1;color:var(--white);}
.pre .pre-count .pct{color:var(--gold);font-size:.4em;vertical-align:super;}
.pre .pre-label{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim-2);}
.pre.hide{pointer-events:none;}
/* Inline head script sets html[data-pre] before paint: "off" = seen this
   session or reduced motion (hide instantly, no flash-over-content);
   "on" = first visit (lock scroll under the intro). */
html[data-pre="off"] .pre{display:none !important;}
html[data-pre="on"] body{overflow:hidden;}


/* ---------------- top bar ---------------- */
.bar{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;
  justify-content:space-between;padding:22px var(--gutter);mix-blend-mode:difference;
  transition:background .25s ease,backdrop-filter .25s ease;}
.bar .b-logo{height:30px;}
.bar .b-right{display:flex;align-items:center;gap:22px;font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;}
.bar .b-right a{color:#fff;opacity:.85;transition:opacity .2s;min-height:44px;display:inline-flex;align-items:center;padding:6px 0;}
.bar .b-right a:hover{opacity:1;}

/* once user scrolls past the hero crest, drop mix-blend so the solid
   backdrop the JS layers in actually reads correctly */
body[data-scrolled] .bar{mix-blend-mode:normal;border-bottom:1px solid var(--line-2);}
@media(max-width:640px){
  /* keep the phone link reachable on small screens — show a compact pill */
  .bar .b-right .b-hide{padding:8px 12px;border:1px solid rgba(91,159,204,.55);color:var(--gold);}
}


/* scroll progress line (top) */
.scrollbar{position:fixed;top:0;left:0;height:3px;width:100%;z-index:300;background:transparent;}
.scrollbar i{display:block;height:100%;width:0%;background:var(--gold);
  box-shadow:0 0 16px var(--gold);}

/* ---------------- hero ---------------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;}
.hero-bg{position:absolute;inset:-8% 0 0 0;height:116%;will-change:transform;}
.hero-bg img,.hero-bg video{width:100%;height:100%;object-fit:cover;filter:grayscale(var(--fg-gray,.35)) contrast(1.08) brightness(.5);}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,11,12,.7) 0%,rgba(11,11,12,.15) 40%,rgba(11,11,12,.95) 100%);}
.hero .wrap{position:relative;z-index:2;padding-bottom:clamp(48px,8vh,110px);width:100%;}
.hero .kick{font-family:var(--mono);font-size:13px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:14px;margin-bottom:26px;}
.hero .kick::before{content:"";width:46px;height:1px;background:var(--gold);}
.hero h1{font-size:clamp(56px,9.2vw,168px);line-height:.9;}
.hero h1 .ln{display:block;overflow:hidden;}
.hero h1 .ln span{display:block;}
.hero h1 .thin{font-family:var(--cond);font-weight:600;-webkit-text-stroke:1px var(--white);
  color:transparent;}
.hero h1 em{font-style:normal;color:var(--gold);}
.hero .sub{display:flex;flex-wrap:wrap;gap:28px 48px;align-items:flex-end;margin-top:clamp(20px,4vh,44px);
  border-top:1px solid var(--line);padding-top:32px;max-width:900px;}

.hero .sub p{margin:0;color:var(--dim);font-size:clamp(15px,1.4vw,19px);line-height:1.5;max-width:46ch;}
.hero .hcta{display:inline-flex;align-items:center;gap:10px;margin-top:28px;
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--white);padding:14px 22px;border:1px solid var(--gold);
  transition:background .25s,color .25s,gap .25s;}
.hero .hcta:hover{background:var(--gold);color:var(--on-gold);gap:14px;}
.hero .scrollcue{position:absolute;bottom:30px;right:var(--gutter);z-index:3;font-family:var(--mono);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);display:flex;
  flex-direction:column;align-items:center;gap:12px;}
.hero .scrollcue .ln{width:1px;height:54px;background:linear-gradient(var(--gold),transparent);
  position:relative;overflow:hidden;}
.hero .scrollcue .ln::after{content:"";position:absolute;top:-30%;left:0;width:100%;height:40%;
  background:var(--gold);animation:cue 1.8s infinite;}
@media(max-height:640px){.hero .scrollcue{display:none;}}
@media(max-width:600px){.hero .kick::before{width:28px;}}

@keyframes cue{0%{top:-40%;}100%{top:120%;}}

/* generic section intro line */
.statement{padding:clamp(90px,16vh,200px) 0;background:var(--black);}
.statement p{font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(26px,4.6vw,74px);line-height:1.04;letter-spacing:-.01em;max-width:18ch;}
.statement .word{display:inline-block;opacity:.28;transition:opacity .1s;}
.statement em{font-style:normal;color:var(--gold);}


/* ---------------- THE BUILD (pinned timelapse) ---------------- */
.build{position:relative;background:var(--black);}
.build-pin{position:relative;height:100vh;height:100svh;overflow:hidden;}
.frames{position:absolute;inset:0;}
.frame{position:absolute;inset:0;opacity:0;}
.frame:first-child{opacity:1;}
.frame img,.frame video{width:100%;height:100%;object-fit:cover;filter:grayscale(var(--fg-gray,.28)) contrast(1.06) brightness(.62);
  will-change:transform;transform:scale(1.16);}
.build-pin::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,8,9,.86) 0%,rgba(8,8,9,.35) 46%,rgba(8,8,9,.2) 100%),
             linear-gradient(0deg,rgba(8,8,9,.92) 0%,rgba(8,8,9,0) 42%);}

.build-ui{position:absolute;inset:0;z-index:3;pointer-events:none;}
.build-ui .wrap{height:100%;display:flex;flex-direction:column;justify-content:center;
  padding-left:clamp(72px,21vw,320px);}
@media(max-width:900px){.build-ui .wrap{padding-left:var(--gutter);}}
.bnum{font-family:var(--cond);font-weight:800;font-size:clamp(110px,26vw,420px);line-height:.78;
  color:transparent;-webkit-text-stroke:1.5px rgba(245,242,234,.28);letter-spacing:-.02em;
  position:absolute;top:50%;right:var(--gutter);transform:translateY(-50%);z-index:-1;}
.bkick{font-family:var(--mono);font-size:16px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold);margin-bottom:18px;display:flex;align-items:center;gap:14px;}
.bkick::before{content:"";width:40px;height:1px;background:var(--gold);}
.btitle{font-size:clamp(40px,7vw,118px);line-height:.92;max-width:14ch;}
.bcap{margin:24px 0 0;color:var(--dim);font-size:clamp(15px,1.5vw,20px);line-height:1.55;max-width:42ch;}

/* readout: day + percent */
.readout{position:absolute;left:var(--gutter);bottom:clamp(28px,5vh,64px);right:var(--gutter);z-index:4;
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;pointer-events:none;}
.readout .day{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);}
.readout .day b{font-family:var(--cond);font-weight:800;font-size:46px;letter-spacing:.02em;color:var(--white);display:block;margin-top:2px;}
.readout .pct{text-align:right;}
.readout .pct .pn{font-family:var(--cond);font-weight:800;font-size:clamp(40px,5vw,72px);line-height:.9;color:var(--gold);}
.readout .pct .pl{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-top:4px;}

/* progress meter (bottom full-width) */
.meter{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--line-2);z-index:5;}
.meter i{display:block;height:100%;width:0%;background:var(--gold);}


/* vertical stage rail */
.rail{position:absolute;top:50%;left:var(--gutter);transform:translateY(-50%);z-index:4;
  display:flex;flex-direction:column;gap:0;pointer-events:none;}
.rail .tk{display:flex;align-items:center;gap:14px;padding:11px 0;opacity:.62;transition:opacity .3s;}
.rail .tk .dot{width:9px;height:9px;border:1px solid var(--dim);border-radius:50%;transition:all .3s;}
.rail .tk .lb{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);white-space:nowrap;}
.rail .tk.on{opacity:1;}
.rail .tk.on .dot{background:var(--gold);border-color:var(--gold);box-shadow:0 0 14px var(--gold);transform:scale(1.25);}
.rail .tk.on .lb{color:var(--white);}
@media(max-width:900px){
  .rail{display:none;}
  /* Background number sits behind the headline, off-axis, dimmed. */
  .bnum{opacity:.35;font-size:clamp(160px,46vw,280px);top:38%;right:-6vw;}
  /* Stack the overlay text in the upper portion of the pin so the readout
     band at the bottom has its own clear strip and never collides. */
  .build-ui .wrap{justify-content:flex-start;padding-top:clamp(96px,16vh,140px);padding-right:var(--gutter);}
  .bkick{font-size:14px;letter-spacing:.22em;margin-bottom:14px;}
  .bkick::before{width:28px;}
  .btitle{font-size:clamp(40px,11vw,68px);line-height:.94;max-width:11ch;}
  .bcap{font-size:14.5px;line-height:1.5;max-width:34ch;margin-top:18px;}
  .readout{bottom:22px;left:var(--gutter);right:var(--gutter);}
  .readout .day b{font-size:28px;}
  .readout .pct .pn{font-size:30px;}
  .readout .pct .pl,.readout .day{font-size:10.5px;letter-spacing:.16em;}
}
@media(max-width:560px){
  .build-ui .wrap{padding-top:clamp(84px,14vh,120px);}
  .btitle{font-size:clamp(36px,10.5vw,56px);max-width:10ch;}
  .bcap{font-size:14px;max-width:30ch;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}
  .readout{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:14px;bottom:18px;}
  .readout .pct{text-align:right;}
  .readout .pct .pn{font-size:26px;}
}
@media(max-width:380px){
  .btitle{font-size:clamp(32px,10vw,48px);}
  .bcap{font-size:13.5px;max-width:28ch;}
}

/* ---------------- stats ---------------- */
.stats{padding:clamp(80px,14vh,170px) 0;background:var(--near);border-top:1px solid var(--line-2);}
.stats .sh{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:clamp(28px,4vh,56px);display:flex;align-items:center;gap:14px;}
.stats .sh::before{content:"";width:46px;height:1px;background:var(--gold);}

.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line-2);border-block:1px solid var(--line-2);}
.stat{background:var(--near);padding:40px 24px 38px;min-width:0;}
.stat .n{font-family:var(--cond);font-weight:800;font-size:clamp(44px,5.2vw,82px);line-height:.88;color:var(--white);
  display:flex;align-items:baseline;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;letter-spacing:-.01em;}
.stat .n .u{color:var(--gold);}
.stat .l{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim-2);margin-top:14px;}
@media(max-width:1100px){.stat .n{font-size:clamp(40px,5vw,68px);}}
@media(max-width:820px){.stat-grid{grid-template-columns:1fr 1fr;} .stat .n{font-size:clamp(46px,8vw,72px);}}
@media(max-width:460px){.stat-grid{grid-template-columns:1fr;}}


/* ---------------- horizontal capabilities ---------------- */
.cap{position:relative;background:var(--black);}
.cap-pin{height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;}
.cap-track{display:flex;gap:0;will-change:transform;padding-left:var(--gutter);}
.cap-intro{flex:none;width:min(80vw,560px);padding-right:80px;display:flex;flex-direction:column;justify-content:center;}
.cap-intro .sh{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
.cap-intro h2{font-size:clamp(36px,5vw,84px);line-height:.94;}
.cap-intro p{color:var(--dim);font-size:17px;line-height:1.55;margin-top:22px;max-width:40ch;}
.cap-card{flex:none;width:min(78vw,440px);min-height:clamp(360px,60vh,520px);margin-right:26px;position:relative;
  border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;}
.cap-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.4) contrast(1.05) brightness(.6);transition:transform .8s ease,filter .5s;}
.cap-card:hover img{transform:scale(1.07);filter:grayscale(0) brightness(.7);}
.cap-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,9,.92),transparent 60%);}
.cap-card .cc{position:relative;z-index:2;padding:28px 28px 32px;}
.cap-card .cc .cn{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--gold);}
.cap-card .cc h3{font-size:clamp(26px,3vw,40px);margin:14px 0 12px;}
.cap-card .cc p{color:var(--dim);font-size:15px;line-height:1.5;margin:0;max-width:34ch;}
.cap-card .cc .cap-link{display:inline-flex;align-items:center;gap:10px;margin-top:18px;
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--white);padding:14px 0;border-bottom:1px solid rgba(91,159,204,.45);
  transition:color .25s ease,border-color .25s ease,gap .25s ease;min-height:44px;}
.cap-card .cc .cap-link .arr{transition:transform .3s ease;}
.cap-card .cc .cap-link:hover{color:var(--gold);border-color:var(--gold);gap:16px;}
.cap-card .cc .cap-link:hover .arr{transform:translateX(4px);}


.cap-end{flex:none;width:60vw;}
@media(max-width:900px){
  /* On mobile, abandon horizontal pinned scroll — stack vertically so the page
     keeps flowing naturally instead of trapping the user in a long pin. */
  .cap-pin{height:auto;min-height:0;overflow:visible;display:block;padding:clamp(60px,10vh,100px) 0;}
  .cap-track{flex-direction:column;gap:22px;padding:0 var(--gutter);transform:none !important;}
  .cap-intro{width:100%;padding:0 0 18px;}
  .cap-card{width:100%;height:clamp(360px,62vh,480px);margin:0;}
  .cap-end{display:none;}
}

/* ---------------- closing CTA ---------------- */
.close{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--black);}
.close-bg{position:absolute;inset:0;}
.close-bg img,.close-bg video{width:100%;height:100%;object-fit:cover;filter:grayscale(var(--fg-gray,.4)) brightness(.4) contrast(1.05);}
body[data-grain="off"] .grain-fx,body[data-grain="off"] .vignette{display:none;}
.close::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 60%,rgba(8,8,9,.5),rgba(8,8,9,.95));}
.close .wrap{position:relative;z-index:2;text-align:center;width:100%;}
.close .kick{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:26px;}
.close h2{font-size:clamp(44px,9vw,150px);line-height:.9;}
.close h2 em{font-style:normal;color:var(--gold);}
.close .actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:46px;}
.btn{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:12px;padding:18px 30px;border:1.5px solid transparent;cursor:pointer;
  transition:transform .15s,background .25s,color .25s,border-color .25s;}
.btn:active{transform:translateY(1px);}
.btn .arr{transition:transform .2s;}.btn:hover .arr{transform:translateX(5px);}
.btn-gold{background:var(--gold);color:var(--on-gold);}
.btn-gold:hover{background:var(--white);}
.btn-ghost{border-color:var(--line);color:#fff;}.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

.foot{position:relative;z-index:2;border-top:1px solid var(--line-2);background:var(--black);}
.foot .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:26px var(--gutter);
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--dim-2);flex-wrap:wrap;}
.foot .fcontact{color:var(--dim);}
.foot .fcontact a{color:var(--white);}
.foot .fcontact a:hover{color:var(--gold);}
.foot a:hover{color:var(--gold);}


/* generic reveal */
.rv{opacity:0;transform:translateY(30px);}
.reduced .rv{opacity:1;transform:none;}
.reduced .frame{opacity:1;}
.reduced .hero-bg,.reduced .frame img{transform:none;}

/* ---------------- creed / ethos ---------------- */
.creed{padding:clamp(80px,15vh,180px) 0;background:var(--black);border-top:1px solid var(--line-2);}
.creed .sh{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:34px;display:flex;align-items:center;gap:14px;}
.creed .sh::before{content:"";width:46px;height:1px;background:var(--gold);}
.creed-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,6vw,90px);align-items:start;}
.creed h2{font-size:clamp(32px,4.6vw,72px);line-height:.98;}
.creed h2 em{font-style:normal;color:var(--gold);}
.creed .body p{color:var(--dim);font-size:clamp(16px,1.5vw,20px);line-height:1.62;margin:0 0 22px;}
.creed .body p:last-child{margin-bottom:0;}
.mv-row{display:grid;gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-top:30px;}
.mv-row .mv{background:var(--near);padding:28px 26px;}
.mv-row .mv h4{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;}
.mv-row .mv p{margin:0;color:var(--dim);font-size:15.5px;line-height:1.55;}
.creed-left{display:flex;flex-direction:column;gap:clamp(28px,4vh,52px);}
.creed-fig{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 24px 72px rgba(0,0,0,.40);}
.creed-fig img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.35) contrast(1.05) brightness(.72);transition:transform .8s ease,filter .6s ease;}
.creed-fig:hover img{transform:scale(1.04);filter:grayscale(.15) contrast(1.05) brightness(.78);}
@media(max-width:820px){.creed-grid{grid-template-columns:1fr;} .creed-fig img{aspect-ratio:16/9;}}

/* ---------------- testimonials ---------------- */
.voices{padding:clamp(80px,14vh,170px) 0;background:var(--near);position:relative;overflow:hidden;border-top:1px solid var(--line-2);}
.voices .qmark{position:absolute;top:-.18em;right:4vw;font-family:var(--display);font-weight:900;font-size:clamp(220px,34vw,520px);color:rgba(255,255,255,.03);line-height:1;pointer-events:none;}
.voices .sh{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:44px;display:flex;align-items:center;gap:14px;}
.voices .sh::before{content:"";width:46px;height:1px;background:var(--gold);}
.voices .stars{color:rgba(245,242,234,.85);letter-spacing:4px;font-size:18px;margin-bottom:22px;}
.voices blockquote{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;
  font-size:clamp(26px,4vw,58px);line-height:1.1;margin:0;max-width:18ch;color:var(--white);}
.voices .by{font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:30px;}
.voices .by b{color:var(--white);}
.voices .more-q{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-top:60px;}
.voices .more-q .q{background:var(--near);padding:34px 30px;}
.voices .more-q .q p{font-family:var(--display);font-weight:600;text-transform:none;font-size:clamp(18px,1.8vw,23px);line-height:1.3;margin:0 0 18px;color:var(--white);letter-spacing:-.01em;}
.voices .more-q .q .by{margin-top:0;}
@media(max-width:760px){.voices .more-q{grid-template-columns:1fr;}}

/* ---------------- service area ---------------- */
.area{padding:clamp(80px,14vh,170px) 0;background:var(--black);border-top:1px solid var(--line-2);}
.area .sh{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:30px;display:flex;align-items:center;gap:14px;}
.area .sh::before{content:"";width:46px;height:1px;background:var(--gold);}
.area-head{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:end;margin-bottom:clamp(40px,6vw,70px);}
.area-head h2{font-size:clamp(32px,4.6vw,72px);line-height:.98;max-width:16ch;}
.area-head h2 em{font-style:normal;color:var(--gold);}
.area-head .note{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim-2);max-width:30ch;text-align:right;line-height:1.7;}
.counties{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.counties .ct{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 24px;position:relative;transition:background .25s;overflow:hidden;}
.counties .ct:hover{background:var(--near);}
.counties .ct .ci{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--dim-2);}
.counties .ct .cnm{font-family:var(--cond);font-weight:800;text-transform:uppercase;font-size:clamp(18px,1.55vw,25px);line-height:1.02;margin-top:12px;color:var(--white);letter-spacing:-.005em;}
.counties .ct:hover .cnm{color:var(--gold);}
@media(max-width:900px){.counties{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.counties{grid-template-columns:repeat(2,1fr);} .area-head{grid-template-columns:1fr;} .area-head .note{text-align:left;}}

/* ---------------- mobile / touch refinements ---------------- */
@media(max-width:760px){
  .bar{padding:16px var(--gutter);}
  /* comfortable 44px+ tap targets in the top bar */
  .bar .b-right a{min-height:44px;display:inline-flex;align-items:center;padding:6px 0;}
  .btn{padding:18px 26px;min-height:52px;}
  .close .actions{flex-direction:column;align-items:stretch;}
  .close .actions .btn{justify-content:center;}
  /* keep the giant outline stage number from crowding text on small screens */
  .bnum{font-size:clamp(96px,40vw,200px);}
}
/* On touch there is no :hover, so the capability cards would sit dark forever.
   Give them a brighter, intentional resting state instead. */
@media(hover:none){
  .cap-card img{filter:grayscale(.18) contrast(1.05) brightness(.72);}
  .counties .ct:hover{background:transparent;}
}

/* ---------------- hero CTA cluster ---------------- */
.hero .hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.hero .hero-btn{min-height:54px;}
@media(max-width:560px){
  .hero .hero-ctas{flex-direction:column;align-items:stretch;}
  .hero .hero-ctas .hero-btn{justify-content:center;}
}

/* ---------------- quote section ---------------- */
.quote{position:relative;padding:clamp(80px,12vh,160px) 0 clamp(70px,10vh,130px);background:var(--black);overflow:hidden;border-top:1px solid var(--line-2);}
.quote-bg{position:absolute;inset:0;z-index:0;}
.quote-bg video{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) brightness(.28) contrast(1.05);}
.quote::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,rgba(8,8,9,.55),rgba(8,8,9,.95));z-index:1;pointer-events:none;}
.quote .wrap{position:relative;z-index:2;}
.quote-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:start;}
@media(max-width:900px){.quote-grid{grid-template-columns:1fr;gap:40px;}}
.quote-intro .kick{font-family:var(--mono);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
.quote-intro h2{font-size:clamp(40px,6.5vw,108px);line-height:.92;}
.quote-intro h2 em{font-style:normal;color:var(--gold);}
.quote-lead{margin:26px 0 32px;color:var(--dim);font-size:clamp(15px,1.4vw,18px);line-height:1.6;max-width:38ch;}
.quote-meta{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);max-width:480px;}
.quote-meta>div{background:var(--near);padding:18px 20px;}
.qm-lb{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim-2);margin-bottom:6px;}
.qm-val{font-family:var(--cond);font-weight:700;font-size:18px;color:var(--white);letter-spacing:.01em;}
a.qm-val:hover{color:var(--gold);}

.quote-card{background:rgba(16,16,18,.78);border:1px solid var(--line);backdrop-filter:blur(8px);padding:clamp(28px,3.5vw,44px);}

.qf{display:flex;flex-direction:column;gap:18px;}
.qf-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:560px){.qf-row{grid-template-columns:1fr;}}
.qf-field{display:flex;flex-direction:column;gap:8px;min-width:0;}
.qf-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);}
.qf input,.qf select,.qf textarea{
  width:100%;background:rgba(11,11,12,.7);color:var(--white);border:1px solid var(--line);
  padding:13px 14px;font-family:var(--body);font-size:15px;line-height:1.4;
  border-radius:0;outline:none;transition:border-color .2s,background .2s;
  appearance:none;-webkit-appearance:none;
}
.qf textarea{resize:vertical;min-height:108px;}
.qf select{background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px;}
.qf input:focus,.qf select:focus,.qf textarea:focus{border-color:var(--gold);background:rgba(11,11,12,.9);}
.qf .has-err input,.qf .has-err select,.qf .has-err textarea{border-color:#d96a5a;}
.qf-err{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#e08070;}
.qf-server-err{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:#e08070;border:1px solid rgba(217,106,90,.4);padding:12px 14px;background:rgba(217,106,90,.08);}
.qf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:6px;}
.qf-actions .btn{min-height:54px;}
.qf-or{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);}
.qf-or a{color:var(--white);border-bottom:1px solid rgba(234,168,59,.45);}
.qf-or a:hover{color:var(--gold);border-color:var(--gold);}

.qf-success{text-align:center;padding:30px 10px;}
.qf-check{width:64px;height:64px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 22px;}
.qf-success h3{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:clamp(22px,2.4vw,30px);line-height:1.2;margin:0 0 14px;color:var(--white);}
.qf-success p{color:var(--dim);font-size:15px;margin:0;}
.qf-success a{color:var(--gold);border-bottom:1px solid var(--gold);}

/* ---------------- prefers-reduced-motion (global) ---------------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .rv{opacity:1 !important;transform:none !important;}
  .frame{opacity:1 !important;}
  .frame:not(:first-child){opacity:0 !important;}
  .hero-bg,.frame img,.frame video,.close-bg,.quote-bg{transform:none !important;}
  .hero .scrollcue{display:none;}
  .pre{display:none !important;}
}

/* ============================================================
   Industrial brutalism polish — hero technical overlays
============================================================ */
.hero-blueprint{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:
    linear-gradient(rgba(91,159,204,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91,159,204,.10) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image: radial-gradient(ellipse 90% 70% at 50% 55%, black 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 55%, black 40%, transparent 100%);
  mix-blend-mode:screen;
  opacity:.55;
}
.hero-tag{
  position:absolute; z-index:3;
  font-family:var(--mono); font-size:10px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:rgba(91,159,204,.70);
}
.hero-tag--tl{ top:calc(var(--gutter) + 60px); left:var(--gutter); }
.hero-tag--tr{ top:calc(var(--gutter) + 60px); right:var(--gutter); }
.hero-tag--bl{ bottom:calc(var(--gutter) + 6px); left:var(--gutter); display:flex; align-items:center; gap:10px; }
.hero-tag--bl::before{ content:""; width:32px; height:1px; background:rgba(91,159,204,.55); }
.hero-tag--br{ bottom:calc(var(--gutter) + 6px); right:calc(var(--gutter) + 140px); display:flex; align-items:center; gap:10px; }
.hero-tag--br::after{ content:""; width:32px; height:1px; background:rgba(91,159,204,.55); }
@media(max-width:820px){
  .hero-tag--tr,.hero-tag--br{ display:none; }
  .hero-tag--tl{ top:calc(var(--gutter) + 46px); }
  .hero-tag--bl{ bottom:16px; font-size:9px; }
}
@media(max-width:560px){
  .hero-tag--bl,.hero-tag--br{ display:none; }
}


/* Corner brackets */
.hero-corner{
  position:absolute; z-index:3; width:22px; height:22px;
  border:1.5px solid var(--gold);
  pointer-events:none;
}
.hero-corner--tl{ top:14px; left:14px; border-right:none; border-bottom:none; }
.hero-corner--tr{ top:14px; right:14px; border-left:none; border-bottom:none; }
.hero-corner--bl{ bottom:14px; left:14px; border-right:none; border-top:none; }
.hero-corner--br{ bottom:14px; right:14px; border-left:none; border-top:none; }
@media(max-width:640px){
  .hero-corner{ width:14px; height:14px; }
}

/* Live status chip */
.hero-live{
  display:inline-flex; align-items:center; gap:10px;
  padding:6px 12px; margin-bottom:18px;
  border:1px solid var(--gold);
  background:rgba(91,159,204,.10);
  font-family:var(--mono); font-size:11px; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold);
}
.hero-live__dot{
  width:7px; height:7px; background:var(--gold);
  border-radius:0; /* square, brutalist */
  animation: hero-live-pulse 1.6s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(91,159,204,.7);
}
@keyframes hero-live-pulse{
  0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(91,159,204,.55); }
  50%{ opacity:.55; box-shadow:0 0 0 6px rgba(91,159,204,0); }
}
@media(prefers-reduced-motion:reduce){
  .hero-live__dot{ animation:none; }
}

/* ---------------- plan-driven polish additions ---------------- */
/* wide capability card (replaces inline style on card #3) */
.cap-card.cap-card--wide{ width:min(84vw,500px); }

/* text-shadow for hero technical overlays over video */
.hero-tag,.hero .scrollcue{ text-shadow:0 0 12px rgba(0,0,0,.6); }

/* preloader Skip button */
.pre .pre-skip{
  position:absolute; bottom:calc(var(--gutter) + 8px); right:calc(var(--gutter) + 8px);
  appearance:none; background:transparent; border:1px solid var(--gold);
  color:var(--white); font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; padding:12px 18px; min-height:44px; cursor:pointer;
  transition:background .2s,color .2s;
}
.pre .pre-skip:hover,.pre .pre-skip:focus-visible{ background:var(--gold); color:var(--on-gold); outline:none; }

/* ---------------- mobile hero cleanup ---------------- */
@media(max-width:640px){
  /* top bar: keep logo, phone pill and link on one tidy row */
  .bar{ padding:14px var(--gutter); gap:10px; }
  .bar .b-logo{ height:22px; }
  .bar .b-right{ gap:10px; font-size:10px; letter-spacing:.1em; }
  .bar .b-right a{ min-height:38px; }
  .bar .b-right .b-hide{ padding:6px 10px; }

  /* the corner manifest tag collided with the bar — drop it on phones */
  .hero-tag--tl{ display:none; }

  .hero-live{ font-size:9.5px; letter-spacing:.16em; padding:5px 10px; margin-bottom:14px; }
  .hero-live__dot{ width:6px; height:6px; }

  .hero .wrap{ padding-bottom:clamp(64px,12vh,110px); }
  .hero .kick{ font-size:10.5px; letter-spacing:.16em; gap:10px; margin-bottom:16px; line-height:1.5; }
  .hero h1{ font-size:clamp(44px,13.5vw,64px); line-height:.94; }
  .hero .sub{ margin-top:22px; padding-top:20px; gap:18px; }
  .hero .sub p{ color:rgba(235,238,242,.82); font-size:14.5px; line-height:1.55; }
  .hero .scrollcue{ display:none; }
  .hero-corner{ opacity:.5; }
}

/* ---------------- blueprint stack hero ---------------- */
/* denser drafting grid + stronger bottom vignette so type sits on solid ground */
.hero-blueprint{
  background-image:
    linear-gradient(rgba(91,159,204,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91,159,204,.09) 1px, transparent 1px);
  background-size:32px 32px;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to top, var(--bg, #0a0d10) 0%, rgba(8,11,14,.62) 42%, transparent 78%);
}
.hero .wrap,.hero .scrollcue,.hero-tag,.hero-corner{ z-index:2; }

/* eyebrow chip reads as a drafting label */
.hero-live{ backdrop-filter:blur(6px); }
.hero .kick{ color:rgba(235,238,242,.62); }
/* left-side manifest tags collided with the chip and CTAs — the info lives in the tr/br tags */
.hero-tag--tl,.hero-tag--bl{ display:none; }

/* headline: tighter optical tracking */
.hero h1{ letter-spacing:-.02em; }

/* hero CTA pair */
.hero .hero-btn{ letter-spacing:.16em; }
.hero .hero-btn--call{
  display:inline-flex; align-items:center; justify-content:space-between; gap:18px;
  background:rgba(10,14,18,.5); backdrop-filter:blur(8px);
}
.hero .hero-btn--call .hero-btn__label{ color:rgba(235,238,242,.6); font-size:.85em; }
.hero .hero-btn--call .hero-btn__num{ color:#fff; font-variant-numeric:tabular-nums; }
.hero .hero-btn--call:hover .hero-btn__num,
.hero .hero-btn--call:focus-visible .hero-btn__num{ color:var(--gold); }

@media(max-width:640px){
  .hero .sub p{ max-width:32ch; color:rgba(235,238,242,.9); }
  .hero .hero-ctas{ margin-top:26px; gap:10px; }
  .hero .hero-btn{ min-height:56px; font-size:12px; }
  .hero .hero-btn--call{ padding-left:18px; padding-right:18px; }
  .hero-tag--br{ font-size:8.5px; opacity:.45; }
  .hero-tag--bl{ font-size:8.5px; opacity:.45; }
}

