/* ============================================================
   ICELAND SPACE PARK — DESIGN SYSTEM v5, "DAYLIGHT"
   Light, quiet and photographic: white paper for the argument and
   the data, full-bleed photography and dark blocks for the moments
   that carry the place. The instrument language (mono labels,
   coordinates, the polar plot, the station clock) is kept, but as
   detail rather than decoration.
   No build step. No dependencies. Hand-authored.

   Contents
     1  Tokens              8  Content components
     2  Base                9  Data: specs, tables, charts
     3  Motion             10  Callouts
     4  Buttons & links    11  CTA & footer
     5  Masthead & nav     12  Prose
     6  Hero & page head   13  Responsive
     7  Sections
   ============================================================ */

/* ============================================================
   1 · TOKENS
   ============================================================ */
:root{
  /* paper */
  --paper:   #FFFFFF;
  --paper-2: #F4F7F5;
  --paper-3: #E9EEEA;
  --line:       #E2E8E3;
  --line-2:     #D2DBD5;
  --line-strong:#B4C0B8;

  /* ink — all ≥ 4.5:1 on paper and on paper-2 */
  --ink:   #0E1714;
  --ink-2: #47564F;
  --ink-3: #61706A;

  /* accent — the aurora green, darkened for light backgrounds */
  --accent:      #0B6E4A;
  --accent-2:    #085538;
  --accent-soft: #E7F3EC;
  --accent-ink:  #FFFFFF;

  /* the original phosphor green, kept for dark blocks */
  --phos: #46E0A0;

  /* dark blocks (hero, page-head banners, CTA, footer) */
  --dark:   #0A110F;
  --dark-2: #111B17;

  /* caution */
  --amber:      #8A5212;
  --amber-line: #D9A45C;
  --amber-wash: #FCF5EA;

  /* type */
  --f-disp: "Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-body: "IBM Plex Sans","Segoe UI",Helvetica,Arial,sans-serif;
  --f-mono: "IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --wide: 108%;

  --t-label: .75rem;
  --t-body:  1.0625rem;
  --t-lead:  clamp(1.0625rem, .4vw + .98rem, 1.22rem);
  --t-h3:    clamp(1.08rem, .25vw + 1rem, 1.2rem);
  --t-h2:    clamp(1.8rem, 1.5vw + 1.2rem, 2.6rem);
  --t-h1:    clamp(2.1rem, 2.8vw + 1.15rem, 3.6rem);
  --t-hero:  clamp(2.5rem, 4.4vw + 1rem, 5rem);

  --sec-y: clamp(72px, 7.5vw, 120px);
  --maxw: 1240px;
  --edge: clamp(20px, 3.2vw, 36px);
  --mast-h: 68px;
  --subnav-h: 48px;
  --radius: 3px;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease:     cubic-bezier(.25,.7,.25,1);
  --d-fast: 160ms; --d-base: 240ms; --d-slow: 640ms;

  --z-sub: 40; --z-mast: 50; --z-menu: 90; --z-skip: 100;
}

/* Dark blocks re-point the same tokens, so every component inside
   them keeps working without a second set of rules. */
.hero, .pagehead.has-media, .cta, .site-foot{
  --paper:   var(--dark);
  --paper-2: var(--dark-2);
  --paper-3: #1B2622;
  --line:       #22302B;
  --line-2:     #2C3B35;
  --line-strong:#3D4E47;
  --ink:   #F1F5F2;
  --ink-2: #B4C4BC;
  --ink-3: #8DA096;
  --accent:      var(--phos);
  --accent-2:    #7CF0BE;
  --accent-soft: rgba(70,224,160,.12);
  --accent-ink:  #04120C;
  color: var(--ink);
  background: var(--dark);
}

/* ============================================================
   2 · BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0; background:var(--paper); color:var(--ink-2);
  font-family:var(--f-body); font-size:var(--t-body); line-height:1.65;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
::selection{ background:var(--accent); color:#fff; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--edge); }
img,svg{ display:block; max-width:100%; }

h1,h2,h3,h4{ font-family:var(--f-disp); text-wrap:balance; margin:0; color:var(--ink); }
h1{ font-weight:700; font-stretch:var(--wide); letter-spacing:-.03em; }
h2{ font-size:var(--t-h2); font-weight:700; font-stretch:var(--wide); letter-spacing:-.026em; line-height:1.08; }
h3{ font-size:var(--t-h3); font-weight:600; letter-spacing:-.008em; line-height:1.32; color:var(--ink); }
p{ margin:0 0 1em; text-wrap:pretty; } p:last-child{ margin-bottom:0; }
strong{ font-weight:600; color:var(--ink); }
ul,ol{ margin:0; padding:0; }
address{ font-style:normal; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:var(--radius); }

.skip{ position:absolute; left:-9999px; z-index:var(--z-skip); }
.skip:focus{ position:fixed; top:12px; left:12px; padding:12px 18px; background:var(--ink);
  color:#fff; font-weight:600; text-decoration:none; border-radius:var(--radius); }

/* the one small-caps voice: coordinates, labels, data */
.sec-label, .coord, .panel-lbl, .tag, .fs-name, .footer-kicker, .fnav-title,
.mn-label, .subnav-lbl, .metric .k, .facts dt, caption, th, .t-dur{
  font-family:var(--f-mono); font-size:var(--t-label); font-weight:500;
  letter-spacing:.11em; text-transform:uppercase; line-height:1.5;
}

/* photographs ------------------------------------------------ */
.photo{ width:100%; height:100%; object-fit:cover; }

/* ============================================================
   3 · MOTION
   Progressive enhancement: content is visible by default. site.js
   adds .rv-armed to <html> only after confirming IntersectionObserver
   and that reduced motion is not requested.
   ============================================================ */
html.rv-armed .rv{ opacity:0; transform:translateY(12px);
  transition:opacity var(--d-slow) var(--ease-out), transform var(--d-slow) var(--ease-out); }
