/* Scoria Engineering — bright white engineering site.
   Layout: white ground, deep navy ink, corporate blue accent, photo-led sections, condensed display type. Light only by design. */
:root{
  --white:#FFFFFF; --steel:#EFF4FA; --steel-2:#DCE6F2; --ink:#0B2545; --ink-2:#4A5F7A; --line:#D3DEEB;
  --amber:#1D5FB8; --amber-soft:#E6F0FB; --navy:#0B2545; --navy-2:#A9BDD6; --sky:#7DB3F0; --hl:#CFE1F7;
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1240px; --gut:clamp(16px,4vw,40px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
h1,h2,h3{overflow-wrap:break-word;font-family:var(--display);text-wrap:balance;margin:0;line-height:.95;text-transform:uppercase}
h2{font-size:clamp(40px,5.6vw,76px);font-weight:800}
h3{font-size:26px;font-weight:700;line-height:1.05;letter-spacing:.01em}
p{margin:0}
.kicker{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2);margin-bottom:18px}
.kicker::before{content:"";width:10px;height:10px;background:var(--amber)}
.prose p+p{margin-top:16px}
.prose p{color:var(--ink-2);max-width:62ch}
.prose p.big{font-size:21px;color:var(--ink);line-height:1.5}

/* Photos: all imagery sits in fixed-ratio frames with a subtle grade */
.ph{position:relative;overflow:hidden;background:var(--steel-2)}
.ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.04);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
a:hover .ph img,.ph:hover img{transform:scale(1.04)}

/* Header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:74px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark{width:38px;height:38px;background:var(--amber);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:25px;color:var(--ink)}
.logo b{font-family:var(--display);font-weight:800;font-size:25px;letter-spacing:.16em}
.logo small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:-3px}
nav.main{display:flex;gap:28px;align-items:center}
nav.main>a,.dd>a{text-decoration:none;font-size:15px;font-weight:600;color:var(--ink-2);padding:8px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
nav.main>a:hover,.dd>a:hover{color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--amber)}
.dd{position:relative}
.dd>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:8px}
.dd-menu{position:absolute;top:calc(100% + 14px);left:-20px;min-width:300px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--amber);box-shadow:0 18px 40px rgba(15,39,64,.12);padding:8px 0;display:none}
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu a{display:flex;justify-content:space-between;gap:16px;padding:10px 20px;text-decoration:none;font-weight:600;font-size:15px}
.dd-menu a span{font-family:var(--mono);font-size:11px;color:var(--ink-2);padding-top:3px}
.dd-menu a:hover{background:var(--steel)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;font-family:var(--display);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border:2px solid var(--amber);background:var(--amber);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.btn:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}
.btn.line{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--white)}
.btn.sm{padding:10px 18px;font-size:15px}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(4px)}
nav.main a.btn{color:var(--ink);border-bottom:2px solid var(--amber)}
nav.main a.btn:hover{color:var(--white);border-color:var(--ink)}
.menu-btn{display:none;background:none;border:2px solid var(--ink);color:var(--ink);padding:8px 12px;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
@media (max-width:960px){
  nav.main{position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--white);border-bottom:1px solid var(--line);padding:8px var(--gut) 20px;max-height:calc(100vh - 74px);overflow:auto}
  nav.main>a,.dd>a{display:block;padding:12px 0;font-size:19px;border-bottom:1px solid var(--line)}
  nav.main a[aria-current="page"]{border-bottom-color:var(--line);color:var(--ink)}
  .dd>a::after{display:none}
  .dd-menu{display:block;position:static;border:0;box-shadow:none;padding:0 0 8px 14px;min-width:0}
  .dd-menu a{padding:8px 0;font-weight:500}
  nav.main a.btn{margin-top:16px;align-self:flex-start}
  nav.main:not(.open){display:none}
  .menu-btn{display:block}
}

/* Home hero */
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,64px);align-items:center;padding-block:clamp(44px,6vw,88px)}
.hero h1{font-size:clamp(46px,6.6vw,104px);font-weight:800;line-height:.88;letter-spacing:-.01em}
.hero h1 span{background:linear-gradient(transparent 62%,var(--amber) 62%,var(--amber) 92%,transparent 92%);padding-inline:.04em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero p.lead{margin-top:26px;font-size:clamp(18px,1.6vw,21px);max-width:52ch;color:var(--ink-2)}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.regions{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-2)}
.regions span{display:inline-flex;gap:8px;align-items:center}
.regions span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber)}
.collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:200px 140px 200px;gap:12px}
.collage .ph:nth-child(1){grid-row:1/3}
.collage .ph:nth-child(2){grid-row:1/2}
.collage .ph:nth-child(3){grid-row:2/4}
.collage .ph:nth-child(4){grid-row:3/4}
.collage .tag{position:absolute;left:0;bottom:0;background:var(--white);padding:6px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.collage{grid-template-rows:160px 110px 160px}}

