/* Shared public foundations: tokens come from public/tokens.css; keep this one served stylesheet. */
* { box-sizing: border-box; }
:root { --content-max: 1440px; --showcase-max: 1920px; --header-gutter: clamp(var(--space-20),4.5vw,72px); --wordmark-width: 165px; --wordmark-end-space: 5px; --title-bar-layer: 60; --menu-layer: 65; --header-layer: 70; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); font-size: var(--type-body); line-height: var(--leading-body); }
body.menu-open { overflow: hidden; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; border-radius: var(--control-radius); }
img { max-width: 100%; height: auto; }
img[data-deferred-image] { min-height: 1px; }
html:not(.js) [data-deferred-picture], html:not(.js) img[data-deferred-image] { display: none !important; }
:focus-visible { outline: 2px solid var(--focus-color); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Shared shell: header, title bar, directory, footer, and their controls. */
.site-header {
  height: 72px;
  position: sticky; top: 0; z-index: var(--header-layer);
  background: var(--shell-surface);
}
.site-header-inner {
  width: 100%; max-width: var(--content-max); height: 100%; margin-inline: auto; padding-inline: var(--header-gutter);
  display: flex; align-items: center; justify-content: flex-start; gap: calc(var(--header-gutter) - 6px - var(--wordmark-end-space));
}
body:has(.page-title-bar) .site-header { position: relative; }
.brand-trigger {
  position: relative; z-index: 72; flex: none;
  display: flex; align-items: center; justify-content: flex-start; gap: 0; width: calc(var(--wordmark-width) + 6px); height: 48px;
  padding: 0; border: 0; border-radius: var(--control-radius); background: transparent;
}
.brand-trigger:hover, .brand-trigger:focus-visible { background: var(--control-hover); }
.brand-trigger svg { display: block; width: var(--wordmark-width); height: auto; }
.brand-trigger::after { content: ''; flex: none; width: 9px; height: 7px; margin-top: 2px; margin-left: -3px; background: #c8d0d7; clip-path: polygon(0 0, 100% 0, 50% 100%); }
body.menu-open .brand-trigger::after { visibility: hidden; }
.site-nav { --nav-block-padding: var(--space-8); --nav-inline-padding: var(--space-8); display: flex; align-items: center; gap: clamp(var(--space-20), 2.7vw, var(--space-40)); }
.site-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: var(--nav-block-padding) var(--nav-inline-padding); position: relative; isolation: isolate; border-radius: var(--control-radius); color: #d9dfe4; font-size: var(--type-support); font-weight: var(--weight-medium); transition: color .2s; }
/* One accent surface stays visible as the line extends and grows upward.
   Its box-width line appears immediately; non-current links hold it briefly
   before growing upward. The bottom edge and color stay fixed. */
.site-nav a[aria-current=page] { color: #fff; }
.site-nav a::after { content: ''; position: absolute; z-index: -1; bottom: 0; left: 0; right: 0; height: 4px; border-radius: var(--control-radius); background: var(--focus-color); opacity: 0; pointer-events: none; transition: height .1s ease, opacity .06s ease .1s; }
.site-nav a[aria-current=page]::after { opacity: 1; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--nav-highlight-text, #000); transition: color .04s ease .19s; }
.site-nav a[aria-current=page]:hover, .site-nav a[aria-current=page]:focus-visible { transition-delay: .05s; }
.site-nav a:focus-visible { outline-offset: calc(max(var(--nav-block-padding), var(--nav-inline-padding)) + 3px); }
.site-nav a:hover::after, .site-nav a:focus-visible::after { height: 100%; left: 0; right: 0; opacity: 1; transition: opacity 0s, height .13s ease .14s; }
.site-nav a[aria-current=page]:hover::after, .site-nav a[aria-current=page]:focus-visible::after { transition-delay: 0s; }
@media (hover: none) {
  .site-nav a:hover:not(:active):not(:focus-visible) { color: #d9dfe4; }
  .site-nav a[aria-current=page]:hover:not(:active):not(:focus-visible) { color: #fff; }
  .site-nav a:hover:not(:active):not(:focus-visible)::after { left: 0; right: 0; height: 4px; opacity: 0; }
  .site-nav a[aria-current=page]:hover:not(:active):not(:focus-visible)::after { opacity: 1; }
  .site-nav a:active, .site-nav a:focus-visible { color: var(--nav-highlight-text, #000); }
  .site-nav a:active::after, .site-nav a:focus-visible::after { left: 0; right: 0; height: 100%; opacity: 1; }
  .site-nav a, .site-nav a::after { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  .site-nav a, .site-nav a::after { transition: none !important; }
}
/* Preserve just one nav-button snapshot, never the page or directory shell. */
@view-transition { navigation: auto; }
:root { view-transition-name: none; }
::view-transition-group(nav-button) { animation-duration: .12s; }
::view-transition-old(nav-button), ::view-transition-new(nav-button) { animation: none; mix-blend-mode: normal; }
.site-nav a[data-nav-held] { color: var(--nav-highlight-text, #000) !important; transition: none !important; }
.site-nav a[data-nav-held]::after { height: 100%; opacity: 1 !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(nav-button) { animation-duration: .01ms; }
}
.site-nav .coming { display: inline-flex; align-items: center; gap: var(--space-8); }
.coming b { padding: var(--space-4) var(--space-8); border: 1px solid #55616d; border-radius: var(--control-radius); color: #b5c0cb; font-size: .63rem; font-weight: var(--weight-medium); }
.page-title-bar { --title-edge: calc(var(--header-gutter) + var(--wordmark-width) - var(--wordmark-end-space)); --search-edge: var(--title-edge); --news-search-width: 245px; position: sticky; top: 0; z-index: var(--title-bar-layer); background: var(--bar-surface); }
.page-title-bar-inner { position: relative; display: flex; align-items: center; width: 100%; max-width: var(--content-max); min-height: 56px; margin-inline: auto; padding: var(--space-8) var(--header-gutter) var(--space-8) var(--title-edge); }
.page-title-bar-title { max-width: min(80vw,900px); margin: 0; font-size: var(--type-title-bar); font-weight: var(--weight-strong); line-height: 1.25; text-align: left; text-wrap: balance; overflow-wrap: anywhere; }
.page-title-bar a.page-title-bar-title { margin-left: calc(-1 * var(--space-8)); padding: var(--space-4) var(--space-8); border-radius: var(--control-radius); transition: background-color .2s ease; }
.page-title-bar a.page-title-bar-title:hover, .page-title-bar a.page-title-bar-title:focus-visible { background: var(--control-hover); }
.page-title-bar.has-search .page-title-bar-title { max-width: calc(min(100vw, var(--content-max)) - var(--title-edge) - var(--search-edge) - var(--news-search-width) - 16px); }
.news-search { position: absolute; top: 50%; right: var(--search-edge); display: flex; align-items: center; width: var(--news-search-width); height: 36px; border: 1px solid var(--field-border); border-radius: var(--control-radius); background: var(--surface); transform: translateY(-50%); transition: background-color .2s ease, border-color .2s ease; }
.news-search:hover { border-color: #71808e; background: var(--surface-raised); }
.news-search:focus-within { border-color: var(--focus-color); background: var(--surface-raised); }
.news-search input { flex: 1; min-width: 0; height: 100%; padding: 0 var(--space-8); border: 0; outline: 0; background: transparent; color: var(--text); font-size: var(--type-support); }
.news-search input:focus-visible { outline: none; }
.news-search button { display: grid; flex: none; place-items: center; width: 34px; height: 32px; padding: 0; border: 0; border-radius: var(--control-radius); background: transparent; color: var(--text); transition: background-color .2s ease; }
.news-search button:hover, .news-search button:focus-visible { background: var(--control-hover); }
.news-search svg { display: block; width: 17px; height: 17px; }
body:has(.page-title-bar) .toast-stack { top: 144px; }
button.menu-close { margin-left: auto; opacity: 0; pointer-events: none; transition: opacity .18s ease, background-color .2s ease, border-color .2s ease; }
button.menu-close.is-visible { opacity: 1; pointer-events: auto; }
body.menu-open .site-nav { display: none; }
.site-footer { --footer-gutter: clamp(var(--space-20),5vw,var(--space-80)); background: var(--shell-surface); color: var(--muted); font-size: var(--type-support); text-align: center; }
.site-footer-inner { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--gap-controls); width: 100%; max-width: var(--content-max); margin-inline: auto; padding: var(--space-32) var(--footer-gutter); }
.site-footer-inner::before { content: ""; position: absolute; top: var(--space-4); left: var(--footer-gutter); right: var(--footer-gutter); height: 1px; background: color-mix(in srgb, var(--line) 65%, var(--shell-surface)); pointer-events: none; }
.site-footer a { display: inline-flex; align-items: center; gap: var(--gap-inline); padding: var(--space-8) var(--space-12); border-radius: var(--control-radius); background: var(--surface-raised); color: var(--text); transition: background-color .2s ease; }
.site-footer a:hover, .site-footer a:focus-visible { background: #131b23; }
.hero-link::after, .button::after, .flagship-cta::after, .site-footer a::after, .directory-group a::after, .directional-link::after { content: ''; display: inline-block; flex: none; width: 20px; height: 20px; background: currentColor; -webkit-mask: url('/assets/versioned/51a003084c9af7fe272c5fd3/triangle-right.svg') center / contain no-repeat; mask: url('/assets/versioned/51a003084c9af7fe272c5fd3/triangle-right.svg') center / contain no-repeat; }
.site-footer a::after, .directory-group a::after, .directional-link::after { width: 17px; height: 17px; }
.eyebrow { margin: 0; color: #bdc5ce; font-size: var(--type-caption); font-weight: var(--weight-medium); letter-spacing: .04em; }
.banner-label { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; margin: 0; padding: var(--space-8) var(--space-12); border: 1px solid #bdc5ce; border-radius: var(--control-radius); color: #d8e0e6; font-size: var(--type-caption); font-weight: var(--weight-heading); letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; overflow-wrap: anywhere; }
.responsive-banner-image img { object-fit: var(--image-fit, cover); object-position: var(--image-position, center); }
.responsive-banner-image.wordmark-background { opacity: .28; }

/* Home: Latest carousel, news row, and flagship banners. */
.latest { position: relative; width: 100%; max-width: var(--showcase-max); min-height: min(700px, calc(100svh - 72px)); margin-inline: auto; overflow: hidden; background: var(--banner-base); }
.latest-slide { position: absolute; inset: 0; display: flex; align-items: flex-start; justify-content: center; visibility: hidden; overflow: hidden; background: var(--banner-base); touch-action: pan-y; cursor: grab; }
.latest-slide.is-active, .latest-slide.is-leaving, .latest-slide.is-drag-neighbor, .latest-slide:first-of-type:not(:has(~ .is-active)) { visibility: visible; }
.latest-slide.is-leaving { pointer-events: none; }
.latest-slide.is-drag-neighbor { pointer-events: none; }
.latest.is-dragging .latest-slide { cursor: grabbing; user-select: none; }
.latest-slide > .responsive-banner-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.latest-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.latest-copy { position: relative; z-index: 2; width: min(850px, calc(100% - 48px)); margin: 0 auto; padding: var(--space-80) 0 var(--space-96); text-align: center; }
.latest-logo { display: block; max-width: 170px; max-height: 55px; object-fit: contain; object-position: center; margin: 0 auto var(--space-20); }
.latest-copy h2 { margin: var(--space-12) 0 var(--space-20); font-size: var(--type-display); font-weight: var(--weight-medium); letter-spacing: var(--tracking-display); line-height: var(--leading-display); text-wrap: balance; }
.latest-copy .rich-content { max-width: 620px; margin: 0 auto; color: #d6dde4; font-size: var(--type-hero-body); line-height: 1.55; }
.hero-link, .button, .flagship-cta { display: inline-flex; align-items: center; gap: var(--gap-controls); padding: var(--control-padding-block) var(--control-padding-inline); border-radius: var(--card-radius); background: var(--button-bg, var(--button-default)); color: var(--button-fg, #000); font-size: var(--type-support); font-weight: var(--weight-heading); }
.hero-link { margin-top: var(--space-32); }
.hero-link, .button, .flagship-cta { transition: filter .2s ease; }
.hero-link:hover, .hero-link:focus-visible, .button:hover, .button:focus-visible, .flagship-cta:hover, .flagship-cta:focus-visible { filter: brightness(.92); }
.latest-controls { position: absolute; z-index: 8; left: 50%; bottom: 34px; display: flex; align-items: center; height: 38px; transform: translateX(-50%); }
.latest-dots, .latest-toggle { border: 1px solid var(--muted); background: rgba(10, 16, 23, .88); box-shadow: 0 3px 14px #050a1066; }
.latest-dots { display: flex; align-items: center; gap: var(--space-8); max-width: calc(100vw - 100px); min-height: 38px; padding: 0 var(--space-12); overflow-x: auto; overflow-y: hidden; border-radius: 999px; scrollbar-width: none; scrollbar-color: transparent transparent; scrollbar-gutter: auto; }
/* Keep overflow indicators reachable without painting a scrollbar or its track. */
.latest-dots::-webkit-scrollbar { display: none; width: 0; height: 0; background: transparent; }
.latest-dots::-webkit-scrollbar-track, .latest-dots::-webkit-scrollbar-thumb, .latest-dots::-webkit-scrollbar-corner { display: none; border: 0; background: transparent; box-shadow: none; }
.latest-dot { position: relative; flex: none; width: 30px; height: 36px; padding: 0; border: 0; border-radius: var(--control-radius); background: transparent; transition: width .26s ease, filter .2s ease, transform .2s ease; }
.latest-dot::after { content: ''; position: absolute; top: 50%; left: 0; width: 100%; height: 5px; margin-top: -2.5px; border-radius: 999px; background: #dce3e9; }
.latest-dot:hover, .latest-dot:focus-visible { filter: brightness(1.3); }
.latest-dot[aria-current=true] { width: 50px; }
.latest-dot[aria-current=true]::before { content: ''; position: absolute; z-index: 1; top: 50%; left: 0; width: 0; height: 5px; margin-top: -2.5px; border-radius: 2.5px; background: var(--focus-color); }
.latest-dots.progress-ready .latest-dot[aria-current=true]::before { animation: latest-fill var(--carousel-interval, 4500ms) linear both; }
.latest.is-progress-paused .latest-dots.progress-ready .latest-dot[aria-current=true]::before { animation-play-state: paused; }
.latest-dot:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
@keyframes latest-fill { from { width: 0; } to { width: 100%; } }
.latest-toggle { position: absolute; top: 50%; left: calc(100% + 10px); display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border-radius: 50%; color: #fff; font-size: .85rem; transform: translateY(-50%); transition: background-color .2s ease, border-color .2s ease; }
.latest-toggle:hover, .latest-toggle:focus-visible { border-color: #fff; background: #111f2b; }

.flagship-rows { display: grid; gap: var(--gap-inline); width: 100%; margin-top: var(--space-8); }
.home-news-row { padding: clamp(var(--space-40),5vw,var(--space-64)) clamp(var(--space-20),5vw,var(--space-80)); background: var(--bg); }
.home-news-inner { max-width: 1320px; margin-inline: auto; }
.home-news-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: var(--gap-cards); margin-bottom: var(--space-24); }
.home-news-heading h2 { margin: 0; font-size: var(--type-section); font-weight: var(--weight-medium); letter-spacing: var(--tracking-heading); }
.home-news-row .news-card { min-width: 0; }
.home-news-layout { display: grid; grid-template-columns: minmax(0,min(42%,480px)) minmax(0,1fr); align-items: start; gap: var(--gap-cards); }
.home-news-layout > .news-card { width: 100%; max-width: 480px; }
.home-news-layout > .news-card .news-card-copy { padding: var(--space-16) var(--space-20) var(--space-20); }
.home-news-layout > .news-card h2 { margin: var(--space-12) 0 var(--space-12); font-size: var(--type-card-lead); }
.home-news-layout > .news-card time { font-size: var(--type-support); }
.home-news-list { display: grid; align-content: start; gap: var(--gap-controls); }
.home-news-list .news-card-compact:has(.news-card-image) { display: grid; grid-template-columns: minmax(0,46fr) minmax(0,54fr); align-items: center; }
.home-news-list .news-card-image { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: var(--news-image-fit,cover); object-position: var(--news-image-position,center); }
.home-news-list .news-card-copy { min-width: 0; padding: var(--space-12) var(--space-16); }
.home-news-list .news-card h2 { margin: var(--space-8) 0 var(--space-8); font-size: var(--type-card-compact); line-height: 1.3; }
.home-news-list .news-card time { font-size: var(--type-caption); }
@media (min-width: 1441px) {
  .expansive-content-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,var(--content-max)) minmax(0,1fr); padding-inline: 0; }
  .expansive-content-inner { grid-column: 2 / 4; justify-self: end; width: 100%; min-width: min-content; max-width: none; margin: 0; padding-left: var(--header-gutter); }
  .expansive-content-row[data-start="viewport"] > .expansive-content-inner { grid-column: 1 / 4; padding-left: 0; }
  .home-news-heading { max-width: calc(var(--content-max) - 2 * var(--header-gutter)); }
  .home-news-layout { display: flex; justify-content: space-between; }
  .home-news-layout > .news-card { flex: 0 1 480px; }
  .home-news-list { flex: 1 1 0; max-width: 960px; min-width: 0; }
}
.flagship-row { display: grid; grid-template-columns: repeat(var(--columns), minmax(0,1fr)); width: 100%; max-width: var(--showcase-max); margin-inline: auto; }
.flagship { position: relative; display: flex; align-items: flex-start; justify-content: center; min-width: 0; min-height: 540px; overflow: hidden; background: var(--banner-base); isolation: isolate; }
.flagship-row[style*="--columns:1"] .flagship { min-height: 640px; }
.flagship-row[style*="--columns:3"] .flagship { min-height: 480px; }
.flagship + .flagship { border-left: 1px solid #34404c; }
.flagship > .responsive-banner-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
.flagship-image { width: 100%; height: 100%; object-fit: cover; }
.flagship-link { position: absolute; inset: 0; z-index: 1; }
.flagship-copy { position: relative; pointer-events: none; display: flex; flex-direction: column; align-items: center; gap: var(--gap-controls); width: 100%; max-width: 920px; padding: clamp(var(--space-24),5.2vw,var(--space-96)); text-align: center; }
.flagship-copy .banner-label { flex: none; }
.flagship-copy strong { font-size: var(--type-display); font-weight: var(--weight-medium); letter-spacing: var(--tracking-display); line-height: var(--leading-display); overflow-wrap: anywhere; }
.flagship-row[style*="--columns:3"] .flagship-copy strong { font-size: var(--type-display-compact); }
.flagship-copy > .rich-content { color: #d9e0e6; font-size: 1rem; line-height: 1.55; }
.flagship-cta { position: relative; z-index: 2; pointer-events: auto; margin-top: var(--space-8); }
.flagship[data-text-position="left"] { justify-content: flex-start; align-items: flex-end; }
.flagship[data-text-position="right"] { justify-content: flex-end; align-items: flex-end; }
.flagship[data-text-position="left"] .flagship-copy, .flagship[data-text-position="right"] .flagship-copy { width: auto; align-items: flex-start; text-align: left; }
.flagship[data-text-position="top"] { align-items: flex-start; }
.flagship-link:focus-visible { outline-offset: -7px; }

/* Content pages: About, directory, News, and standalone states. */
.inner-page { max-width: 1320px; min-height: 67vh; margin: auto; padding: clamp(var(--space-64),7vw,var(--space-96)) clamp(var(--space-20),6vw,var(--space-96)) var(--space-128); text-align: center; }
.standalone-page h1 { margin: 0 0 var(--space-24); font-size: var(--type-display); font-weight: var(--weight-heading); letter-spacing: var(--tracking-display); line-height: var(--leading-display); overflow-wrap: anywhere; }
.inner-page > .banner-label { margin-bottom: var(--space-32); }
.inner-page > p:not(.eyebrow) { max-width: 740px; margin-inline: auto; color: var(--muted); font-size: 1.2rem; line-height: 1.7; }
.about-page { max-width: 1140px; }
.about-site-card, .about-profile { border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); }
.about-site-card { margin-bottom: var(--space-12); padding: clamp(var(--space-24),4vw,var(--space-48)); }
.about-site-card h2 { margin: var(--space-8) 0 var(--space-16); font-size: var(--type-section); font-weight: var(--weight-medium); letter-spacing: var(--tracking-heading); }
.about-contributors-title { margin: var(--space-32) 0 var(--space-16); text-align: center; font-size: var(--type-section); font-weight: var(--weight-heading); letter-spacing: -.03em; }
.about-site-card .rich-content, .about-profile-copy .rich-content { max-width: 720px; margin: 0 auto; color: var(--muted); font-size: clamp(1rem,1.4vw,1.18rem); line-height: 1.75; }
.about-profile { display: grid; grid-template-columns: minmax(200px,.42fr) minmax(0,.58fr); align-items: start; gap: clamp(var(--space-32),6vw,var(--space-80)); min-height: 410px; padding: clamp(var(--space-32),5vw,var(--space-64)); }
.about-profile + .about-profile { margin-top: var(--space-12); }
.about-photo-paper { position: relative; width: min(100%,270px); margin: 0 auto; padding: 14px 14px 38px; background: #ece9e1 url('/assets/versioned/31dfc3fde57a76f118c07a48/paper-wrinkle.svg') center / cover; box-shadow: 0 18px 36px #0008, 0 2px 5px #0005; transform: rotate(-5deg); }
.about-photo-paper::before { content: ''; position: absolute; z-index: 1; top: -10px; left: 50%; width: 19px; height: 19px; border: 3px solid #c5ccd2; border-radius: 50%; background: #56616d; box-shadow: 2px 4px 6px #0008; transform: translateX(-50%); }
.about-photo-paper img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--surface-raised); }
.about-profile-copy { min-width: 0; padding-top: var(--space-12); text-align: center; }
.about-profile-name { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: var(--space-4) var(--gap-controls); margin: var(--space-8) 0 var(--space-24); color: var(--text); font-size: var(--type-profile-name); font-weight: var(--weight-heading); line-height: 1.25; overflow-wrap: anywhere; }
.about-profile-role { padding-left: var(--space-12); border-left: 1px solid var(--line); color: var(--muted); font-size: .82em; font-weight: var(--weight-body); }
/* The shared title bar determines the content starting gap on every route. */
.page-title-bar + :is(.inner-page, .news-article) { padding-top: var(--space-64); }
.inner-page.contact-page > p { margin: 0 auto var(--space-24); }
.contact-page > .button { margin-top: 0; }
.directory-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: var(--gap-controls); }
.directory-group { padding: var(--space-24); background: var(--surface); border: 1px solid var(--line); border-radius: var(--card-radius); }
.directory-group h2 { margin: 0 0 var(--space-20); font-size: 1.5rem; font-weight: var(--weight-heading); }
.directory-group ul { list-style: none; margin: 0; padding: 0; }
.directory-group li + li { margin-top: var(--space-8); }
.directory-group a { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-controls); padding: var(--space-12); border-radius: var(--control-radius); background: var(--control-hover); color: #d6dfe7; text-align: left; transition: background-color .2s ease; }
.directory-group a:hover, .directory-group a:focus-visible { background: #1c2731; }
.pill-link { display: inline-flex; align-items: center; gap: var(--gap-inline); padding: var(--space-8) var(--space-12); border-radius: var(--control-radius); background: var(--control-hover); color: var(--text); font-weight: var(--weight-medium); transition: background-color .2s ease; }
.pill-link:hover, .pill-link:focus-visible { background: #1c2731; }

.news-page { max-width: 1400px; }
.news-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--gap-cards); text-align: left; }
.news-card { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); transition: background-color .22s ease, border-color .22s ease; }
.news-card:hover, .news-card:focus-visible { background: var(--surface-raised); border-color: #52616e; }
.news-card-image { display: block; width: 100%; aspect-ratio: 16/9; object-fit: var(--news-image-fit,cover); object-position: var(--news-image-position,center); background: var(--surface-raised); }
.news-card-copy { padding: clamp(var(--space-20),3vw,var(--card-padding)); }
.news-card h2 { margin: var(--space-16) 0 var(--space-20); font-size: var(--type-card); font-weight: var(--weight-medium); line-height: 1.23; letter-spacing: var(--tracking-card); }
.news-card time, .news-article time { color: var(--muted); font-size: var(--type-support); }
.news-empty, .news-results-status { color: var(--muted); }
.news-results-status { margin: 0 0 var(--space-20); }
.news-results > .pill-link { margin-top: var(--space-24); }
.news-article { max-width: 1100px; margin: auto; padding: clamp(var(--space-48),7vw,var(--space-96)) var(--space-20) var(--space-96); text-align: left; }
.news-article-header { max-width: 790px; margin: 0 auto var(--space-48); text-align: left; }
.news-article-header .banner-label { margin-bottom: var(--space-16); }
.news-article-header h1 { margin: 0 0 var(--space-24); font-size: var(--type-article); font-weight: var(--weight-heading); letter-spacing: var(--tracking-article); line-height: var(--leading-title); overflow-wrap: anywhere; }
.news-article-header h1:last-child { margin-bottom: 0; }
.news-standfirst { margin: 0 0 var(--space-16); font-size: var(--type-standfirst); line-height: 1.55; }
.news-standfirst:last-child { margin-bottom: 0; }
.news-figure { margin: 0; }
.news-figure img { display: block; width: 100%; max-height: 720px; border-radius: var(--card-radius); object-fit: var(--news-image-fit,cover); object-position: var(--news-image-position,center); background: var(--surface-raised); }
.news-figure.has-image-sizing img { aspect-ratio: 16/9; height: auto; }
.news-figure figcaption { margin: var(--space-8) 0 0; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; text-align: left; }
.news-lead { margin-bottom: var(--space-48); }
.news-article-body { display: grid; gap: clamp(var(--space-32),4vw,var(--space-48)); margin-bottom: var(--space-64); }
.news-prose { width: 100%; max-width: 760px; margin-inline: auto; }
.news-prose + .news-prose { margin-top: calc(-1 * clamp(var(--space-16),2.5vw,var(--space-32))); }
.news-article-body .rich-content { font-size: var(--type-body-large); line-height: var(--leading-reading); text-align: left; }
.news-article-body .rich-content :is(ul,ol) { display: block; margin-inline: 0; }
.news-article-body .rich-content :is(blockquote,img) { margin-inline: 0; }
.news-article-footer { width: 100%; max-width: 760px; margin-inline: auto; text-align: left; }
.news-columns, .news-image-text { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: clamp(var(--space-20),4vw,var(--space-48)); }
.news-image-text { align-items: center; }
[data-scroll-reveal].will-reveal { opacity: 0; transform: translateY(6px); transition: opacity var(--entrance-duration, 200ms) ease, transform var(--entrance-duration, 200ms) ease; }
[data-scroll-reveal].will-reveal.is-revealed { opacity: 1; transform: none; }

/* Full-image shading stays separate from text outlines and never forms a text box. */
:is(.latest-slide,.flagship,.project-hero):has(>.responsive-banner-image)::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(6,11,17,.8), rgba(6,11,17,.12));
}
.flagship:has(>.responsive-banner-image)::after { z-index: -1; }
@media (max-width: 700px) {
  :is(.flagship,.project-hero):has(>.responsive-banner-image):not(:has(>.has-mobile-image))::after { display: none; }
}

/* Glyph outlines are independent of the full-banner gradient. */
[data-banner-contrast] { --banner-text-outline: 1px; --banner-text-outline-color: #60666d; }
[data-banner-contrast="strong"] { --banner-text-outline: 2px; }
[data-banner-contrast="off"] { --banner-text-outline: 0px; }
.flagship-copy { z-index: 2; }
[data-banner-contrast] > :is(.latest-copy,.flagship-copy,.project-hero-copy) :is(h1,h2,strong,.rich-content,.banner-label) { -webkit-text-stroke: var(--banner-text-outline) var(--banner-text-outline-color); paint-order: stroke fill; text-shadow: none; }
:is(.latest-copy,.flagship-copy,.project-hero-copy) .rich-content,
.project-hero .project-hero-copy .rich-content p { color: var(--text); }

/* Project template, reusable rich text, and owner-selected banner placements. */
.project-page { max-width: 1400px; margin: auto; padding: var(--space-24) clamp(var(--space-20),5vw,var(--space-80)) var(--space-128); }
.project-hero { position: relative; display: flex; align-items: flex-start; justify-content: center; gap: var(--space-24); min-height: 580px; padding: clamp(var(--space-32),5vw,var(--space-80)); overflow: hidden; background: var(--banner-base); text-align: center; }
.project-hero:not(:has(>.responsive-banner-image)) { min-height: 360px; }
.project-hero > .responsive-banner-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.project-hero-image { width: 100%; height: 100%; object-fit: cover; }
.project-hero > div { position: relative; z-index: 2; width: 100%; max-width: 790px; }
.project-hero .banner-label { margin-bottom: var(--space-16); }
.project-hero h1 { margin: 0 0 var(--space-20); font-size: var(--type-display); font-weight: var(--weight-heading); letter-spacing: var(--tracking-display); line-height: var(--leading-display); overflow-wrap: anywhere; }
.project-hero .rich-content p { font-size: 1.15rem; color: #dce4eb; line-height: 1.6; }
.project-hero[data-text-position="left"] { justify-content: flex-start; align-items: flex-end; text-align: left; }
.project-hero[data-text-position="right"] { justify-content: flex-end; align-items: flex-end; text-align: left; }
.project-hero[data-text-position="top"] { align-items: flex-start; }
.button { margin-top: var(--space-20); border: 0; transition: filter .2s ease; }
.project-section { max-width: 850px; margin: var(--space-96) auto; text-align: center; }
.project-section h2, .screenshots h2 { margin: 0 0 var(--space-16); font-size: var(--type-section); font-weight: var(--weight-heading); letter-spacing: var(--tracking-heading); }
.project-section .rich-content { color: var(--muted); font-size: var(--type-body-large); line-height: 1.75; }
.project-section-image { display: block; width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--card-radius); }
.project-section[data-layout="image-left"]:has(.project-section-image), .project-section[data-layout="image-right"]:has(.project-section-image) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; gap: clamp(var(--space-20),4vw,var(--space-64)); max-width: 1200px; }
.project-section[data-layout="image-left"] .project-section-image { order: -1; }
.project-section[data-layout="stacked"] .project-section-image { max-width: 850px; margin: var(--space-24) auto 0; }
.rich-content > :first-child { margin-top: 0; }
.rich-content > :last-child { margin-bottom: 0; }
.rich-content p { margin-block: var(--space-16); }
.rich-content img { display: block; width: auto; max-width: 100%; height: auto; margin-inline: auto; border-radius: var(--card-radius); }
.rich-content :is(h1,h2,h3) { margin: var(--space-32) 0 var(--space-12); font-weight: var(--weight-heading); line-height: var(--leading-title); }
.rich-content h1 { font-size: var(--type-rich-h1); }
.rich-content h2 { font-size: var(--type-rich-h2); }
.rich-content h3 { font-size: var(--type-rich-h3); }
.rich-content ul, .rich-content ol { display: inline-block; max-width: 100%; padding-left: 1.5em; text-align: left; }
.rich-content u { text-decoration: underline; text-decoration-thickness: from-font; text-underline-offset: .12em; }
.rich-content blockquote { margin: 1em auto; padding: .7em 1em; border-radius: var(--control-radius); background: var(--surface-raised); }
.rich-content pre { max-width: 100%; overflow: auto; padding: 1em; border-radius: var(--control-radius); background: var(--surface-raised); text-align: left; }
.rich-content a { padding: .1em .25em; border-radius: var(--inline-radius); background: var(--surface-raised); color: var(--text); transition: background-color .2s ease; }
.rich-content a:hover, .rich-content a:focus-visible { background: var(--control-hover); }

:is(.latest-slide,.flagship,.project-hero)[data-text-position="center"], :is(.latest-slide,.flagship,.project-hero)[data-text-position^="center-"] { align-items: center; }
:is(.latest-slide,.flagship,.project-hero)[data-text-position="bottom"], :is(.latest-slide,.flagship,.project-hero)[data-text-position^="bottom-"] { align-items: flex-end; }
:is(.latest-slide,.flagship,.project-hero)[data-text-position$="-left"], :is(.latest-slide,.flagship,.project-hero)[data-text-position="left"] { justify-content: flex-start; text-align: left; }
:is(.latest-slide,.flagship,.project-hero)[data-text-position$="-right"], :is(.latest-slide,.flagship,.project-hero)[data-text-position="right"] { justify-content: flex-end; text-align: right; }
:is(.latest-slide,.flagship,.project-hero)[data-text-position$="-left"] .rich-content, :is(.latest-slide,.flagship,.project-hero)[data-text-position="left"] .rich-content { margin-left: 0; }
:is(.latest-slide,.flagship,.project-hero)[data-text-position$="-right"] .rich-content, :is(.latest-slide,.flagship,.project-hero)[data-text-position="right"] .rich-content { margin-right: 0; }
.latest-slide[data-text-position] .latest-copy { margin: 0; }
.latest-slide[data-text-position$="-left"] .latest-logo, .latest-slide[data-text-position="left"] .latest-logo { margin-left: 0; }
.latest-slide[data-text-position$="-right"] .latest-logo, .latest-slide[data-text-position="right"] .latest-logo { margin-right: 0; }
.flagship[data-text-position$="-left"] .flagship-copy, .flagship[data-text-position="left"] .flagship-copy { width: auto; align-items: flex-start; text-align: left; }
.flagship[data-text-position$="-right"] .flagship-copy, .flagship[data-text-position="right"] .flagship-copy { width: auto; align-items: flex-end; text-align: right; }
@media (min-width: 701px) {
  .responsive-banner-image.mobile-only { display: none; }
  .latest-slide:has(>.mobile-only)::after, .flagship:has(>.mobile-only)::after, .project-hero:has(>.mobile-only)::after { display: none; }
  .project-hero:has(>.mobile-only) { min-height: 360px; }
}
.screenshots { margin: var(--space-96) auto; text-align: center; }
.screenshot-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: var(--gap-controls); }
.screenshot-grid img { display: block; width: 100%; border: 1px solid var(--line); border-radius: var(--card-radius); }

.menu-overlay { position: fixed; inset: 0; z-index: var(--menu-layer); }
.menu-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); }
/* Directory sheet motion stays near its responsive layout rules below. */
.menu-sheet { position: absolute; top: 72px; left: 0; right: 0; max-height: calc(100dvh - 72px); overflow: auto; padding: var(--space-20) clamp(var(--space-24),4.5vw,72px) var(--space-24); background: var(--shell-surface); box-shadow: 0 22px 55px #0007; }
.menu-overlay.is-opening .menu-backdrop { animation: menu-backdrop-in .26s ease both; }
.menu-overlay.is-closing .menu-backdrop { animation: menu-backdrop-out .4s ease both; }
.menu-overlay.is-opening .menu-sheet { animation: menu-sheet-in .28s cubic-bezier(.22,.61,.36,1) both; }
.menu-overlay.is-closing .menu-sheet { animation: menu-sheet-out .24s cubic-bezier(.55,0,.8,.35) .16s both; }
@keyframes menu-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes menu-sheet-in { from { transform: translateY(-100%); } to { transform: translateY(0); } }
@keyframes menu-sheet-out { from { transform: translateY(0); } to { transform: translateY(-100%); } }
.menu-grid { display: block; max-width: calc(var(--content-max) - var(--header-gutter) - var(--header-gutter)); margin-inline: auto; }
.menu-grid.has-previews { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); align-items: stretch; gap: clamp(var(--space-24),4vw,var(--space-64)); }
.menu-groups { columns: 2; column-gap: var(--space-20); }
.menu-group { display: inline-block; width: 100%; min-width: 0; margin-bottom: var(--space-12); break-inside: avoid; }
.menu-preview-slot { position: relative; min-width: 0; min-height: 214px; pointer-events: none; }
.menu-preview-card { position: absolute; left: 0; width: min(100%, 380px); aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--banner-base); }
.menu-preview-card > .responsive-banner-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.menu-preview-card > .responsive-banner-image.wordmark-background { opacity: 1; }
.menu-preview-card > .responsive-banner-image img { display: block; width: 100%; height: 100%; object-fit: var(--image-fit, cover); object-position: var(--image-position, center); }
.menu-overlay.is-opening :is(.menu-group h2, .menu-mobile-list summary) { animation: menu-content-in .18s ease var(--menu-entry-delay, 240ms) both; }
.menu-overlay.is-opening .menu-group li > a,
.menu-mobile-list details[open]:not([data-collapsing]) .menu-mobile-panel a { animation: menu-entry-in .18s cubic-bezier(.22,.61,.36,1) var(--menu-entry-delay, 240ms) both; }
.menu-overlay.is-opening .menu-empty { animation: menu-content-in .12s ease-out .24s both; }
.menu-overlay.is-closing :is(.menu-group h2, .menu-mobile-list summary) { animation: menu-content-out .1s ease-in var(--menu-exit-delay, 0ms) both; }
.menu-overlay.is-closing :is(.menu-empty, .menu-preview-slot) { animation: menu-content-out .1s ease-in both; }
.menu-overlay.is-closing .menu-group li > a,
.menu-overlay.is-closing .menu-mobile-list details[open] .menu-mobile-panel a,
.menu-mobile-list details[data-collapsing] .menu-mobile-panel a { animation: menu-entry-out .1s ease-in var(--menu-exit-delay, 0ms) both; }
@keyframes menu-entry-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-6px); } }
@keyframes menu-entry-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes menu-content-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-content-out { from { opacity: 1; } to { opacity: 0; } }
.menu-overlay :is(.menu-group li > a, .menu-mobile-list summary, .menu-mobile-panel a):focus-visible { animation: none; opacity: 1; transform: none; }
.menu-group h2 { margin: 0 0 var(--space-8); padding: var(--space-8) var(--space-12); background: #222b34; border-radius: var(--control-radius); font-size: var(--type-support); font-weight: var(--weight-heading); line-height: 1.35; }
.menu-group ul { list-style: none; margin: 0; padding: 0; }
.menu-group li a { display: block; padding: var(--space-8) var(--space-12); border-radius: var(--control-radius); color: #dce3e9; font-size: var(--type-body); line-height: 1.4; transition: background-color .2s ease, color .2s ease; }
.menu-group li a:hover, .menu-group li a:focus-visible { background: var(--control-hover); color: #fff; }
.menu-empty { margin: 0; color: var(--muted); }
.menu-mobile-list { display: none; }
@media (max-width: 1050px) and (min-width: 761px) {
  .menu-groups { columns: 1; }
}

/* Responsive overrides follow source order so narrow layouts retain the established cascade. */
@media (max-width: 1100px) {
  .latest-copy { width: min(720px, calc(100% - 48px)); }
  .flagship-row { grid-template-columns: 1fr; }
  .flagship, .flagship-row[style*="--columns:1"] .flagship, .flagship-row[style*="--columns:3"] .flagship { min-height: 500px; }
  .flagship + .flagship { border-left: 0; border-top: 1px solid #34404c; }
}
@media (max-width: 760px) {
  .menu-grid, .menu-grid.has-previews { display: none; }
  .menu-mobile-list { display: block; }
  .menu-mobile-list details + details { margin-top: var(--space-12); }
  .menu-mobile-list summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-20); padding: var(--space-16) var(--space-16); border: 1px solid var(--line); border-radius: var(--control-radius); background: var(--surface-raised); font-size: 1rem; font-weight: var(--weight-medium); cursor: pointer; list-style: none; }
  .menu-mobile-list summary:hover, .menu-mobile-list summary:focus-visible { background: #141d25; }
  .menu-mobile-list details[open] > summary { margin-bottom: var(--space-8); }
  .menu-mobile-list details[data-collapsing] > summary { margin-bottom: 0; }
  .menu-mobile-panel { overflow: hidden; }
  .menu-mobile-list a { display: block; padding: var(--space-12) var(--space-16); border-radius: var(--control-radius); color: #dce3e9; transition: background-color .2s ease; }
  .menu-mobile-list a:hover, .menu-mobile-list a:focus-visible { background: var(--control-hover); }
}
@media (max-width: 900px) {
  .page-title-bar { --title-edge: var(--header-gutter); --search-edge: var(--header-gutter); --news-search-width: clamp(160px, 42vw, 200px); }
  .page-title-bar-inner { min-height: 56px; padding: var(--space-8) var(--header-gutter); }
  .page-title-bar-title, .page-title-bar.has-search .page-title-bar-title { display: flex; align-items: center; min-height: 40px; max-width: none; font-size: 1.25rem; line-height: 1.2; }
  .page-title-bar.has-search .page-title-bar-title { max-width: calc(100vw - var(--title-edge) - var(--search-edge) - var(--news-search-width) - 16px); }
  .news-search { height: 40px; }
  .news-search input { padding: 0 var(--space-8); font-size: var(--type-support); }
  .news-search button { width: 36px; height: 36px; }
  .news-search svg { width: 17px; height: 17px; }
}
@media (max-width: 700px) {
  :root { --header-gutter: 12px; --wordmark-width: 118px; --wordmark-end-space: 4px; }
  .responsive-banner-image img { object-fit: var(--mobile-image-fit, var(--image-fit, cover)); object-position: var(--mobile-image-position, var(--image-position, center)); }
  .site-header { height: 64px; }
  body:has(.page-title-bar) .toast-stack { top: 136px; }
  .site-header-inner { gap: var(--space-12); }
  .brand-trigger { width: 128px; height: 44px; }
  .site-nav { gap: var(--space-4); }
  .site-nav a { font-size: .875rem; }
  .site-nav { --nav-block-padding: var(--space-8); --nav-inline-padding: var(--space-4); }
  .coming b { display: none; }
  .menu-sheet { top: 64px; max-height: calc(100dvh - 64px); padding: var(--space-16) var(--space-20) var(--space-24); }
  .latest { min-height: 580px; }
  .latest-copy { align-self: flex-start; width: 100%; margin: 0; padding: var(--space-64) var(--space-20) var(--space-96); }
  .latest-copy h2 { font-size: var(--type-display); }
  .latest-controls { left: 50%; bottom: 25px; }
  .flagship, .flagship-row[style*="--columns:1"] .flagship, .flagship-row[style*="--columns:3"] .flagship { min-height: 430px; }
  .flagship-copy { padding: var(--space-32) var(--space-20); }
  .flagship-copy strong { font-size: var(--type-display); }
  .flagship:has(>.responsive-banner-image) { display: flex; flex-direction: column; align-items: stretch; min-height: 0 !important; }
  .flagship:has(>.responsive-banner-image) > .responsive-banner-image { position: relative; inset: auto; z-index: 0; height: 240px; flex: none; }
  .flagship:has(>.responsive-banner-image) .flagship-copy { max-width: none; min-height: 200px; background: var(--banner-base); }
  .flagship:has(>.has-mobile-image) { flex-direction: row; align-items: flex-start; min-height: 430px !important; }
  .flagship:has(>.has-mobile-image) > .responsive-banner-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
  .flagship:has(>.has-mobile-image)::after { display: block; }
  .flagship:has(>.has-mobile-image) .flagship-copy { max-width: 920px; min-height: 0; background: transparent; }
  .flagship:has(>.has-mobile-image)[data-text-position^="center"] { align-items: center; }
  .flagship:has(>.has-mobile-image)[data-text-position^="bottom"] { align-items: flex-end; }
  .project-page { padding: var(--space-16) 0 var(--space-80); }
  .project-hero { min-height: 500px; padding: var(--space-24) var(--space-20); }
  .project-hero:not(:has(>.responsive-banner-image)) { min-height: 320px; }
  .project-hero:has(>.responsive-banner-image) { flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
  .project-hero:has(>.responsive-banner-image) > .responsive-banner-image { order: -1; position: relative; inset: auto; height: auto; }
  .project-hero:has(>.responsive-banner-image) .project-hero-image { display: block; height: auto; object-fit: contain; }
  .project-hero:has(>.responsive-banner-image) > div { max-width: none; padding: var(--space-24) var(--space-20) var(--space-40); }
  .project-hero:has(>.has-mobile-image) { flex-direction: row; align-items: flex-start; min-height: 500px; padding: var(--space-24) var(--space-20); }
  .project-hero:has(>.has-mobile-image) > .responsive-banner-image { position: absolute; inset: 0; width: 100%; height: 100%; }
  .project-hero:has(>.has-mobile-image) .project-hero-image { height: 100%; object-fit: var(--mobile-image-fit, var(--image-fit, cover)); object-position: var(--mobile-image-position, var(--image-position, center)); }
  .project-hero:has(>.has-mobile-image) > div { max-width: 790px; padding: 0; }
  .project-hero:has(>.has-mobile-image)::after { display: block; }
  .project-hero:has(>.has-mobile-image)[data-text-position^="center"] { align-items: center; }
  .project-hero:has(>.has-mobile-image)[data-text-position^="bottom"] { align-items: flex-end; }
  .project-hero h1 { font-size: var(--type-display); }
  .screenshots, .project-section { margin: var(--space-64) var(--space-20); }
  .project-section[data-layout="image-left"]:has(.project-section-image), .project-section[data-layout="image-right"]:has(.project-section-image) { grid-template-columns: 1fr; }
  .inner-page { padding: var(--space-64) var(--space-20) var(--space-96); }
  .about-profile { grid-template-columns: 1fr; gap: var(--space-32); min-height: 0; padding: var(--space-40) var(--space-24) var(--space-32); }
  .about-photo-paper { width: min(64vw,220px); }
  .about-profile-copy { padding-top: 0; }
  .about-profile-name { margin-bottom: var(--space-20); }
  .site-footer { --footer-gutter: var(--space-20); }
  .news-grid, .news-columns, .news-image-text, .home-news-layout { grid-template-columns: 1fr; }
  .news-article { padding: var(--space-48) var(--space-20) var(--space-80); }
  .news-article-header { margin-bottom: var(--space-32); }
  .news-article-header h1 { font-size: var(--type-article); }
  .standalone-page h1 { font-size: var(--type-display); }
  .news-lead { margin-bottom: var(--space-40); }
}
@media (max-width: 380px) {
  :root { --wordmark-width: 104px; --wordmark-end-space: 3px; }
  .site-header-inner { gap: var(--space-8); }
  .brand-trigger { width: 112px; }
  .site-nav { gap: var(--space-4); }
  .site-nav a { font-size: .875rem; }
  .coming b { font-size: 0; }
  .coming b::after { content: "Soon"; font-size: .56rem; }
}
/* Motion policy: same content remains visible when animation is removed. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: 0s !important; }
  .menu-overlay.is-opening :is(.menu-group h2, .menu-group li > a, .menu-mobile-list summary),
  .menu-mobile-list details[open] .menu-mobile-panel a { animation: none !important; }
  .latest-dots.progress-ready .latest-dot[aria-current=true]::before { animation: none; width: 100%; }
  [data-scroll-reveal].will-reveal { opacity: 1; transform: none; }
}

.pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:var(--gap-cards); margin:var(--space-24) 0; }

/* Reserve results space while the on-demand index loads; keep footer stable. */
.news-results { min-height: calc(100vh - 120px); }
#news-results-status { min-height: 3em; }

/* Maintenance replaces the public shell; no navigation or action leads away. */
.minimal-page { min-width: 0; }
.maintenance-page > :is(h1,p) { width: 100%; min-width: 0; }
.maintenance-page { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding-block: var(--space-48); }
.maintenance-wordmark { width: 174px; max-width: 100%; margin-bottom: var(--space-32); }
.maintenance-wordmark svg { display: block; width: 100%; height: auto; }
.maintenance-page p { max-width: 620px; }
