@charset "UTF-8";

/* Header and responsive navigation. */
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid #e1e8ec; background: #fff; box-shadow: 0 2px 18px #10233c05; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 120px; }
.brand { --brand-width: 220px; display: flex; width: var(--brand-width); flex: 0 0 auto; flex-direction: column; align-items: flex-start; line-height: 1.1; text-decoration: none; }
.brand-mark { position: relative; display: block; width: 100%; }
.brand picture, .brand img { display: block; width: 100%; height: auto; }
.brand-caption { display: block; width: 100%; margin: 2px auto 0; }
.brand-caption img { width: 100%; height: auto; filter: brightness(0); opacity: .95; }
.site-header nav { display: flex; align-items: center; gap: clamp(16px,1.6vw,28px); }
.site-header nav a { position: relative; padding-block: 18px; color: var(--ink); font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.site-header nav a::after { position: absolute; right: 0; bottom: 8px; left: 0; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; content: ""; }
.site-header nav a:hover::after, .site-header nav a[aria-current]::after { transform: scaleX(1); }
.menu-toggle { display: none; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; font-size: 14px; }
body.admin-bar .site-header { top: 32px; }

/* One full-width hero frame; images stay clear edge to edge. */
.hero, .staffing-hero, .sector-hero, .story-hero { position: relative; isolation: isolate; height: 510px; min-height: 510px; overflow: hidden; background: #10233c; }
.hero-media, .staffing-slides, .hero-wash, .staffing-wash, .sector-hero-wash, .story-hero-wash,
.hero-video, .sector-hero-image, .story-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media, .staffing-slides, .sector-hero-image, .story-hero-image { z-index: 0; overflow: hidden; }
.hero-video, .staffing-slide img, .sector-hero-image, .story-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.hero-video { opacity: 0; transition: opacity 1.2s ease; }
.hero-video.active { opacity: 1; }
.hero-wash, .staffing-wash, .sector-hero-wash, .story-hero-wash { z-index: 1; background: rgba(16,39,53,.06); pointer-events: none; }
.hero-content, .staffing-content, .sector-hero-content, .story-hero-content { position: relative; z-index: 2; display: flex; align-items: flex-start; padding-block: 32px 60px; }
.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy { width: min(100%,780px); padding: 22px; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; background: rgba(16,35,60,.62); color: #fff; box-shadow: inset 0 1px 0 #ffffff1a, 0 12px 36px #0514201f; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
:is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) h1 { max-width: 730px; margin: 0 0 20px; color: #fff; }
:is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) .lead,
.hero-copy .hero-intro { max-width: 600px; margin-bottom: 0; color: #f0f5fa; font-size: 18px; line-height: 1.7; }
:is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) .section-kicker { color: #d9e8f4; }
:is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) :focus-visible { outline-color: #aed2ff; }
.sector-hero-copy > .button, .story-hero-copy > .button { margin-top: 24px; margin-inline-end: 8px; }
.staffing-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.staffing-slide.is-active { opacity: 1; }
.staffing-copy .actions { margin-top: 20px; }

/* Subtle, accessible autoplay controls for the homepage video backgrounds. */
.hero-bottom { position: absolute; z-index: 3; right: 0; bottom: 20px; left: 0; display: flex; justify-content: flex-end; }
.hero-slider-control { display: grid; grid-template-columns: minmax(82px,1fr) auto 40px; align-items: center; gap: 10px; padding: 6px 8px 6px 14px; border: 1px solid #ffffff99; border-radius: 12px; background: #fafcfeeb; color: var(--ink); box-shadow: 0 6px 22px #091c441a; backdrop-filter: blur(12px); }
.hero-slider-meta { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
.slide-name { font-size: 11px; font-weight: 700; }
.slide-count { color: #526674; font-size: 9px; font-variant-numeric: tabular-nums; }
.hero-slide-markers { display: flex; gap: 3px; }
.hero-slide-marker { display: grid; width: 22px; height: 40px; padding: 0; place-items: center; border: 0; background: transparent; }
.hero-slide-marker::before { width: 18px; height: 3px; border-radius: 3px; background: #bbcbd9; content: ""; }
.hero-slide-marker[aria-current="true"]::before { background: var(--blue); transform: scaleY(1.5); }
.hero-slide-toggle { display: grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 13px; }
.hero-slide-toggle:hover { background: #edf4fc; color: var(--blue); }
.page-hero--standard { min-height: 340px; padding-block: 40px; background: var(--paper); }
.page-hero-grid { display: block; max-width: var(--max); }

/* Welcome dialog loads only during the first visit in a session. */
.brand-entry { --entry-lockup-width: min(42vw,500px); position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: #081421; color: #fff; }
.brand-entry-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; animation: kops-film-reveal 1.9s cubic-bezier(.2,.65,.25,1) both; }
.brand-entry:not([hidden]) { animation: kops-entry-fade 1.35s cubic-bezier(.2,.65,.25,1) both; }
.brand-entry.is-closing { animation: none; opacity: 0; transition: opacity .55s ease; }
.brand-entry.is-paused, .brand-entry.is-paused *, .brand-entry.is-paused *::before, .brand-entry.is-paused *::after { animation-play-state: paused !important; }
.brand-entry-content { position: absolute; top: max(24px,env(safe-area-inset-top)); right: max(24px,env(safe-area-inset-right)); }
.brand-entry-content .button { min-height: 44px; padding: 12px 18px; border: 1px solid #ffffff40; background: #ffffff12; color: #fff; font-size: 13px; backdrop-filter: blur(14px); }
.brand-entry-content .button:hover { background: #ffffff26; border-color: #ffffff80; }
body.entry-open { overflow: hidden; }
@keyframes kops-entry-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes kops-film-reveal { from { opacity: 0; } to { opacity: 1; } }
@supports not (backdrop-filter: blur(6px)) {
  .hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy { background: rgba(16,35,60,.88); }
}
@media (max-width: 1400px) {
  .brand { --brand-width: 180px; }
  .header-inner { min-height: 96px; }
}
@media (max-width: 1279px) {
  .menu-toggle { display: flex; }
  .site-header nav { position: absolute; top: 100%; right: 0; left: 0; display: none; max-height: calc(100dvh - 96px); overflow: auto; padding: 16px var(--gutter) 24px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 14px 20px #10233c12; }
  .site-header nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .site-header nav a { padding-block: 12px; font-size: 16px; }
}
@media (max-width: 950px) {
  .brand { --brand-width: 168px; }
  .header-inner { min-height: 84px; }
}
@media (max-width: 640px) {
  .header-inner { min-height: 80px; gap: 16px; }
  .brand { --brand-width: 170px; }
  .site-header nav { max-height: calc(100dvh - 80px); }
  .hero, .staffing-hero, .sector-hero, .story-hero { height: 600px; min-height: 600px; }
  .hero-content, .staffing-content, .sector-hero-content, .story-hero-content { padding-block: 24px 84px; }
  .hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy { width: 100%; padding: 18px; }
  :is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) h1 { margin-bottom: 20px; }
  :is(.hero-copy, .staffing-copy, .sector-hero-copy, .story-hero-copy) .lead, .hero-copy .hero-intro { font-size: 15px; line-height: 1.65; }
  .hero-video, .staffing-slide img, .sector-hero-image, .story-hero-image { object-position: 65% 28%; }
  .hero-copy .actions, .staffing-copy .actions { align-items: stretch; flex-direction: column; }
  .hero-copy .button, .staffing-copy .button { width: 100%; }
  .hero-bottom { bottom: 18px; }
  .brand-entry-content { top: max(16px,env(safe-area-inset-top)); right: 16px; }
  body.admin-bar .site-header { top: 46px; }
}
@media (max-width: 380px) {
  .brand { --brand-width: 152px; }
  .menu-toggle { font-size: 13px; padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-entry:not([hidden]), .brand-entry-video { animation: none; opacity: 1; }
}

/* The video is a light stage; the header's exact logo asset sits above it. */

.entry-sequence { position: absolute; z-index: 2; inset: 0; overflow: hidden; text-align: center; pointer-events: none; }
.entry-sequence::before { position: absolute; z-index: 0; inset: 0; background: radial-gradient(ellipse 70% 25% at 50% 38%,#e0e9f1 0,#afc2d2 36%,#385873 67%,transparent 100%),radial-gradient(ellipse at 50% 40%,#0b2844 0,#081b2e 48%,#06111d 100%); content: ""; opacity: 0; }
.entry-lockup, .entry-sectors, .entry-origin { position: absolute; z-index: 1; left: 50%; }
.entry-lockup { top: 39%; width: var(--entry-lockup-width); display: grid; justify-items: center; transform: translate(-50%,-50%); }
.entry-logo { display: block; width: 100%; max-width: none; height: auto; opacity: 0; transform: translateY(12px) scale(.955); }
.entry-tagline { display: block; width: 100%; max-width: none; height: auto; margin-top: 5px; opacity: 0; transform: translateY(8px); filter: brightness(0); }
.entry-sectors { top: 61%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(8px,1.25vw,18px); width: min(1120px,92vw); margin: 0; padding: 0; list-style: none; transform: translateX(-50%); }
.entry-sectors li { position: relative; display: flex; min-height: 84px; align-items: center; justify-content: flex-start; gap: 11px; overflow: hidden; padding: 12px clamp(10px,1.1vw,18px); border: 1px solid rgba(200,226,250,.36); border-radius: 9px; background: #0a2035; box-shadow: 0 12px 36px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.14); color: #f6f9fd; font-size: clamp(11px,.95vw,15px); font-weight: 600; letter-spacing: .015em; line-height: 1.35; opacity: 0; transform: translateY(16px) scale(.985); backdrop-filter: blur(10px) saturate(125%); -webkit-backdrop-filter: blur(10px) saturate(125%); }
.entry-sector-image { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 40%; opacity: .7; transform: scale(1.025); }
.entry-sectors li::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(5,17,30,.78),rgba(5,17,30,.43) 60%,rgba(5,17,30,.22)); content: ""; }
.entry-sectors li::after { position: absolute; z-index: 3; top: 0; bottom: 0; left: -70%; width: 44%; background: linear-gradient(90deg,transparent,rgba(120,188,255,.3),transparent); content: ""; transform: skewX(-20deg); }
.entry-sectors li .entry-sector-no, .entry-sectors li .entry-sector-label { position: relative; z-index: 2; }
.entry-sectors li .entry-sector-no { display: grid; flex: 0 0 29px; width: 29px; height: 29px; place-items: center; border: 1px solid rgba(219,237,255,.45); border-radius: 50%; background: rgba(6,24,41,.72); color: #c6e3ff; font-size: 10px; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.entry-sectors li .entry-sector-label { color: #fff; font-size: clamp(11px,.95vw,15px); font-weight: 650; letter-spacing: .015em; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.entry-origin { top: 79%; margin: 0; color: rgba(231,240,249,.82); font-size: 12px; letter-spacing: .12em; opacity: 0; transform: translate(-50%,8px); white-space: nowrap; }
.brand-entry.is-playing .entry-logo { animation: entry-logo-in 2.6s .35s cubic-bezier(.18,.72,.22,1) both; }
.brand-entry.is-playing .entry-tagline { animation: entry-tagline-in .75s 3.65s cubic-bezier(.18,.72,.22,1) both; }
.brand-entry.is-playing .entry-sectors li { animation: entry-sector-in .7s cubic-bezier(.16,.78,.25,1) both; }
.brand-entry.is-playing .entry-sectors li:nth-child(1) { animation-delay: 4.4s; }
.brand-entry.is-playing .entry-sectors li:nth-child(2) { animation-delay: 4.95s; }
.brand-entry.is-playing .entry-sectors li:nth-child(3) { animation-delay: 5.5s; }
.brand-entry.is-playing .entry-sectors li:nth-child(4) { animation-delay: 6.05s; }
.brand-entry.is-playing .entry-sectors li::after { animation: entry-card-glint .9s calc(4.75s + var(--entry-step) * .55s) ease-out both; }
.brand-entry.is-playing .entry-origin { animation: entry-origin-in .7s 6.9s ease-out both; }
.brand-entry-content { z-index: 4; }
.brand-entry-content .button { opacity: 0; animation: entry-skip-in .55s 1.3s ease-out both; }
.brand-entry-content .button:focus-visible { outline-color: #9bcaff; }
@keyframes entry-logo-in { 0% { opacity: 0; transform: translateY(12px) scale(.955); filter: blur(7px); } 100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
@keyframes entry-tagline-in { 0% { opacity: 0; transform: translateY(8px); filter: brightness(0) blur(5px); } 100% { opacity: .96; transform: translateY(0); filter: brightness(0) blur(0); } }
@keyframes entry-sector-in { to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes entry-card-glint { 0% { left: -70%; } 100% { left: 140%; } }
@keyframes entry-origin-in { to { opacity: 1; transform: translate(-50%,0); } }
@keyframes entry-skip-in { to { opacity: 1; } }
@media(max-width:760px) {
  .brand-entry { --entry-lockup-width: min(66vw,320px); }
  .entry-lockup { top: 38%; }
  .entry-sectors { top: 55%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; width: min(440px,92vw); }
  .entry-sectors li { min-height: 58px; gap: 7px; padding: 8px 7px; font-size: 11px; }
  .entry-sectors li .entry-sector-no { flex-basis: 24px; width: 24px; height: 24px; font-size: 9px; }
  .entry-sectors li .entry-sector-label { font-size: 10px; }
  .entry-origin { top: 70%; font-size: 9px; letter-spacing: .1em; }
}
@media(max-height:620px) and (min-width:641px) {
  .entry-lockup { top: 35%; }
  .entry-sectors { top: 59%; }
  .entry-sectors li { min-height: 52px; }
  .entry-origin { top: 79%; }
}
@media(prefers-reduced-motion:reduce) {
  .entry-sequence::before, .entry-lockup, .entry-logo, .entry-sectors li, .entry-sectors li::after, .entry-origin, .brand-entry-content .button { animation: none; }
  .entry-sector-image { transition: none; transform: none; }
  .entry-sequence::before { opacity: 1; }
  .entry-logo, .entry-tagline, .entry-sectors li, .entry-origin, .brand-entry-content .button { opacity: 1; transform: none; }
  .entry-logo, .entry-sectors li, .entry-origin, .brand-entry-content .button { filter: none; }
  .entry-tagline { filter: brightness(0); }
}



/* Failed autoplay still reveals a complete, static intro instead of a blank screen. */
.brand-entry.is-unavailable .brand-entry-video { display: none; }
.brand-entry.is-unavailable .entry-sequence::before { opacity: 1; animation: none; }
.brand-entry.is-unavailable .entry-lockup { top: 39%; }
.brand-entry.is-unavailable .entry-logo { opacity: 1; transform: none; filter: none; }
.brand-entry.is-unavailable .entry-tagline { opacity: 1; transform: none; filter: brightness(0); }
.brand-entry.is-unavailable .entry-sectors li,
.brand-entry.is-unavailable .entry-origin { opacity: 1; transform: translate(-50%,0); filter: none; animation: none; }
.brand-entry.is-unavailable .entry-sectors li { opacity: 1; transform: none; filter: none; animation: none; }
.brand-entry.is-unavailable .entry-sectors li::after { display: none; }
.brand-entry.is-unavailable .brand-entry-content .button { opacity: 1; animation: none; }
@media(max-width:640px) { .brand-entry.is-unavailable .entry-lockup { top: 38%; } .brand-entry.is-unavailable .entry-sectors { top: 55%; } .brand-entry.is-unavailable .entry-origin { top: 70%; } }