html.rv-armed .rv.in{ opacity:1; transform:none; }
.rv-1{ transition-delay:40ms; } .rv-2{ transition-delay:90ms; }
.rv-3{ transition-delay:140ms; } .rv-4{ transition-delay:190ms; }

html.rv-armed .barchart .btrack span,
html.rv-armed .trow .t-bar span{ transform:scaleX(0); }
html.rv-armed .barchart.in .btrack span,
html.rv-armed .trow.in .t-bar span{ transform:scaleX(1); transition:transform 1s var(--ease-out) .12s; }
html.rv-armed .barchart.in .barrow:nth-child(2) .btrack span{ transition-delay:.18s; }
html.rv-armed .barchart.in .barrow:nth-child(3) .btrack span{ transition-delay:.24s; }
html.rv-armed .barchart.in .barrow:nth-child(4) .btrack span{ transition-delay:.30s; }
html.rv-armed .barchart.in .barrow:nth-child(5) .btrack span{ transition-delay:.36s; }
html.rv-armed .barchart.in .barrow:nth-child(6) .btrack span{ transition-delay:.42s; }

@media (prefers-reduced-motion: reduce){
  html.rv-armed .rv{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{ transition-duration:0s !important; animation-duration:0s !important; }
}

/* ============================================================
   4 · BUTTONS & LINKS
   ============================================================ */
a{ color:var(--accent); text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:.2em; text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);
  transition:color var(--d-fast) var(--ease), text-decoration-color var(--d-fast) var(--ease); }
