:root {
  --ink: #07131c;
  --ink-2: #0d202b;
  --paper: #ecf4f4;
  --paper-2: #dfe9e9;
  --frost: #bdeaf0;
  --ice: #67d2df;
  --signal: #18b8ca;
  --warning: #ff7557;
  --muted: #86a0a8;
  --rule: rgba(189, 234, 240, .2);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", "Roboto Mono", Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--paper);
  background: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
.skip-link {
  position: fixed;
  left: 1rem;
  top: -5rem;
  z-index: 100;
  padding: .7rem 1rem;
  background: var(--paper);
  color: var(--ink);
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 72px;
  padding: 0 clamp(1rem, 4vw, 4.5rem);
  border-bottom: 1px solid var(--rule);
  background: rgba(7, 19, 28, .88);
  backdrop-filter: blur(18px);
}
.brand, .footer-brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-weight: 760;
  letter-spacing: -.02em;
  text-decoration: none;
}
.brand-mark { position: relative; width: 25px; height: 25px; display: inline-block; }
.brand-mark span { position: absolute; left: 11px; top: 1px; width: 2px; height: 23px; background: var(--ice); }
.brand-mark span:nth-child(2) { transform: rotate(60deg); }
.brand-mark span:nth-child(3) { transform: rotate(-60deg); }
.site-header nav { display: flex; gap: clamp(1rem, 3vw, 2.5rem); }
.site-header nav a {
  color: #b7cbd0;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.site-header nav a:hover, .site-header nav a:focus { color: var(--ice); }
.status-pill {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: #a9bec3;
  font-family: var(--mono);
  font-size: .7rem;
  text-transform: uppercase;
}
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: var(--ice); box-shadow: 0 0 12px var(--ice); }

