[hidden]{display:none!important}
:root{
  --navy:#133a68; --navy-deep:#0e2c52; --navy-ink:#0a1f3a; --sky:#76bfeb; --logo:#1e99e5;
  --signal:#eaeb38; --mist:#b5d7ec; --paper:#f4f7fb;
}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;color:#10233d;background:#fff;-webkit-font-smoothing:antialiased}
.font-display{font-family:'Archivo',system-ui,sans-serif;font-stretch:112%}
.t-hero{font-size:clamp(2.6rem,1.4rem + 5.4vw,6rem);line-height:.95;letter-spacing:-.035em}
.t-1{font-size:clamp(2.2rem,1.4rem + 3.4vw,4.25rem);line-height:1;letter-spacing:-.03em}
.t-2{font-size:clamp(1.8rem,1.2rem + 2.2vw,3.1rem);line-height:1.05;letter-spacing:-.025em}
.t-3{font-size:clamp(1.25rem,1.05rem + .8vw,1.6rem);line-height:1.2;letter-spacing:-.015em}
.lead{font-size:clamp(1.05rem,.98rem + .35vw,1.25rem);line-height:1.7}
.prose-me p{line-height:1.8;margin-top:1.1em}
.prose-me p:first-child{margin-top:0}
.eyebrow{font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600}
.grid-lines{background-image:linear-gradient(rgba(118,191,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(118,191,235,.08) 1px,transparent 1px);background-size:56px 56px}
.signal-bar{display:inline-block;width:3rem;height:.3rem;border-radius:9px;background:var(--signal)}
.glow-bar{height:.35rem;border-radius:9px;background:var(--logo);box-shadow:0 0 18px 2px rgba(30,153,229,.65)}

/* header */
#site-header{transition:background-color .3s,box-shadow .3s}
#site-header.scrolled{background:rgba(10,31,58,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
.nav-link{position:relative;padding:.5rem .1rem}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:.1rem;height:2px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.dropdown{opacity:0;visibility:hidden;transform:translateY(6px);transition:all .2s}
.has-dd:hover .dropdown,.has-dd:focus-within .dropdown{opacity:1;visibility:visible;transform:none}

/* buttons */
.btn{display:inline-flex;white-space:nowrap;align-items:center;gap:.6rem;font-weight:600;border-radius:999px;padding:.95rem 1.5rem;transition:transform .2s,background-color .2s,color .2s,box-shadow .2s;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn svg{transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.btn-signal{background:var(--signal);color:var(--navy-ink);box-shadow:0 10px 30px -10px rgba(234,235,56,.55)}
.btn-signal:hover{background:#f4f56a}
.btn-ghost{border:1px solid rgba(181,215,236,.45);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep)}

/* cards */
.lift{transition:transform .3s,box-shadow .3s}
.lift:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(14,44,82,.45)}
.zoom{overflow:hidden}
.zoom img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.zoom:hover img{transform:scale(1.07)}
.svc-row{transition:background-color .25s,padding .25s}
.svc-row:hover{background:rgba(118,191,235,.08)}
.svc-row:hover .svc-arrow{background:var(--signal);color:var(--navy-ink);transform:rotate(-45deg)}
.svc-arrow{transition:all .25s}

/* reveal: content is always fully opaque, only position animates */
.reveal{transform:translateY(18px);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}
/* hero entrance: visible on first paint, subtle slide only */
@keyframes hero-rise{from{transform:translateY(14px)}to{transform:none}}
.hero-in{animation:hero-rise .7s cubic-bezier(.2,.7,.2,1) both}
.hero-in-d1{animation-delay:.06s}.hero-in-d2{animation-delay:.12s}.hero-in-d3{animation-delay:.18s}

/* carousel */
.carousel-track{display:flex;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.carousel-slide{flex:0 0 100%;min-width:0;width:100%}
.dot{width:.6rem;height:.6rem;border-radius:9px;background:rgba(181,215,236,.35);transition:all .3s}
.dot[aria-current="true"]{width:1.8rem;background:var(--signal)}

/* lightbox */
#lightbox{opacity:0;visibility:hidden;transition:opacity .25s}
#lightbox.open{opacity:1;visibility:visible}

/* forms */
.field{width:100%;border:1px solid #c9d8e8;background:#fff;border-radius:.85rem;padding:.9rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}
.field:focus{outline:none;border-color:var(--logo);box-shadow:0 0 0 4px rgba(30,153,229,.18)}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.grecaptcha-badge{visibility:hidden}
.tab[aria-selected="true"]{background:var(--navy);color:#fff}

:focus-visible{outline:3px solid var(--signal);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.hero-in{transform:none}
}