a:hover{ color:var(--accent-2); text-decoration-color:currentColor; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:12px 22px; border:1px solid var(--accent); border-radius:var(--radius);
  background:var(--accent); color:var(--accent-ink);
  font-family:var(--f-body); font-size:.9375rem; font-weight:600; line-height:1.2;
  text-decoration:none; cursor:pointer; touch-action:manipulation;
  transition:background-color var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease),
             transform var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);
}
.btn:hover{ background:var(--accent-2); border-color:var(--accent-2); color:var(--accent-ink); }
.btn:active{ transform:translateY(1px); }
.btn .ico-arrow{ width:16px; height:16px; flex:none; transition:transform var(--d-base) var(--ease-out); }
.btn:hover .ico-arrow{ transform:translateX(3px); }
.btn.ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn.ghost:hover{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
.hero .btn.ghost, .cta .btn.ghost{ color:var(--ink); border-color:rgba(255,255,255,.4); }
.hero .btn.ghost:hover, .cta .btn.ghost:hover{ color:var(--accent); border-color:var(--accent); }
.btn-sm{ min-height:40px; padding:9px 16px; font-size:.875rem; }

.go{ display:inline-flex; align-items:center; gap:8px; width:fit-content;
  font-size:.9375rem; font-weight:600; color:var(--accent); text-decoration:none; }
.go .ico-arrow{ width:15px; height:15px; transition:transform var(--d-base) var(--ease-out); }
.go:hover{ color:var(--accent-2); }
.go:hover .ico-arrow{ transform:translateX(4px); }

/* ============================================================
   5 · MASTHEAD & NAVIGATION
   ============================================================ */
.mast{
  position:sticky; top:0; z-index:var(--z-mast);
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.mast .wrap{ display:flex; align-items:center; gap:28px; min-height:var(--mast-h); }

.logo{ display:inline-flex; align-items:center; gap:10px; flex:none; text-decoration:none;
  font-family:var(--f-disp); font-weight:700; font-stretch:var(--wide); font-size:1.02rem;
  letter-spacing:-.02em; color:var(--ink); }
.logo:hover{ color:var(--ink); }
.logo .mark{ width:22px; height:22px; flex:none; color:var(--accent); }

nav.main{ display:flex; align-items:center; gap:22px; margin-left:auto; }
nav.main a{ position:relative; padding:10px 0; color:var(--ink-2); font-size:.875rem; font-weight:500;
  text-decoration:none; white-space:nowrap; }
nav.main a::after{ content:""; position:absolute; left:0; right:0; bottom:2px; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:0 50%;
  transition:transform var(--d-base) var(--ease-out); }
nav.main a:hover{ color:var(--ink); }
nav.main a:hover::after{ transform:scaleX(1); }
nav.main a[aria-current="page"]{ color:var(--ink); font-weight:600; }
nav.main a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-div{ width:1px; height:16px; background:var(--line-2); flex:none; }

.mast-actions{ display:flex; align-items:center; gap:14px; flex:none; }
.menu-btn{
  display:none; align-items:center; gap:10px; min-height:44px; padding:0 4px;
  background:none; border:0; color:var(--ink); cursor:pointer;
  font-family:var(--f-mono); font-size:var(--t-label); letter-spacing:.12em; text-transform:uppercase;
}
.menu-btn .ico{ width:18px; height:12px; position:relative; }
.menu-btn .ico i{ position:absolute; left:0; right:0; height:1.5px; background:currentColor; }
.menu-btn .ico i:nth-child(1){ top:0; } .menu-btn .ico i:nth-child(2){ top:5px; right:35%; } .menu-btn .ico i:nth-child(3){ top:10px; }

@media (max-width:1140px){
  nav.main{ display:none; }
  .mast-actions{ margin-left:auto; }
  .menu-btn{ display:inline-flex; }
}
@media (max-width:420px){ .mast-actions .btn-sm{ display:none; } }

/* full-screen mobile menu */
.mobilenav{
  position:fixed; inset:0; z-index:var(--z-menu); background:var(--paper);
  display:flex; flex-direction:column; gap:24px; overflow-y:auto;
  padding:0 var(--edge) max(28px, env(safe-area-inset-bottom));
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity 180ms var(--ease), transform 180ms var(--ease), visibility 0s linear 180ms;
}
.mobilenav.open{ opacity:1; visibility:visible; transform:none;
  transition:opacity 300ms var(--ease-out), transform 300ms var(--ease-out), visibility 0s; }
.mobilenav-head{ display:flex; align-items:center; justify-content:space-between; min-height:var(--mast-h);
  border-bottom:1px solid var(--line); }
.mobilenav-close{ min-height:44px; padding:0 4px; background:none; border:0; color:var(--ink); cursor:pointer;
  font-family:var(--f-mono); font-size:var(--t-label); letter-spacing:.12em; text-transform:uppercase; }
.mobilenav-body{ display:grid; gap:26px; }
.mn-label{ color:var(--ink-3); margin:0 0 6px; }
.mobilenav ul{ list-style:none; }
.mobilenav li{ border-top:1px solid var(--line); }
.mobilenav li a{
  display:flex; align-items:baseline; gap:14px; padding:13px 0; text-decoration:none;
  font-family:var(--f-disp); font-weight:600; font-stretch:104%; font-size:clamp(1.4rem, 5.6vw, 1.9rem);
  letter-spacing:-.02em; color:var(--ink);
}
.mobilenav li a .n{ font-family:var(--f-mono); font-weight:400; font-size:.75rem; color:var(--ink-3); }
.mobilenav li a[aria-current="page"]{ color:var(--accent); }
.mobilenav-foot{ margin-top:auto; display:grid; gap:14px; font-family:var(--f-mono); font-size:.72rem;
  letter-spacing:.06em; color:var(--ink-3); }
.mobilenav-foot .btn{ width:100%; }
body.nav-open{ overflow:hidden; }

/* "On this page" */
.subnav{ border-bottom:1px solid var(--line); background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.subnav .wrap{ display:flex; align-items:center; gap:22px; min-height:var(--subnav-h); }
.subnav-lbl{ color:var(--ink-3); flex:none; }
.subnav ol{ position:relative; list-style:none; display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg, #000 88%, transparent); mask-image:linear-gradient(90deg, #000 88%, transparent);
  padding-right:48px; }
.subnav ol::-webkit-scrollbar{ display:none; }
.subnav a{ display:flex; align-items:center; gap:8px; min-height:44px; padding:0 12px; white-space:nowrap;
  font-size:.84rem; font-weight:500; color:var(--ink-2); text-decoration:none; position:relative; }
.subnav a .n{ font-family:var(--f-mono); font-size:.6875rem; color:var(--ink-3); }
.subnav a::after{ content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:0 50%; transition:transform var(--d-base) var(--ease-out); }
.subnav a:hover{ color:var(--ink); }
.subnav a.is-active{ color:var(--ink); font-weight:600; }
.subnav a.is-active .n{ color:var(--accent); }
.subnav a.is-active::after{ transform:scaleX(1); }
@media (min-width:900px){ .subnav{ position:sticky; top:var(--mast-h); z-index:var(--z-sub); } }
@media (max-width:899px){ .subnav-lbl{ display:none; } }

section[id], .cta[id]{ scroll-margin-top:calc(var(--mast-h) + 16px); }
@media (min-width:900px){ body:has(.subnav) section[id]{ scroll-margin-top:calc(var(--mast-h) + var(--subnav-h) + 16px); } }

/* ============================================================
   6 · HERO & PAGE HEAD
   ============================================================ */
.hero, .pagehead{ position:relative; isolation:isolate; display:flex; align-items:flex-end; }
.hero{ min-height:clamp(540px, 76vh, 760px); }
.pagehead.has-media{ min-height:clamp(380px, 52vh, 520px); }
.hero > .wrap, .pagehead > .wrap{ position:relative; z-index:2; width:100%;
  padding-top:clamp(56px, 7vw, 96px); padding-bottom:clamp(44px, 5.5vw, 76px); }

.hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--dark); }
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(8,15,13,.94) 0%, rgba(8,15,13,.78) 42%, rgba(8,15,13,.32) 78%, rgba(8,15,13,.22) 100%),
    linear-gradient(180deg, rgba(8,15,13,.55) 0%, transparent 34%, rgba(8,15,13,.5) 100%);
}
.hero-media .photo{ animation:slowzoom 24s var(--ease-out) forwards; }
@keyframes slowzoom{ from{ transform:scale(1.06); } to{ transform:scale(1); } }
@media (prefers-reduced-motion: reduce){ .hero-media .photo{ animation:none; } }

.hero-copy, .ph-copy{ max-width:min(100%, 44rem); }
.coord{ color:var(--accent); margin:0 0 22px; letter-spacing:.1em; }
.coord::before{ content:""; display:inline-block; vertical-align:middle; width:26px; height:1px;
  margin:0 12px 3px 0; background:currentColor; }

.hero h1{ font-size:var(--t-hero); line-height:.98; letter-spacing:-.035em; }
.hero h1 .l1, .hero h1 .l2{ display:block; }
.hero h1 .l2{ color:var(--accent); }
.hero h1 em{ display:block; margin-top:.4em; font-style:normal; font-size:.38em; font-weight:600;
  line-height:1.2; letter-spacing:-.018em; color:var(--ink-2); max-width:24ch; }
.lede{ margin:26px 0 0; font-size:var(--t-lead); line-height:1.62; color:var(--ink-2); max-width:56ch; }
.lede strong{ color:var(--ink); }
.hero-cta{ margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; }

.pagehead h1{ font-size:var(--t-h1); line-height:1.04; max-width:20ch; }
.pagehead .lede{ margin-top:20px; }
.pagehead:not(.has-media){ background:var(--paper-2); border-bottom:1px solid var(--line); }
.pagehead:not(.has-media) > .wrap{ padding-top:clamp(48px, 6vw, 80px); padding-bottom:clamp(40px, 5vw, 64px); }