.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3rem, 7vw, 7.5rem) clamp(1rem, 6vw, 7rem) 5rem;
  background:
    radial-gradient(circle at 50% 18%, rgba(24, 184, 202, .12), transparent 34%),
    linear-gradient(180deg, #07131c 0%, #091923 100%);
}
.hero-grid {
  position: absolute;
  inset: 0;
  opacity: .11;
  background-image: linear-gradient(var(--frost) 1px, transparent 1px), linear-gradient(90deg, var(--frost) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, black, transparent 70%);
}
.eyebrow, .panel-head, .section-lead, .hero-copy, .map-panel { position: relative; }
.eyebrow {
  display: flex;
  justify-content: space-between;
  max-width: 1240px;
  margin: 0 auto 3rem;
  color: #8da5ab;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-copy { max-width: 960px; margin: 0 auto 5rem; text-align: center; }
.signal-label { margin: 0; color: var(--ice); font-family: var(--mono); font-size: .78rem; letter-spacing: .15em; text-transform: uppercase; }
.hero h1 {
  margin: .2rem 0 0;
  font-size: clamp(7rem, 22vw, 18rem);
  font-weight: 780;
  letter-spacing: -.085em;
  line-height: .84;
  text-shadow: 0 0 70px rgba(103, 210, 223, .16);
}
.hero h1 sup { position: relative; top: -1.5em; margin-left: .07em; color: var(--ice); font-family: var(--mono); font-size: .16em; letter-spacing: 0; }
.hero-deck { max-width: 720px; margin: 2rem auto 0; color: #b9cbd0; font-size: clamp(1.15rem, 2.1vw, 1.65rem); line-height: 1.4; }
.hero-deck strong { color: var(--paper); font-weight: 600; }
.hero-note { margin-top: 1.3rem; color: #738c93; font-family: var(--mono); font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }

.map-panel { max-width: 1240px; margin: 0 auto; padding-top: 2rem; border-top: 1px solid var(--rule); }
.panel-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.section-index { margin: 0 0 .9rem; color: var(--ice); font-family: var(--mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.panel-head h2, .section-lead h2 { margin: 0; max-width: 730px; font-size: clamp(2rem, 4vw, 4rem); line-height: 1.03; letter-spacing: -.045em; }
.panel-head h2 { max-width: 580px; font-size: clamp(1.5rem, 3vw, 2.8rem); }
.map-legend { display: flex; flex-wrap: wrap; justify-content: end; gap: 1rem; color: #95aeb4; font-family: var(--mono); font-size: .62rem; text-transform: uppercase; }
.map-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.map-legend i { width: 9px; height: 9px; border-radius: 2px; }
.legend-low { background: #1b6e7c; }.legend-high { background: var(--ice); }.legend-none { background: #20333d; border: 1px dashed #536a72; }
.map-wrap { position: relative; min-height: 520px; margin-top: 1.5rem; border: 1px solid var(--rule); background: rgba(5, 16, 23, .65); }
.europe-map { display: block; width: min(100%, 1000px); height: auto; margin: 0 auto; padding: .35rem; }
.map-source { position: absolute; left: 1.5rem; bottom: 1.1rem; margin: 0; color: #78959c; font-family: var(--mono); font-size: .59rem; letter-spacing: .02em; }
.map-callout { position: absolute; right: 1.5rem; bottom: 1.5rem; display: flex; gap: .8rem; max-width: 310px; padding: 1rem; border: 1px solid rgba(103, 210, 223, .3); background: rgba(7, 19, 28, .92); color: #aec2c7; font-size: .78rem; }
.map-callout p { margin: 0; }.map-callout strong { color: var(--paper); }
.pulse-dot { flex: 0 0 auto; width: 9px; height: 9px; margin-top: .35rem; border-radius: 50%; background: var(--ice); box-shadow: 0 0 0 5px rgba(103, 210, 223, .1); }

.evidence, .pathway, .breakdown, .action, .method { padding: clamp(5rem, 10vw, 10rem) clamp(1rem, 6vw, 7rem); }
.evidence { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); color: var(--ink); background: var(--paper); }
.evidence .section-index, .action .section-index { color: #087d8b; }
.evidence-body { max-width: 760px; }
.evidence-body > p { color: #38505a; font-size: 1.03rem; }
.evidence-body .lede { margin-top: 0; color: var(--ink); font-size: clamp(1.35rem, 2.6vw, 2.25rem); line-height: 1.35; letter-spacing: -.025em; }
.source-strip { margin-top: 3rem; border-top: 1px solid #afc2c4; }
.source-strip a { display: grid; grid-template-columns: 1fr 1.8fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid #afc2c4; text-decoration: none; }
.source-strip a:hover strong { color: #087d8b; }
.source-strip span { color: #60777c; font-family: var(--mono); font-size: .68rem; text-transform: uppercase; }.source-strip strong { font-size: .95rem; }.source-strip i { font-style: normal; }

.pathway { background: #102a35; }
.pathway-inner { max-width: 1240px; margin: 0 auto; }
.pathway-intro { max-width: 900px; }
.pathway-intro h2 { max-width: 850px; margin: 0; font-size: clamp(2.2rem, 4.6vw, 4.8rem); line-height: 1.04; letter-spacing: -.045em; }
.pathway-intro > p:last-child { max-width: 700px; margin: 1.5rem 0 0; color: #aec5ca; font-size: 1.06rem; }
.pathway-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 4rem 0 1.5rem; padding: 1px; list-style: none; background: #3b626d; }
.pathway-steps li { min-height: 280px; padding: clamp(1.3rem, 2.4vw, 2.3rem); background: #0b222c; }
.pathway-steps li > span { color: var(--ice); font-family: var(--mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.pathway-steps h3 { margin: 2.5rem 0 1rem; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.2; letter-spacing: -.02em; }
.pathway-steps p { margin: 0; color: #acc3c8; font-size: .86rem; }
.pathway-boundary { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; padding: 1.4rem 1.7rem; border-left: 3px solid var(--ice); background: #173743; }
.pathway-boundary strong { color: var(--frost); font-size: 1rem; }
.pathway-boundary p { max-width: 850px; margin: 0; color: #c3d3d7; font-size: .88rem; }
.pathway-sources { margin: 1.3rem 0 0; color: #91abb2; font-family: var(--mono); font-size: .68rem; }
.pathway-sources a { color: var(--frost); text-underline-offset: .2em; }

.breakdown { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(3rem, 7vw, 8rem); background: var(--ink-2); }
.sticky-lead { align-self: start; position: sticky; top: 110px; }
.sticky-lead > p:not(.section-index) { max-width: 470px; color: #9ab0b6; }
.snapshot-stamp { display: grid; grid-template-columns: 1fr auto; gap: .1rem 1rem; max-width: 380px; margin-top: 3rem; padding: 1.2rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-family: var(--mono); }
.snapshot-stamp span, .snapshot-stamp small { color: #779097; font-size: .66rem; text-transform: uppercase; }.snapshot-stamp strong { grid-row: span 2; color: var(--ice); }
.charts { min-width: 0; }
.chart-block { margin-bottom: 5rem; }
.chart-title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; }
.chart-title h3 { margin: 0; font-size: 1.5rem; letter-spacing: -.02em; }.chart-title span { color: #769198; font-family: var(--mono); font-size: .65rem; text-transform: uppercase; }
.bar-chart { display: grid; gap: 1rem; }
.bar-row { display: grid; grid-template-columns: minmax(110px, 170px) minmax(100px, 1fr) 62px; gap: 1rem; align-items: center; font-size: .86rem; }
.bar-row > div { height: 9px; background: #1a303a; overflow: hidden; }
.bar-row i { display: block; width: var(--value); height: 100%; background: linear-gradient(90deg, #167c8d, var(--ice)); }
.vendor-chart .bar-row i { background: linear-gradient(90deg, #1c7180, #74bec7); }
.bar-row strong { text-align: right; color: var(--frost); font-family: var(--mono); font-size: .8rem; }
.depth-block { margin: 0 0 5rem; padding: 2rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.depth-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.depth-metrics > div { padding: 1.2rem; border: 1px solid var(--rule); background: #102833; }
.depth-metrics strong { display: block; margin-bottom: .65rem; color: var(--ice); font-family: var(--mono); font-size: clamp(1.45rem, 2.4vw, 2.2rem); line-height: 1; }
.depth-metrics span { display: block; max-width: 180px; color: #a9bdc1; font-size: .72rem; line-height: 1.4; }
.depth-note { max-width: 700px; margin: 1.5rem 0 0; color: #b2c4c8; font-size: .85rem; }
.depth-window { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0 0; color: #7f9da5; font-family: var(--mono); font-size: .67rem; text-transform: uppercase; }
.trend-block { padding-top: 3rem; border-top: 1px solid var(--rule); }
.trend-grid { display: grid; grid-template-columns: 140px 1fr; gap: 2rem; align-items: center; }
.trend-number strong { display: block; color: var(--ice); font-family: var(--mono); font-size: 4rem; line-height: 1; }.trend-number span { color: #79949b; font-size: .75rem; }
.trend-plot svg { width: 100%; height: auto; }.gridline { fill: none; stroke: rgba(189,234,240,.12); }.trend-line { fill: none; stroke: var(--ice); stroke-width: 3; }.trend-point { fill: var(--warning); stroke: var(--ink-2); stroke-width: 4; }
.trend-plot p { margin: 0; max-width: 580px; color: #8da6ac; font-size: .78rem; }

.action { color: var(--ink); background: #d8e5e5; }
.action .section-lead { max-width: 900px; }
.action-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 5rem; background: #afc2c4; border: 1px solid #afc2c4; }
.action-paths article { padding: clamp(2rem, 5vw, 4.5rem); background: var(--paper); }
.audience { color: #087d8b; font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.action-paths h3 { max-width: 560px; margin: 1.5rem 0 2.5rem; font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1.1; letter-spacing: -.035em; }
.action-paths ol, .action-paths ul.reading-notes { margin: 0 0 2rem; padding: 0; list-style: none; }
.action-paths li { display: grid; grid-template-columns: 40px 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid #bdcbcd; }.action-paths li span { color: #087d8b; font-family: var(--mono); font-size: .7rem; }.action-paths li p { margin: 0; }
.action-link { display: inline-flex; justify-content: space-between; gap: 2rem; min-width: 260px; padding: .9rem 1rem; color: var(--paper); background: var(--ink); text-decoration: none; }.action-link:hover { background: #087d8b; }.action-link i { font-style: normal; }
.action-paths > article > p { color: #405760; font-size: 1.05rem; }
.action-paths dl { margin-top: 2rem; border-top: 1px solid #bdcbcd; }.action-paths dl div { display: grid; grid-template-columns: 110px 1fr; padding: .8rem 0; border-bottom: 1px solid #bdcbcd; }.action-paths dt { color: #60777c; font-family: var(--mono); font-size: .67rem; text-transform: uppercase; }.action-paths dd { margin: 0; font-size: .9rem; }

.method { background: #061119; }
.method .section-lead { max-width: 900px; }
.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 5rem; border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.method-grid article { min-height: 300px; padding: 1.8rem; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }.method-grid h3 { margin: 0 0 1rem; font-size: 1.15rem; }.method-grid p { color: #8ba2a8; font-size: .85rem; }
.scope-line { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-top: 3rem; color: #80999f; font-size: .8rem; }.scope-line p { margin: 0; }.scope-line strong { display: block; margin-bottom: .45rem; color: var(--frost); font-family: var(--mono); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }

footer { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr auto; gap: 2rem; align-items: center; padding: 2rem clamp(1rem, 6vw, 7rem); border-top: 1px solid var(--rule); color: #769097; background: #040c11; font-size: .72rem; }
.footer-brand { color: var(--paper); }.review-note { color: #b78678; }footer a { justify-self: end; color: var(--frost); text-decoration: none; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }.site-header nav { display: none; }.status-pill { grid-column: 2; }
  .evidence, .breakdown { grid-template-columns: 1fr; }.sticky-lead { position: static; }.action .section-lead, .method .section-lead { grid-template-columns: 1fr; }.action .section-lead h2, .method .section-lead h2 { grid-column: 1; }.action-paths { grid-template-columns: 1fr; }.method-grid { grid-template-columns: 1fr 1fr; }.scope-line { grid-template-columns: 1fr; }.panel-head { align-items: start; flex-direction: column; }.map-legend { justify-content: start; }.map-wrap { min-height: 0; }.map-callout { position: static; margin: 1rem; }.trend-grid { grid-template-columns: 1fr; }footer { grid-template-columns: 1fr 1fr; }
  .pathway-intro { grid-template-columns: 1fr; }.pathway-intro .section-index { grid-row: auto; }.pathway-intro > p:last-child { grid-column: 1; }.pathway-steps { grid-template-columns: repeat(2, 1fr); }.pathway-boundary { grid-template-columns: 1fr; gap: .5rem; }
}

@media (max-width: 560px) {
  .pathway-steps { grid-template-columns: 1fr; margin-top: 2.5rem; }.pathway-steps li { min-height: 0; }.pathway-steps h3 { margin-top: 1.5rem; }
  .depth-metrics { grid-template-columns: 1fr; }.depth-metrics > div { padding: 1rem; }
  .hero { padding-left: .8rem; padding-right: .8rem; }.hero h1 { font-size: 27vw; }.eyebrow span:last-child, .status-pill { display: none; }.site-header { grid-template-columns: 1fr; }
  .europe-map { padding: .2rem; }.map-source { position: static; padding: 0 1rem; }.bar-row { grid-template-columns: 95px 1fr 52px; gap: .6rem; }.method-grid { grid-template-columns: 1fr; }.method-grid article { min-height: auto; }.method-grid h3 { margin-top: 2rem; }.action-paths dl div { grid-template-columns: 90px 1fr; }footer { grid-template-columns: 1fr; }.footer-brand, footer a { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