/* Inner page hero */
.page-hero{border-bottom:1px solid var(--line)}
.page-hero .wrap{padding-block:clamp(40px,6vw,80px) clamp(32px,4vw,52px)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;color:var(--ink-2);margin-bottom:22px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink)}
.crumbs span[aria-hidden]{color:var(--amber)}
.page-hero h1{font-size:clamp(40px,8vw,112px);overflow-wrap:anywhere;font-weight:800;line-height:.9}
.page-hero .lead{margin-top:22px;font-size:clamp(18px,1.6vw,21px);color:var(--ink-2);max-width:60ch}
.strip{height:clamp(140px,18vw,240px)}
.strip img{object-position:center 40%}

/* Stats */
.stats{background:var(--amber)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{padding:30px 22px 32px;border-left:2px solid rgba(15,39,64,.18)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(46px,5.4vw,72px);line-height:1;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:6px;font-weight:600}
@media (max-width:760px){.stats .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:2px solid rgba(15,39,64,.18)}}

section.block{padding-block:clamp(64px,9vw,120px)}
section.tint{background:var(--steel)}
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:end;margin-bottom:clamp(36px,5vw,60px)}
.head p{color:var(--ink-2);max-width:56ch}
.head .more{justify-self:end}
@media (max-width:820px){.head{grid-template-columns:1fr}.head .more{justify-self:start}}

/* Split: text + images */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.split.rev>:first-child{order:2}
.duo{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;align-items:end}
.duo .ph:first-child{aspect-ratio:3/4}
.duo .ph:last-child{aspect-ratio:4/5;margin-bottom:-28px}
@media (max-width:860px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}.duo .ph:last-child{margin-bottom:0}}

/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pill{background:var(--white);padding:32px 28px 34px;border-top:4px solid var(--amber)}
section.block:not(.tint) .pill{background:var(--steel)}
.pill .mono{color:var(--ink-2);display:block;margin-bottom:16px}
.pill p{margin-top:14px;color:var(--ink-2)}
@media (max-width:860px){.pillars{grid-template-columns:1fr}}

/* Service cards */
.svc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.svc-card{display:flex;flex-direction:column;background:var(--white);text-decoration:none;border-bottom:4px solid transparent;transition:border-color .2s,box-shadow .25s}
.svc-card:hover{border-bottom-color:var(--amber);box-shadow:0 16px 40px rgba(15,39,64,.10)}
.svc-card .ph{aspect-ratio:4/3}
.svc-card .body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.svc-card .code{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-2)}
.svc-card h3{font-size:25px}
.svc-card p{color:var(--ink-2);font-size:15.5px}
.svc-card .go{margin-top:auto;padding-top:8px;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:15px}
.svc-card .go::after{content:" →";color:var(--amber)}
section.block:not(.tint) .svc-card{background:var(--steel)}
@media (max-width:1060px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.svc-grid{grid-template-columns:1fr}}

/* Service detail */
.detail{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(32px,6vw,80px);align-items:start}
.caps{background:var(--steel);padding:28px 28px 30px;border-top:4px solid var(--amber)}
.caps h3{font-size:22px;margin-bottom:14px}
.caps ul{list-style:none;margin:0;padding:0}
.caps li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;font-weight:500}
.caps li::before{content:"";flex:none;width:8px;height:8px;margin-top:9px;background:var(--amber)}
.caps li:last-child{border-bottom:0}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(40px,6vw,72px)}
.gallery .ph{aspect-ratio:4/5}
.gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery.two .ph{aspect-ratio:3/2}
@media (max-width:860px){.detail{grid-template-columns:1fr}}
@media (max-width:560px){.gallery{grid-template-columns:1fr 1fr}.gallery .ph:first-child{grid-column:1/-1;aspect-ratio:16/10}.gallery.two{grid-template-columns:1fr}.gallery.two .ph:first-child{aspect-ratio:3/2}}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-block:1px solid var(--line)}
.pager a{min-width:0;overflow-wrap:anywhere;background:var(--white);padding:28px var(--gut);text-decoration:none;display:grid;gap:6px;transition:background .2s}
.pager a:hover{background:var(--amber-soft)}
.pager a:last-child{text-align:right}
.pager .mono{color:var(--ink-2)}
.pager b{font-family:var(--display);font-size:clamp(19px,3vw,34px);text-transform:uppercase;line-height:1}