/* key figures under a page head */
.facts{ margin:0; background:var(--paper); border-bottom:1px solid var(--line); }
.facts .wrap{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.fact{ padding:26px 24px 24px; border-left:1px solid var(--line); }
.fact:first-child{ border-left:0; padding-left:0; }
.facts dt{ color:var(--ink-3); margin-bottom:8px; }
.facts dd{ margin:0; font-family:var(--f-disp); font-stretch:var(--wide); font-weight:600; font-size:1.2rem;
  letter-spacing:-.015em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.3; }

/* ============================================================
   7 · SECTIONS
   ============================================================ */
section.sec{ position:relative; background:var(--paper); }
section.sec > .wrap{ padding-top:var(--sec-y); padding-bottom:var(--sec-y); }
section.sec + section.sec{ border-top:1px solid var(--line); }
section.band{ background:var(--paper-2); border-top:1px solid var(--line); }
section.band + section.sec{ border-top:1px solid var(--line); }

.sec-head{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:20px clamp(32px,6vw,96px);
  align-items:end; margin-bottom:clamp(40px, 5vw, 64px); }
.sec-label{ display:flex; align-items:center; gap:12px; margin:0 0 16px; color:var(--ink-3); }
.sec-label .idx{ color:var(--accent); }
.sec-rule{ width:30px; height:1px; background:var(--line-2); flex:none; }
.sec-head h2{ max-width:18ch; }
.sec-head .lead{ margin:0; font-size:var(--t-lead); line-height:1.6; color:var(--ink-2); max-width:58ch; padding-bottom:.2em; }

/* full-width photograph between sections */
.band-photo{ position:relative; margin:0; height:clamp(260px, 34vw, 460px); overflow:hidden; background:var(--dark); }
.band-photo .photo{ position:absolute; inset:0; }
.band-photo figcaption{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:24px var(--edge);
  max-width:var(--maxw); margin:0 auto; color:#F1F5F2; font-size:.95rem;
  background:linear-gradient(180deg, transparent, rgba(8,15,13,.75)); }

/* photograph beside content */
.split{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(28px,4vw,56px); align-items:center; }
.split.flip .split-media{ order:2; }
.split-media{ position:relative; margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius); background:var(--paper-3); }

/* ============================================================
   8 · CONTENT COMPONENTS
   ============================================================ */
.metrics{ background:var(--paper-2); border-bottom:1px solid var(--line); }
.metrics .wrap{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.metric{ padding:34px 24px 32px; border-left:1px solid var(--line); }
.metric:first-child{ border-left:0; padding-left:0; }
.metric .v{ font-family:var(--f-disp); font-stretch:var(--wide); font-size:clamp(1.9rem, 2vw + 1.1rem, 2.8rem);
  font-weight:700; letter-spacing:-.035em; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink); }
.metric .k{ margin-top:14px; color:var(--ink-3); letter-spacing:.09em; }

/* three audience cards */
.doors{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,2.4vw,32px); }
.door{ position:relative; display:flex; flex-direction:column; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  transition:border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease),
             transform var(--d-base) var(--ease); }
.door-media{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--paper-3); }
.door-media .photo{ transition:transform 900ms var(--ease-out); }
.door-body{ display:flex; flex-direction:column; flex:1; padding:26px 26px 28px; }
.door .who{ margin:0 0 12px; font-family:var(--f-mono); font-size:var(--t-label); letter-spacing:.1em;
  text-transform:uppercase; color:var(--accent); }
.door h3{ font-size:clamp(1.2rem, .6vw + 1.05rem, 1.4rem); font-stretch:104%; margin-bottom:12px; }
.door p{ color:var(--ink-2); font-size:1rem; flex:1; }
.door .go{ margin-top:24px; }
.door .go::after{ content:""; position:absolute; inset:0; }          /* stretched link */
.door:hover{ border-color:var(--line-strong); box-shadow:0 12px 32px -18px rgba(14,23,20,.45); transform:translateY(-2px); }
.door:hover .door-media .photo{ transform:scale(1.04); }
.door:has(.go:focus-visible){ outline:2px solid var(--accent); outline-offset:2px; }
.door .go:focus-visible{ outline:none; }

/* plain item grids */
.items{ display:grid; gap:clamp(32px,3.4vw,44px) clamp(28px,4vw,56px); }
.grid2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.item{ position:relative; padding-top:22px; border-top:1px solid var(--line-2); }
.item::before{ content:""; position:absolute; top:-1px; left:0; width:28px; height:2px; background:var(--accent); }
.item h3{ margin-bottom:10px; }
.item p{ font-size:1rem; color:var(--ink-2); }

