:root { --navy:#126aa5; --blue:#258bc7; --gold:#f0c75a; --ink:#164667; --r-sm:8px; --r-md:14px; --r-lg:22px; --shadow-sm:0 6px 18px rgba(10,50,90,.08); --shadow-md:0 16px 40px rgba(10,50,90,.12); --shadow-lg:0 26px 60px rgba(10,50,90,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:"Source Sans 3",sans-serif; }
.reveal-up { opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal-up.is-visible { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) { .reveal-up { opacity:1; transform:none; } }
.site-header { position:absolute; z-index:50; inset:0 0 auto; display:flex; height:88px; align-items:center; justify-content:space-between; padding:0 clamp(24px,6vw,96px); color:#fff; border-bottom:1px solid rgba(255,255,255,.26); }
.brand { display:flex; gap:10px; align-items:center; color:inherit; text-decoration:none; font:700 12px/1.05 Montserrat,sans-serif; letter-spacing:.08em; }
.brand strong { font-size:14px; font-weight:800; }.brand-mark { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; font:800 12px Montserrat,sans-serif; letter-spacing:-.1em; }
.main-nav { display:flex; align-items:center; gap:clamp(20px,2.8vw,45px); font:600 12px Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.06em; }.main-nav a { color:#fff; text-decoration:none; }.nav-cta { padding:12px 18px; border:1px solid rgba(255,255,255,.7); }
.menu-button { display:none; z-index:51; align-items:center; gap:8px; padding:10px; margin:-10px; border:0; background:transparent; color:inherit; font:600 10px Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.menu-button span,.menu-button span:before,.menu-button span:after { display:block; width:20px; height:2px; content:""; background:currentColor; transition:transform .25s,opacity .25s; }
.menu-button span { position:relative; }.menu-button span:before { position:absolute; top:-6px; }.menu-button span:after { position:absolute; top:6px; }
.menu-button[aria-expanded="true"] span { background:transparent; }.menu-button[aria-expanded="true"] span:before { top:0; transform:rotate(45deg); }.menu-button[aria-expanded="true"] span:after { top:0; transform:rotate(-45deg); }
.nav-backdrop { display:none; }
.hero { position:relative; display:flex; min-height:700px; height:100svh; align-items:center; overflow:hidden; isolation:isolate; color:#fff; background:var(--navy); }.hero-video,.video-fallback,.hero-overlay,.hero-texture { position:absolute; inset:0; width:100%; height:100%; }.hero-video { z-index:-3; object-fit:cover; }.video-fallback { z-index:-5; background:linear-gradient(125deg,#063a6b,#0a5fa8 48%,#1e86d6 78%,#2f9ce8); background-size:cover; background-position:center; }.hero-texture { z-index:-4; background-image:radial-gradient(circle,rgba(255,255,255,.12) 1.5px,transparent 1.5px),radial-gradient(circle,rgba(255,187,11,.35),transparent 62%); background-size:26px 26px,900px 900px; background-position:0 0,100% 0%; background-repeat:repeat,no-repeat; opacity:.55; }.hero-overlay { z-index:-2; background:linear-gradient(90deg,rgba(8,77,127,.7) 0%,rgba(10,88,144,.62) 32%,rgba(16,116,177,.22) 49%,rgba(16,116,177,0) 60%); }
.hero-content { max-width:1000px; padding:90px clamp(24px,12vw,190px) 45px; }.eyebrow { margin:0 0 18px; color:#e2f4ff; font:700 11px Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.18em; }.hero-title { display:-webkit-box; margin:0; overflow:hidden; font:700 clamp(24px,3.3vw,46px)/1.15 "DM Sans",sans-serif; letter-spacing:-.035em; -webkit-line-clamp:2; -webkit-box-orient:vertical; }.hero-title span { display:inline; }.hero-title span:not(:last-child):after { content:" "; }.accent-word { color:var(--gold); }.hero-message { min-height:28px; max-width:510px; margin:27px 0 34px; color:#f2fbff; font-size:clamp(19px,2vw,25px); line-height:1.35; transition:opacity .22s,transform .22s; }.hero-message.changing { opacity:0; transform:translateY(-7px); }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:25px; padding:16px 22px; border-radius:var(--r-sm); color:#fff; font:700 11px Montserrat,sans-serif; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; transition:transform .25s,background .25s,box-shadow .25s; }.button:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); }.button-primary { background:var(--blue); }.button-primary:hover { background:#42a8df; }.button-ghost { border:1px solid rgba(255,255,255,.7); }.button-ghost:hover { background:rgba(255,255,255,.14); }
.scroll-cue { position:absolute; bottom:34px; left:clamp(24px,6vw,96px); display:flex; align-items:center; gap:11px; color:#f4fbff; font:600 10px Montserrat,sans-serif; text-decoration:none; text-transform:uppercase; letter-spacing:.13em; }.scroll-cue span { position:relative; width:30px; height:47px; border:1px solid rgba(255,255,255,.7); border-radius:20px; }.scroll-cue span:after { position:absolute; top:10px; left:12px; width:4px; height:8px; content:""; border-radius:4px; background:#fff; animation:scroll 1.8s infinite; }
.reveal { opacity:0; transform:translateY(22px); animation:reveal .7s cubic-bezier(.2,.7,.2,1) forwards; }.reveal-1{animation-delay:.25s}.reveal-2{animation-delay:.4s}.reveal-3{animation-delay:.57s}.reveal-4{animation-delay:.74s}.reveal-5{animation-delay:.98s}.reveal-6{animation-delay:1.13s}@keyframes reveal{to{opacity:1;transform:none}}@keyframes scroll{50%{transform:translateY(14px);opacity:.25}}
.intro { padding:110px clamp(24px,12vw,190px); background:#fff; }.eyebrow.dark { color:var(--blue); }.intro h2 { max-width:690px; margin:0; font:700 clamp(30px,4vw,56px)/1.12 Montserrat,sans-serif; letter-spacing:-.04em; }
.section-copy { max-width:560px; margin:24px 0 0; font-size:20px; line-height:1.5; color:#52748c; }.portal-links { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #dce8ef; background:#fff; }.portal-links a { min-height:280px; padding:37px 28px; border-right:1px solid #dce8ef; color:var(--ink); text-decoration:none; transition:background .25s,color .25s; }.portal-links a:last-child { border-right:0; }.portal-links a:hover { color:#fff; background:var(--blue); }.portal-links span { color:var(--blue); font:700 11px Montserrat,sans-serif; }.portal-links a:hover span { color:#dff4ff; }.portal-links h2 { margin:42px 0 12px; font:700 25px/1.1 "DM Sans",sans-serif; }.portal-links p { min-height:43px; margin:0; color:#5b7890; line-height:1.35; }.portal-links a:hover p { color:#effaff; }.portal-links b { display:block; margin-top:28px; font:700 11px Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.04em; }
@media(max-width:900px) { .portal-links { grid-template-columns:repeat(2,1fr); }.portal-links a:nth-child(2) { border-right:0; }.portal-links a:nth-child(-n+2) { border-bottom:1px solid #dce8ef; } }
@media(max-width:900px) {
  .menu-button{display:flex}
  .main-nav{position:fixed;inset:0 0 0 auto;z-index:50;display:flex;flex-direction:column;gap:0;width:min(78vw,320px);height:100vh;height:100svh;padding:100px 30px 30px;background:#fff;box-shadow:-18px 0 40px rgba(10,40,70,.18);transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1);overflow-y:auto}
  .main-nav a{width:100%;padding:16px 0;border-bottom:1px solid #e7eff5;color:#0f3a5c;font-size:15px}
  .main-nav .nav-cta{margin-top:18px;border-color:#0879e4;color:#0879e4;text-align:center}
  body.nav-open .main-nav{transform:translateX(0)}
  .nav-backdrop{position:fixed;inset:0;z-index:45;display:none;background:rgba(6,32,58,.45)}
  body.nav-open .nav-backdrop{display:block}
  body.nav-open{overflow:hidden}
}
@media(max-width:700px) { .site-header{height:70px;padding:0 22px}.hero{min-height:640px}.hero-overlay{background:linear-gradient(90deg,rgba(8,77,127,.7),rgba(15,111,169,.47) 60%,rgba(16,116,177,0))}.hero-content{padding:100px 24px 90px}.hero-title{font-size:clamp(24px,7.5vw,36px)}.hero-message{font-size:19px}.button{width:100%}.scroll-cue{bottom:22px;left:24px;font-size:9px}.intro{padding:75px 24px} }
@media(max-width:700px) { .section-copy { font-size:18px; }.portal-links { grid-template-columns:1fr; }.portal-links a,.portal-links a:nth-child(2) { min-height:200px; border-right:0; border-bottom:1px solid #dce8ef; }.portal-links h2 { margin-top:24px; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
