/* ============================================================
   AEGIS-Qᴴ  ·  Corporate website
   Palantir-style system  ·  black / white / blue / gray
   Bronze is reserved for the logo (emblem + wordmark) only.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, h4, p, figure, blockquote, ul, ol, dl { margin: 0; }
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; }
button { font: inherit; cursor: pointer; }

:root {
  --white:#FFFFFF; --paper:#FFFFFF; --mist:#F5F7FA; --mist-2:#EAEEF3;
  --black:#0C1A3C; --ink:#0B0E14; --ink-2:#10203F; --ink-3:#1A2B4A;
  --body:#0B0E14; --muted:#5E6772; --faint:#8B94A0;

  --blue:#1A56E8; --blue-dk:#1140B8; --blue-lt:#1A56E8; --blue-soft:#EAF0FE;
  --steel:#556A8A; --slate:#33465F;
  --bronze:#E0A233;                 /* legacy */
  --silver:#E2E8F1;                 /* LOGO ONLY (bright silver) */
  --hd:#122A5C;                     /* headings + leads on light (dark blue) */

  --secure:#1E7F52; --watch:#9A6B12; --gap:#B03A3A;

  --line:#E4E8EE; --line-2:#D2D9E2; --line-d:rgba(255,255,255,.13);

  --serif:"Cormorant Garamond","Hoefler Text",Georgia,serif;   /* wordmark only */
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --wrap:1200px; --rad:4px;
  --sh-1:0 1px 2px rgba(11,14,20,.06);
  --sh-2:0 16px 40px rgba(11,14,20,.10);
  --sh-3:0 30px 70px rgba(0,0,0,.45);
}

body { font-family:var(--sans); color:var(--body); background:var(--white); font-size:17px; line-height:1.72; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:var(--sans); color:var(--ink); line-height:1.06; letter-spacing:-.025em; font-weight:700; }
h1 { font-size:clamp(2.6rem,5.8vw,4.7rem); font-weight:800; letter-spacing:-.03em; }
h2 { font-size:clamp(1.9rem,4vw,3.1rem); font-weight:700; }
h3 { font-size:clamp(1.25rem,1.9vw,1.6rem); font-weight:700; letter-spacing:-.018em; }
h4 { font-size:1.08rem; font-weight:600; letter-spacing:-.01em; }
strong { color:var(--ink); font-weight:600; }
em { font-style:italic; }

.wrap { width:min(var(--wrap),100% - 3rem); margin-inline:auto; }
.narrow { width:min(810px,100% - 3rem); margin-inline:auto; }
section { padding:7rem 0; position:relative; }
section.tight { padding:4.5rem 0; }