/* good fit / poor fit */
.fit{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(28px,4vw,56px); }
.fit-col{ padding:26px 28px 28px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
.fit-in{ background:var(--accent-soft); border-color:color-mix(in srgb, var(--accent) 22%, transparent); }
.fit-col h3{ display:flex; align-items:center; gap:12px; margin-bottom:20px; font-size:1.2rem; font-stretch:104%; }
.fit-mark{ display:inline-grid; place-items:center; width:26px; height:26px; border:1px solid currentColor;
  border-radius:var(--radius); font-family:var(--f-mono); font-size:.95rem; line-height:1; flex:none; }
.fit-in .fit-mark{ color:var(--accent); }
.fit-out .fit-mark{ color:var(--ink-3); }

.list-plain{ list-style:none; }
.list-plain li{ position:relative; padding-left:26px; margin-bottom:14px; color:var(--ink-2); font-size:1rem; line-height:1.55; }
.list-plain li:last-child{ margin-bottom:0; }
.list-plain li::before{ position:absolute; left:0; top:0; font-family:var(--f-mono); font-size:.9rem; }
.list-plain.in li::before{ content:"+"; color:var(--accent); }
.list-plain.out li::before{ content:"\2013"; color:var(--ink-3); }
.item .list-plain{ margin:14px 0 16px; }

/* status board */
.status{ border-top:1px solid var(--line-2); }
.srow{ display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr) auto; gap:12px 40px;
  padding:26px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.srow .who{ font-family:var(--f-disp); font-stretch:104%; font-weight:600; font-size:1.08rem; color:var(--ink); }
.srow .who small{ display:block; margin-top:4px; font-family:var(--f-mono); font-stretch:normal; font-size:.75rem;
  font-weight:400; letter-spacing:.06em; color:var(--ink-3); }
.srow .what{ color:var(--ink-2); font-size:1rem; max-width:64ch; }
/* state reads as a datasheet field: mono, right-aligned, no chrome.
   The glyph is a tick (done) or a half-filled bar (under way). */
.st{ display:inline-flex; align-items:center; gap:9px; justify-self:end; white-space:nowrap;
  font-family:var(--f-mono); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.st-ico{ width:13px; height:13px; flex:none; }
.st-done .st-ico{ color:var(--accent); }
.st-pending{ color:var(--amber); }

/* body copy */
.copy{ max-width:68ch; color:var(--ink-2); }
.copy.after{ margin-top:40px; }
.copy-lg{ font-size:var(--t-lead); line-height:1.65; }
.copy-lg p:first-child{ color:var(--ink); }
@media (min-width:1000px){
  .copy.cols{ max-width:none; columns:2; column-gap:clamp(40px,5vw,72px); }
  .copy.cols p{ break-inside:avoid; }
}
.statement{ margin:44px 0 0; max-width:54ch; padding-left:24px; border-left:3px solid var(--accent);
  font-family:var(--f-disp); font-stretch:104%; font-weight:600; font-size:clamp(1.2rem, .6vw + 1.02rem, 1.5rem);
  line-height:1.38; letter-spacing:-.012em; color:var(--ink); }
.statement:first-child{ margin-top:0; }
.statement + .copy{ margin-top:28px; }

/* contract pack */
.docs{ list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(28px,4vw,56px);
  border-top:1px solid var(--line-2); }
.doc{ display:grid; grid-template-columns:44px minmax(0,1fr); gap:18px; padding:24px 0; border-bottom:1px solid var(--line); }
.doc-tab{ display:grid; place-items:center; width:44px; height:44px; border-radius:var(--radius);
  background:var(--accent-soft); color:var(--accent); font-family:var(--f-mono); font-size:1rem; }
.doc h3{ font-size:1.05rem; margin-bottom:6px; }
.doc p{ color:var(--ink-2); font-size:.97rem; }

/* how it runs */
.steps{ list-style:none; max-width:880px; }
.step{ position:relative; display:grid; grid-template-columns:48px minmax(0,1fr); gap:24px; padding-bottom:36px; }
.step::before{ content:""; position:absolute; left:23.5px; top:52px; bottom:4px; width:1px; background:var(--line-2); }
.step:last-child{ padding-bottom:0; }
.step:last-child::before{ display:none; }
.step-n{ display:grid; place-items:center; width:48px; height:48px; border-radius:50%;
  background:var(--accent-soft); color:var(--accent); font-family:var(--f-mono); font-size:1rem; }
.step h3{ font-size:1.15rem; margin:10px 0 8px; }
.step p{ color:var(--ink-2); font-size:1rem; max-width:66ch; }

/* teaser cards */
.teasers{ display:grid; gap:clamp(20px,2.4vw,32px); }
.card{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; color:var(--ink-2); text-decoration:none;
  transition:border-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease), transform var(--d-base) var(--ease); }
.card-media{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--paper-3); }
.card-media .photo{ transition:transform 900ms var(--ease-out); }
.card-body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.card h3{ font-size:1.25rem; font-stretch:104%; margin-bottom:10px; transition:color var(--d-fast) var(--ease); }
.card p{ font-size:.98rem; color:var(--ink-2); flex:1; }
.card .go{ margin-top:22px; }
.card:hover{ border-color:var(--line-strong); box-shadow:0 12px 32px -18px rgba(14,23,20,.45); transform:translateY(-2px); }
.card:hover h3{ color:var(--accent); }
.card:hover .photo{ transform:scale(1.04); }
.card:hover .go .ico-arrow{ transform:translateX(4px); }
.tag{ display:inline-block; align-self:flex-start; margin-bottom:16px; padding:4px 10px;
  border-radius:100px; background:var(--paper-2); color:var(--ink-3); font-size:.6875rem; }

/* q&a grid (kept for content that uses it) */
.qa{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,3vw,40px); }
.qa q{ display:block; font-family:var(--f-disp); font-weight:600; font-size:1.06rem; margin-bottom:12px;
  quotes:"\201C" "\201D"; color:var(--ink); }
.qa p{ font-size:.97rem; color:var(--ink-2); }

/* ============================================================
   9 · DATA — spec sheets, tables, charts, schedule, plot
   ============================================================ */
.spec{ margin:0; border-top:1px solid var(--line-2); }
.spec-row{ display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr); gap:8px 40px;
  padding:20px 0; border-bottom:1px solid var(--line); }
.spec dt{ font-weight:600; color:var(--ink); font-size:.97rem; }
.spec dd{ margin:0; color:var(--ink-2); font-size:1rem; max-width:70ch; }

.tablewrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); margin-top:36px; }
.tablewrap:first-child{ margin-top:0; }
.tablewrap:focus-visible{ outline-offset:-2px; }
table{ border-collapse:collapse; width:100%; min-width:540px; font-variant-numeric:tabular-nums; }
caption{ text-align:left; padding:18px 22px 4px; color:var(--ink-3); }
thead th{ font-size:.6875rem; color:var(--ink-3); text-align:right; padding:14px 22px 12px;
  border-bottom:1px solid var(--line-2); vertical-align:bottom; white-space:nowrap; }