/* VE steps */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:s;list-style:none;margin:0;padding:0;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:32px;height:2px;background:var(--line)}
.steps li{position:relative;padding-right:20px}
.steps li::before{counter-increment:s;content:counter(s);position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--white);border:2px solid var(--ink);font-family:var(--display);font-weight:800;font-size:30px;transition:background .2s}
.steps li:hover::before{background:var(--amber);border-color:var(--amber)}
.steps b{display:block;margin-top:20px;font-family:var(--display);font-size:24px;font-weight:700;text-transform:uppercase}
.steps span{display:block;margin-top:6px;color:var(--ink-2);font-size:16px}
section.tint .steps li::before{background:var(--steel)}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:24px}.steps::before{left:31px;right:auto;top:0;bottom:0;width:2px;height:auto}.steps li{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:20px}.steps li::before{grid-row:1/3}.steps b{margin-top:6px}}

/* Projects */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.filters button{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding:9px 18px;border:2px solid var(--ink);background:var(--white);color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.filters button span{font-family:var(--mono);font-size:11px;margin-left:8px;opacity:.65}
.proj-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.proj{background:var(--white);padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;min-height:190px;border-bottom:4px solid transparent;transition:border-color .2s,transform .2s}
section.block:not(.tint) .proj{background:var(--steel)}
.proj:hover{border-bottom-color:var(--amber);transform:translateY(-3px)}
.proj .mono{color:var(--ink-2)}
.proj h3{font-size:24px;margin-top:auto}
.proj .type{font-size:15px;color:var(--ink-2)}
@media (max-width:1060px){.proj-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.proj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.proj-grid{grid-template-columns:1fr}.proj{min-height:0}}
.proj-feature{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,48px);align-items:stretch;margin-bottom:clamp(40px,6vw,64px)}
.proj-feature .ph{min-height:320px}
.proj-feature .txt{display:flex;flex-direction:column;justify-content:center;gap:18px}
.region-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink)}
.region-list div{padding:18px 18px 0 0}
.region-list b{display:block;font-family:var(--display);font-size:46px;line-height:1}
.region-list span{color:var(--ink-2)}
@media (max-width:760px){.proj-feature{grid-template-columns:1fr}.proj-feature .ph{min-height:240px}}

/* CTA band */
.cta{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.cta .wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding-block:clamp(52px,7vw,84px);position:relative}
.cta h2{font-size:clamp(38px,5.2vw,70px)}
.cta h2 span{color:var(--amber)}
.cta .btn:hover{background:#fff;border-color:#fff;color:var(--ink)}

/* Careers */
.roles{list-style:none;padding:0;margin:26px 0 0;border-top:2px solid var(--ink)}
.roles li{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-weight:600}
.roles li span:last-child{color:var(--ink-2);font-weight:400}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,6vw,72px);align-items:start}
.info dl{margin:0;border-top:2px solid var(--ink)}
.info dl div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.info dt{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding-top:4px}
.info dd{margin:0;font-variant-numeric:tabular-nums}
.info dd span{display:block}
form{background:var(--white);padding:clamp(24px,4vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:4px solid var(--amber)}
.field{display:grid;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--steel);border:2px solid transparent;padding:13px 14px;border-radius:0;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--amber);background:var(--white)}
textarea{min-height:150px;resize:vertical}
.form-note{grid-column:1/-1;font-size:15px;color:var(--ink-2)}
.form-note.ok{color:var(--ink);background:var(--amber-soft);padding:10px 14px}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:520px){form{grid-template-columns:1fr}.info dl div{grid-template-columns:1fr;gap:4px}}

