@font-face { font-family: "Manrope Variable"; src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2"); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Newsreader Variable"; src: url("../fonts/newsreader-latin-wght-normal.woff2") format("woff2"); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: "Newsreader Variable"; src: url("../fonts/newsreader-latin-wght-italic.woff2") format("woff2"); font-style: italic; font-weight: 200 800; font-display: swap; }
:root {
  --cream: #f5f8fc;
  --cream-2: #d9e0e9;
  --paper: #101620;
  --ink: #f7f9fc;
  --ink-soft: #aab6c6;
  --petrol: #008cff;
  --petrol-deep: #05080d;
  --sage: #4c596b;
  --sage-light: #161e2a;
  --clay: #347aa1;
  --clay-light: #123b5a;
  --sand: #78e2ff;
  --line: rgba(171, 195, 225, .18);
  --shadow: 0 30px 90px rgba(0, 0, 0, .42);
  --shadow-soft: 0 20px 54px rgba(0, 0, 0, .26);
  --shadow-card: 0 28px 80px rgba(0, 0, 0, .38), 0 2px 12px rgba(0, 140, 255, .08);
  --line-strong: rgba(155, 205, 255, .34);
  --serif: "Newsreader Variable", Georgia, serif;
  --sans: "Manrope Variable", Arial, sans-serif;
  --shell: min(88vw, 1360px);
  --reading: 64ch;
  --section: clamp(7rem, 11vw, 12rem);
  --radius-sm: .5rem;
  --radius-md: 1.25rem;
  --radius-lg: 2.5rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--petrol-deep); color-scheme: dark; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 9% 7%, rgba(0,140,255,.13), transparent 27rem), radial-gradient(circle at 92% 26%, rgba(0,200,255,.07), transparent 30rem), #080b11; font-family: var(--sans); font-size: clamp(1rem, .96rem + .16vw, 1.125rem); line-height: 1.72; text-rendering: optimizeLegibility; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 30; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
body.menu-open { overflow: hidden; }
img, video, iframe { max-width: 100%; }
img { display: block; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--clay); outline-offset: 4px; }
::selection { background: var(--clay); color: #02070d; }

.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 200; background: var(--paper); padding: .75rem 1rem; border-radius: .4rem; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
.page-shell { width: var(--shell); margin-inline: auto; }
.reading { max-width: var(--reading); }
.section { padding-block: var(--section); position: relative; }
.section--tight { padding-block: clamp(3.5rem, 6vw, 6rem); }
.section--dark { color: var(--cream); background: #03060a; }
.section--paper {
  --paper: #ffffff;
  --ink: #07111d;
  --ink-soft: #526171;
  --line: rgba(12, 43, 68, .15);
  --line-strong: rgba(0, 126, 189, .3);
  --clay: #007fbd;
  --sand: #036b9d;
  color: var(--ink);
  background:
    radial-gradient(circle at 92% 14%, rgba(0, 164, 224, .11), transparent 25rem),
    radial-gradient(circle at 8% 88%, rgba(71, 112, 145, .07), transparent 28rem),
    linear-gradient(135deg, #ffffff 0%, #f6f9fb 52%, #edf4f8 100%);
  border-block: 1px solid rgba(18, 69, 102, .12);
}
.eyebrow { margin: 0 0 1rem; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; line-height: 1.3; font-weight: 700; color: var(--clay); }
.section--dark .eyebrow { color: var(--sand); }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, .display { font-family: var(--serif); font-weight: 430; letter-spacing: -.035em; line-height: .98; }
h1, h2, h3, h4 {
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.hero-copy h1 {
  overflow-wrap: normal;
  hyphens: none;
  -webkit-hyphens: none;
}
p, li, address, label {
  overflow-wrap: break-word;
}
h1 { font-size: clamp(3.2rem, 8vw, 8.6rem); margin-bottom: 1.7rem; }
h2 { font-size: clamp(2.5rem, 5.5vw, 6rem); margin-bottom: 1.6rem; }
h3 { font-size: clamp(1.25rem, 1.4vw, 1.6rem); line-height: 1.25; }
.lead { font-size: clamp(1.12rem, 1rem + .45vw, 1.5rem); line-height: 1.65; color: var(--ink-soft); max-width: 60ch; }
.section--dark .lead { color: rgba(243,239,230,.78); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.25rem; padding: .8rem 1.35rem; border: 1px solid #4d83a7; border-radius: 999px; background: linear-gradient(135deg, #245b83, #347aa1); color: #ffffff; box-shadow: 0 12px 34px rgba(31,85,126,.25), inset 0 1px rgba(255,255,255,.22); font-weight: 800; font-size: .9rem; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.button:hover { transform: translateY(-3px); background: linear-gradient(135deg, #1b496d, #28668f); border-color: #3d789f; box-shadow: 0 18px 42px rgba(31,85,126,.32); }
.button--ghost { background: rgba(255,255,255,.025); color: var(--ink); border-color: var(--line); box-shadow: none; }
.button--ghost:hover { color: var(--cream); }
.button--small { min-height: 2.8rem; padding: .65rem 1.05rem; font-size: .82rem; }
.text-link { display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid currentColor; }