thead th:first-child{ text-align:left; }
td, tbody th{ padding:13px 22px; border-bottom:1px solid var(--line); text-align:right; font-size:.97rem;
  vertical-align:top; color:var(--ink-2); }
tbody th{ text-align:left; font-family:var(--f-body); font-weight:500; letter-spacing:0; text-transform:none;
  color:var(--ink); font-size:.97rem; line-height:1.5; }
table.lft td, table.lft th{ text-align:left; }
tbody tr:last-child > *{ border-bottom:0; }
tbody tr{ transition:background-color var(--d-fast) var(--ease); }
tbody tr:hover{ background:var(--paper-2); }
tr.us > *{ background:var(--accent-soft); color:var(--ink); font-weight:600; }
tr.us > :first-child{ box-shadow:inset 3px 0 0 var(--accent); }

.barchart{ margin:0 0 36px; padding:8px 0 0; border-top:1px solid var(--line-2); }
.barrow{ display:grid; grid-template-columns:minmax(0,190px) minmax(0,1fr) minmax(0,150px); gap:20px;
  align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }
.barrow .blabel{ display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; font-size:.97rem; color:var(--ink-2); }
.barrow.us .blabel{ color:var(--ink); font-weight:600; }
.us-tag{ font-family:var(--f-mono); font-size:.625rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase;
  color:var(--accent); background:var(--accent-soft); padding:3px 7px; border-radius:100px; }
.barrow .btrack{ height:14px; border-radius:100px; background:var(--paper-3); position:relative; overflow:hidden; }
.barrow .btrack span{ position:absolute; inset:0 auto 0 0; width:var(--w); border-radius:100px;
  background:var(--line-strong); transform-origin:0 50%; }
.barrow.us .btrack span{ background:var(--accent); }
.barrow .bnote{ font-family:var(--f-mono); font-size:.8rem; text-align:right; color:var(--ink-3); font-variant-numeric:tabular-nums; }
.barrow.us .bnote{ color:var(--ink); }
.tnote{ font-size:.875rem; color:var(--ink-3); margin-top:16px; max-width:80ch; line-height:1.6; }
figcaption.tnote{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }

.timeline{ list-style:none; border-top:1px solid var(--line-2); }
.trow{ display:grid; grid-template-columns:40px minmax(0,1fr) minmax(0,240px); gap:20px; align-items:center;
  padding:18px 0; border-bottom:1px solid var(--line); }
.t-n{ font-family:var(--f-mono); font-size:.75rem; color:var(--ink-3); }
.t-label{ font-size:1rem; color:var(--ink); }
.t-dur{ display:block; margin-top:4px; color:var(--ink-3); font-size:.6875rem; }
.t-bar{ position:relative; height:6px; border-radius:100px; background:var(--paper-3); overflow:hidden; }
.t-bar span{ position:absolute; inset:0 auto 0 0; width:var(--w,20%); border-radius:100px;
  background:color-mix(in srgb, var(--accent) 45%, transparent); transform-origin:0 50%; }
.trow.us .t-bar span{ background:var(--accent); }
.trow.us .t-n{ color:var(--accent); }

/* polar plot — beside the method note on the coverage page */
.plot-split{ display:grid; grid-template-columns:minmax(0,420px) minmax(0,1fr); gap:clamp(28px,4vw,64px);
  align-items:center; margin-top:44px; }
.plot{ margin:0; }
.plot svg{ width:100%; height:auto; overflow:visible; }
.plot .horizon{ fill:var(--paper-2); stroke:var(--line-2); stroke-width:1; }
.plot .mask{ fill:none; stroke:color-mix(in srgb, var(--accent) 55%, transparent); stroke-width:1; stroke-dasharray:2 5; }
.plot .ring{ fill:none; stroke:var(--line-2); stroke-width:1; }
.plot .axes line{ stroke:var(--line); stroke-width:1; }
.plot .ticks line{ stroke:var(--line-2); stroke-width:1; }
.plot text{ font-family:var(--f-mono); letter-spacing:.06em; }
.plot .card-lbl{ font-size:12px; fill:var(--ink-2); }
.plot .el-lbl{ font-size:10px; fill:var(--ink-3); }
.plot .mask-lbl{ font-size:10px; fill:var(--accent); letter-spacing:.1em; }
.plot .aos{ font-size:10px; fill:var(--ink-3); }
.plot .track{ fill:none; stroke:var(--line-strong); stroke-width:1; stroke-dasharray:3 4; }
.plot .track-lit{ fill:none; stroke:var(--accent); stroke-width:2; stroke-dasharray:1; stroke-dashoffset:.5; }
.plot .zenith{ fill:var(--accent); }
.plot .passdot{ fill:var(--accent); offset-rotate:0deg; offset-distance:50%; }
@media (prefers-reduced-motion: no-preference){
  .plot .passdot{ animation:pass 7s cubic-bezier(.45,0,.55,1) infinite alternate; }
  .plot .track-lit{ animation:passtrail 7s cubic-bezier(.45,0,.55,1) infinite alternate; }
}
@keyframes pass{ from{ offset-distance:0%; } to{ offset-distance:100%; } }
@keyframes passtrail{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
@supports not (offset-path: path("M0,0")){ .plot .passdot{ display:none; } }
.plot figcaption{ margin-top:16px; font-size:.85rem; color:var(--ink-3); line-height:1.55; }
.plot-copy{ align-self:center; }

/* ============================================================
   10 · CALLOUTS
   ============================================================ */
.honest{ display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr); gap:10px 32px;
  margin:32px 0; padding:22px 26px; border:1px solid var(--amber-line); border-left-width:3px;
  border-radius:var(--radius); background:var(--amber-wash); }
.honest .lbl{ display:flex; align-items:flex-start; gap:10px; margin:0; font-family:var(--f-mono); font-size:.72rem;
  font-weight:500; letter-spacing:.1em; text-transform:uppercase; line-height:1.5; color:var(--amber); }