.bg-paper,.bg-bone { background:var(--white); }
.bg-stone { background:var(--mist); }
.bg-ink,.bg-navy { background:var(--black); color:#E7ECF3; }
.bg-ink h1,.bg-ink h2,.bg-ink h3,.bg-ink h4,.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4 { color:#fff; }
.bg-ink p,.bg-navy p { color:#FFFFFF; }

.eyebrow { font-family:var(--sans); font-size:.9rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#FF0066; display:inline-flex; align-items:center; gap:.7rem; margin-bottom:1.3rem; }
.eyebrow::before,.eyebrow::after { content:""; width:26px; height:2px; background:currentColor; display:inline-block; flex:none; }
.bg-ink .eyebrow,.bg-navy .eyebrow,.cta .eyebrow { color:#FF0066; }
.center .eyebrow { justify-content:center; }

.lead { font-size:1.26rem; line-height:1.6; color:var(--hd); }
.bg-ink .lead,.bg-navy .lead,.cta .lead { color:#A7B4C8; }
.center { text-align:center; }
.section-head { max-width:820px; margin-bottom:3.4rem; margin-inline:auto; text-align:center; }
.section-head .eyebrow { justify-content:center; }
.center .section-head { margin-inline:auto; }
.section-head .lead { margin-top:1.1rem; margin-inline:auto; }

.accent { color:var(--blue); }
.bg-ink .accent,.bg-navy .accent,.cta .accent,.hero .accent { color:var(--blue-lt); }

/* ---------- Header ---------- */
.site-header { position:sticky; top:0; z-index:60; background:#0D2148; backdrop-filter:saturate(140%) blur(12px); border-bottom:1px solid var(--line-d); }
.nav { display:flex; align-items:center; justify-content:space-between; height:74px; gap:1.4rem; }
.brand { display:inline-flex; align-items:center; gap:.6rem; }
.brand-crest { width:36px; height:auto; filter:grayscale(1) brightness(1.7) contrast(1.05); transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.brand:hover .brand-crest { transform:scale(1.05); }
.brand-word { font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--silver); letter-spacing:.01em; }   /* silver logo */
.brand-word sup { color:inherit; font-size:.6em; top:-.55em; }
.menu { display:flex; align-items:center; gap:1.05rem; }
.menu a { font-size:.9rem; font-weight:500; color:#E2E8F1; padding:.4rem 0; position:relative; transition:color .15s; white-space:nowrap; }
.menu a::after { content:""; position:absolute; left:0; right:100%; bottom:-.2rem; height:2px; background:var(--blue); transition:right .28s ease; }
.menu a:hover { color:#fff; } .menu a:hover::after { right:0; }
.menu a[aria-current="page"] { color:#fff; } .menu a[aria-current="page"]::after { right:0; }
.btn-nav { background:var(--blue); color:#fff !important; padding:.55rem 1.15rem !important; border-radius:var(--rad); font-weight:600; transition:background .16s,transform .15s; }
.btn-nav::after { display:none; } .btn-nav:hover { background:var(--blue-dk); transform:translateY(-1px); }
.menu-toggle { display:none; background:none; border:1px solid var(--line-d); border-radius:var(--rad); padding:.5rem .7rem; color:#fff; }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; gap:.55rem; font-weight:600; font-size:.95rem; padding:.92rem 1.8rem; border-radius:var(--rad); border:1.5px solid transparent; transition:transform .16s,box-shadow .16s,background .16s,color .16s,border-color .16s; letter-spacing:-.01em; }
.btn svg { width:16px; height:16px; }
.btn-primary { background:var(--blue); color:#fff; box-shadow:0 6px 20px rgba(26,86,232,.28); }
.btn-primary:hover { background:var(--blue-dk); transform:translateY(-2px); box-shadow:0 12px 30px rgba(26,86,232,.4); }
.btn-ghost { background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn-ghost:hover { background:var(--ink); color:#fff; border-color:var(--ink); transform:translateY(-2px); }
.bg-ink .btn-ghost,.bg-navy .btn-ghost,.cta .btn-ghost,.hero .btn-ghost { color:#fff; border-color:rgba(255,255,255,.4); }
.bg-ink .btn-ghost:hover,.bg-navy .btn-ghost:hover,.cta .btn-ghost:hover,.hero .btn-ghost:hover { background:#fff; color:var(--ink); }
.btn-row { display:flex; flex-wrap:wrap; gap:1rem; }
.center .btn-row { justify-content:center; }

/* ---------- Alliance strip ---------- */
.alliance { background:var(--ink-2); border-bottom:1px solid var(--line-d); }
.alliance .wrap { display:flex; align-items:center; justify-content:center; gap:1.6rem; flex-wrap:wrap; padding:.55rem 0; }
.alliance span { font-family:var(--sans); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; }
.alliance a { transition:transform .15s; }
.alliance a b { font-family:var(--sans); font-weight:600; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-lt); border-bottom:1px solid transparent; padding-bottom:2px; transition:color .15s,border-color .15s; }
.alliance a:hover b { color:#fff; border-color:var(--blue-lt); }

/* ---------- HERO ---------- */
.hero { background:var(--black); color:#fff; position:relative; overflow:hidden; padding:7rem 0 6.5rem; }
.hero::before { content:""; position:absolute; inset:0; background:radial-gradient(1100px 560px at 74% -10%,rgba(26,86,232,.28),transparent 58%),radial-gradient(760px 440px at 4% 120%,rgba(46,82,140,.22),transparent 55%); animation:glow 10s ease-in-out infinite alternate; }
.hero::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(circle at 72% 30%,#000,transparent 72%); -webkit-mask-image:radial-gradient(circle at 72% 30%,#000,transparent 72%); }
.hero .wrap { position:relative; z-index:1; }
.hero-grid { display:grid; grid-template-columns:1.32fr .9fr; gap:3.5rem; align-items:center; }
.hero-inner { max-width:850px; margin-inline:auto; text-align:center; }
.hero-inner .eyebrow { justify-content:center; }
.hero-inner .lead { margin-inline:auto; }
.hero-inner .btn-row { justify-content:center; }
.hero-inner .hero-meta { justify-content:center; }
.hero-inner .hero-crest-wrap { margin-bottom:1.6rem; }
.hero-inner .hero-crest { width:min(180px,52%); }
.hero-inner .hero-lockup { margin-top:1rem; }
.hero-inner .hero-aura { width:300px; }
.hero h1 { color:#fff; margin-bottom:1.4rem; }
.hero h1 .accent { color:#fff; }
.hero-tag { font-family:var(--sans); font-weight:600; font-size:1.28rem; color:var(--blue-lt); margin-bottom:1.4rem; letter-spacing:-.01em; }
.hero .lead { color:#A7B4C8; max-width:42ch; }
.hero-crest-wrap { display:grid; place-items:center; position:relative; }
.hero-crest { width:min(330px,80%); filter:grayscale(1) brightness(1.55) contrast(1.03) drop-shadow(0 26px 50px rgba(0,0,0,.6)); animation:float 7s ease-in-out infinite; will-change:transform; position:relative; z-index:1; }
.hero-lockup { position:relative; z-index:1; text-align:center; margin-top:1.4rem; }
.hero-lockup .brand-word { font-size:clamp(2.1rem,4.6vw,3.2rem); letter-spacing:.03em; }
.hero-aura { position:absolute; top:44%; left:50%; width:min(440px,80%); aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; filter:blur(60px); opacity:.4; z-index:0; pointer-events:none; background:radial-gradient(circle,rgba(26,86,232,.9),rgba(46,82,140,.3) 60%,transparent 72%); animation:pulse 7s ease-in-out infinite; }
.hero-meta { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.9rem; }

/* ---------- Pills ---------- */
.pill { display:inline-flex; align-items:center; gap:.45rem; font-size:.74rem; font-weight:600; letter-spacing:.01em; padding:.42rem .9rem; border-radius:100px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); color:#E7ECF3; transition:border-color .2s,transform .2s; }
.pill:hover { transform:translateY(-2px); border-color:var(--blue-lt); }
.bg-paper .pill,.bg-stone .pill,.bg-bone .pill { background:var(--white); border-color:var(--line-2); color:var(--muted); }
.pill.maple { color:#E7ECF3; }
.pill.dot::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--blue-lt); }

/* ---------- Cards ---------- */
.grid { display:grid; gap:1.5rem; }
.g-2 { grid-template-columns:repeat(2,1fr); } .g-3 { grid-template-columns:repeat(3,1fr); } .g-4 { grid-template-columns:repeat(4,1fr); }
.card { position:relative; background:var(--white); border:1px solid var(--line); border-radius:8px; padding:2rem 1.9rem; transition:transform .2s ease,box-shadow .2s ease,border-color .2s; overflow:hidden; }
.card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.card:hover { transform:translateY(-6px); box-shadow:var(--sh-2); border-color:var(--line-2); }
.card:hover::before { transform:scaleX(1); }
.card h3,.card h4 { color:var(--ink); margin-bottom:.55rem; }
.card p { font-size:.98rem; color:var(--ink); }
.card .ico { width:46px; height:46px; margin-bottom:1.2rem; display:grid; place-items:center; border-radius:9px; background:var(--blue-soft); border:1px solid #D3E0FB; transition:transform .3s; }
.card:hover .ico { transform:translateY(-2px); }
.card .ico svg { width:23px; height:23px; stroke:var(--blue); fill:none; stroke-width:1.7; }
.card-num { font-family:var(--sans); font-size:1.2rem; font-weight:800; line-height:1; margin-bottom:.7rem; color:var(--blue); letter-spacing:-.02em; }
.bg-ink .card { background:#213A6E; border-color:#3A5789; }
.bg-ink .card h3,.bg-ink .card h4 { color:#fff; } .bg-ink .card p { color:#FFFFFF; }
.bg-ink .card .ico { background:rgba(26,86,232,.16); border-color:rgba(92,134,244,.3); }
.bg-ink .card .ico svg { stroke:var(--blue-lt); }

.card-list { display:grid; gap:1rem; }
.card-row { position:relative; background:var(--white); border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:var(--rad); padding:1.4rem 1.7rem; transition:transform .18s,box-shadow .18s; }
.card-row:hover { transform:translateX(4px); box-shadow:var(--sh-1); }
a.card-row { display:block; padding-right:2.8rem; }
a.card-row::after { content:"\203A"; position:absolute; right:1.4rem; top:50%; transform:translateY(-50%); color:var(--blue); font-size:1.5rem; line-height:1; opacity:.45; transition:opacity .18s,right .18s; }
a.card-row:hover::after { opacity:1; right:1.1rem; }
.card-row h4 { color:var(--ink); margin-bottom:.3rem; } .card-row p { font-size:.96rem; color:var(--ink); }
.bg-ink .card-row { background:#213A6E; color:#FFFFFF; border-color:#3A5789; border-left-color:var(--blue-lt); } .bg-ink .card-row h4 { color:#fff; }

/* ---------- Stats ---------- */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.stat { padding:.5rem 2rem; text-align:center; border-left:1px solid var(--line); }
.stat:first-child { border-left:none; }
.stat .num { font-family:var(--sans); font-size:3.4rem; font-weight:800; line-height:1; letter-spacing:-.03em; color:var(--blue); }
.stat .lbl { font-size:.82rem; letter-spacing:.01em; color:var(--muted); margin-top:.7rem; }
.bg-ink .stat { border-left-color:#3A5789; } .bg-ink .stat .num { color:var(--blue-lt); } .bg-ink .stat .lbl { color:#98A1AC; }

/* ---------- Checks ---------- */
.checks { display:grid; gap:1rem; }
.checks li { display:flex; gap:.8rem; align-items:flex-start; color:var(--body); }
.checks li::before { content:""; flex:none; margin-top:.3rem; width:18px; height:18px; border-radius:50%; background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat; }
.checks.light li { color:#FFFFFF; }

/* ---------- Pull quote ---------- */
.pullquote { font-family:var(--sans); font-weight:600; font-size:clamp(1.7rem,3.4vw,2.6rem); line-height:1.22; color:var(--ink); text-align:center; max-width:1000px; margin:0 auto; letter-spacing:-.025em; }
.bg-ink .pullquote,.bg-navy .pullquote { color:#fff; }
.quote-cite { display:block; margin-top:1.5rem; font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); }
.bg-ink .quote-cite { color:var(--blue-lt); }

/* ---------- Workflow ---------- */
.flow { display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem; }
.flow-step { background:#213A6E; border:1px solid #3A5789; border-radius:8px; padding:1.4rem 1.1rem; text-align:center; cursor:pointer; transition:transform .2s,border-color .2s,background .2s; }
.flow-step:hover,.flow-step.active { transform:translateY(-5px); border-color:var(--blue-lt); background:#171d29; }
.flow-step .tag { font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:#8B94A0; }
.flow-step h4 { color:#fff; margin:.5rem 0 .4rem; font-size:1rem; }
.flow-step p { font-size:.84rem; color:#DFE5EE; }
.flow-step.gate { border-color:rgba(92,134,244,.5); } .flow-step.gate .tag { color:var(--blue-lt); }
.flow-step.engine { background:var(--blue); border-color:var(--blue-dk); } .flow-step.engine .tag { color:#fff; } .flow-step.engine h4 { color:#fff; } .flow-step.engine p { color:#DCE6FF; }
.flow-step.out { background:var(--blue); border-color:var(--blue); } .flow-step.out .tag { color:#CFE0FF; } .flow-step.out h4 { color:#fff; } .flow-step.out p { color:#DCE6FF; }

.env { display:inline-flex; gap:.5rem; flex-wrap:wrap; }
.chip { font-size:.72rem; font-weight:700; letter-spacing:.03em; padding:.32rem .75rem; border-radius:100px; }
.chip.secure { background:#E4F1EA; color:var(--secure); border:1px solid #C3E1D0; }
.chip.watch { background:#F3ECDA; color:var(--watch); border:1px solid #E4D4AC; }
.chip.gap { background:#F4E3E3; color:var(--gap); border:1px solid #E7C4C4; }

/* ---------- Split ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.split.rev .split-media { order:-1; }
.media-frame { border:1px solid var(--line); border-radius:8px; background:var(--white); box-shadow:var(--sh-2); overflow:hidden; transition:transform .3s,box-shadow .3s; }
.media-frame:hover { transform:translateY(-4px); box-shadow:var(--sh-3); }
.bg-ink .media-frame { border-color:#3A5789; background:#213A6E; }
.media-frame img { width:100%; display:block; }
.media-cap { font-size:.8rem; color:var(--faint); padding:.8rem 1.1rem; border-top:1px solid var(--line); }
.bg-ink .media-cap { border-top-color:#3A5789; color:#E7ECF3; }

/* ---------- Region ---------- */
.region { display:grid; gap:.8rem; }
.region-row { display:flex; gap:1rem; align-items:center; padding:1.1rem 1.3rem; background:var(--white); border:1px solid var(--line); border-radius:8px; transition:transform .18s,border-color .18s,box-shadow .18s; }
.region-row:hover { transform:translateX(5px); border-color:var(--blue-lt); box-shadow:var(--sh-1); }
.region-row .rk { font-family:var(--sans); font-size:1.4rem; font-weight:800; width:2ch; text-align:center; color:var(--blue); letter-spacing:-.03em; }
.region-row h4 { color:var(--ink); font-size:1rem; margin-bottom:.1rem; }
.region-row p { font-size:.88rem; color:var(--ink); }
.bg-ink .region-row { background:#213A6E; border-color:#3A5789; } .bg-ink .region-row h4 { color:#fff; } .bg-ink .region-row p { color:#FFFFFF; }

/* ---------- People ---------- */
.people { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.person { background:var(--white); border:1px solid var(--line); border-radius:8px; padding:1.7rem; transition:transform .2s,box-shadow .2s,border-color .2s; }
.person:hover { transform:translateY(-5px); box-shadow:var(--sh-2); border-color:var(--line-2); }
.person .avatar { width:56px; height:56px; border-radius:50%; margin-bottom:1rem; display:grid; place-items:center; font-family:var(--sans); font-weight:700; font-size:1.15rem; color:#fff; background:linear-gradient(150deg,var(--slate),var(--blue)); letter-spacing:-.01em; }
.person h4 { color:var(--ink); margin-bottom:.15rem; }
.person .role { font-size:.8rem; font-weight:600; color:var(--blue); margin-bottom:.7rem; }
.person p { font-size:.92rem; color:var(--ink); }
.person.lead-card { grid-column:span 3; display:grid; grid-template-columns:auto 1fr; gap:1.7rem; align-items:start; }
.person.lead-card .avatar { width:78px; height:78px; font-size:1.6rem; }
.avatar.photo { overflow:hidden; padding:0; } .avatar.photo img { width:100%; height:100%; object-fit:cover; }
.group-label { font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); margin:3.6rem 0 1.5rem; display:flex; align-items:center; gap:1rem; }
.group-label:first-child { margin-top:0; }
.group-label::after { content:""; flex:1; height:1px; background:var(--line-2); }

/* ---------- Definition list ---------- */
.deflist { display:grid; border-top:1px solid var(--line); }
.defrow { display:grid; grid-template-columns:250px 1fr; gap:1.6rem; padding:1.5rem 0; border-bottom:1px solid var(--line); transition:background .2s; }
.defrow:hover { background:var(--mist); }
.defrow dt { font-family:var(--sans); font-size:1.15rem; font-weight:700; color:var(--ink); padding-left:.4rem; letter-spacing:-.01em; }
.defrow dd { color:var(--ink); font-size:.98rem; }

/* ---------- Notices ---------- */
.notice { border-left:3px solid var(--blue); background:var(--mist); border-radius:0 var(--rad) var(--rad) 0; padding:1.3rem 1.6rem; font-size:.95rem; color:var(--muted); }
.notice strong { color:var(--ink); }
.notice.maple { border-left-color:var(--slate); }
.bg-ink .notice { background:#213A6E; color:#FFFFFF; } .bg-ink .notice strong { color:#fff; }

/* ---------- CTA ---------- */
.cta { background:var(--black); color:#fff; text-align:center; position:relative; overflow:hidden; }
.cta::after { content:""; position:absolute; inset:0; background:radial-gradient(820px 380px at 84% 0%,rgba(26,86,232,.24),transparent 60%); animation:glow 10s ease-in-out infinite alternate; }
.cta .wrap { position:relative; z-index:1; }
.cta h2 { color:#fff; } .cta p { color:#EAEEF4; max-width:640px; margin:1.1rem auto 2rem; }

/* ---------- Contact ---------- */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; }
.contact-card { background:var(--white); border:1px solid var(--line); border-radius:10px; padding:2.2rem; box-shadow:var(--sh-1); }
.field { display:grid; gap:.4rem; margin-bottom:1.1rem; }
.field label { font-size:.82rem; font-weight:600; color:var(--ink); }
.field input,.field select,.field textarea { font:inherit; font-size:.95rem; padding:.8rem .9rem; color:var(--ink); border:1px solid var(--line-2); border-radius:var(--rad); background:var(--mist); transition:border-color .15s,box-shadow .15s; }
.field input:focus,.field select:focus,.field textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,86,232,.16); }
.contact-line { display:flex; gap:.9rem; align-items:flex-start; padding:1.1rem 0; border-bottom:1px solid var(--line); }
.contact-line .ci { flex:none; width:42px; height:42px; border-radius:9px; display:grid; place-items:center; background:var(--blue-soft); border:1px solid #D3E0FB; }
.contact-line .ci svg { width:19px; height:19px; stroke:var(--blue); fill:none; stroke-width:1.7; }
.contact-line a { color:var(--blue); font-weight:600; }

/* ---------- Footer ---------- */
.site-footer { background:#071531; color:#fff; padding:4.5rem 0 2rem; }
.foot-grid { display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:2.5rem; }
.foot-brand .lockup { display:flex; align-items:center; gap:.6rem; }
.foot-brand .brand-word { color:var(--silver); }
.foot-brand p { color:#fff; font-size:.92rem; margin-top:1rem; max-width:34ch; }
.foot-col h5 { color:#fff; font-family:var(--sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:1.1rem; }
.foot-col a { display:block; color:#fff; font-size:.93rem; padding:.32rem 0; transition:color .15s,padding-left .15s; }
.foot-col a:hover { color:#A7B4C8; padding-left:4px; }
.foot-bottom { border-top:1px solid rgba(255,255,255,.09); margin-top:3.2rem; padding-top:1.6rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.8rem; color:#fff; }
.foot-bottom .tagline { font-family:var(--sans); font-weight:600; color:#FF0066; font-size:.95rem; letter-spacing:-.01em; }
.foot-bottom .tag-attr { color:#8D97A4; font-weight:400; font-size:.82rem; letter-spacing:0; }

/* ---------- Interior banner ---------- */
.page-banner { background:var(--black); color:#fff; padding:5.5rem 0 4.4rem; position:relative; overflow:hidden; }
.page-banner::after { content:""; position:absolute; inset:0; opacity:.5;
  background:radial-gradient(900px 420px at 88% -25%,rgba(26,86,232,.22),transparent 60%),
  linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:auto,60px 60px,60px 60px; pointer-events:none; }
.page-banner .wrap { position:relative; z-index:1; }
.page-banner h1 { color:#fff; font-size:clamp(2.3rem,4.6vw,3.5rem); }
.page-banner .lead { margin-top:1.1rem; max-width:750px; color:#A7B4C8; }
.crumbs { font-size:1.05rem; font-weight:600; color:#C6D0DE; margin-bottom:1.1rem; letter-spacing:.04em; text-transform:uppercase; }
.crumbs a { color:var(--blue-lt); }

/* ---------- Ground-truth ---------- */
.moat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.moat-card { padding:1.9rem; border:1px solid #3A5789; border-radius:8px; background:#213A6E; transition:transform .2s,border-color .2s; }
.moat-card:hover { transform:translateY(-5px); border-color:var(--blue-lt); }
.moat-card .k { font-family:var(--sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--blue-lt); }
.moat-card h4 { color:#fff; margin:.55rem 0; } .moat-card p { color:#FFFFFF; font-size:.95rem; }
.line-rule { height:1px; background:var(--line); border:0; margin:0; }

/* ---------- Domain chips (blue/gray family) ---------- */
.domains { display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; }
.domain { font-size:.82rem; font-weight:600; letter-spacing:-.005em; padding:.45rem 1.05rem; border-radius:100px; border:1.5px solid; background:#fff; transition:transform .15s,background .15s,color .15s; }
.domain:hover { transform:translateY(-2px); }
.domain.d1 { color:#1A56E8; border-color:#BAcCF6; } .domain.d1:hover{ background:#1A56E8; color:#fff; }
.domain.d2 { color:#33465F; border-color:#C6CFDB; } .domain.d2:hover{ background:#33465F; color:#fff; }
.domain.d3 { color:#2E74C9; border-color:#BCD6F1; } .domain.d3:hover{ background:#2E74C9; color:#fff; }
.domain.d4 { color:#1E4E8C; border-color:#BDD0E8; } .domain.d4:hover{ background:#1E4E8C; color:#fff; }
.domain.d5 { color:#556A8A; border-color:#CBD3E0; } .domain.d5:hover{ background:#556A8A; color:#fff; }
.domain.d6 { color:#24344D; border-color:#C4CDDB; } .domain.d6:hover{ background:#24344D; color:#fff; }
.domain.d7{color:#1C6FB8;border-color:#BAD3EC}.domain.d7:hover{background:#1C6FB8;color:#fff}
.domain.d8{color:#24476E;border-color:#C3CFDE}.domain.d8:hover{background:#24476E;color:#fff}
.domain.d9{color:#3E6A9E;border-color:#C6D5E7}.domain.d9:hover{background:#3E6A9E;color:#fff}
.domain.d10{color:#4A5D78;border-color:#CBD3DF}.domain.d10:hover{background:#4A5D78;color:#fff}
.domain.d11{color:#26314A;border-color:#C4C9D6}.domain.d11:hover{background:#26314A;color:#fff}
.domain.d12{color:#2C6AB0;border-color:#BFD3EC}.domain.d12:hover{background:#2C6AB0;color:#fff}
.domain.d13{color:#445A7E;border-color:#C9D2E0}.domain.d13:hover{background:#445A7E;color:#fff}
.domain.d14{color:#1E4E8C;border-color:#BFCFE6}.domain.d14:hover{background:#1E4E8C;color:#fff}
.domain.d15{color:#38506E;border-color:#C7D0DE}.domain.d15:hover{background:#38506E;color:#fff}
.domain.d16{color:#2E5AA0;border-color:#C2D2EA}.domain.d16:hover{background:#2E5AA0;color:#fff}

.anchor { scroll-margin-top:92px; }

/* ---------- Reveal ---------- */
.js [data-reveal] { opacity:0; transform:translateY(20px); }
.js [data-reveal].in { opacity:1; transform:none; transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); }

@keyframes float { 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-12px) } }
@keyframes glow { 0%{ opacity:.7 } 100%{ opacity:1 } }
@keyframes pulse { 0%,100%{ opacity:.32; transform:translate(-50%,-50%) scale(1) } 50%{ opacity:.5; transform:translate(-50%,-50%) scale(1.06) } }

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .js [data-reveal] { opacity:1; transform:none; }
}

/* ---------- Responsive ---------- */
@media (max-width:980px) {
  section { padding:5rem 0; }
  .hero-grid { grid-template-columns:1fr; } .hero-crest-wrap { order:-1; } .hero-crest { width:190px; }
  .split,.contact-grid { grid-template-columns:1fr; gap:2.2rem; } .split.rev .split-media { order:0; }
  .g-4 { grid-template-columns:repeat(2,1fr); }
  .stats { grid-template-columns:repeat(2,1fr); gap:1.6rem 0; } .stat:nth-child(3){ border-left:none; }
  .flow,.moat-grid { grid-template-columns:1fr; }
  .people { grid-template-columns:repeat(2,1fr); }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .defrow { grid-template-columns:1fr; gap:.3rem; }
}
@media (max-width:820px) {
  .menu { display:none; position:absolute; top:74px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:#213A6E; border-bottom:1px solid var(--line-d); padding:.5rem 1.5rem 1.2rem; }
  .menu.open { display:flex; } .menu a { padding:.9rem 0; border-bottom:1px solid var(--line-d); } .menu a::after{ display:none; }
  .btn-nav { text-align:center; margin-top:.6rem; } .menu-toggle { display:inline-flex; align-items:center; gap:.4rem; }
}
@media (max-width:700px) {
  body { font-size:16px; }
  .g-2,.g-3,.g-4,.people,.stats,.contact-grid { grid-template-columns:1fr; } .stat { border-left:none; }
  .person.lead-card { grid-template-columns:1fr; } .foot-grid { grid-template-columns:1fr; }
  section { padding:4rem 0; }
}

/* ---------- Cosmic backdrops (Earth-from-space hero + themed banners) ---------- */
.hero-sky,.banner-sky { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.hero-sky svg,.banner-sky svg { position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-scrim { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,9,18,.82),rgba(6,9,18,.42) 44%,rgba(6,9,18,.12) 68%,rgba(6,9,18,.40)),linear-gradient(0deg,rgba(6,9,18,.66),transparent 46%); }
@keyframes earthdrift { from{transform:translateY(0) scale(1)} to{transform:translateY(-14px) scale(1.015)} }
.hero .wrap,.hero-crest-wrap { position:relative; z-index:2; }
.page-banner > .wrap { position:relative; z-index:2; }
.star { animation:twinkle 5s ease-in-out infinite; will-change:opacity; }
.star:nth-child(3n) { animation-duration:7s; }
.star:nth-child(4n) { animation-duration:4.2s; animation-delay:1.1s; }
.star:nth-child(5n) { animation-delay:2.2s; }
.star:nth-child(7n) { animation-duration:8.5s; animation-delay:.6s; }
@keyframes twinkle { 0%,100%{opacity:.22} 50%{opacity:.95} }
.banner-motif { position:absolute; right:-24px; top:50%; transform:translateY(-50%); width:300px; height:300px; z-index:1; opacity:.15; color:var(--blue-lt); pointer-events:none; }
.banner-motif svg { width:100%; height:100%; }
@media (prefers-reduced-motion: reduce){ .hero-sky,.star{ animation:none } }
@media (max-width:820px){ .banner-motif{ width:190px; right:-46px; opacity:.10 } }

.person p + p { margin-top:.9rem; }

/* ---------- Paragraph spacing (no run-on paragraphs) ---------- */
p + p { margin-top: 1rem; }
h1 + .lead, h2 + .lead, h3 + .lead, h4 + .lead { margin-top: .9rem; }
.split h2 + p, .split h3 + p, .split h4 + p,
.narrow h2 + p, .narrow h3 + p, .narrow h4 + p { margin-top: .85rem; }
/* keep multi-column and hero layouts from shifting */
.grid p + p, .hero p + p, .hero-meta p + p { margin-top: 0; }

/* box distinction (stand out from the section background) */
.card, .card-row, .region-row, .person, .contact-card, .moat-card { box-shadow: 0 2px 10px rgba(12,26,60,.07); }
.bg-ink .card, .bg-ink .card-row, .bg-ink .region-row, .bg-navy .card, .bg-navy .card-row, .moat-card, .flow-step { box-shadow: 0 6px 18px rgba(0,0,0,.30); }

/* ---------- Larger header logo (bar height unchanged, with edge clearance) ---------- */
.site-header .brand-crest { height:52px; width:auto; }
.site-header .brand-word { font-size:1.9rem; }

/* ===== language switcher bar ===== */
.lang-bar{background:#0b1a2e;border-bottom:1px solid rgba(255,255,255,.09)}
.lang-bar-inner{display:flex;align-items:center;gap:.42rem;padding:.36rem 0;flex-wrap:wrap}
.lang-bar-label{font-size:.95rem;line-height:1;margin-right:.15rem;opacity:.75}
.lang-flag{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid rgba(255,255,255,.17);border-radius:5px;padding:.22rem .55rem;cursor:pointer;color:#cdd8e6;font-family:inherit;font-size:.72rem;line-height:1;transition:background .15s,color .15s,border-color .15s}
.lang-flag:hover{background:rgba(255,255,255,.09);color:#fff}
.lang-flag.active{background:#1f5c86;border-color:#3f8fc0;color:#fff}
.lang-flag svg{display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.lang-code{font-weight:600;letter-spacing:.04em}
@media(max-width:640px){.lang-flag{padding:.2rem .4rem}.lang-flag .lang-code{display:none}}

/* ===== lock logo + AEGIS-Qᴴ wordmark on a single line ===== */
.brand{white-space:nowrap;flex-shrink:0}
.brand-word{white-space:nowrap;display:inline-block}
.brand-word sup{white-space:nowrap}
.foot-brand .lockup{white-space:nowrap;flex-shrink:0}
.foot-brand .brand-word{white-space:nowrap}
.site-header .brand{flex-shrink:0}
.site-header .brand-word{font-size:1.55rem;white-space:nowrap}
.site-header .brand-crest{height:44px}
.nav{gap:1rem}