/* Footer */
footer{background:var(--navy);color:var(--navy-2);padding-block:56px 36px}
.foot{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
footer .logo b{color:#fff}
footer .logo small{color:var(--navy-2)}
footer p{margin-top:16px;max-width:40ch;font-size:15px}
footer h4{margin:0 0 12px;font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#fff}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
footer a{text-decoration:none}footer a:hover{color:var(--amber)}
.legal{margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}}

/* Blue palette overrides: white text on blue surfaces */
.btn{color:#fff}
.btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
nav.main a.btn{color:#fff}
.mark{color:#fff}
.hero h1 span{background:linear-gradient(transparent 60%,var(--hl) 60%,var(--hl) 94%,transparent 94%)}
.stats{background:linear-gradient(120deg,var(--navy) 0%,var(--amber) 100%);color:#fff}
.stat{border-left-color:rgba(255,255,255,.2)}
.stat span{color:#D6E4F5}
@media (max-width:760px){.stat:nth-child(n+3){border-top-color:rgba(255,255,255,.2)}}
.cta{background:linear-gradient(120deg,var(--navy) 55%,#123A6B 100%)}
.cta h2 span{color:var(--sky)}
.cta .btn{background:var(--amber);border-color:var(--amber)}
.cta .btn:hover{background:#fff;border-color:#fff;color:var(--navy)}
footer a:hover{color:var(--sky)}
.collage .tag{color:var(--navy)}
.steps li:hover::before{color:#fff}
.hero h1{font-size:clamp(42px,5.4vw,92px);overflow-wrap:normal}

/* Icons */
.ico{width:26px;height:26px;display:block}
.ico-box{width:52px;height:52px;display:grid;place-items:center;background:var(--amber-soft);color:var(--amber);flex:none;transition:background .25s,color .25s}
.ico-box.lg{width:56px;height:56px}
.svc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.svc-card:hover .ico-box{background:var(--amber);color:#fff}
.pill .ico-box{margin-bottom:18px}
.caps-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.caps-head h3{margin:0}
.caps li::before{display:none}
.caps li{align-items:flex-start}
.chk{width:18px;height:18px;flex:none;margin-top:4px;color:var(--amber);stroke-width:2.4}
.sico{width:30px;height:30px;color:var(--sky);margin-bottom:14px;opacity:.95}
.dico{width:16px;height:16px;display:inline-block;vertical-align:-3px;margin-right:8px;color:var(--amber)}
.info dl div{grid-template-columns:130px minmax(0,1fr)}
.ficons li{display:flex;gap:10px;align-items:flex-start}
.fico{width:16px;height:16px;flex:none;margin-top:4px;color:var(--sky)}
.rico{width:20px;height:20px;display:inline-block;vertical-align:-4px;margin-right:10px;color:var(--amber)}
.stat b,.region-list b{font-variant-numeric:tabular-nums}
@media (max-width:520px){.info dl div{grid-template-columns:1fr}}

/* ===== Full-page headers ===== */
.fullhero,.page-hero.full-bg{position:relative;overflow:hidden;background:var(--navy);color:#fff;display:flex;align-items:center;border-bottom:0}
.fullhero{min-height:calc(100svh - 74px)}
.page-hero.full-bg{min-height:calc(78svh - 74px)}
.slides,.slide,.bg-photo,.bg-shade,.bg-grid{position:absolute;inset:0}
.slide,.bg-photo{background-size:cover;background-position:center;filter:blur(1.5px) saturate(.85)}
.slide{opacity:0;animation:fade 24s linear infinite,zoom 24s linear infinite}
.slide.s0{opacity:1;animation-delay:-1.2s,-1.2s}
.slide.s1{animation-delay:4.8s,4.8s}.slide.s2{animation-delay:10.8s,10.8s}.slide.s3{animation-delay:16.8s,16.8s}
@keyframes fade{0%{opacity:0}5%{opacity:1}25%{opacity:1}30%{opacity:0}100%{opacity:0}}
@keyframes zoom{0%{transform:scale(1.04)}30%{transform:scale(1.16)}100%{transform:scale(1.16)}}
.bg-photo{transform:scale(1.08);animation:zoomslow 18s ease-out both}
@keyframes zoomslow{from{transform:scale(1.18)}to{transform:scale(1.04)}}
.bg-shade{background:linear-gradient(100deg,rgba(11,37,69,.96) 0%,rgba(11,37,69,.86) 45%,rgba(29,95,184,.55) 100%)}
.bg-grid{background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:64px 64px;animation:drift 40s linear infinite;mask-image:linear-gradient(90deg,transparent,#000 40%,#000)}
@keyframes drift{to{background-position:64px 64px}}
.hero-inner{position:relative;z-index:2;width:100%;padding-block:clamp(56px,9vh,110px)}
.fullhero h1{font-size:clamp(56px,10vw,160px);font-weight:800;line-height:.86;letter-spacing:-.01em;color:#fff;overflow-wrap:normal}
.fullhero h1 .line{display:block;overflow:hidden;padding-bottom:.04em}
.fullhero h1 .line>span{display:inline-block}
.fullhero h1 em{font-style:normal;color:var(--sky)}
.fullhero .lead,.page-hero.full-bg .lead{color:#D2DFEF;max-width:56ch;margin-top:28px;font-size:clamp(18px,1.7vw,22px)}
.kicker.light{color:#B9CCE4}.kicker.light::before{background:var(--sky)}
.fullhero .regions{border-top-color:rgba(255,255,255,.18);color:#B9CCE4;max-width:640px}
.fullhero .regions span::before{background:var(--sky)}
.btn.ghost-light{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.btn.ghost-light:hover{background:#fff;border-color:#fff;color:var(--navy)}
.fullhero .btn:not(.ghost-light):hover{background:#fff;border-color:#fff;color:var(--navy)}
.page-hero.full-bg h1{color:#fff;font-size:clamp(48px,8.4vw,128px)}
.page-hero.full-bg .crumbs{color:#B9CCE4}
.page-hero.full-bg .crumbs span[aria-hidden]{color:var(--sky)}
.page-hero.full-bg .crumbs a:hover{color:#fff}
.rule-line{display:block;width:96px;height:4px;background:var(--sky);margin-top:26px;transform-origin:left}
/* entrance */
.rise{animation:rise 1s cubic-bezier(.2,.75,.2,1) both}
.fullhero h1 .rise{animation-name:riseLine}
.rule-line.rise{animation-name:grow}
.d1{animation-delay:.1s}.d2{animation-delay:.22s}.d3{animation-delay:.36s}.d4{animation-delay:.5s}.d5{animation-delay:.66s}.d6{animation-delay:.8s}.d7{animation-delay:.94s}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes riseLine{from{transform:translateY(105%)}to{transform:none}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* slide progress dots */
.slide-dots{position:absolute;z-index:2;right:var(--gut);bottom:34px;display:flex;gap:8px}
.slide-dots i{display:block;width:34px;height:3px;background:rgba(255,255,255,.25);overflow:hidden;position:relative}
.slide-dots i::after{content:"";position:absolute;inset:0;background:var(--sky);transform:scaleX(0);transform-origin:left;animation:dot 24s linear infinite}
.slide-dots i:nth-child(1)::after{animation-delay:-1.2s}.slide-dots i:nth-child(2)::after{animation-delay:4.8s}.slide-dots i:nth-child(3)::after{animation-delay:10.8s}.slide-dots i:nth-child(4)::after{animation-delay:16.8s}
@keyframes dot{0%{transform:scaleX(0)}25%{transform:scaleX(1)}25.01%,100%{transform:scaleX(0)}}
/* scroll cue */
.scroll-cue{position:absolute;z-index:2;left:50%;bottom:26px;transform:translateX(-50%);width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:14px}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media (max-width:640px){.slide-dots{display:none}.fullhero h1{font-size:clamp(46px,14vw,80px)}}
@media (prefers-reduced-motion:reduce){.slide{animation:none;opacity:0}.slide.s0{opacity:1}.rise,.bg-photo,.bg-grid{animation:none}}
.bg-shade{background:linear-gradient(100deg,rgba(11,37,69,.94) 0%,rgba(11,37,69,.78) 42%,rgba(29,95,184,.32) 100%)}
.hero-inner{padding-block:clamp(56px,9vh,110px) clamp(96px,12vh,130px)}
@media (max-width:640px){.fullhero h1{font-size:clamp(40px,12vw,72px)}.scroll-cue{display:none}.hero-inner{padding-block:48px 56px}}
.page-hero.full-bg{min-height:calc(100svh - 74px)}

/* Brand logo */
.logo-img{display:block;height:44px;width:auto}
.foot-logo{height:48px}
@media (max-width:520px){.logo-img{height:34px}}