.honest .lbl svg{ width:15px; height:15px; flex:none; margin-top:1px; }
.honest p:not(.lbl){ font-size:.98rem; color:var(--ink-2); max-width:78ch; }
.honest + .honest{ margin-top:-14px; }
.items + .honest, .spec + .honest, .timeline + .honest, .fit + .honest, .docs + .honest,
.steps + .honest, .tablewrap + .honest, .copy + .honest{ margin-top:40px; }
section.sec .wrap > .honest:last-child{ margin-bottom:0; }

/* ============================================================
   11 · CTA & FOOTER
   ============================================================ */
.cta{ position:relative; background:var(--dark); }
.cta .wrap{ padding-top:clamp(72px, 8vw, 120px); padding-bottom:clamp(72px, 8vw, 120px); }
.cgrid{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr); gap:clamp(36px,6vw,96px); align-items:center; }
.cta-copy .sec-label{ color:var(--ink-3); }
.cta h2{ font-size:clamp(1.9rem, 2.4vw + 1.1rem, 3.1rem); line-height:1.04; max-width:16ch; margin-bottom:22px; }
.cta-body{ color:var(--ink-2); font-size:var(--t-lead); max-width:56ch; }
.cta-note{ margin-top:18px; color:var(--ink-3); font-size:.95rem; max-width:58ch; }
.cta-panel{ padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:var(--dark-2);
  display:grid; gap:18px; justify-items:start; }
.panel-lbl{ margin:0; color:var(--ink-3); }
.cta-panel .btn{ width:100%; justify-content:space-between; min-height:56px; font-size:1rem; }
.cta-mail{ font-family:var(--f-mono); font-size:.95rem; color:var(--ink-2); overflow-wrap:anywhere;
  text-decoration-color:var(--line-strong); }
.cta-mail:hover{ color:var(--accent); }

.site-foot{ background:var(--dark); }
.footer-top{ padding:clamp(56px, 7vw, 96px) 0 40px; border-bottom:1px solid var(--line); }
.footer-top .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:32px; }
.footer-contact{ display:grid; gap:14px; min-width:0; }
.footer-kicker{ margin:0; color:var(--ink-3); }
.footer-mail{ font-family:var(--f-disp); font-stretch:var(--wide); font-weight:700; font-size:clamp(1.7rem, 4.4vw, 3.4rem);
  line-height:1; letter-spacing:-.032em; color:var(--ink); text-decoration:none; overflow-wrap:anywhere; }
