:root {
  --ink: #11110f;
  --ink-soft: #1b1b18;
  --paper: #ece9e1;
  --concrete: #c9c4b8;
  --muted: #989487;
  --rule-dark: rgba(236, 233, 225, 0.18);
  --rule-light: rgba(17, 17, 15, 0.2);
  --orange: #1c6664;
  --orange-hot: #2d817d;
  --copper: #a66542;
  --carbon: #0d1212;
  --graphite: #171d1d;
  --steel: #263132;
  --bone: #ede9df;
  --sans: Arial, Helvetica, sans-serif;
  --mono: "Courier New", Courier, monospace;
  --ease: cubic-bezier(.16, 1, .3, 1);
}

@font-face {
  font-family: "Rivet Condensed";
  src: url("../keller-hvac/fonts/ibm-plex-sans-condensed-700-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Rivet Text";
  src: url("../keller-hvac/fonts/ibm-plex-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Rivet Mono";
  src: url("/pdf-fonts/JetBrainsMono-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

/* 2026 material system: field registration */
body { background: var(--carbon); }
::selection { background: var(--orange); color: var(--bone); }
.grain { opacity: .035; }
.site-header {
  height: 90px;
  padding-inline: clamp(24px, 3.5vw, 58px);
  background: linear-gradient(180deg, rgba(13,18,18,.92), rgba(13,18,18,.72));
  transition: height .55s var(--ease), background .45s, transform .55s var(--ease), border-color .45s;
}
.site-header::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background: radial-gradient(440px circle at var(--header-x, 50%) -120px, rgba(49,139,133,.28), transparent 70%);
}
.site-header.is-compact { height: 72px; background: rgba(13,18,18,.96); }
.brand { position: relative; z-index: 1; gap: 14px; font-size: 16px; }
.brand-mark { width: 31px; height: 31px; border-color: rgba(237,233,223,.68); }
.brand-mark i { background: var(--copper); }
.brand-lockup { display: grid; gap: 2px; }
.brand-lockup strong { font-size: 15px; line-height: 1; }
.brand-lockup small { color: rgba(237,233,223,.48); font: 8px/1.2 var(--mono); letter-spacing: .08em; }
.desktop-nav { position: relative; z-index: 1; gap: 38px; font-size: 12px; }
.desktop-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.desktop-nav a[aria-current="page"] { color: #7cc1bc; }
.header-cta {
  z-index: 1; min-height: 44px; align-items: center; gap: 22px; overflow: hidden;
  padding: 0 4px 0 18px; border-left: 1px solid rgba(237,233,223,.22); font-size: 12px;
}
.header-cta i {
  display: grid; width: 34px; height: 34px; place-items: center; background: linear-gradient(135deg, var(--orange), #154b4a); font-style: normal;
  transition: transform .45s var(--ease);
}
.header-cta:hover i { transform: rotate(45deg); }
.button { position: relative; overflow: hidden; min-height: 54px; padding-inline: 25px; font-size: 12px; isolation: isolate; }
.button::before {
  content: ""; position: absolute; z-index: -1; inset: -2px; transform: translateX(-115%) skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent); transition: transform .75s var(--ease);
}
.button:hover::before, .button:focus-visible::before { transform: translateX(115%) skewX(-18deg); }
.button--solid { background: linear-gradient(125deg, #245f5d, #123f3e 72%); border-color: rgba(125,202,196,.36); }
.button--solid:hover, .button--solid:focus-visible { background: linear-gradient(125deg, #2c7773, #174d4b 72%); }
.button--line { background: rgba(10,15,15,.12); backdrop-filter: blur(8px); }

.route-hero--process {
  position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; padding: 150px clamp(24px, 5vw, 76px) 92px;
}
.route-hero__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; animation: hero-drift 18s var(--ease) both; }
.route-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,11,11,.9) 0%, rgba(7,11,11,.56) 45%, rgba(7,11,11,.06) 76%), linear-gradient(0deg, rgba(7,11,11,.72), transparent 60%); }
.route-hero--process .route-hero__copy { width: min(850px, 76vw); }
.route-hero--process .route-hero__copy > p:not(.eyebrow) { color: rgba(237,233,223,.78); font-size: clamp(17px,1.35vw,21px); }
.route-hero--process .button { margin-top: 30px; }
.route-hero__datum { position: absolute; z-index: 2; right: 38px; bottom: 30px; display: flex; align-items: center; gap: 14px; color: rgba(237,233,223,.52); font: 9px/1 var(--mono); letter-spacing: .1em; }
.route-hero__datum i { width: 76px; height: 1px; background: linear-gradient(90deg,var(--copper),rgba(237,233,223,.2)); }

.process-intro { padding-block: clamp(64px, 7vw, 104px); }
.process-intro .route-section__head { margin: 0; }
.process-register { position: relative; background: var(--carbon); color: var(--bone); }
.process-register__sticky { position: relative; min-height: 100svh; overflow: hidden; background: var(--carbon); }
.process-register__canvas { display: none; position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.process-register__shade { display: none; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(7,11,11,.1),rgba(7,11,11,.18) 48%,rgba(7,11,11,.91) 69%),linear-gradient(0deg,rgba(7,11,11,.6),transparent 46%); }
.process-register__telemetry, .process-register__rail { display: none; }
.process-stage { display: grid; grid-template-columns: 1.4fr .6fr; min-height: 76svh; border-bottom: 1px solid rgba(237,233,223,.15); background: var(--graphite); }
.process-stage__media { min-height: 520px; overflow: hidden; }
.process-stage__media img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.process-stage__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(38px,5vw,84px); }
.process-stage__copy > span, .process-stage__copy small { color: #79b8b3; font: 10px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.process-stage__copy h3 { margin: 22px 0 18px; font-size: clamp(40px,5vw,78px); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.process-stage__copy p { max-width: 36ch; margin: 0; color: rgba(237,233,223,.72); font-size: 17px; line-height: 1.55; }
.process-stage__copy small { margin-top: 42px; padding-top: 16px; border-top: 1px solid rgba(237,233,223,.18); color: rgba(237,233,223,.5); }

@media (min-width: 901px) {
  .process-register.has-webgl, .process-register.has-image-story { height: 700vh; }
  .process-register.has-webgl .process-register__sticky, .process-register.has-image-story .process-register__sticky { position: sticky; top: 0; height: 100svh; min-height: 0; }
  .process-register.has-webgl .process-register__canvas, .process-register.has-webgl .process-register__shade { display: block; }
  .process-register.has-webgl .process-register__telemetry {
    position: absolute; z-index: 4; top: 112px; left: 36px; right: 36px; display: grid; grid-template-columns: auto minmax(140px,1fr) auto; align-items: center; gap: 18px;
    color: rgba(237,233,223,.72); font: 9px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase;
  }
  .process-register__telemetry b { color: var(--bone); font-size: 17px; font-weight: 400; }
  .process-register__telemetry i { height: 1px; background: rgba(237,233,223,.25); }
  .process-register__telemetry i span { display: block; width: 0; height: 2px; margin-top: -1px; background: linear-gradient(90deg,var(--copper),#68aaa6); }
  .process-register__telemetry strong { min-width: 100px; text-align: right; font-weight: 400; }
  .process-register.has-webgl .process-register__rail { position: absolute; z-index: 4; right: 38px; bottom: 34px; display: flex; gap: 18px; font: 9px/1 var(--mono); color: rgba(237,233,223,.3); }
  .process-register__rail span.is-active { color: #7cc1bc; }
  .process-register.has-webgl .process-stage { position: absolute; inset: 0; display: block; min-height: 0; background: transparent; border: 0; visibility: hidden; pointer-events: none; }
  .process-register.has-webgl .process-stage.is-active { visibility: visible; }
  .process-register.has-webgl .process-stage__media { opacity: 0; width: 1px; height: 1px; min-height: 0; overflow: hidden; }
  .process-register.has-webgl .process-stage__copy { position: absolute; z-index: 3; right: clamp(42px,5vw,82px); top: 50%; width: min(480px,38vw); padding: 0; transform: translateY(calc(-50% + 34px)); opacity: 0; transition: opacity .3s,transform .65s var(--ease); }
  .process-register.has-webgl .process-stage__copy h3 { font-size: clamp(38px,3.35vw,52px); overflow-wrap: normal; word-break: normal; }
  .process-register.has-webgl .process-stage.is-active .process-stage__copy { transform: translateY(-50%); opacity: 1; }
  .process-register.has-image-story .process-register__telemetry { position:absolute; z-index:4; top:112px; left:36px; right:36px; display:grid; grid-template-columns:auto minmax(140px,1fr) auto; align-items:center; gap:18px; color:rgba(237,233,223,.72); font:9px/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
  .process-register.has-image-story .process-register__telemetry i { height:1px; background:rgba(237,233,223,.25); }
  .process-register.has-image-story .process-register__telemetry i span { display:block; width:0; height:2px; margin-top:-1px; background:linear-gradient(90deg,var(--copper),#68aaa6); }
  .process-register.has-image-story .process-register__telemetry strong { min-width:100px; text-align:right; font-weight:400; }
  .process-register.has-image-story .process-register__shade { display:block; }
  .process-register.has-image-story .process-stage { position:absolute; inset:0; display:block; min-height:0; border:0; visibility:hidden; background:transparent; }
  .process-register.has-image-story .process-stage.is-active { visibility:visible; }
  .process-register.has-image-story .process-stage__media { position:absolute; inset:0; width:100%; height:100%; min-height:0; opacity:0; transition:opacity .65s var(--ease); }
  .process-register.has-image-story .process-stage.is-active .process-stage__media { opacity:1; }
  .process-register.has-image-story .process-stage__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .process-register.has-image-story .process-stage__copy { position:absolute; z-index:3; right:clamp(42px,5vw,82px); top:50%; width:min(480px,38vw); padding:0; transform:translateY(calc(-50% + 34px)); opacity:0; transition:opacity .3s,transform .65s var(--ease); }
  .process-register.has-image-story .process-stage.is-active .process-stage__copy { transform:translateY(-50%); opacity:1; }
}

.process-output { padding: clamp(72px,8vw,120px) clamp(24px,5vw,76px); }
.process-output__head { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; align-items: end; margin-bottom: 70px; }
.process-output__head h2 { margin: 0; max-width: 800px; font-size: clamp(46px,6vw,92px); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.process-output__grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--rule-light); border-left: 1px solid var(--rule-light); }
.process-output__grid article { min-height: 230px; display: flex; flex-direction: column; justify-content:flex-end; padding: 26px; border-right: 1px solid var(--rule-light); border-bottom: 1px solid var(--rule-light); background: linear-gradient(145deg,rgba(28,102,100,.08),transparent 45%); }
.process-output__grid strong { font-size: 23px; text-transform: uppercase; }
.process-output__grid p { margin: 16px 0 0; color: #5f5b52; font-size: 15px; line-height: 1.5; }

.closing-cta { background: var(--carbon); color: var(--bone); }
.closing-cta::after { content:""; position:absolute; inset:0; pointer-events:none; background: radial-gradient(700px circle at 50% 58%,rgba(28,102,100,.18),transparent 68%); }
.closing-cta h2 { color: var(--bone); }
.closing-cta em { color: #78b9b4; }
.closing-cta__lede { position: relative; z-index: 2; max-width: 580px; margin: 30px auto 0; color: rgba(237,233,223,.67); font-size: 18px; line-height: 1.55; }
.closing-cta__actions { position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 38px; }
.closing-cta__actions .button { margin-top: 0; }
.closing-material { position:absolute; inset:0; overflow:hidden; opacity:.7; }
.closing-material canvas { width:100%; height:100%; }
.closing-material i { position:absolute; top:-30%; width:1px; height:160%; background:linear-gradient(transparent,rgba(166,101,66,.8),transparent); transform:rotate(24deg); animation: material-drift 9s ease-in-out infinite alternate; }
.closing-material i:nth-of-type(1){left:25%}.closing-material i:nth-of-type(2){left:51%;animation-delay:-3s}.closing-material i:nth-of-type(3){left:77%;animation-delay:-6s}
@keyframes material-drift { to { transform: rotate(24deg) translateX(54px); opacity:.35; } }

.site-footer { grid-template-columns: 1.35fr .55fr .55fr .7fr; gap: clamp(32px,4vw,72px); padding-top: 84px; }
.footer-brand { align-items: flex-start; }
.footer-brand strong { font-size: 18px; }
.footer-brand p, .site-footer > div p { margin: 8px 0 0; color: #625f57; font-size: 14px; line-height: 1.6; text-transform: none; }
.site-footer > div:not(.footer-brand) { gap: 12px; font-size: 16px; line-height: 1.35; }
.site-footer > div > span { font-size: 10px; }
.demo-notice { font-size: 10px; }

@media (max-width: 900px) {
  .site-header { height: 76px; }
  .brand-lockup small { display:none; }
  .route-hero--process { min-height: 92svh; padding-top: 130px; }
  .route-hero--process .route-hero__copy { width: 100%; }
  .route-hero__datum { display:none; }
  .process-stage { grid-template-columns: 1fr; }
  .process-stage__media { min-height: 58svh; }
  .process-stage__copy { min-height: 430px; }
  .process-output__head { grid-template-columns:1fr; gap:24px; }
  .process-output__grid { grid-template-columns:1fr 1fr; }
  .site-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .route-hero--process { align-items:flex-end; min-height: 100svh; padding-bottom: 54px; }
  .route-hero--process .route-hero__copy { width:100%; }
  .route-hero--process h1 { font-size: clamp(48px,13.2vw,68px); }
  .route-hero--process .route-hero__copy > p:not(.eyebrow) { font-size:15px; }
  .process-stage__media { min-height: 47svh; }
  .process-stage__copy { min-height: 390px; padding: 42px 24px; }
  .process-output__grid { grid-template-columns:1fr; }
  .process-output__grid article { min-height: 245px; }
  .closing-cta__actions { width:100%; }
  .closing-cta__actions .button { flex:1 1 100%; }
  .site-footer { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce), (prefers-reduced-data: reduce) {
  .closing-material { display:none; }
  .route-hero__backdrop { animation:none; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; background: var(--ink); color: var(--paper); font-family: var(--sans); }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, svg, canvas { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--orange); color: white; }

.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; transform: translateY(-150%); background: var(--paper); color: var(--ink); padding: 12px 18px; }
.skip-link:focus { transform: none; }
.grain { position: fixed; z-index: 900; inset: 0; opacity: .05; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 82px; display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr); align-items: center; gap: 24px; padding: 0 32px; border-bottom: 1px solid var(--rule-dark); transition: background .5s, color .5s, border-color .5s; }
.site-header.is-solid { background: rgba(17,17,15,.94); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; justify-self: start; gap: 13px; font-size: 15px; font-weight: 700; letter-spacing: -.02em; text-transform: uppercase; }
.brand-mark { width: 29px; height: 29px; position: relative; display: inline-block; border: 1px solid currentColor; overflow: hidden; }
.brand-mark i { position: absolute; left: 6px; width: 15px; height: 3px; background: var(--orange); transform-origin: left center; transform: rotate(45deg); }
.brand-mark i:first-child { top: 8px; }
.brand-mark i:last-child { top: 17px; transform: rotate(-45deg); }
.desktop-nav { display: flex; align-items: center; gap: 32px; font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.desktop-nav a, .header-cta { position: relative; }
.desktop-nav a::after, .header-cta::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--orange); transition: right .4s var(--ease); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after, .header-cta:hover::after, .header-cta:focus-visible::after { right: 0; }
.header-cta { justify-self: end; display: inline-flex; gap: 18px; font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.menu-toggle, .mobile-menu { display: none; }

.hero { position: relative; min-height: 100svh; overflow: hidden; background: #121310; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; animation: hero-drift 18s var(--ease) both; }
.hero-canvas { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.hero-canvas canvas { width: 100%; height: 100%; }
.hero-shade { position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(8,9,8,.86) 0%, rgba(8,9,8,.62) 35%, rgba(8,9,8,.08) 70%), linear-gradient(0deg, rgba(8,9,8,.7), transparent 48%); }
.hero-copy { position: absolute; z-index: 2; left: clamp(24px, 5vw, 76px); bottom: clamp(104px, 14vh, 152px); max-width: 850px; }
.eyebrow { margin: 0 0 21px; font-family: var(--mono); font-size: 11px; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; }
.hero h1, .closing-cta h2, .route-hero h1 { margin: 0; max-width: 900px; font-size: clamp(56px, 7.3vw, 116px); line-height: .84; letter-spacing: -.065em; text-transform: uppercase; font-weight: 700; }
em { color: var(--orange); font-style: italic; font-family: Georgia, "Times New Roman", serif; font-weight: 400; text-transform: none; letter-spacing: -.05em; }
.hero-lede { max-width: 520px; margin: 32px 0 0; font-size: clamp(17px, 1.35vw, 21px); line-height: 1.45; color: rgba(236,233,225,.76); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid transparent; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; transition: transform .35s var(--ease), background .35s, color .35s, border-color .35s; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button--solid { background: var(--orange); color: white; }
.button--solid:hover, .button--solid:focus-visible { background: var(--orange-hot); }
.button--line { border-color: rgba(236,233,225,.35); color: var(--paper); }
.button--line:hover, .button--line:focus-visible { border-color: var(--paper); }
.hero-meta { position: absolute; z-index: 2; right: 32px; bottom: 27px; left: 32px; display: grid; grid-template-columns: 1fr 1fr 1fr; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; color: rgba(236,233,225,.52); }
.hero-meta span:nth-child(2) { text-align: center; }
.hero-meta span:last-child { text-align: right; }
.scroll-cue { position: absolute; z-index: 2; right: 34px; top: 50%; writing-mode: vertical-rl; display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.scroll-cue span { display: block; width: 1px; height: 72px; background: linear-gradient(var(--orange) 50%, rgba(255,255,255,.2) 50%); background-size: 100% 200%; animation: cue 2.2s ease-in-out infinite; }
@keyframes cue { 0% { background-position: 0 100%; } 55%, 100% { background-position: 0 0; } }
@keyframes hero-drift { from { transform: scale(1.035); } to { transform: scale(1); } }

.build-sequence { position: relative; height: 660vh; background: #11120f center / cover no-repeat; color: var(--paper); }
.build-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.build-fallback-media { position: absolute; inset: 0; overflow: hidden; background: #11120f; }
.build-fallback-media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transform: scale(1.025); transition: opacity .5s ease-out, transform 1s var(--ease); }
.build-fallback-media img.is-active { opacity: 1; transform: scale(1); }
.build-canvas { position: relative; z-index: 1; width: 100%; height: 100%; background: transparent; }
.build-sequence.is-image-fallback .build-canvas { display: none; }
.build-sequence.is-webgl-ready .build-fallback-media { visibility: hidden; }
.build-vignette { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(8,9,8,.87) 0%, rgba(8,9,8,.64) 33%, rgba(8,9,8,.08) 65%), linear-gradient(0deg, rgba(8,9,8,.42), transparent 42%); }
.build-progress { position: absolute; z-index: 3; left: 32px; right: 32px; top: 104px; display: grid; grid-template-columns: auto minmax(120px, 1fr) auto; align-items: center; gap: 18px; font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.build-progress__number { font-size: 16px; }
.build-progress__track { height: 1px; background: rgba(236,233,225,.24); }
.build-progress__track i { display: block; height: 2px; width: 0; margin-top: -1px; background: var(--orange); }
.build-progress__phase { min-width: 128px; text-align: right; }
.build-chapters { position: absolute; z-index: 3; inset: 0; pointer-events: none; }
.build-chapter { position: absolute; left: clamp(24px, 5vw, 76px); top: 54%; width: min(390px, 38vw); transform: translateY(calc(-50% + 34px)); visibility: hidden; opacity: 0; transition: opacity .3s, transform .6s var(--ease), visibility 0s .3s; text-shadow: 0 2px 30px rgba(0,0,0,.6); }
.build-chapter.is-active { transform: translateY(-50%); visibility: visible; opacity: 1; transition-delay: 0s; }
.build-chapter > span { display: block; margin-bottom: 18px; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.build-chapter h2 { margin: 0; font-size: clamp(42px, 4.7vw, 72px); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
.build-chapter p { max-width: 360px; margin: 24px 0 0; font-size: 16px; line-height: 1.5; color: rgba(236,233,225,.78); }
.build-chapter .button { margin-top: 28px; pointer-events: auto; }
.webgl-fallback { position: absolute; inset: auto 24px 24px auto; z-index: 5; max-width: 320px; padding: 10px 12px; border: 1px solid rgba(237,233,223,.18); background: rgba(13,18,18,.72); color: rgba(237,233,223,.62); font: 9px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; }

.section-dark { background: var(--ink); color: var(--paper); }
.section-light { background: var(--paper); color: var(--ink); }
.section-concrete { background: var(--concrete); color: var(--ink); }
.statement { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: clamp(28px, 5vw, 90px); align-items: center; padding: clamp(88px,9vw,130px) clamp(24px, 5vw, 76px); border-top: 1px solid var(--rule-dark); }
.statement-index { align-self: start; font-family: var(--mono); font-size: 10px; color: var(--muted); }
.statement-copy h2, .section-intro h2, .capability-copy > h2 { margin: 0; font-size: clamp(46px, 6.2vw, 96px); line-height: .92; letter-spacing: -.06em; text-transform: uppercase; }
.statement-body { margin: 0; font-size: 18px; line-height: 1.55; color: rgba(236,233,225,.7); }
.project-feature { min-height: 100svh; padding: 130px clamp(24px, 5vw, 76px); }
.section-intro { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 20px; margin-bottom: 70px; }
.section-intro .eyebrow { grid-column: 1 / -1; }
.text-link { align-self: end; display: inline-flex; align-items: center; gap: 18px; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.text-link span { color: var(--orange); }
.project-ledger { border-top: 1px solid var(--rule-light); }
.project-row { position: relative; min-height: 130px; display: grid; grid-template-columns: minmax(250px, 1.2fr) minmax(200px, .8fr) 40px; align-items: center; gap: 24px; border-bottom: 1px solid var(--rule-light); }
.project-row__number, .project-row__scope { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.project-row__scope { color: #666258; }
.project-row__title { font-size: clamp(27px, 3.2vw, 52px); letter-spacing: -.045em; text-transform: uppercase; }
.project-row__arrow { justify-self: end; color: var(--orange); font-size: 24px; transition: transform .35s var(--ease); }
.project-row:hover .project-row__arrow, .project-row:focus-visible .project-row__arrow { transform: translate(5px, -5px); }
.project-row__media { position: absolute; z-index: 5; right: 9%; top: 50%; width: min(470px, 38vw); aspect-ratio: 3 / 2; overflow: hidden; transform: translateY(-45%) rotate(1deg) scale(.96); opacity: 0; pointer-events: none; box-shadow: 0 28px 80px rgba(17,17,15,.28); transition: opacity .35s, transform .55s var(--ease); }
.project-row__media img { width: 100%; height: 100%; object-fit: cover; }
.project-row:hover .project-row__media, .project-row:focus-visible .project-row__media { opacity: 1; transform: translateY(-50%) rotate(-1deg) scale(1); }
.capability-split { min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; }
.capability-visual { position: relative; min-height: 820px; overflow: hidden; background: #20211e; }
.capability-visual img { width: 100%; height: 100%; object-fit: cover; }
.capability-visual > span { position: absolute; left: 24px; bottom: 20px; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; color: rgba(236,233,225,.6); }
.capability-copy { display: flex; flex-direction: column; justify-content: center; padding: 80px clamp(28px, 6vw, 100px); }
.capability-copy > h2 { font-size: clamp(42px, 5vw, 78px); }
.capability-list { list-style: none; margin: 56px 0 44px; padding: 0; border-top: 1px solid var(--rule-light); }
.capability-list li { display: block; padding: 22px 0; border-bottom: 1px solid var(--rule-light); }
.capability-list li > span { font-family: var(--mono); font-size: 10px; }
.capability-list h3 { margin: 0 0 7px; font-size: 17px; text-transform: uppercase; }
.capability-list p { margin: 0; max-width: 50ch; color: #57544c; font-size: 14px; line-height: 1.5; }
.capability-copy .text-link { align-self: flex-start; }
.closing-cta { position: relative; min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding: 120px 24px 80px; text-align: center; background: #121210; }
.closing-cta h2 { position: relative; z-index: 2; font-size: clamp(54px, 8.4vw, 132px); }
.closing-cta .eyebrow, .closing-cta .button { position: relative; z-index: 2; }
.closing-cta .button { margin-top: 42px; }
.closing-lines { position: absolute; inset: 0; opacity: .22; }
.closing-lines i { position: absolute; top: -30%; width: 1px; height: 160%; background: linear-gradient(transparent, var(--orange), transparent); transform: rotate(24deg); }
.closing-lines i:nth-child(1) { left: 18%; }.closing-lines i:nth-child(2) { left: 39%; }.closing-lines i:nth-child(3) { left: 61%; }.closing-lines i:nth-child(4) { left: 82%; }
.closing-meta { position: absolute; left: 32px; right: 32px; bottom: 28px; display: flex; justify-content: space-between; font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }

.site-footer { display: grid; grid-template-columns: 1.4fr .6fr .6fr; gap: 50px; padding: 70px clamp(24px, 5vw, 76px) 32px; background: var(--paper); color: var(--ink); border-top: 1px solid var(--rule-light); }
.footer-brand { display: flex; align-items: center; gap: 14px; text-transform: uppercase; }
.site-footer > div:not(.footer-brand) { display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.site-footer > div > span { margin-bottom: 7px; font-family: var(--mono); font-size: 9px; color: #6c685e; letter-spacing: .08em; text-transform: uppercase; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--orange); }
.demo-notice { grid-column: 1 / -1; margin: 45px 0 0; padding-top: 24px; border-top: 1px solid var(--rule-light); font-family: var(--mono); font-size: 9px; line-height: 1.5; letter-spacing: .05em; text-transform: uppercase; color: #6c685e; }

.reveal { opacity: 0; transform: translateY(42px); transition: opacity .9s, transform 1.1s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Inner routes */
.route-main { background: var(--paper); color: var(--ink); }
.route-hero { min-height: 88svh; padding: 160px clamp(24px, 5vw, 76px) 80px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 6vw; align-items: end; background: var(--ink); color: var(--paper); }
.route-hero__copy { position: relative; z-index: 2; }
.route-hero h1 { font-size: clamp(58px, 7.4vw, 112px); }
.route-hero p:not(.eyebrow) { max-width: 540px; margin: 30px 0 0; font-size: 18px; line-height: 1.55; color: rgba(236,233,225,.7); }
.route-hero__visual { position:relative; min-height: 56vh; overflow: hidden; border: 1px solid var(--rule-dark); background: #20211e; }
.route-hero__visual img { position:absolute; inset:0; width: 100%; height: 100%; max-width:none; object-fit: cover; }
.route-section { padding: 120px clamp(24px, 5vw, 76px); }
.route-section__head { display: grid; grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr); gap: 6vw; margin-bottom: 72px; }
.route-section__head h2 { margin: 0; max-width: 850px; font-size: clamp(42px, 6vw, 88px); line-height: .92; letter-spacing: -.06em; text-transform: uppercase; }
.route-section__head p { max-width: 58ch; margin: 0; font-size: 17px; line-height: 1.6; color: #59564d; }
.scope-ledger { border-top: 1px solid var(--rule-light); }
.scope-row { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--rule-light); }
.scope-row > span { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; }
.scope-row h3 { margin: 0; font-size: clamp(21px, 2.5vw, 36px); text-transform: uppercase; letter-spacing: -.035em; }
.scope-row p { margin: 0; max-width: 68ch; font-size: 15px; line-height: 1.6; color: #5f5b52; }
.project-detail { min-height: 88svh; display: grid; grid-template-columns: 1.15fr .85fr; }
.project-detail:nth-child(even) { grid-template-columns: .85fr 1.15fr; }
.project-detail:nth-child(even) .project-detail__media { order: 2; }
.project-detail__media { position:relative; min-height: 700px; overflow:hidden; background: #20211e; }
.project-detail__media img { position:absolute; inset:0; width: 100%; height: 100%; max-width:none; object-fit: cover; }
.project-detail__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(50px, 7vw, 110px); }
.project-detail__copy h2 { margin: 0; font-size: clamp(44px, 5.2vw, 82px); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.project-detail__copy > p { margin: 28px 0 0; font-size: 16px; line-height: 1.6; color: #59564d; }
.project-spec { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 42px; padding-top: 20px; border-top: 1px solid var(--rule-light); }
.project-spec span { display: block; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: #6b675e; }
.project-spec strong { display: block; margin-top: 6px; font-size: 14px; font-weight: 500; }
.process-timeline { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--rule-light); border-left: 1px solid var(--rule-light); }
.process-step { min-height: 310px; padding: 24px; border-right: 1px solid var(--rule-light); border-bottom: 1px solid var(--rule-light); display: flex; flex-direction: column; }
.process-step > span { font-family: var(--mono); font-size: 10px; }
.process-step h3 { margin: auto 0 16px; font-size: 24px; text-transform: uppercase; }
.process-step p { margin: 0; font-size: 14px; line-height: 1.55; color: #5f5b52; }

.bid-layout { min-height: 100svh; padding: 160px clamp(24px, 5vw, 76px) 100px; display: grid; grid-template-columns: minmax(0, .75fr) minmax(420px, 1.25fr); gap: 8vw; background: var(--paper); color: var(--ink); }
.bid-intro h1 { margin: 0; font-size: clamp(58px, 7.4vw, 112px); line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.bid-intro > p:not(.eyebrow) { max-width: 470px; margin: 30px 0 0; font-size: 17px; line-height: 1.55; color: #5e5a51; }
.bid-note { margin-top: 60px; padding-top: 22px; border-top: 1px solid var(--rule-light); font-family: var(--mono); font-size: 10px; line-height: 1.5; text-transform: uppercase; color: #68645a; }
.bid-form { align-self: start; border-top: 1px solid var(--ink); }
.form-row { display: grid; grid-template-columns: 170px 1fr; gap: 24px; padding: 25px 0; border-bottom: 1px solid var(--rule-light); }
.form-row label, .form-row legend { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.form-row input, .form-row select, .form-row textarea { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 16px; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { box-shadow: 0 2px 0 var(--orange); }
.form-row textarea { min-height: 110px; resize: vertical; }
.bid-form fieldset { margin: 0; padding: 0; border: 0; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.form-row > .choice-grid { grid-column:2; }
.choice { min-height: 54px; position: relative; display: flex; align-items: center; padding: 12px 14px; border: 1px solid var(--rule-light); cursor: pointer; }
.choice input { position: absolute; opacity: 0; }
.choice:has(input:checked) { border-color: var(--orange); color: var(--orange); }
.form-submit { margin-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.form-submit p { margin: 0; max-width: 360px; font-family: var(--mono); font-size: 9px; line-height: 1.5; text-transform: uppercase; color: #6a665d; }
.form-status { margin-top: 18px; padding: 14px; background: var(--ink); color: var(--paper); font-size: 13px; }

@media (max-width: 900px) {
  .site-header { height: 70px; grid-template-columns: 1fr auto; padding: 0 20px; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { position: relative; z-index: 2; display: grid; width: 48px; height: 48px; place-content: center; gap: 5px; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .menu-toggle i { display: block; width: 23px; height: 1px; background: currentColor; transition: transform .3s; }
  .menu-toggle[aria-expanded="true"] i:first-of-type { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i:last-of-type { transform: translateY(-3px) rotate(-45deg); }
  .mobile-menu { position: fixed; z-index: 0; inset: 0; display: flex; min-height: 100dvh; flex-direction: column; justify-content: space-between; overflow-y: auto; overscroll-behavior: contain; padding: max(130px, calc(100px + env(safe-area-inset-top))) 24px max(38px, env(safe-area-inset-bottom)); background: var(--carbon); }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu nav { display: flex; flex-direction: column; }
  .mobile-menu nav a { padding: 14px 0; border-bottom: 1px solid var(--rule-dark); font-size: clamp(34px, 10vw, 56px); text-transform: uppercase; letter-spacing: -.05em; }
  .mobile-menu p { font-family: var(--mono); font-size: 10px; line-height: 1.5; text-transform: uppercase; color: var(--muted); }
  body.menu-open .site-header,
  body.menu-open .site-header.is-solid,
  body.menu-open .site-header.is-compact { background: transparent; border-color: transparent; backdrop-filter: none; }
  body.menu-open .site-header::before { opacity: 0; }
  .hero-copy { bottom: 104px; }
  .hero h1 { font-size: clamp(53px, 12.5vw, 82px); }
  .hero-meta { left: 20px; right: 20px; grid-template-columns: 1fr 1fr; }
  .hero-meta span:nth-child(2) { text-align: right; }
  .hero-meta span:last-child, .scroll-cue { display: none; }
  .build-progress { left: 20px; right: 20px; top: 86px; grid-template-columns: auto 36px 1fr; }
  .build-progress__phase { display: none; }
  .build-vignette { background: linear-gradient(0deg, rgba(8,9,8,.86) 0%, rgba(8,9,8,.5) 36%, transparent 68%), linear-gradient(90deg, rgba(8,9,8,.72) 0%, rgba(8,9,8,.2) 72%, transparent 100%); }
  .build-chapter { left: 20px; top: auto; bottom: 46px; width: min(560px, calc(100vw - 40px)); transform: translateY(30px); padding: 0; background: transparent; backdrop-filter: none; text-shadow: 0 2px 3px rgba(0,0,0,.72), 0 14px 34px rgba(0,0,0,.72); }
  .build-chapter.is-active { transform: none; }
  .build-chapter h2 { font-size: clamp(38px, 9vw, 60px); }
  .build-chapter p { font-size: 14px; color: rgba(236,233,225,.9); }
  .statement { grid-template-columns: 1fr; align-items: start; }
  .statement-index { display: none; }
  .section-intro { grid-template-columns: 1fr; }
  .section-intro .text-link { justify-self: start; }
  .project-row { grid-template-columns: 44px 1fr 28px; min-height: 104px; }
  .project-row__scope { display: none; }
  .project-row__media { display: none; }
  .capability-split { grid-template-columns: 1fr; }
  .capability-visual { min-height: 60svh; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .route-hero, .route-section__head, .project-detail, .project-detail:nth-child(even), .bid-layout { grid-template-columns: 1fr; }
  .route-hero { padding-top: 140px; }
  .route-hero__visual { min-height: 42vh; }
  .project-detail:nth-child(even) .project-detail__media { order: 0; }
  .process-timeline { grid-template-columns: 1fr 1fr; }
  .bid-layout { padding-top: 130px; }
}

@media (max-width: 560px) {
  .hero h1 { font-size: clamp(46px, 14vw, 66px); line-height: .88; }
  .hero-lede { max-width: 92%; font-size: 15px; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { flex: 1 1 100%; }
  .build-sequence { height: 650vh; }
  .build-chapter > span { margin-bottom: 10px; }
  .build-chapter p { margin-top: 14px; }
  .statement, .project-feature, .route-section { padding-top: 88px; padding-bottom: 88px; }
  .statement-copy h2, .section-intro h2 { font-size: 43px; }
  .project-row__title { font-size: 24px; }
  .capability-copy { padding: 80px 24px; }
  .closing-meta { display: none; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .process-timeline { grid-template-columns: 1fr; }
  .process-step { min-height: 240px; }
  .project-detail__media { min-height: 430px; }
  .form-row { grid-template-columns: 1fr; gap: 12px; }
  .choice-grid { grid-template-columns: 1fr; }
  .form-submit { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .build-sequence { height: 100svh; }
  .build-chapter { display: none; }
  .build-chapter--final { display: block; opacity: 1; transform: none; }
}

@media (prefers-reduced-data: reduce) {
  .grain { display: none; }
  .build-sequence { height: 100svh; }
  .build-chapter { display: none; }
  .build-chapter--final { display: block; visibility: visible; opacity: 1; transform: none; }
}

/* Material-system overrides load after the legacy showcase layer. */
.site-header { height: 90px; padding-inline: clamp(24px, 3.5vw, 58px); background: linear-gradient(180deg,rgba(13,18,18,.92),rgba(13,18,18,.72)); }
.site-header.is-compact { height: 72px; background: rgba(13,18,18,.96); }
.brand-mark i { background: var(--copper); }
.desktop-nav { gap: 38px; font-size: 12px; }
.header-cta { font-size: 12px; }
.button { min-height: 54px; font-size: 12px; }
.button--solid { background: linear-gradient(125deg,#245f5d,#123f3e 72%); color: var(--bone); }
.button--solid:hover,.button--solid:focus-visible { background: linear-gradient(125deg,#2c7773,#174d4b 72%); }
.route-hero--process { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; padding: 150px clamp(24px,5vw,76px) 92px; }
.route-hero--process .route-hero__copy { width: min(850px,76vw); }
.closing-cta { background: var(--carbon); color: var(--bone); }
.closing-cta h2 { color: var(--bone); }
.closing-cta .eyebrow { color: var(--bone); }
.site-footer { grid-template-columns: 1.35fr .55fr .55fr .7fr; gap: clamp(32px,4vw,72px); padding-top: 84px; }
.site-footer > div:not(.footer-brand) { gap: 12px; font-size: 16px; }
.site-footer > div > span,.demo-notice { font-size: 10px; }
.route-hero__visual--material { position:relative; }
.route-hero__visual--material canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.route-hero__visual--material > span { position:absolute; right:20px; bottom:18px; color:rgba(237,233,223,.7); font:9px/1 var(--mono); letter-spacing:.1em; }
.bid-page { --bid-display:"Rivet Condensed","Arial Narrow",sans-serif; --bid-text:"Rivet Text",Arial,sans-serif; --bid-mono:"Rivet Mono","Courier New",monospace; background:var(--paper); color:var(--ink); font-family:var(--bid-text); }
.bid-intro-panel { position:relative; min-height:82svh; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr); align-items:end; gap:clamp(60px,9vw,150px); overflow:hidden; padding:140px clamp(24px,5vw,76px) 72px; background:linear-gradient(135deg,#e9e5da 0%,#f4f0e7 56%,#d8d4c8 100%); }
.bid-intro-panel::before { content:""; position:absolute; inset:0; opacity:.28; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),rgba(13,18,18,.14) 12.5%); }
.bid-intro { position:relative; z-index:2; }
.bid-intro h1 { margin:0; max-width:800px; font-size:clamp(64px,8vw,124px); line-height:.84; letter-spacing:-.067em; text-transform:uppercase; }
.bid-intro > p:not(.eyebrow) { max-width:580px; margin:34px 0 0; color:#56564f; font-size:18px; line-height:1.6; }
.bid-readiness { position:relative; z-index:2; align-self:end; padding:34px; border:1px solid rgba(13,18,18,.2); background:rgba(244,240,231,.7); backdrop-filter:blur(10px); }
.bid-readiness ol { list-style:none; margin:0; padding:0; border-top:1px solid var(--rule-light); }
.bid-readiness li { display:block; padding:22px 0; border-bottom:1px solid var(--rule-light); }
.bid-readiness li > span { color:var(--orange); font:10px/1 var(--mono); }
.bid-readiness strong { font-size:18px; text-transform:uppercase; }
.bid-readiness li p { margin:8px 0 0; color:#646159; font-size:14px; line-height:1.5; }
.bid-readiness .bid-note { margin-top:26px; }
.bid-instrument { position:absolute; inset:0; pointer-events:none; }
.bid-instrument i { position:absolute; width:1px; height:150%; top:-20%; background:linear-gradient(transparent,rgba(166,101,66,.3),transparent); transform:rotate(23deg); }
.bid-instrument i:first-child { left:18%; }.bid-instrument i:nth-child(2) { left:72%; }
.bid-instrument span { position:absolute; right:26px; top:126px; color:rgba(13,18,18,.42); font:9px/1 var(--mono); letter-spacing:.1em; }
.bid-form-panel { display:grid; grid-template-columns:minmax(320px,.72fr) minmax(560px,1.28fr); gap:clamp(60px,8vw,132px); padding:clamp(100px,11vw,170px) clamp(24px,5vw,76px); background:linear-gradient(90deg,var(--carbon) 0 39%,#f4f0e7 39%); }
.bid-form-panel--first { min-height:100svh; align-items:start; padding-top:clamp(150px,14vw,190px); padding-bottom:clamp(72px,7vw,104px); }
.bid-form-head { position:relative; align-self:start; color:var(--bone); }
.bid-form-head::before { content:""; position:absolute; top:-34px; left:0; width:74px; height:3px; background:var(--copper); box-shadow:28px 0 0 rgba(237,233,223,.22); }
.bid-form-head .eyebrow { color:#8bc3bf; font-family:var(--bid-mono); font-weight:500; }
.bid-form-head h1 { margin:0; max-width:540px; font-family:var(--bid-display); font-size:clamp(58px,5.9vw,88px); font-weight:700; line-height:.82; letter-spacing:-.045em; text-transform:uppercase; }
.bid-form-head h2 { margin:0; max-width:560px; font-size:clamp(44px,4.5vw,64px); line-height:.92; letter-spacing:-.058em; text-transform:uppercase; }
.bid-form-head h1 em { color:#c27a52; font-family:inherit; font-style:normal; font-weight:700; letter-spacing:inherit; }
.bid-form-head > p:not(.eyebrow) { max-width:390px; margin:30px 0 0; color:rgba(237,233,223,.68); font-size:17px; line-height:1.62; }
.bid-form-meta { display:grid; gap:0; max-width:390px; margin-top:clamp(56px,7vw,96px); border-top:1px solid rgba(237,233,223,.22); counter-reset:intake; }
.bid-form-meta span { position:relative; display:flex; align-items:center; min-height:50px; border-bottom:1px solid rgba(237,233,223,.15); color:rgba(237,233,223,.62); font:500 10px/1.2 var(--bid-mono); letter-spacing:.08em; text-transform:uppercase; counter-increment:intake; }
.bid-form-meta span::after { content:"0" counter(intake); margin-left:auto; color:#8bc3bf; }
.bid-form { align-self:start; border-top:3px solid var(--ink); }
.form-row { grid-template-columns:190px 1fr; padding:30px 0; }
.form-row label,.form-row legend { color:#363833; font:500 10px/1.3 var(--bid-mono); letter-spacing:.075em; }
.form-row input,.form-row select,.form-row textarea { min-height:44px; padding:4px 0; font-family:var(--bid-text); font-size:18px; }
.form-row textarea { min-height:140px; }
.choice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border:1px solid rgba(13,18,18,.2); }
.choice { position:relative; min-height:64px; display:flex; align-items:center; justify-content:center; padding:0 12px; border:0; border-right:1px solid rgba(13,18,18,.2); background:rgba(255,255,255,.2); cursor:pointer; transition:background .3s,color .3s; }
.choice:last-child { border-right:0; }
.choice input { position:absolute; opacity:0; pointer-events:none; }
.choice span { font:400 13px/1.2 var(--bid-text); letter-spacing:.01em; text-transform:none; }
.choice:hover { background:rgba(28,102,100,.06); }
.choice:has(input:checked) { color:var(--bone); background:var(--orange); box-shadow:none; }
.form-submit { margin-top:34px; }
.form-submit p { font:500 10px/1.5 var(--bid-mono); }
.form-status { margin-top:20px; padding:22px; border-left:4px solid #70b4af; background:var(--carbon); color:var(--bone); font-size:15px; }
.bid-next { display:grid; grid-template-columns:minmax(260px,.58fr) minmax(520px,1.42fr); gap:clamp(56px,9vw,150px); padding:clamp(72px,8vw,112px) clamp(24px,5vw,76px); border-top:1px solid var(--rule-light); background:#e5e1d7; }
.bid-next__head h2 { margin:0; max-width:470px; font-family:var(--bid-display); font-size:clamp(48px,4.8vw,72px); font-weight:700; line-height:.86; letter-spacing:-.04em; text-transform:uppercase; }
.bid-next__steps { border-top:1px solid var(--ink); }
.bid-next__steps article { display:grid; grid-template-columns:minmax(150px,.55fr) minmax(0,1fr); gap:28px; padding:24px 0; border-bottom:1px solid var(--rule-light); }
.bid-next__steps strong { font-family:var(--bid-display); font-size:19px; font-weight:700; text-transform:uppercase; }
.bid-next__steps p { margin:0; max-width:58ch; color:#5f5b52; font-size:15px; line-height:1.55; }
@media (max-width:900px) {
  .site-header { height:76px; }
  .route-hero--process { min-height:92svh; padding-top:130px; }
  .site-footer { grid-template-columns:1fr 1fr; }
  .bid-intro-panel,.bid-form-panel,.bid-next { grid-template-columns:1fr; }
  .bid-intro-panel { padding-top:140px; }
  .bid-readiness { max-width:620px; }
  .bid-form-panel { gap:58px; background:var(--carbon); }
  .bid-form { margin-inline:calc(clamp(24px,5vw,76px) * -1); padding:72px clamp(24px,5vw,76px) 0; background:#f4f0e7; }
  .bid-next { gap:42px; }
  .choice-grid { grid-template-columns:1fr 1fr; }
  .choice:nth-child(2) { border-right:0; }
  .choice:nth-child(-n+2) { border-bottom:1px solid rgba(13,18,18,.2); }
}
@media (max-width:560px) {
  .route-hero--process { min-height:100svh; padding-bottom:54px; }
  .route-hero--process h1 { font-size:clamp(48px,13.2vw,68px); }
  .site-footer { grid-template-columns:1fr; }
  .bid-intro-panel { min-height:auto; padding-top:130px; padding-bottom:72px; }
  .bid-intro h1 { font-size:clamp(54px,16vw,74px); }
  .bid-intro > p:not(.eyebrow) { font-size:16px; }
  .bid-readiness { padding:24px; }
  .bid-form-panel { padding-block:88px; }
  .bid-form-panel--first { padding-top:126px; }
  .bid-form-head h2 { font-size:44px; }
  .bid-form-head h1 { font-size:clamp(48px,14vw,64px); }
  .form-row { grid-template-columns:1fr; gap:14px; }
  .form-row > .choice-grid { grid-column:1; }
  .choice-grid { grid-template-columns:1fr; }
  .choice,.choice:nth-child(2) { border-right:0; border-bottom:1px solid rgba(13,18,18,.2); }
  .choice:last-child { border-bottom:0; }
  .bid-next__steps article { grid-template-columns:1fr; gap:8px; }
  .scope-row { grid-template-columns:minmax(0,1fr); gap:14px; }
  .scope-row p { grid-column:1; min-width:0; }
  .scope-row h3 { min-width:0; overflow-wrap:anywhere; }
  .project-detail,.project-detail:nth-child(even) { grid-template-columns:minmax(0,1fr); }
  .project-detail__media,.project-detail__copy { min-width:0; width:100%; }
  .closing-lines { overflow:hidden; }
}
