:root{--blue:#184d8c;--teal:#115a6f;--pale:#a9c8dc;--navy:#0d2a4d;--ink:#333333;--mid:#666666}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
.font-display{font-family:'Archivo',system-ui,sans-serif;font-stretch:80%}
.h-xl{font-size:clamp(2.5rem,1.4rem + 5vw,5.4rem);line-height:.95;letter-spacing:-.03em}
.h-lg{font-size:clamp(2rem,1.3rem + 3vw,3.6rem);line-height:1;letter-spacing:-.025em}
.h-md{font-size:clamp(1.5rem,1.15rem + 1.5vw,2.25rem);line-height:1.08;letter-spacing:-.015em}
.lead{font-size:clamp(1.05rem,.98rem + .35vw,1.25rem);line-height:1.7}
.prose-body p{line-height:1.8}
.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.grid-lines{background-image:linear-gradient(rgba(169,200,220,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(169,200,220,.08) 1px,transparent 1px);background-size:56px 56px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}
.btn{display:inline-flex;align-items:center;gap:.6rem;border-radius:.4rem;padding:.95rem 1.4rem;font-weight:600;min-height:48px;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn svg{transition:transform .2s ease}.btn:hover svg{transform:translateX(3px)}
.card-lift{transition:transform .3s ease,box-shadow .3s ease}
.card-lift:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(13,42,77,.35)}
.zoom img{transition:transform .6s ease}.zoom:hover img{transform:scale(1.06)}
.grecaptcha-badge{visibility:hidden}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.marquee{display:flex;gap:4rem;width:max-content;animation:marquee 40s linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}
.carousel-track{transition:transform .6s ease}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.marquee{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.carousel-track,.btn,.card-lift,.zoom img{transition:none}}
.outline-pale{color:transparent;-webkit-text-stroke:1.5px rgba(169,200,220,.2)}
/* Project sequence: vertical line on mobile, horizontal connector rule from lg */
.proc-track,.proc-fill{left:1.75rem;top:2.75rem;width:2px;margin-left:-1px}
.proc-track{bottom:2.75rem}
.proc-fill{height:calc((100% - 5.5rem) * var(--p) / 5);transition:height .5s ease,width .5s ease}
@media (min-width:1024px){
  .proc-track,.proc-fill{left:8.333%;top:1.75rem;height:2px;margin-left:0;margin-top:-1px}
  .proc-track{right:8.333%;bottom:auto;width:auto}
  .proc-fill{width:calc((100% - 16.666%) * var(--p) / 5)}
}
.step-dot{border-color:#cbd5e1;background:#fff;color:#64748b}
.step-dot.is-done{border-color:#184d8c;color:#184d8c}
.step-dot.is-active{border-color:#184d8c;background:#184d8c;color:#fff;box-shadow:0 0 0 8px rgba(24,77,140,.15)}
@media (prefers-reduced-motion:reduce){.proc-fill{transition:none}}