.footer-mail:hover{ color:var(--accent); }
.footer-addr{ font-size:.9rem; color:var(--ink-3); }
.footer-clock{ display:grid; justify-items:end; gap:4px; font-family:var(--f-mono); }
.footer-clock .time{ font-size:1.5rem; color:var(--ink); font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.footer-clock .time .clock-s{ color:var(--accent); }
.clock-lbl{ font-size:.72rem; letter-spacing:.06em; color:var(--ink-3); }

.footer-sites{ padding:26px 0; border-bottom:1px solid var(--line); }
.footer-sites .wrap{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.fsite{ padding:4px 24px 4px 0; }
.fsite + .fsite{ padding-left:24px; border-left:1px solid var(--line); }
.fs-name{ color:var(--ink-3); margin-bottom:6px; font-size:.6875rem; }
.fs-coord{ font-family:var(--f-mono); font-size:.95rem; color:var(--accent); font-variant-numeric:tabular-nums; }

.footer-nav{ padding:40px 0; border-bottom:1px solid var(--line); }
.fnav{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.fnav-title{ font-size:.6875rem; color:var(--ink-3); margin:0 0 14px; }
.fnav a{ display:block; width:fit-content; padding:5px 0; font-size:.95rem; color:var(--ink-2); text-decoration:none; }
.fnav a:hover{ color:var(--accent); }

.footer-bottom{ padding:22px 0 28px; font-family:var(--f-mono); font-size:.72rem; letter-spacing:.05em; color:var(--ink-3); }
.footer-bottom .wrap{ display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.footer-bottom a{ color:var(--ink-3); text-decoration:none; }
.footer-bottom a:hover{ color:var(--accent); }

/* ============================================================
   12 · PROSE (privacy notice)
   ============================================================ */
.prose{ max-width:70ch; }
.prose h2.pv{ margin:44px 0 12px; font-size:1.25rem; font-stretch:104%; letter-spacing:-.015em; }
.prose h2.pv:first-child{ margin-top:0; }
.prose ul{ padding-left:20px; margin:0 0 1em; }
.prose li{ margin-bottom:8px; color:var(--ink-2); }
.prose li::marker{ color:var(--accent); }
.prose p{ color:var(--ink-2); }

/* ============================================================
   13 · RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .plot-split{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .plot{ max-width:420px; }
}
@media (max-width:1000px){
  .grid3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .docs{ grid-template-columns:minmax(0,1fr); }
  .doors{ grid-template-columns:minmax(0,1fr); }
  .door{ flex-direction:row; }
  .door-media{ flex:0 0 38%; aspect-ratio:auto; }
  .qa{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:900px){
  .hero{ min-height:clamp(480px, 70vh, 640px); }
  .hero-media::after{ background:
    linear-gradient(180deg, rgba(8,15,13,.72) 0%, rgba(8,15,13,.66) 34%, rgba(8,15,13,.92) 100%); }
  .pagehead.has-media .hero-media::after{ background:
    linear-gradient(180deg, rgba(8,15,13,.68) 0%, rgba(8,15,13,.6) 40%, rgba(8,15,13,.9) 100%); }
  .sec-head{ grid-template-columns:minmax(0,1fr); align-items:start; }
  .sec-head h2{ max-width:22ch; }
  .split{ grid-template-columns:minmax(0,1fr); }
  .split.flip .split-media{ order:0; }
  .cgrid{ grid-template-columns:minmax(0,1fr); }
  .facts .wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fact{ padding:22px 20px; border-top:1px solid var(--line); }
  .fact:nth-child(odd){ border-left:0; padding-left:0; }
  .fact:nth-child(-n+2){ border-top:0; }
}
@media (max-width:820px){
  .metrics .wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric{ padding:26px 16px 24px; border-top:1px solid var(--line); }
  .metric:nth-child(odd){ border-left:0; padding-left:0; }
  .metric:nth-child(-n+2){ border-top:0; }
  .fnav{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .srow{ grid-template-columns:minmax(0,1fr); gap:8px; padding:22px 0; }
  .st{ justify-self:start; text-align:left; margin-top:4px; }
  .spec-row{ grid-template-columns:minmax(0,1fr); gap:4px; padding:18px 0; }
  .honest{ grid-template-columns:minmax(0,1fr); padding:20px; }
  .fit{ grid-template-columns:minmax(0,1fr); gap:24px; }
}
@media (max-width:700px){
  .grid2, .grid3{ grid-template-columns:minmax(0,1fr); }
  .door{ flex-direction:column; }
  .door-media{ flex:none; aspect-ratio:16/9; }
  .barrow{ grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; padding:14px 0; }
  .barrow .blabel{ grid-column:1; }
  .barrow .bnote{ grid-column:2; grid-row:1; }
  .barrow .btrack{ grid-column:1 / -1; height:10px; }
  .trow{ grid-template-columns:32px minmax(0,1fr); gap:10px 14px; }
  .t-bar{ grid-column:2; }
  .footer-sites .wrap{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .fsite + .fsite{ padding-left:0; border-left:0; }
  .footer-clock{ justify-items:start; }
  .cta-panel{ padding:26px 22px; }
  .band-photo figcaption{ font-size:.875rem; padding:18px var(--edge); }
}
@media (max-width:480px){
  body{ font-size:1rem; }
  .hero-cta .btn{ flex:1 1 100%; }
  .facts .wrap{ grid-template-columns:minmax(0,1fr); }
  .fact{ padding:18px 0; border-left:0; }
  .fact:nth-child(-n+2){ border-top:1px solid var(--line); }
  .fact:first-child{ border-top:0; }
  .step{ grid-template-columns:40px minmax(0,1fr); gap:16px; }
  .step-n{ width:40px; height:40px; }
  .step::before{ left:19.5px; top:44px; }
  .step h3{ margin-top:7px; }
  .door-body, .card-body{ padding:22px 20px 24px; }
}

/* ============================================================
   14 · WORDPRESS
   Additions for content that now comes from the editor. Parts 1–13
   above are the approved static site's stylesheet, unchanged.
   ============================================================ */

/* sticky masthead and "On this page" sit under the admin bar when logged in */
.admin-bar .mast{ top:32px; }
@media (min-width:900px){ .admin-bar .subnav{ top:calc(var(--mast-h) + 32px); } }
@media (max-width:782px){ .admin-bar .mast{ top:46px; } }
@media (max-width:600px){ .admin-bar .mast{ top:0; } }

/* rich-text fields: paragraphs and lists written in the editor */
.lede p{ margin:0 0 1em; } .lede p:last-child{ margin-bottom:0; }
.item ul, .srow .what ul, .spec dd ul, .step ul, .honest-text ul{ list-style:none; margin:14px 0 16px; }
.item ul li, .srow .what ul li, .spec dd ul li, .step ul li, .honest-text ul li{
  position:relative; padding-left:26px; margin-bottom:14px; color:var(--ink-2); font-size:1rem; line-height:1.55; }
.item ul li:last-child, .srow .what ul li:last-child, .spec dd ul li:last-child,
.step ul li:last-child, .honest-text ul li:last-child{ margin-bottom:0; }
.item ul li::before, .srow .what ul li::before, .spec dd ul li::before, .step ul li::before, .honest-text ul li::before{
  content:"+"; position:absolute; left:0; top:0; font-family:var(--f-mono); font-size:.9rem; color:var(--accent); }
.copy ul, .copy ol{ padding-left:20px; margin:0 0 1em; }
.copy li{ margin-bottom:8px; } .copy li::marker{ color:var(--accent); }
.spec dd p, .srow .what p{ margin-bottom:.6em; } .spec dd p:last-child, .srow .what p:last-child{ margin-bottom:0; }

/* a callout may hold more than one paragraph */
.honest-text{ min-width:0; }

/* text pages (privacy notice): headings written in the editor */
.prose h2{ margin:44px 0 12px; font-size:1.25rem; font-stretch:104%; letter-spacing:-.015em; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ margin:32px 0 10px; }
.prose ol{ padding-left:20px; margin:0 0 1em; }
.prose img{ height:auto; border-radius:var(--radius); }

/* more than one link in the footer's bottom line */
.footer-legal{ display:flex; gap:18px; flex-wrap:wrap; }

/* a custom logo mark keeps the size of the default one */
.logo img.mark{ width:22px; height:22px; object-fit:contain; }

/* Editors can add and remove cards and figures: grids built for a fixed
   count adapt to fewer items instead of leaving an empty column.
   (Four audience cards / figures are the maximum the fields allow.) */
@media (min-width:1001px){
  .doors:has(> .door:nth-child(2):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .doors:has(> .door:only-child){ grid-template-columns:minmax(0,1fr); max-width:34rem; }
  .doors:has(> .door:nth-child(4)){ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:821px){
  .metrics .wrap:has(> .metric:nth-child(3):last-child){ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .metrics .wrap:has(> .metric:nth-child(2):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:901px){
  .facts .wrap:has(> .fact:nth-child(3):last-child){ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .facts .wrap:has(> .fact:nth-child(2):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Lazy images with sizes="auto": reserve space until the real size is known (moved from WordPress core inline CSS) */
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
