/* ============================================================
   Neurohaven — Explore & Connect
   Creative redo · wide layout · ice-cyan brand
   Built on the Mejiro data-driven engine.
   ============================================================ */

/* The hidden attribute must always beat component display rules. */
[hidden] { display: none !important; }

:root {
  --bg:          #070b18;
  --bg-2:        #0a1024;
  --panel:       rgba(255,255,255,.045);
  --panel-2:     rgba(255,255,255,.07);
  --panel-solid: #0f1730;
  --ink:         #eaf1ff;
  --ink-dim:     #c4d0ee;
  --muted:       #93a4cb;
  --accent:      #34d7ee;   /* ice cyan — the N mark */
  --accent-2:    #7fe6d0;   /* clinical teal — wordmark */
  --accent-3:    #8b9cff;   /* periwinkle */
  --ember:       #ffb27a;
  --line:        rgba(255,255,255,.10);
  --line-strong: rgba(255,255,255,.18);
  --glow:        rgba(52,215,238,.30);

  --font-display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "Space Mono", ui-monospace, monospace;

  --shell:   92.5rem;   /* WIDE page setup */
  --shell-x: clamp(1.25rem, 4.5vw, 4rem);
  --radius:    1rem;
  --radius-lg: 1.5rem;
  --shadow:  0 1.875rem 5.625rem rgba(0,0,0,.5);
  --shadow-glow: 0 0 0 .0625rem rgba(52,215,238,.18), 0 1.5rem 4.375rem rgba(11,30,60,.5);
  --header-h: 4.75rem;

  /* Shared cinematic hero rhythm.
     The main-menu photographic heroes must all use the same vertical canvas
     as the homepage hero, otherwise the source imagery gets cropped
     differently from page to page. */
  --nh-cinematic-hero-height: clamp(38.75rem, 78vh, 57.5rem);
  --nh-cinematic-hero-inner-height: clamp(31.25rem, 62vh, 47.5rem);
  --nh-cinematic-hero-pad-top: clamp(4.5rem, 9vw, 8.25rem);
  --nh-cinematic-hero-pad-bottom: clamp(4.75rem, 8vw, 7.75rem);
  --nh-cinematic-hero-mobile-height: clamp(35rem, 78vh, 47.5rem);
}


[data-theme="light"] {
  --bg:          #eef3fb;
  --bg-2:        #e3ebf7;
  --panel:       rgba(12,24,52,.04);
  --panel-2:     rgba(12,24,52,.06);
  --panel-solid: #ffffff;
  --ink:         #0c1530;
  --ink-dim:     #243357;
  --muted:       #566489;
  --line:        rgba(12,24,52,.12);
  --line-strong: rgba(12,24,52,.20);
  --accent:      #0fb6d4;
  --accent-2:    #1aa589;
  --shadow:      0 1.5rem 4.375rem rgba(35,60,110,.18);
  --shadow-glow: 0 0 0 .0625rem rgba(15,182,212,.22), 0 1.375rem 3.75rem rgba(35,80,140,.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; }

/* ---------- v41 resolution-responsive desktop scale ----------
   1920 x 1080 is the visual reference canvas. Below that reference the
   root remains 16 CSS px, preserving the existing laptop/tablet/mobile
   layout. Above it, the root scales by the limiting viewport dimension,
   so QHD/4K keep the same composition, line density, gutters and control
   proportions instead of accumulating empty outer space. The 64px ceiling
   supports proportional scaling through 8K while preventing pathological
   kiosk/window dimensions from making the interface unbounded. */
@supports (font-size: min(1vw, 1vh)) {
  html {
    font-size: clamp(16px, min(0.833333333vw, 1.481481481vh), 64px);
  }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background:
    radial-gradient(75rem 43.75rem at 78% -8%, rgba(52,215,238,.16), transparent 60%),
    radial-gradient(56.25rem 37.5rem at 10% 8%, rgba(139,156,255,.12), transparent 55%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3 { font-family: var(--font-display); font-weight: 700; line-height: 1.08; letter-spacing: -.02em; margin: 0; }
h1 { font-size: clamp(2.4rem, 5.2vw, 4.4rem); }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.7rem); }
h3 { font-size: 1.15rem; letter-spacing: -.01em; }
p  { margin: 0 0 1rem; color: var(--ink-dim); }
a  { color: var(--accent); text-decoration: none; }

/* ---------- shell / sections ---------- */
.section-shell { width: 100%; max-width: var(--shell); margin: 0 auto; padding-inline: var(--shell-x); }
.section-block { padding-block: clamp(3.5rem, 8vw, 7.5rem); position: relative; }
.section-head { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; align-items: flex-end; justify-content: space-between; margin-bottom: clamp(1.75rem, 4vw, 3.25rem); }
.section-head > div:first-child { max-width: 38.75rem; }
.section-head-copy { max-width: 26.25rem; color: var(--muted); }
.section-head-copy p { margin: 0; }
.section-foot { margin-top: 2.5rem; }
.section-copy { color: var(--ink-dim); }
.section-copy p { margin: 0 0 1rem; }
.section-copy p:last-child { margin-bottom: 0; }

.eyebrow { display: inline-flex; align-items: center; gap: .625rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); margin: 0 0 .875rem; }
.eyebrow-dot { width: .4375rem; height: .4375rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 .625rem var(--accent); }
.eyebrow-light { color: var(--accent-2); }
.eyebrow-light .eyebrow-dot { background: var(--accent-2); box-shadow: 0 0 .625rem var(--accent-2); }

/* ---------- reveal ---------- */
.reveal { opacity: 0; transform: translateY(1.25rem); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; transition: none; } }

/* ---------- skip link ---------- */
.skip-link { position: fixed; left: 1rem; top: -3.75rem; z-index: 1000; background: var(--accent); color: #06121b; padding: .625rem 1rem; border-radius: .625rem; font-weight: 700; transition: top .2s; }
.skip-link:focus { top: 1rem; }

/* ---------- header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  height: var(--header-h);
  padding-inline: var(--shell-x);
  background: rgba(7,11,24,.55);
  backdrop-filter: blur(1rem) saturate(140%);
  border-bottom: .0625rem solid var(--line);
  transition: background .3s, border-color .3s;
}
.site-header.is-scrolled { background: rgba(7,11,24,.86); }
[data-theme="light"] .site-header { background: rgba(10,16,36,.72); }   /* keep dark so white wordmark reads */
[data-theme="light"] .site-header.is-scrolled { background: rgba(8,13,30,.9); }

.brand { display: inline-flex; align-items: center; gap: .75rem; }
.brand-wordmark { height: 2.125rem; width: auto; display: block; }
@media (max-width: 37.5rem) { .brand-wordmark { height: 1.625rem; } }

/* ---------- nav ---------- */
.nav-toggle { display: none; flex-direction: column; gap: .3125rem; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; background: var(--panel); border: .0625rem solid var(--line); border-radius: .75rem; cursor: pointer; }
.nav-toggle span { width: 1.25rem; height: .125rem; background: var(--ink); border-radius: .125rem; transition: .25s; }
body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(.4375rem) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-.4375rem) rotate(-45deg); }

.site-nav { display: flex; align-items: center; gap: 1.75rem; }
.nav-main { display: flex; align-items: center; gap: 1.625rem; }
.nav-main a { color: var(--ink-dim); font-size: .90625rem; font-weight: 500; position: relative; padding: .25rem 0; }
.nav-main a:hover { color: var(--ink); }
.nav-main a.is-active { color: var(--accent); }
.nav-main a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: -.125rem; height: .125rem; width: 0; background: var(--accent); transition: width .25s; }
.nav-main a:not(.nav-cta):hover::after, .nav-main a.is-active::after { width: 100%; }
.nav-cta { color: #06121b !important; background: linear-gradient(120deg, var(--accent), var(--accent-2)); padding: .5625rem 1rem; border-radius: .625rem; font-weight: 700; }
.nav-cta::after { display: none; }
.nav-cta:hover { filter: brightness(1.08); }

.nav-tools { display: flex; align-items: center; gap: .875rem; }
.language-switch { display: inline-flex; gap: .125rem; background: var(--panel); border: .0625rem solid var(--line); border-radius: .625rem; padding: .1875rem; }
.language-switch a { font-family: var(--font-mono); font-size: .6875rem; color: var(--muted); padding: .25rem .5rem; border-radius: .4375rem; }
.language-switch a.is-active { background: var(--accent); color: #06121b; }
.theme-toggle {
  display: inline-grid; place-items: center; flex: 0 0 auto;
  width: 1.875rem; height: 1.875rem; padding: 0;
  background: rgba(255,255,255,.045); border: .0625rem solid var(--line);
  color: var(--ink-dim); border-radius: 50%; cursor: pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .15s ease;
}
.theme-toggle:hover { color: var(--ink); background: rgba(255,255,255,.085); border-color: var(--line-strong); }
.theme-toggle:active { transform: scale(.94); }
.theme-toggle:focus-visible { outline: .125rem solid var(--accent); outline-offset: .125rem; }
.theme-toggle-icon { width: .9375rem; height: .9375rem; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle-icon--sun { display: block; }
.theme-toggle-icon--moon { display: none; }
[data-theme="light"] .theme-toggle-icon--sun { display: none; }
[data-theme="light"] .theme-toggle-icon--moon { display: block; }

@media (max-width: 72rem) {
  .nav-toggle { display: flex; }
  .site-nav {
    position: fixed; inset: var(--header-h) 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: rgba(8,12,28,.97); backdrop-filter: blur(1.125rem);
    border-bottom: .0625rem solid var(--line);
    padding: 1rem var(--shell-x) 1.75rem;
    transform: translateY(-.75rem); opacity: 0; pointer-events: none; transition: .25s;
    max-height: calc(100vh - var(--header-h)); overflow-y: auto;
  }
  body.nav-open .site-nav { transform: none; opacity: 1; pointer-events: auto; }
  .nav-main { flex-direction: column; align-items: stretch; gap: .125rem; }
  .nav-main a { padding: .875rem .25rem; border-bottom: .0625rem solid var(--line); font-size: 1rem; }
  .nav-main a::after { display: none; }
  .nav-cta { margin-top: .875rem; text-align: center; }
  .nav-tools { justify-content: space-between; margin-top: 1.125rem; }
}

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-family: var(--font-body); font-weight: 600; font-size: .9375rem; padding: .8125rem 1.5rem; border-radius: .75rem; border: .0625rem solid transparent; cursor: pointer; transition: transform .15s, filter .2s, background .2s, border-color .2s; text-align: center; }
.btn:active { transform: translateY(.0625rem); }
.btn-primary { background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #06121b; box-shadow: 0 .625rem 1.875rem rgba(52,215,238,.25); }
.btn-primary:hover { filter: brightness(1.08); box-shadow: 0 .875rem 2.5rem rgba(52,215,238,.36); }
.btn-secondary { background: var(--panel); color: var(--ink); border-color: var(--line-strong); }
.btn-secondary:hover { background: var(--panel-2); border-color: var(--accent); }
.btn-glow { background: linear-gradient(120deg, var(--accent-3), var(--accent)); color: #06121b; box-shadow: 0 0 0 .0625rem rgba(139,156,255,.4), 0 1rem 3.125rem rgba(139,156,255,.4); }
.btn-glow:hover { filter: brightness(1.1); }
.btn-row, .cta-actions, .hero-actions, .connect-foot, .btn-row { display: flex; flex-wrap: wrap; gap: .875rem; }

/* ---------- hero ---------- */
.hero { position: relative; padding-block: clamp(3rem, 8vw, 6.875rem) clamp(2.5rem, 6vw, 5rem); overflow: hidden; }
.hero-aura { position: absolute; inset: 0; pointer-events: none; background:
  radial-gradient(45rem 32.5rem at 80% 28%, rgba(52,215,238,.22), transparent 62%),
  radial-gradient(35rem 28.75rem at 22% 80%, rgba(139,156,255,.16), transparent 60%); }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.hero-copy-col { max-width: 45rem; }
.hero h1 .hl { background: linear-gradient(120deg, var(--accent), var(--accent-2) 60%, var(--accent-3)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero-kicker { font-size: clamp(1.05rem, 2vw, 1.3rem); color: var(--ink); font-weight: 500; margin: 1.125rem 0 .875rem; }
.hero-copy { color: var(--muted); max-width: 37.5rem; }
.hero-actions { margin-top: 1.75rem; }
.hero-badges { display: flex; flex-wrap: wrap; gap: .625rem; list-style: none; padding: 0; margin: 1.75rem 0 0; }
.hero-badges li { font-family: var(--font-mono); font-size: .71875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-dim); background: var(--panel); border: .0625rem solid var(--line); border-radius: 62.4375rem; padding: .4375rem .875rem; }

.hero-mark-col { position: relative; display: grid; place-items: center; min-height: 20rem; }
.hero-mark-glow { position: absolute; width: 78%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(52,215,238,.45), rgba(52,215,238,0) 65%); filter: blur(.5rem); animation: pulse 5.5s ease-in-out infinite; }
.hero-mark { position: relative; width: min(26.25rem, 78%); height: auto; filter: drop-shadow(0 0 2.5rem rgba(52,215,238,.55)); animation: float 7s ease-in-out infinite; }
.hero-model { position: relative; width: min(26.25rem, 78%); aspect-ratio: 1; margin-inline: auto; }
.hero-model .hero-mark { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.hero-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-.875rem); } }
@keyframes pulse { 0%,100% { opacity: .65; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .hero-mark, .hero-mark-glow { animation: none; } }
@media (max-width: 53.75rem) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-mark-col { order: -1; min-height: 13.75rem; }
  .hero-mark, .hero-model { width: min(16.25rem, 60%); }
}

/* ---------- stats ---------- */
.stats-strip { border-block: .0625rem solid var(--line); background: var(--panel); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; padding-block: 2.25rem; }
.stat { display: flex; flex-direction: column; gap: .25rem; }
.stat strong { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.6rem); color: var(--ink); }
.stat span { font-size: .84375rem; color: var(--muted); }
@media (max-width: 45rem) { .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem 1.25rem; } }

/* ---------- generic card grids ---------- */
.apps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.apps-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.app-tool { min-width: 0; display: flex; flex-direction: column; gap: .75rem; }
.app-tool-media {
  display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: calc(var(--radius) * .9);
  border: .0625rem solid var(--line); background: var(--panel); box-shadow: 0 .65rem 1.75rem rgba(0,0,0,.18);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.app-tool-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.app-tool-media:hover, .app-tool-media:focus-visible { transform: translateY(-.1875rem); border-color: var(--accent); box-shadow: var(--shadow-glow); }
.app-tool .app-card { flex: 1; min-height: 9.25rem; }
.knowledge-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.cafe-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.connect-features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.connect-features.wide { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 68.75rem) { .apps-grid, .knowledge-grid, .connect-features.wide { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 51.25rem)  { .cafe-grid, .connect-features { grid-template-columns: 1fr; } }
@media (max-width: 35rem)  { .apps-grid, .knowledge-grid, .connect-features.wide { grid-template-columns: 1fr; } }

.app-card, .knowledge-card, .cafe-card {
  position: relative; display: flex; flex-direction: column; gap: .5rem;
  background: var(--panel); border: .0625rem solid var(--line); border-radius: var(--radius);
  padding: 1.375rem; color: var(--ink); transition: transform .2s, border-color .2s, background .2s, box-shadow .2s; overflow: hidden;
}
.app-card::before, .knowledge-card::before, .cafe-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(26.25rem 12.5rem at 100% 0, rgba(52,215,238,.10), transparent 60%); opacity: 0; transition: opacity .25s; }
.app-card:hover, .knowledge-card:hover, .cafe-card:hover { transform: translateY(-.25rem); border-color: var(--accent); box-shadow: var(--shadow-glow); }
.app-card:hover::before, .knowledge-card:hover::before, .cafe-card:hover::before { opacity: 1; }
.app-card h3, .knowledge-card h3, .cafe-card h3 { position: relative; }
.app-card p, .knowledge-card p, .cafe-card p { position: relative; color: var(--muted); font-size: .875rem; margin: 0; }
.app-go { position: absolute; top: 1.125rem; right: 1.125rem; color: var(--accent); font-size: 1.125rem; opacity: .7; transition: transform .2s, opacity .2s; }
.app-card:hover .app-go, .cafe-card:hover .app-go { transform: translate(.125rem,-.125rem); opacity: 1; }
.kc-glyph, .cafe-glyph { font-size: 1.625rem; line-height: 1; }
.chip-row { position: relative; display: flex; flex-wrap: wrap; gap: .375rem; list-style: none; padding: 0; margin: .375rem 0 0; }
.chip-row li { font-size: .6875rem; color: var(--ink-dim); background: var(--panel-2); border: .0625rem solid var(--line); border-radius: 62.4375rem; padding: .25rem .625rem; }

/* ---------- connect ---------- */
.connect-block, .connect-page-hero { position: relative; overflow: hidden; }
.connect-aurora { position: absolute; inset: 0; pointer-events: none; background:
  radial-gradient(43.75rem 22.5rem at 18% 10%, rgba(139,156,255,.26), transparent 60%),
  radial-gradient(40rem 26.25rem at 86% 90%, rgba(52,215,238,.22), transparent 60%);
  animation: drift 14s ease-in-out infinite alternate; }
@keyframes drift { from { transform: translateY(0); } to { transform: translateY(-1.375rem); } }
@media (prefers-reduced-motion: reduce) { .connect-aurora { animation: none; } }
.connect-inner { position: relative; max-width: 55rem; }
.connect-badge { display: inline-block; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .1em; color: var(--accent-2); border: .0625rem dashed rgba(127,230,208,.5); border-radius: 62.4375rem; padding: .375rem .875rem; margin: 0 0 1.125rem; }
.connect-copy, .connect-page-hero .page-hero-copy { max-width: 45rem; }
.connect-partner { font-family: var(--font-mono); font-size: .8125rem; color: var(--muted); align-self: center; }
.connect-feature { background: var(--panel); border: .0625rem solid var(--line); border-radius: var(--radius); padding: 1.25rem; }
.connect-feature h3 { margin-bottom: .375rem; }
.connect-feature p { color: var(--muted); font-size: .875rem; margin: 0; }

/* 3D viewer */
.viewer-frame { position: relative; aspect-ratio: 16/9; width: 100%; border-radius: var(--radius-lg); overflow: hidden; border: .0625rem solid var(--line-strong); background: #05080f; box-shadow: var(--shadow); }
.viewer-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.viewer-consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .875rem; text-align: center; padding: 1.5rem; background: radial-gradient(circle at 50% 40%, rgba(52,215,238,.12), transparent 60%), #06101d; }
.viewer-consent p { color: var(--ink-dim); margin: 0; }
.viewer-fallback { font-size: .8125rem; color: var(--muted); }

/* ---------- featured ---------- */
.featured-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.25rem; }
@media (max-width: 51.25rem) { .featured-grid { grid-template-columns: 1fr; } }
.feature-card { position: relative; display: flex; flex-direction: column; gap: .625rem; background: var(--panel); border: .0625rem solid var(--line); border-radius: var(--radius-lg); padding: 1.875rem; color: var(--ink); transition: transform .2s, border-color .2s, box-shadow .2s; overflow: hidden; min-height: 13.75rem; }
.feature-card:hover { transform: translateY(-.25rem); border-color: var(--accent); box-shadow: var(--shadow-glow); }
.feature-article { background: linear-gradient(135deg, rgba(52,215,238,.10), rgba(139,156,255,.06)); }
.feature-tag { align-self: flex-start; font-family: var(--font-mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); border: .0625rem solid var(--line-strong); border-radius: 62.4375rem; padding: .3125rem .75rem; }
.feature-date { font-size: .75rem; color: var(--muted); font-family: var(--font-mono); }
.feature-card h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }
.feature-card p { color: var(--muted); margin: 0; flex: 1; }
.feature-more { color: var(--accent); font-weight: 600; font-size: .875rem; }

/* ---------- cta band ---------- */
.cta-band { }
.cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.75rem; background: linear-gradient(120deg, rgba(52,215,238,.12), rgba(139,156,255,.10)); border: .0625rem solid var(--line-strong); border-radius: var(--radius-lg); padding: clamp(1.75rem, 4vw, 3rem); }
.cta-inner h2 { margin-bottom: .5rem; }
.cta-inner p { margin: 0; color: var(--ink-dim); }

/* ---------- page hero (sub pages) ---------- */
.page-hero { position: relative; padding-block: clamp(3.5rem, 8vw, 6.875rem) clamp(1.25rem, 3vw, 2.5rem); overflow: hidden; }
.page-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; min-height: var(--nh-cinematic-hero-inner-height); }
.page-hero-copy-col { max-width: 45rem; }
.page-hero h1 { max-width: 16ch; }
.page-hero-copy { max-width: 42.5rem; margin-top: 1.125rem; color: var(--muted); }
.page-hero .hero-mark-col { z-index: 3; }
@media (max-width: 53.75rem) {
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero .hero-mark-col { order: -1; min-height: 13.75rem; }
  .page-hero .hero-mark,
  .page-hero .hero-model { width: min(16.25rem, 60%); }
}
.cat-jump { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 1.75rem; }
.cat-jump a { font-size: .8125rem; font-family: var(--font-mono); color: var(--ink-dim); background: var(--panel); border: .0625rem solid var(--line); border-radius: 62.4375rem; padding: .5rem .875rem; }
.cat-jump a:hover { border-color: var(--accent); color: var(--accent); }

/* ---------- knowledge category lists ---------- */
.kcat { padding-block: clamp(1.75rem, 4vw, 2.875rem); border-top: .0625rem solid var(--line); scroll-margin-top: calc(var(--header-h) + 1rem); }
.kcat:first-child { border-top: 0; }
.kcat-head { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.375rem; }
.kcat-head .kc-glyph { font-size: 1.875rem; }
.kcat-head h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); }
.kcat-head p { margin: .25rem 0 0; color: var(--muted); max-width: 60ch; }
.kcat-links { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
@media (max-width: 56.25rem) { .kcat-links { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 35rem) { .kcat-links { grid-template-columns: 1fr; } }
.kcat-links a { display: flex; align-items: center; justify-content: space-between; gap: .625rem; color: var(--ink-dim); background: var(--panel); border: .0625rem solid var(--line); border-radius: .75rem; padding: .8125rem 1rem; font-size: .875rem; transition: .18s; }
.kcat-links a:hover { color: var(--ink); border-color: var(--accent); background: var(--panel-2); transform: translateX(.125rem); }
.kcat-links a span { color: var(--accent); opacity: .7; }

.kcat-links .kcat-group {
  grid-column: 1 / -1;
  margin: 1.125rem 0 .125rem;
  padding: 0 .125rem .5rem;
  border-bottom: .0625rem solid color-mix(in srgb, var(--accent) 35%, var(--line));
}
.kcat-links .kcat-group:first-child { margin-top: .125rem; }
.kcat-links .kcat-group > span {
  color: var(--accent);
  font-family: var(--font-display, inherit);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .02em;
}


/* ---------- about / split ---------- */
.split-grid { display: grid; grid-template-columns: 1.5fr .9fr; gap: clamp(1.75rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 53.75rem) { .split-grid { grid-template-columns: 1fr; } }
.check-list { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .75rem; }
.check-list li { position: relative; padding-left: 1.875rem; color: var(--ink-dim); }
.check-list li::before { content: "✦"; position: absolute; left: 0; top: 0; color: var(--accent); }
.author-card { background: var(--panel); border: .0625rem solid var(--line); border-radius: var(--radius-lg); padding: 1.875rem; text-align: center; box-shadow: var(--shadow-glow); }
.author-avatar { width: 4.5rem; height: 4.5rem; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-display); font-size: 1.875rem; font-weight: 700; color: #06121b; background: linear-gradient(135deg, var(--accent), var(--accent-3)); }
.author-role { color: var(--accent); font-size: .875rem; margin: .125rem 0; }
.author-cred { color: var(--muted); font-size: .8125rem; }
.author-card blockquote { margin: 1.125rem 0 0; padding-top: 1.125rem; border-top: .0625rem solid var(--line); color: var(--ink-dim); font-style: italic; }

/* about: help card + team + offerings + quote */
.help-card { background: linear-gradient(135deg, rgba(52,215,238,.10), rgba(139,156,255,.08)); border: .0625rem solid var(--line-strong); border-radius: var(--radius-lg); padding: 1.875rem; box-shadow: var(--shadow-glow); }
.help-card h3 { font-size: clamp(1.2rem,2vw,1.5rem); margin-bottom: .75rem; }
.help-card .btn { margin-top: 1.125rem; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 62.5rem) { .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 38.75rem)  { .team-grid { grid-template-columns: 1fr; } }
.team-card { display: flex; flex-direction: column; gap: .5rem; background: var(--panel); border: .0625rem solid var(--line); border-radius: var(--radius-lg); padding: 1.625rem; transition: transform .2s, border-color .2s, box-shadow .2s; }
.team-card:hover { transform: translateY(-.25rem); border-color: var(--accent); box-shadow: var(--shadow-glow); }
.team-avatar { width: 3.5rem; height: 3.5rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: #06121b; background: linear-gradient(135deg, var(--accent), var(--accent-3)); margin-bottom: .375rem; }
.team-photo-frame { width: 5.25rem; height: 5.25rem; border-radius: 50%; padding: .1875rem; margin-bottom: .5rem; background: linear-gradient(135deg, var(--accent), var(--accent-3)); box-shadow: 0 .5rem 1.5rem rgba(52,215,238,.25); }
.team-photo { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: var(--panel-solid); }
.team-card h3 { font-size: 1.15rem; }
.team-role { color: var(--accent); font-size: .84375rem; font-family: var(--font-mono); margin: 0; }
.team-bio { color: var(--muted); font-size: .875rem; margin: .375rem 0 0; line-height: 1.6; }
.team-link { margin-top: auto; padding-top: .75rem; color: var(--accent); font-size: .84375rem; font-weight: 600; }
.offerings-list { columns: 2; column-gap: 1.75rem; list-style: none; padding: 0; margin: 1.125rem 0 0; }
@media (max-width: 35rem) { .offerings-list { columns: 1; } }
.offerings-list li { break-inside: avoid; padding: .5rem 0 .5rem 1.625rem; position: relative; color: var(--ink-dim); border-bottom: .0625rem solid var(--line); }
.offerings-list li::before { content: "✦"; position: absolute; left: 0; color: var(--accent); }
.about-quote { display: flex; flex-direction: column; justify-content: center; background: linear-gradient(135deg, rgba(52,215,238,.08), rgba(139,156,255,.06)); border: .0625rem solid var(--line); border-radius: var(--radius-lg); padding: 2.25rem; }
.about-quote blockquote { margin: 0; font-family: var(--font-display); font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.25; color: var(--ink); }
.about-quote figcaption { margin-top: 1rem; color: var(--accent-2); font-family: var(--font-mono); font-size: .8125rem; }

/* ---------- assessment ---------- */
.assessment-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.75rem, 4vw, 3.5rem); align-items: center; }
@media (max-width: 53.75rem) { .assessment-inner { grid-template-columns: 1fr; } }
.fine-note { font-size: .8125rem; color: var(--muted); margin-top: .875rem; }
.assessment-points { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.assessment-points li { display: flex; gap: .875rem; align-items: baseline; background: var(--panel); border: .0625rem solid var(--line); border-radius: .75rem; padding: 1rem 1.125rem; color: var(--ink-dim); }
.ap-num { font-family: var(--font-mono); color: var(--accent); font-size: .8125rem; }
.ap-partner { justify-content: center; font-family: var(--font-mono); font-size: .75rem; color: var(--accent-2); letter-spacing: .08em; }

/* ---------- faq ---------- */
.faq-list { display: grid; gap: .75rem; max-width: 53.75rem; }
.faq-item { background: var(--panel); border: .0625rem solid var(--line); border-radius: .75rem; padding: .25rem 1.25rem; }
.faq-item summary { list-style: none; cursor: pointer; padding: 1rem 0; font-family: var(--font-display); font-weight: 600; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; color: var(--accent); font-size: 1.375rem; transition: transform .2s; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-answer { padding: 0 0 1.125rem; color: var(--muted); }
.faq-answer p { margin: 0; }

/* ---------- contact ---------- */
.contact-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(1.75rem, 4vw, 3.5rem); align-items: stretch; }
@media (max-width: 51.25rem) { .contact-grid { grid-template-columns: 1fr; } }
.contact-grid address { font-style: normal; color: var(--ink-dim); margin: 1.375rem 0; line-height: 1.9; }
.contact-grid address strong { color: var(--ink); }
.social-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.social-row a { font-size: .875rem; color: var(--ink-dim); }
.social-row a:hover { color: var(--accent); }
.contact-card { position: relative; border-radius: var(--radius-lg); border: .0625rem solid var(--line); background: linear-gradient(135deg, rgba(52,215,238,.10), rgba(139,156,255,.08)); display: grid; place-items: center; min-height: 17.5rem; overflow: hidden; }
.contact-orb { width: 10rem; height: 10rem; border-radius: 50%; background: radial-gradient(circle at 35% 30%, var(--accent), var(--accent-3) 70%); filter: blur(.125rem); box-shadow: 0 0 5rem rgba(52,215,238,.5); animation: pulse 6s ease-in-out infinite; }
.contact-card-tag { position: absolute; bottom: 1.375rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .1em; color: var(--ink); }

/* ---------- newsletter ---------- */
.newsletter-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.75rem, 4vw, 3.5rem); align-items: center; background: var(--panel); border: .0625rem solid var(--line-strong); border-radius: var(--radius-lg); padding: clamp(1.75rem, 4vw, 3rem); }
@media (max-width: 51.25rem) { .newsletter-inner { grid-template-columns: 1fr; } }
.newsletter-row { display: flex; flex-wrap: wrap; gap: .625rem; }
.newsletter-row input[type="text"], .newsletter-row input[type="email"] { flex: 1 1 11.25rem; background: var(--panel-solid); border: .0625rem solid var(--line-strong); color: var(--ink); border-radius: .6875rem; padding: .8125rem .9375rem; font-size: .9375rem; font-family: inherit; }
.newsletter-row input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 .1875rem var(--glow); }
.newsletter-hp { position: absolute; left: -624.9375rem; width: .0625rem; height: .0625rem; overflow: hidden; }
.newsletter-consent { display: flex; gap: .625rem; align-items: flex-start; margin-top: .875rem; font-size: .8125rem; color: var(--muted); }
.newsletter-consent input { width: 1.125rem; height: 1.125rem; margin-top: .0625rem; accent-color: var(--accent); flex: none; }
.newsletter-status { margin-top: .75rem; font-size: .9375rem; line-height: 1.45; min-height: 1.35em; opacity: 0; transform: translateY(-.15rem); transition: opacity .2s ease, transform .2s ease, background-color .2s ease, border-color .2s ease; border: .0625rem solid transparent; border-radius: .6875rem; padding: 0; }
.newsletter-status.is-visible { opacity: 1; transform: translateY(0); padding: .7rem .85rem; }
.newsletter-status.is-error { color: #ffc0c0; background: rgba(145,35,50,.14); border-color: rgba(255,156,156,.24); }
.newsletter-status.is-success { color: var(--accent-2); background: rgba(54,217,196,.08); border-color: rgba(54,217,196,.24); }
.newsletter-status.is-info { color: var(--ink-dim); background: rgba(113,221,255,.07); border-color: rgba(113,221,255,.18); }
.newsletter-form[aria-busy="true"] button[type="submit"] { cursor: progress; opacity: .82; }

/* ---------- footer ---------- */
.site-footer { border-top: .0625rem solid var(--line); background: rgba(5,8,16,.5); margin-top: 2.5rem; }
.footer-shell { max-width: var(--shell); margin: 0 auto; padding: clamp(2.75rem,6vw,4.5rem) var(--shell-x) 2rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; }
@media (max-width: 51.25rem) { .footer-shell { grid-template-columns: 1fr; gap: 1.75rem; } }
.footer-wordmark { height: 2.5rem; width: auto; margin-bottom: .875rem; }
.footer-tag { color: var(--muted); font-size: .875rem; max-width: 36ch; margin: 0; }
.footer-nav { display: flex; flex-direction: column; gap: .625rem; }
.footer-nav a { color: var(--ink-dim); font-size: .875rem; }
.footer-nav a:hover { color: var(--accent); }
.footer-meta { display: flex; flex-direction: column; gap: 1rem; }
.footer-socials { display: flex; flex-wrap: wrap; gap: .875rem; }
.footer-socials a { color: var(--ink-dim); font-size: .875rem; }
.footer-socials a:hover { color: var(--accent); }
.footer-privacy-actions { display: flex; flex-wrap: wrap; gap: .875rem; }
.footer-privacy-actions button,
.footer-privacy-actions a { background: none; border: 0; color: var(--muted); font-size: .8125rem; cursor: pointer; text-decoration: underline; padding: 0; font-family: inherit; }
.footer-privacy-actions button:hover,
.footer-privacy-actions a:hover,
.footer-privacy-actions a:focus-visible { color: var(--accent); }
.footer-base { max-width: var(--shell); margin: 0 auto; padding: 1.125rem var(--shell-x); border-top: .0625rem solid var(--line); display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; font-size: .8125rem; color: var(--muted); }
.footer-credit-link { color: var(--muted); }
.footer-credit-link:hover { color: var(--accent); }

/* ---------- mobile sticky cta ---------- */
.mobile-sticky-cta { display: none; }
@media (max-width: 47.5rem) {
  .mobile-sticky-cta { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 90; display: block; text-align: center; padding: .875rem; border-radius: .875rem; background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #06121b; font-weight: 700; box-shadow: 0 .875rem 2.5rem rgba(52,215,238,.4); transform: translateY(140%); transition: transform .3s; }
  body.mobile-sticky-cta-visible .mobile-sticky-cta { transform: none; }
}

/* ---------- cookie banner / modal ---------- */
.cookie-banner { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 150; background: var(--panel-solid); border: .0625rem solid var(--line-strong); border-radius: var(--radius); padding: 1.375rem; box-shadow: var(--shadow); display: grid; gap: 1rem; grid-template-columns: 1.6fr 1fr auto; align-items: center; }
.cookie-banner-copy strong { display: block; font-family: var(--font-display); margin-bottom: .25rem; color: var(--ink); }
.cookie-banner-copy p { margin: 0; font-size: .84375rem; color: var(--muted); }
.cookie-preferences { display: flex; flex-direction: column; gap: .5rem; }
.cookie-check { display: flex; gap: .5625rem; align-items: center; font-size: .8125rem; color: var(--muted); cursor: pointer; }
.cookie-check input { accent-color: var(--accent); }
.cookie-check.is-locked { opacity: .65; }
.cookie-actions { display: flex; flex-direction: column; gap: .5rem; }
.cookie-actions .btn { padding: .625rem 1rem; font-size: .8125rem; }
.cookie-link { background: none; border: none; color: var(--muted); cursor: pointer; font-size: .75rem; text-decoration: underline; font-family: inherit; }
@media (max-width: 53.75rem) { .cookie-banner { grid-template-columns: 1fr; } }
.cookie-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 1.5rem; background: rgba(4,8,24,.7); backdrop-filter: blur(.375rem); }
.cookie-modal-card { position: relative; max-width: 35rem; width: 100%; background: var(--panel-solid); border: .0625rem solid var(--line-strong); border-radius: var(--radius-lg); padding: 2.5rem; box-shadow: var(--shadow); }
.cookie-modal-close { position: absolute; top: 1rem; right: 1.125rem; background: none; border: none; color: var(--muted); font-size: 1.625rem; cursor: pointer; line-height: 1; }

/* ---------- a11y ---------- */
:focus-visible { outline: .125rem solid var(--accent); outline-offset: .125rem; border-radius: .25rem; }
body.modal-open, body.nav-open { overflow: hidden; }

/* on-domain sub-pages: breadcrumb + article typography */
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-family: var(--font-mono); font-size: .75rem; color: var(--muted); margin-bottom: 1.125rem; }
.breadcrumb a { color: var(--accent); }
.breadcrumb span { opacity: .6; }
.article { max-width: 47.5rem; font-size: 1.05rem; line-height: 1.75; color: var(--ink-dim); }
.article > * + * { margin-top: 1.1em; }
.article h2 { font-size: clamp(1.4rem,2.4vw,2rem); color: var(--ink); margin-top: 1.8em; }
.article h3 { font-size: 1.25rem; color: var(--ink); margin-top: 1.5em; }
.article p { margin: 0; }
.article a { color: var(--accent); text-decoration: underline; text-underline-offset: .125rem; }
.article ul, .article ol { padding-left: 1.3em; }
.article li { margin: .4em 0; }
.article img { max-width: 100%; height: auto; border-radius: var(--radius); margin: 1.4em 0; border: .0625rem solid var(--line); }
.article blockquote { border-left: .1875rem solid var(--accent); padding-left: 1.125rem; color: var(--ink); font-style: italic; }
.article-stub { color: var(--muted); }
.article-source { max-width: 47.5rem; margin-top: 1.75rem; font-size: .875rem; }
.article-source a { color: var(--accent); }
.link-list { columns: 2; column-gap: 1.75rem; list-style: none; padding: 0; margin: .875rem 0 0; }
@media (max-width: 37.5rem) { .link-list { columns: 1; } }
.link-list li { break-inside: avoid; padding: .5625rem 0 .5625rem 1.5rem; position: relative; border-bottom: .0625rem solid var(--line); }
.link-list li::before { content: "→"; position: absolute; left: 0; color: var(--accent); }
.link-list a { color: var(--ink-dim); text-decoration: none; }
.link-list a:hover { color: var(--accent); }

/* ---------- premium native article layouts ---------- */
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(17.5rem, 1fr);
  grid-template-areas: "main aside";
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
.article-layout--single {
  grid-template-columns: minmax(0, 58.75rem);
  grid-template-areas: "main" "aside";
}
.article-layout--no-aside {
  grid-template-columns: minmax(0, 58.75rem);
  grid-template-areas: "main";
}
.article-layout--wide {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "main" "aside";
}
.article-main {
  grid-area: main;
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 2.625rem);
  border: .0625rem solid var(--line-strong);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.028)),
    radial-gradient(40.625rem 16.25rem at 12% 0%, rgba(52,215,238,.13), transparent 70%);
  box-shadow: var(--shadow-glow);
}
.article-enhanced { font-size: clamp(1rem, 1.05vw, 1.09rem); line-height: 1.78; }
.article-enhanced > * + * { margin-top: 1.05em; }
.article-enhanced h2,
.article-enhanced h3 { scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.article-enhanced h2:target,
.article-enhanced h3:target {
  color: var(--accent);
  text-shadow: 0 0 1.5rem rgba(52,215,238,.24);
}
.article-enhanced h2 {
  margin-top: clamp(1.75rem, 4vw, 3rem);
  padding-top: clamp(1.125rem, 3vw, 1.875rem);
  border-top: .0625rem solid var(--line);
  color: var(--accent);
}
.article-enhanced h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.article-enhanced h3 {
  color: var(--accent);
  margin-top: 1.6em;
  font-size: clamp(1.12rem, 1.6vw, 1.42rem);
}
.article-enhanced p { color: var(--ink-dim); }
.article-enhanced .article-rule {
  border: 0;
  height: .0625rem;
  background: linear-gradient(90deg, transparent, var(--line-strong), transparent);
  margin: clamp(1.375rem, 3vw, 2.25rem) 0;
}
.article-list,
.article-key-list {
  list-style: none;
  padding: 0;
  margin: 1.2em 0;
  display: grid;
  gap: .625rem;
}
.article-list li,
.article-key-list li {
  position: relative;
  break-inside: avoid;
  padding: .875rem 1rem .875rem 2.75rem;
  border: .0625rem solid var(--line);
  border-radius: .875rem;
  background: rgba(255,255,255,.045);
  color: var(--ink-dim);
}
.article-list li::before,
.article-key-list li::before {
  content: "";
  position: absolute;
  top: 1.12em;
  left: 1.125rem;
  width: .5625rem;
  height: .5625rem;
  border-radius: 6.1875rem;
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  box-shadow: 0 0 .875rem var(--glow);
}
ol.article-list { counter-reset: article-steps; }
ol.article-list li { counter-increment: article-steps; padding-left: 3.375rem; }
ol.article-list li::before {
  content: counter(article-steps);
  top: .75rem;
  left: .875rem;
  width: 1.625rem;
  height: 1.625rem;
  display: grid;
  place-items: center;
  font: 700 .75rem/1 var(--font-mono);
  color: #06121b;
}
.article-key-list strong { color: var(--ink); }
.article-aside {
  grid-area: aside;
  width: 100%;
  position: static;
  align-self: start;
  display: grid;
  gap: 1.125rem;
  min-width: 0;
}
.article-toc,
.article-side-card {
  border: .0625rem solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
  box-shadow: 0 1.125rem 3.4375rem rgba(0,0,0,.22);
  padding: 1.25rem;
}
@media (min-width: 65.0625rem) {
  /*
   * Let the companion column span the article row. The image remains at the
   * top and scrolls away naturally; once the guide reaches the header it can
   * remain sticky for the rest of the article instead of being constrained by
   * a parent that is only as tall as its cards.
   */
  .article-layout--dual .article-aside {
    align-self: stretch;
    align-content: start;
    grid-auto-rows: max-content;
  }
  .article-toc {
    position: sticky;
    top: calc(var(--header-h) + 1.25rem);
    z-index: 2;
    align-self: start;
    max-height: calc(100vh - var(--header-h) - 2.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: var(--line-strong) transparent;
  }
}
.article-card-kicker,
.article-toc > .article-card-kicker,
.article-side-card > .article-card-kicker {
  display: block;
  margin: 0 0 .875rem;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.article-toc a {
  display: block;
  padding: .625rem 0;
  border-top: .0625rem solid var(--line);
  color: var(--ink-dim);
  font-size: .875rem;
  line-height: 1.35;
}
.article-toc a:hover { color: var(--accent); }
.article-toc .toc-level-3 { padding-left: .875rem; color: var(--muted); }
.article-toc a:focus-visible {
  color: var(--accent);
  outline: .125rem solid color-mix(in srgb, var(--accent) 72%, transparent);
  outline-offset: .25rem;
  border-radius: .25rem;
}
.article-sources {
  margin: 1.1em 0 0;
  padding-left: 1.35rem;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.55;
}
.article-sources li + li { margin-top: .62rem; }
.article-sources a { color: var(--ink-dim); text-underline-offset: .18em; }
.article-sources a:hover,
.article-sources a:focus-visible { color: var(--accent); }
.article-figure-stack,
.article-media-stack { display: grid; gap: .875rem; }
.article-figure,
.article-gallery figure {
  overflow: hidden;
  border: .0625rem solid var(--line);
  border-radius: var(--radius);
  background: rgba(0,0,0,.18);
  margin: 0;
}
.article-figure img,
.article-gallery img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.article-figure figcaption:not(.ocr-text),
.article-gallery figcaption:not(.ocr-text) {
  padding: .625rem .75rem;
  color: var(--muted);
  font-size: .8125rem;
}
.article-figure .ocr-text,
.article-gallery .ocr-text { display: none !important; }
.article-media-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  border: .0625rem solid var(--line);
  background: linear-gradient(145deg, rgba(52,215,238,.16), rgba(139,156,255,.14));
}
.article-media-frame iframe,
.article-video-native video { width: 100%; height: 100%; border: 0; display: block; }
.article-video-native { overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--radius); border: .0625rem solid var(--line); }
.article-media-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  gap: .5rem;
  text-align: center;
  padding: 1.5rem;
  color: var(--ink);
}
.article-media-placeholder span { color: var(--ink-dim); font-size: .8125rem; max-width: 28ch; }
.article-media-placeholder button {
  border: .0625rem solid var(--line-strong);
  border-radius: 62.4375rem;
  background: rgba(255,255,255,.10);
  color: var(--ink);
  padding: .5625rem .8125rem;
  font-weight: 700;
  cursor: pointer;
}
.article-gallery { margin-top: clamp(2rem, 5vw, 3.625rem); }
.article-gallery > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .875rem;
  margin-top: 1rem;
}
.article-source-card a { color: var(--accent); text-decoration: underline; text-underline-offset: .1875rem; }
.article-manual-sidebar :last-child { margin-bottom: 0; }
@media (max-width: 65rem) {
  .article-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main" "aside";
  }
  .article-layout--no-aside { grid-template-areas: "main"; }
  .article-aside { position: static; }
}
@media (max-width: 40rem) {
  .article-main { padding: 1.375rem 1.125rem; }
  .article-gallery > div { grid-template-columns: 1fr; }
  .article-list li, .article-key-list li { padding-right: .875rem; }
}
@media (min-width: 47.5rem) {
  .article-key-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.article-video-topic-grid h3 { margin: 0 0 .875rem; color: var(--ink); }
.article-video-topic-grid .article-list { margin-bottom: 0; }
.article-video-topic-grid .article-list li { padding-left: 2.625rem; }

/* ---------- v3 substitution/media polish ---------- */
.kcat-link-disabled {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .625rem;
  color: var(--muted);
  background: rgba(255,255,255,.035);
  border: .0625rem dashed var(--line);
  border-radius: .75rem;
  padding: .8125rem 1rem;
  font-size: .875rem;
  opacity: .72;
}
.kcat-link-disabled em {
  color: var(--accent-2);
  font-style: normal;
  font-family: var(--font-mono);
  font-size: .6875rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.team-card.has-photo { position: relative; overflow: hidden; }
.team-card.has-photo::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5.125rem;
  background: radial-gradient(circle at 20% 0%, rgba(52,215,238,.20), transparent 60%);
  pointer-events: none;
}
.team-photo-frame {
  width: 6.5rem;
  height: 6.5rem;
  padding: .25rem;
  position: relative;
  z-index: 1;
}
.article-main > .article-figure,
.article-inline-media {
  margin: clamp(1.5rem, 4vw, 2.625rem) 0;
}
.article-inline-media {
  display: grid;
  gap: .625rem;
}
.article-media-stack .article-inline-media { margin: 0; }
.article-media-label {
  margin: 0;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: .6875rem;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.article-figure {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.article-figure:hover {
  transform: translateY(-.1875rem);
  border-color: rgba(52,215,238,.58);
  box-shadow: 0 1.125rem 2.875rem rgba(0,0,0,.28), 0 0 1.875rem rgba(52,215,238,.12);
}
.article-figure--poster { position: relative; }
.article-figure--poster::after {
  content: "▶";
  position: absolute;
  right: .875rem;
  top: .875rem;
  width: 2.375rem;
  height: 2.375rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #06121b;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 .5rem 1.625rem rgba(52,215,238,.35);
  font-size: .875rem;
  pointer-events: none;
}
.article-context-card p {
  margin: 0;
  color: var(--ink-dim);
  font-size: .875rem;
}
.article-visual-card { padding: 1rem; }
.article-visual-card > h2 { margin: .25rem .25rem .875rem; }
.article-visual-card .article-figure-stack { gap: 1.125rem; }
.article-visual-card .article-figure { box-shadow: 0 .75rem 2rem rgba(0,0,0,.22); }
.article-visual-card .article-figure img { margin: 0; }
@media (max-width: 65rem) and (min-width: 40.0625rem) {
  .article-visual-card .article-figure-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- v5 robust link containment ---------- */
.article-enhanced,
.article-side-card,
.article-toc,
.article-list li,
.article-key-list li {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}
.article-enhanced a,
.article-side-card a,
.article-toc a,
.article-list a,
.article-key-list a,
.article-source-card a,
.article-safe-link {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.article-safe-link {
  display: inline;
  white-space: normal;
}

/* ---------- v6 integral spacing / vertical rhythm ---------- */
:root {
  --flow-xs: clamp(.5rem, .8vw, .75rem);
  --flow-sm: clamp(.75rem, 1.1vw, 1.125rem);
  --flow-md: clamp(1.125rem, 1.8vw, 1.75rem);
  --flow-lg: clamp(1.75rem, 3vw, 2.875rem);
}

/* Give CMS-driven blocks enough breathing room without changing the brand direction. */
.section-head { gap: clamp(1.75rem, 4vw, 4rem); margin-bottom: clamp(2.25rem, 5vw, 4.25rem); }
.section-head-copy { line-height: 1.75; }
.section-head-copy p + p { margin-top: var(--flow-sm); }
.section-foot { margin-top: var(--flow-lg); }
.section-copy { line-height: 1.75; }
.section-copy p { margin: 0 0 var(--flow-sm); }
.section-copy p:last-child { margin-bottom: 0; }

/* When a heading is immediately followed by body copy, keep a deliberate editorial gap. */
.hero-kicker,
.page-hero-copy { margin-top: var(--flow-sm); }
.hero-copy,
.split-grid .article,
.contact-grid .article { margin-top: var(--flow-md); }
.hero-copy p + p,
.page-hero-copy p + p,
.article p + p { margin-top: var(--flow-sm); }

/* Cards and repeated grids: headers, text and lists need consistent internal rhythm. */
.knowledge-card,
.app-card,
.feature-card,
.connect-feature,
.team-card,
.help-card,
.author-card,
.contact-card,
.article-side-card,
.article-list li,
.article-key-list li { line-height: 1.65; }
.knowledge-card h3,
.app-card h3,
.feature-card h3,
.connect-feature h3,
.team-card h3,
.help-card h3,
.article-side-card h2 { margin-bottom: var(--flow-sm); }
.knowledge-card p,
.app-card p,
.feature-card p,
.connect-feature p,
.team-bio,
.article-side-card p { margin-top: 0; }
.chip-row,
.offerings-list,
.check-list,
.assessment-points,
.link-list { margin-top: var(--flow-md); }

/* Connect block: this was visibly cramped around the copy, CTA and partner credit. */
.connect-inner > .eyebrow { margin-bottom: var(--flow-sm); }
.connect-badge { margin: 0 0 var(--flow-md); }
.connect-inner h2 { margin-bottom: var(--flow-md); }
.connect-copy { margin-top: 0; max-width: 48.75rem; }
.connect-copy p { margin-bottom: var(--flow-md); }
.connect-copy p:last-child { margin-bottom: 0; }
.connect-foot {
  margin-top: clamp(1.875rem, 4vw, 3.5rem);
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: center;
}
.connect-partner {
  display: inline-flex;
  align-items: center;
  min-height: 2.625rem;
  padding-inline: .125rem;
  line-height: 1.45;
}

/* Native/imported article pages: more magazine-like spacing after auto-repaired content. */
.article-enhanced { line-height: 1.82; }
.article-enhanced > * + * { margin-top: 1.25em; }
.article-enhanced h2 {
  margin-top: clamp(2.5rem, 5vw, 4.25rem);
  padding-top: clamp(1.5rem, 3.5vw, 2.5rem);
}
.article-enhanced h3 { margin-top: clamp(1.75rem, 3.5vw, 2.875rem); margin-bottom: .35em; }
.article-enhanced h2 + p,
.article-enhanced h3 + p,
.article-enhanced h2 + ul,
.article-enhanced h3 + ul,
.article-enhanced h2 + ol,
.article-enhanced h3 + ol { margin-top: 1em; }
.article-list,
.article-key-list { margin: 1.45em 0; gap: .75rem; }
.article-main > .article-figure,
.article-inline-media { margin: clamp(1.875rem, 4.5vw, 3.375rem) 0; }
.article-gallery { margin-top: clamp(2.625rem, 6vw, 4.5rem); }

@media (max-width: 42.5rem) {
  .section-head { margin-bottom: 2rem; }
  .connect-foot { align-items: stretch; flex-direction: column; }
  .connect-foot .btn { width: 100%; }
  .connect-partner { justify-content: center; text-align: center; }
}

/* ---------- v7 button/CTA spacing hardening ---------- */
/* Buttons must never feel glued to explanatory text. Applies to CMS text blocks and large CTA areas. */
:root {
  --flow-btn: clamp(1.5rem, 2.7vw, 2.625rem);
}

.section-copy + .btn,
.section-copy + .btn-row,
.section-copy + .cta-actions,
.section-copy + .hero-actions,
p + .btn,
p + .btn-row,
p + .cta-actions,
p + .hero-actions {
  margin-top: var(--flow-btn);
}

.btn-row,
.cta-actions,
.hero-actions {
  gap: clamp(.875rem, 1.8vw, 1.5rem);
  row-gap: clamp(.875rem, 2vw, 1.375rem);
}

/* Assessment blocks: title, explanation, primary action and note need a clear editorial rhythm. */
.assessment-block h2,
.cta-band h2 {
  margin-bottom: var(--flow-md);
}
.assessment-block .section-copy {
  max-width: 47.5rem;
}
.assessment-block .section-copy p {
  line-height: 1.78;
}
.assessment-block .section-copy + .btn {
  margin-top: clamp(1.75rem, 3.3vw, 3rem);
}
.assessment-block .fine-note {
  margin-top: var(--flow-sm);
  line-height: 1.6;
}

/* Landing CTA band: separate the copy cluster from the large button cluster on every breakpoint. */
.cta-inner {
  gap: clamp(2rem, 4.5vw, 4.5rem);
}
.cta-inner > div:first-child {
  max-width: 46.25rem;
}
.cta-inner p {
  line-height: 1.78;
  margin: 0;
}
.cta-actions {
  align-items: center;
  justify-content: flex-start;
}

/* Cards with a single large button, e.g. help/booking cards. */
.help-card .btn,
.contact-card .btn,
.author-card .btn,
.team-card .btn {
  margin-top: var(--flow-btn);
}

@media (max-width: 51.25rem) {
  .cta-inner {
    align-items: flex-start;
  }
  .cta-actions {
    width: 100%;
  }
}

@media (max-width: 35rem) {
  .btn,
  .cta-actions .btn,
  .hero-actions .btn,
  .btn-row .btn,
  .assessment-block .btn {
    width: 100%;
  }
}

/* ---------- v8 global post-list/action spacing hardening ---------- */
/* Lists, bullets and CTA buttons must never visually collide anywhere in the CMS-rendered site. */
:root {
  --flow-list-action: clamp(2rem, 3.8vw, 3.625rem);
  --flow-list-block: clamp(1.25rem, 2.2vw, 2.125rem);
}

/* Any list followed by buttons/actions gets a strong gap. This fixes check-lists, bullets,
   article lists, link lists, assessment points, category links and CMS-authored lists. */
ul + .btn,
ul + .btn-row,
ul + .cta-actions,
ul + .hero-actions,
ul + .connect-foot,
ul + .section-foot,
ul + .cat-jump,
ol + .btn,
ol + .btn-row,
ol + .cta-actions,
ol + .hero-actions,
ol + .connect-foot,
ol + .section-foot,
ol + .cat-jump,
.check-list + .btn,
.check-list + .btn-row,
.check-list + .cta-actions,
.check-list + .hero-actions,
.check-list + .connect-foot,
.check-list + .section-foot,
.offerings-list + .btn,
.offerings-list + .btn-row,
.offerings-list + .cta-actions,
.assessment-points + .btn,
.assessment-points + .btn-row,
.assessment-points + .cta-actions,
.link-list + .btn,
.link-list + .btn-row,
.link-list + .cta-actions,
.article-list + .btn,
.article-list + .btn-row,
.article-list + .cta-actions,
.article-key-list + .btn,
.article-key-list + .btn-row,
.article-key-list + .cta-actions,
.chip-row + .btn,
.chip-row + .btn-row,
.chip-row + .cta-actions,
.kcat-links + .btn,
.kcat-links + .btn-row,
.kcat-links + .cta-actions {
  margin-top: var(--flow-list-action) !important;
}

/* Lists inside cards/sections also need a bottom rhythm even when the next element is not a button. */
.check-list,
.offerings-list,
.assessment-points,
.link-list,
.article-list,
.article-key-list,
.kcat-links {
  margin-bottom: var(--flow-list-block);
}

.check-list:last-child,
.offerings-list:last-child,
.assessment-points:last-child,
.link-list:last-child,
.article-list:last-child,
.article-key-list:last-child,
.kcat-links:last-child {
  margin-bottom: 0;
}

/* If CMS content wraps buttons in a paragraph or generic action container, keep the same rule. */
.article-enhanced ul + p:has(.btn),
.article-enhanced ol + p:has(.btn),
.section-copy ul + p:has(.btn),
.section-copy ol + p:has(.btn),
.article-enhanced ul + div:has(.btn),
.article-enhanced ol + div:has(.btn),
.section-copy ul + div:has(.btn),
.section-copy ol + div:has(.btn) {
  margin-top: var(--flow-list-action) !important;
}

/* Button rows following any dense content block need air above, even if markup uses a wrapper. */
:is(.article, .article-enhanced, .section-copy, .split-grid, .help-card, .contact-card, .article-main, .connect-inner, .page-hero, .hero-copy-col) > :is(.btn-row, .cta-actions, .hero-actions, .connect-foot) {
  margin-top: var(--flow-btn);
}

/* Never let the final bullet/list item visually sit against the following element. */
ul > li:last-child,
ol > li:last-child {
  margin-bottom: 0;
}

@media (max-width: 42.5rem) {
  :root {
    --flow-list-action: clamp(1.875rem, 7vw, 2.75rem);
    --flow-list-block: clamp(1.125rem, 5vw, 1.75rem);
  }
}

/* ---------- v9 premium booking/action buttons ---------- */
/* Booking CTAs need stronger internal padding and a cleaner, less cramped shape. */
:root {
  --btn-pad-y: clamp(.875rem, 1.2vw, 1.0625rem);
  --btn-pad-x: clamp(1.75rem, 3.2vw, 3.25rem);
  --btn-large-pad-y: clamp(1rem, 1.35vw, 1.25rem);
  --btn-large-pad-x: clamp(2.25rem, 4.4vw, 4.125rem);
}

.btn {
  min-height: 3.25rem;
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border-radius: 62.4375rem;
  letter-spacing: .01em;
  line-height: 1.2;
  white-space: nowrap;
}

.btn-primary {
  position: relative;
  overflow: hidden;
  border-color: rgba(127,230,208,.42);
  background:
    linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,0) 38%),
    linear-gradient(120deg, var(--accent), var(--accent-2));
  box-shadow:
    0 0 0 .0625rem rgba(52,215,238,.18),
    0 .875rem 2.25rem rgba(52,215,238,.24),
    inset 0 .0625rem 0 rgba(255,255,255,.36);
}

.btn-primary:hover {
  filter: brightness(1.08) saturate(1.08);
  box-shadow:
    0 0 0 .0625rem rgba(52,215,238,.30),
    0 1.125rem 3.125rem rgba(52,215,238,.34),
    inset 0 .0625rem 0 rgba(255,255,255,.42);
}

.btn-secondary {
  padding-inline: clamp(1.75rem, 3vw, 3rem);
}

/* The actual assessment/booking buttons should read as premium CTAs, not small chips. */
.cta-band .btn,
.assessment-block .btn,
.hero-actions .btn,
.contact-card .btn,
.help-card .btn,
.author-card .btn,
.team-card .btn,
.mobile-sticky-cta {
  min-height: 3.625rem;
  padding: var(--btn-large-pad-y) var(--btn-large-pad-x);
  min-width: min(100%, 15.625rem);
  font-size: clamp(.96875rem, 1.05vw, 1.03125rem);
}

/* Header booking CTA: larger clickable area without overpowering the nav. */
.nav-cta {
  min-height: 2.625rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .6875rem clamp(1.375rem, 2.4vw, 2.125rem) !important;
  border-radius: 62.4375rem;
  min-width: 10.5rem;
  box-shadow: 0 .625rem 1.75rem rgba(52,215,238,.20);
}

/* Give rows with booking buttons enough horizontal space so the buttons do not look squeezed. */
.cta-actions,
.hero-actions,
.btn-row,
.connect-foot {
  gap: clamp(1.125rem, 2.4vw, 2.125rem);
  row-gap: clamp(1.125rem, 2.4vw, 1.75rem);
}

.cta-band .cta-actions {
  min-width: min(100%, 26.25rem);
}

.cta-band .btn-primary,
.assessment-block .btn-primary,
.hero-actions .btn-primary,
.contact-card .btn-primary {
  justify-content: center;
}

/* Keep long translated/CMS button labels readable instead of forcing awkward overflow. */
@media (max-width: 35rem) {
  .btn,
  .nav-cta,
  .mobile-sticky-cta {
    width: 100%;
    min-width: 0;
    white-space: normal;
    padding-inline: clamp(1.5rem, 8vw, 2.125rem);
  }

  .nav-cta {
    min-height: 3.125rem;
  }
}

/* ---------- v10 integrated cinematic home hero background ---------- */
/* v18: allow more of the source-image color to shimmer through while keeping the Neurohaven blue mood. */
/* The homepage hero can now use a CMS-controlled photographic background behind the rotating mark. */
.hero {
  isolation: isolate;
  min-height: var(--nh-cinematic-hero-height);
}

.hero--image-bg {
  background: #050814;
  padding-block: var(--nh-cinematic-hero-pad-top) var(--nh-cinematic-hero-pad-bottom);
}

.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: #050814;
}

.hero-bg picture,
.hero-bg img {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-bg img {
  object-fit: cover;
  object-position: var(--hero-bg-position, center center);
  opacity: var(--hero-bg-opacity, .76);
  filter: saturate(1.03) contrast(1.02) brightness(.94);
  transform: scale(1.012);
}

.hero-bg::before,
.hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero-bg::before {
  background:
    radial-gradient(42.5rem 32.5rem at 76% 36%, rgba(52,215,238,.18), transparent 68%),
    radial-gradient(32.5rem 26.25rem at 14% 72%, rgba(127,230,208,.13), transparent 66%),
    linear-gradient(90deg, rgba(5,8,20,.88) 0%, rgba(5,8,20,.58) 31%, rgba(5,8,20,.22) 56%, rgba(5,8,20,.54) 100%);
  mix-blend-mode: screen;
  opacity: .70;
}

.hero-bg::after {
  background:
    linear-gradient(180deg, rgba(5,8,20,.26) 0%, rgba(5,8,20,.03) 34%, rgba(5,8,20,.48) 72%, var(--bg) 100%),
    radial-gradient(56.25rem 40.625rem at 50% 112%, var(--bg) 0%, rgba(5,8,20,.72) 36%, transparent 70%),
    linear-gradient(90deg, rgba(5,8,20,.92) 0%, rgba(5,8,20,.34) 42%, rgba(5,8,20,.62) 100%);
}

.hero--image-bg .hero-aura {
  z-index: 1;
  opacity: .72;
  background:
    radial-gradient(47.5rem 33.75rem at 79% 30%, rgba(52,215,238,.24), transparent 66%),
    radial-gradient(37.5rem 31.25rem at 18% 78%, rgba(139,156,255,.16), transparent 64%);
}

.hero--image-bg .hero-grid {
  z-index: 2;
  min-height: var(--nh-cinematic-hero-inner-height);
}

.hero--image-bg .hero-copy-col {
  text-shadow: 0 .125rem 1.5rem rgba(0,0,0,.55);
}

.hero--image-bg .hero-copy,
.hero--image-bg .hero-kicker,
.hero--image-bg .hero-badges li {
  text-shadow: 0 .125rem 1.125rem rgba(0,0,0,.55);
}

.hero--image-bg .hero-mark-col {
  z-index: 3;
}

.hero--image-bg .hero-mark-glow {
  width: min(86%, 32.5rem);
  background:
    radial-gradient(circle, rgba(52,215,238,.52), rgba(52,215,238,.16) 38%, rgba(52,215,238,0) 70%);
  filter: blur(.75rem);
}

.hero--image-bg .hero-mark,
.hero--image-bg .hero-model {
  width: min(29.375rem, 84%);
}

.hero--image-bg .hero-model .hero-mark {
  filter: drop-shadow(0 0 3.25rem rgba(52,215,238,.72)) drop-shadow(0 1.125rem 5rem rgba(0,0,0,.75));
}

[data-theme="light"] .hero--image-bg {
  color: #eaf1ff;
}

[data-theme="light"] .hero--image-bg .hero-kicker,
[data-theme="light"] .hero--image-bg .hero-copy,
[data-theme="light"] .hero--image-bg .hero-copy p,
[data-theme="light"] .hero--image-bg .hero-badges li {
  color: #dbe8ff;
}

@media (max-width: 61.25rem) {
  .hero { min-height: auto; }
  .hero--image-bg {
    padding-block: clamp(3.25rem, 10vw, 5.25rem) clamp(3.5rem, 10vw, 5.375rem);
  }
  .hero--image-bg .hero-grid {
    min-height: auto;
  }
  .hero-bg img {
    object-position: var(--hero-bg-mobile-position, 58% center);
    opacity: calc(var(--hero-bg-opacity, .76) * .86);
  }
  .hero-bg::before {
    background:
      radial-gradient(35rem 25rem at 50% 20%, rgba(52,215,238,.16), transparent 68%),
      linear-gradient(180deg, rgba(5,8,20,.62) 0%, rgba(5,8,20,.42) 42%, rgba(5,8,20,.84) 100%);
    mix-blend-mode: normal;
  }
  .hero-bg::after {
    background:
      linear-gradient(180deg, rgba(5,8,20,.22) 0%, rgba(5,8,20,.26) 28%, rgba(5,8,20,.80) 76%, var(--bg) 100%),
      linear-gradient(90deg, rgba(5,8,20,.7) 0%, rgba(5,8,20,.34) 55%, rgba(5,8,20,.72) 100%);
  }
}

@media (max-width: 35rem) {
  .hero--image-bg .hero-mark,
  .hero--image-bg .hero-model {
    width: min(16.25rem, 68%);
  }
}

/* ---------- v096 cinematic hero scroll cue ---------- */
/*
  Image/media-backed heroes receive this control from landing.js. It sits on
  the hero itself so the control never creates an extra strip or visible seam
  between the hero artwork and the following section.
*/
.hero--image-bg,
.page-hero--image-bg {
  position: relative;
}

.nh-hero-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: clamp(1rem, 2.4vw, 1.75rem);
  z-index: 8;
  display: inline-grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  padding: 0;
  border: .0625rem solid rgba(234, 241, 255, .32);
  border-radius: 50%;
  background: rgba(5, 8, 20, .32);
  color: #f2f7ff;
  box-shadow:
    0 .75rem 2rem rgba(0, 0, 0, .24),
    inset 0 .0625rem 0 rgba(255, 255, 255, .1);
  backdrop-filter: blur(.75rem) saturate(130%);
  -webkit-backdrop-filter: blur(.75rem) saturate(130%);
  transform: translateX(-50%);
  cursor: pointer;
  opacity: .92;
  transition:
    opacity .18s ease,
    background .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.nh-hero-scroll-cue svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: nhHeroScrollCue 2.25s cubic-bezier(.4, 0, .2, 1) infinite;
}

.nh-hero-scroll-cue:hover,
.nh-hero-scroll-cue:focus-visible {
  opacity: 1;
  background: rgba(10, 20, 36, .56);
  border-color: rgba(127, 230, 208, .66);
  box-shadow:
    0 1rem 2.5rem rgba(0, 0, 0, .3),
    0 0 0 .1875rem rgba(52, 215, 238, .08),
    inset 0 .0625rem 0 rgba(255, 255, 255, .14);
  transform: translateX(-50%) translateY(-.125rem);
}

.nh-hero-scroll-cue:focus-visible {
  outline: .125rem solid var(--accent);
  outline-offset: .1875rem;
}

.nh-hero-scroll-cue:active {
  transform: translateX(-50%) translateY(.0625rem) scale(.97);
}

@keyframes nhHeroScrollCue {
  0%, 100% { transform: translateY(-.125rem); opacity: .72; }
  50% { transform: translateY(.1875rem); opacity: 1; }
}

@media (max-width: 61.25rem) {
  .nh-hero-scroll-cue {
    bottom: clamp(.8rem, 3vw, 1.25rem);
    width: 3rem;
    height: 3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nh-hero-scroll-cue,
  .nh-hero-scroll-cue svg {
    animation: none;
    transition: none;
  }
}

/* ---------- shared main-menu cinematic hero backgrounds ---------- */
.page-hero--cinematic {
  isolation: isolate;
}

/*
  Image-backed main-menu pages must share the exact same vertical canvas as
  the homepage hero. Earlier page-specific heights made About and Knowledge
  crop their artwork differently. Keep all current and future main-menu hero
  imagery on this single rhythm unless a page deliberately opts out.
*/
.page-hero--image-bg {
  min-height: var(--nh-cinematic-hero-height);
  display: flex;
  align-items: center;
  padding-block: var(--nh-cinematic-hero-pad-top) var(--nh-cinematic-hero-pad-bottom);
  background: #050814;
}

.page-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: #050814;
}

.page-hero-bg picture,
.page-hero-bg img,
.page-hero-bg video {
  display: block;
  width: 100%;
  height: 100%;
}

.page-hero-bg img,
.page-hero-bg video {
  object-fit: cover;
  object-position: var(--page-hero-bg-position, center center);
  opacity: var(--page-hero-bg-opacity, .76);
  filter: saturate(1.03) contrast(1.02) brightness(.94);
  transform: scale(1.012);
}

.page-hero-bg--video {
  background: #050814;
}

.page-hero-video {
  border: 0;
  user-select: none;
  -webkit-user-select: none;
}

.page-hero-video::-webkit-media-controls {
  display: none !important;
}

/*
  Connect uses moving imagery rather than a static poster. Keep the film close
  to its original exposure and confine most of the darkening to the copy side,
  so the scene remains clear without sacrificing text contrast.
*/
.page-hero--video-bg .page-hero-bg video {
  opacity: var(--page-hero-video-opacity, .94);
  filter: saturate(1.04) contrast(1.03) brightness(1);
  transform: scale(1.006);
}

.page-hero-bg::before,
.page-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.page-hero-bg::before {
  background:
    radial-gradient(42.5rem 32.5rem at 76% 36%, rgba(52,215,238,.18), transparent 68%),
    radial-gradient(32.5rem 26.25rem at 14% 72%, rgba(127,230,208,.13), transparent 66%),
    linear-gradient(90deg, rgba(5,8,20,.88) 0%, rgba(5,8,20,.58) 31%, rgba(5,8,20,.22) 56%, rgba(5,8,20,.54) 100%);
  mix-blend-mode: screen;
  opacity: .70;
}

.page-hero-bg::after {
  background:
    linear-gradient(180deg, rgba(5,8,20,.26) 0%, rgba(5,8,20,.03) 34%, rgba(5,8,20,.48) 72%, var(--bg) 100%),
    radial-gradient(56.25rem 40.625rem at 50% 112%, var(--bg) 0%, rgba(5,8,20,.72) 36%, transparent 70%),
    linear-gradient(90deg, rgba(5,8,20,.92) 0%, rgba(5,8,20,.34) 42%, rgba(5,8,20,.62) 100%);
}

.page-hero-content {
  position: relative;
  z-index: 2;
  text-shadow: 0 .1875rem 1.5rem rgba(0,0,0,.58);
}

.page-hero--image-bg .page-hero-grid {
  min-height: var(--nh-cinematic-hero-inner-height);
}

.page-hero--image-bg .page-hero-content {
  max-width: 45rem;
}

.page-hero--image-bg .hero-mark-glow {
  width: min(86%, 32.5rem);
  background:
    radial-gradient(circle, rgba(52,215,238,.52), rgba(52,215,238,.16) 38%, rgba(52,215,238,0) 70%);
  filter: blur(.75rem);
}

.page-hero--image-bg .hero-mark,
.page-hero--image-bg .hero-model {
  width: min(29.375rem, 84%);
}

.page-hero--image-bg .hero-model .hero-mark {
  filter: drop-shadow(0 0 3.25rem rgba(52,215,238,.72)) drop-shadow(0 1.125rem 5rem rgba(0,0,0,.75));
}

.page-hero--image-bg h1 {
  max-width: min(15ch, 56.25rem);
}

.page-hero--about-cosmos h1 {
  max-width: min(14ch, 53.75rem);
}

.page-hero--about-cosmos .eyebrow {
  color: var(--accent);
}

.page-hero--knowledge-tree h1 {
  max-width: min(13ch, 51.25rem);
}

.page-hero--knowledge-tree .eyebrow,
.page-hero--knowledge-tree .cat-jump a {
  color: color-mix(in srgb, var(--accent) 82%, white 18%);
}

.page-hero--knowledge-tree .cat-jump {
  margin-top: clamp(1.875rem, 3.2vw, 2.625rem);
}

.page-hero--knowledge-tree .cat-jump a {
  background: rgba(5, 12, 24, .52);
  border-color: rgba(125, 214, 197, .32);
  box-shadow: 0 .625rem 1.875rem rgba(0, 0, 0, .24);
}

.page-hero--knowledge-tree .cat-jump a:hover,
.page-hero--knowledge-tree .cat-jump a:focus-visible {
  background: rgba(8, 18, 32, .72);
  border-color: rgba(125, 214, 197, .48);
}

.page-hero--cafe-lounge h1 {
  max-width: min(14ch, 52.5rem);
}

.page-hero--cafe-lounge .eyebrow {
  color: color-mix(in srgb, var(--accent) 78%, #f8d08d 22%);
}

.page-hero--cafe-lounge .page-hero-copy {
  max-width: 38.125rem;
}

.page-hero--cafe-lounge .hero-mark-glow {
  background:
    radial-gradient(circle, rgba(52,215,238,.46), rgba(248,208,141,.12) 36%, rgba(52,215,238,0) 70%);
}

.page-hero--connect-island h1 {
  max-width: min(13ch, 51.25rem);
}

.page-hero--connect-island .eyebrow,
.page-hero--connect-island .connect-badge {
  color: color-mix(in srgb, var(--accent) 76%, #f4f7fb 24%);
}

.page-hero--connect-island .page-hero-copy {
  max-width: 41.875rem;
}

.page-hero--connect-island .hero-mark-glow {
  background:
    radial-gradient(circle, rgba(52,215,238,.52), rgba(145,220,255,.18) 34%, rgba(52,215,238,0) 70%);
}

.page-hero--connect-island .connect-aurora {
  z-index: 1;
  opacity: .55;
}

.page-hero--connect-island.page-hero--video-bg .page-hero-bg::before {
  background:
    radial-gradient(42.5rem 31.25rem at 78% 34%, rgba(52,215,238,.10), transparent 70%),
    radial-gradient(31.25rem 25rem at 14% 74%, rgba(127,230,208,.08), transparent 68%),
    linear-gradient(90deg, rgba(5,8,20,.68) 0%, rgba(5,8,20,.36) 30%, rgba(5,8,20,.10) 58%, rgba(5,8,20,.18) 100%);
  mix-blend-mode: normal;
  opacity: .78;
}

.page-hero--connect-island.page-hero--video-bg .page-hero-bg::after {
  background:
    linear-gradient(180deg, rgba(5,8,20,.12) 0%, rgba(5,8,20,0) 40%, rgba(5,8,20,.22) 76%, var(--bg) 100%),
    linear-gradient(90deg, rgba(5,8,20,.72) 0%, rgba(5,8,20,.24) 42%, rgba(5,8,20,.12) 100%);
}

.page-hero--connect-island.page-hero--video-bg .connect-aurora {
  opacity: .28;
}

.page-hero--contact-support h1 {
  max-width: min(13ch, 51.25rem);
}

.page-hero--contact-support .eyebrow {
  color: color-mix(in srgb, var(--accent) 72%, #f5fbff 28%);
}

.page-hero--contact-support .hero-mark-glow {
  background:
    radial-gradient(circle, rgba(52,215,238,.44), rgba(239,244,250,.16) 36%, rgba(52,215,238,0) 70%);
}

.page-hero--contact-support .page-hero-content {
  max-width: 41.25rem;
}

[data-theme="light"] .page-hero--image-bg {
  color: #eaf1ff;
}

[data-theme="light"] .page-hero--image-bg .eyebrow {
  color: #8ff3ff;
}

@media (max-width: 61.25rem) {
  .page-hero--image-bg {
    min-height: var(--nh-cinematic-hero-mobile-height);
    align-items: flex-end;
    padding-block: clamp(4rem, 12vw, 5.875rem) clamp(3.5rem, 10vw, 5.375rem);
  }

  .page-hero--image-bg .page-hero-grid {
    min-height: auto;
  }

  .page-hero-bg img,
  .page-hero-bg video {
    object-position: var(--page-hero-bg-mobile-position, 50% center);
    opacity: calc(var(--page-hero-bg-opacity, .76) * .86);
  }

  .page-hero-bg::before {
    background:
      radial-gradient(35rem 25rem at 50% 20%, rgba(52,215,238,.16), transparent 68%),
      linear-gradient(180deg, rgba(5,8,20,.62) 0%, rgba(5,8,20,.42) 42%, rgba(5,8,20,.84) 100%);
    mix-blend-mode: normal;
  }

  .page-hero-bg::after {
    background:
      linear-gradient(180deg, rgba(5,8,20,.22) 0%, rgba(5,8,20,.26) 28%, rgba(5,8,20,.80) 76%, var(--bg) 100%),
      linear-gradient(90deg, rgba(5,8,20,.7) 0%, rgba(5,8,20,.34) 55%, rgba(5,8,20,.72) 100%);
  }

  .page-hero--connect-island.page-hero--video-bg .page-hero-bg video {
    opacity: min(var(--page-hero-video-opacity, .94), .94);
  }

  .page-hero--connect-island.page-hero--video-bg .page-hero-bg::before {
    background:
      radial-gradient(32.5rem 23.75rem at 56% 18%, rgba(52,215,238,.10), transparent 70%),
      linear-gradient(180deg, rgba(5,8,20,.26) 0%, rgba(5,8,20,.16) 42%, rgba(5,8,20,.66) 100%);
    opacity: .82;
  }

  .page-hero--connect-island.page-hero--video-bg .page-hero-bg::after {
    background:
      linear-gradient(180deg, rgba(5,8,20,.08) 0%, rgba(5,8,20,.10) 34%, rgba(5,8,20,.66) 78%, var(--bg) 100%),
      linear-gradient(90deg, rgba(5,8,20,.46) 0%, rgba(5,8,20,.14) 58%, rgba(5,8,20,.30) 100%);
  }

  .page-hero--image-bg h1,
  .page-hero--about-cosmos h1 {
    max-width: 11ch;
  }

  .page-hero--image-bg .hero-mark,
  .page-hero--image-bg .hero-model {
    width: min(16.25rem, 68%);
  }
}

/* Compact persistent language picker */
.language-switch{display:none!important}
.language-picker{position:relative;direction:ltr;z-index:120}
.language-picker-button{appearance:none;position:relative;overflow:hidden;display:grid;grid-template-columns:1.375rem auto minmax(0,auto) auto 1rem;align-items:center;gap:.4375rem;min-height:2.625rem;max-width:16.25rem;padding:.5rem .625rem .375rem .5rem;border:.0625rem solid var(--line);border-radius:.8125rem;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));color:var(--text);box-shadow:0 .625rem 2.125rem rgba(0,0,0,.18);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.language-picker-button::before{content:"";position:absolute;z-index:0;left:.625rem;right:.625rem;top:.25rem;height:.125rem;border-radius:62.4375rem;background:linear-gradient(90deg,var(--flag-1,#2d8f86) 0 33.333%,var(--flag-2,#dce8ea) 33.333% 66.666%,var(--flag-3,#61717c) 66.666% 100%);opacity:.62;filter:saturate(.82);box-shadow:0 0 .625rem color-mix(in srgb,var(--flag-2,#dce8ea) 28%,transparent);transition:opacity .18s ease,filter .18s ease}
.language-picker-button>*{position:relative;z-index:1}
.language-picker-button:hover,.language-picker.is-open .language-picker-button{border-color:rgba(144,231,218,.58);background:rgba(120,220,208,.085)}
.language-picker-button:hover::before,.language-picker.is-open .language-picker-button::before{opacity:.86;filter:saturate(1)}
.language-picker-button:focus-visible{outline:.1875rem solid rgba(100,231,212,.24);outline-offset:.125rem}
.language-picker-globe{display:grid;place-items:center;width:1.375rem;height:1.375rem;border-radius:.5rem;background:rgba(100,231,212,.11);color:var(--accent);font:700 .875rem/1 var(--font-mono)}
.language-picker-code{font:700 .625rem/1 var(--font-mono);letter-spacing:.08em;color:#06121b;background:var(--accent);border-radius:.375rem;padding:.3125rem .375rem}
.language-picker-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:700;color:var(--text)}
.language-picker-auto{font:700 .5625rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:.0625rem solid var(--line);border-radius:62.4375rem;padding:.25rem .375rem}
.language-picker-chevron{font-size:1rem;color:var(--muted);transition:transform .18s ease}.language-picker.is-open .language-picker-chevron{transform:rotate(180deg)}
.language-picker-menu{position:absolute;right:0;top:calc(100% + .625rem);width:min(20.625rem,calc(100vw - 1.75rem));max-height:min(38.75rem,calc(100vh - 6.25rem));overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:.5rem;border:.0625rem solid rgba(137,197,220,.28);border-radius:1rem;background:rgba(5,11,18,.98);box-shadow:0 1.5rem 4.375rem rgba(0,0,0,.48);backdrop-filter:blur(1.25rem);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--flag-1,#34d7ee) 62%,var(--flag-3,#7fe6d0)) rgba(255,255,255,.045)}
.language-picker-menu::-webkit-scrollbar{width:.625rem}
.language-picker-menu::-webkit-scrollbar-track{margin-block:.625rem;border-radius:62.4375rem;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 .0625rem rgba(255,255,255,.035)}
.language-picker-menu::-webkit-scrollbar-thumb{min-height:2.875rem;border:.1875rem solid rgba(5,11,18,.98);border-radius:62.4375rem;background:linear-gradient(180deg,color-mix(in srgb,var(--flag-1,#34d7ee) 76%,transparent),color-mix(in srgb,var(--flag-2,#dce8ea) 58%,transparent),color-mix(in srgb,var(--flag-3,#7fe6d0) 72%,transparent));box-shadow:inset 0 0 0 .0625rem rgba(255,255,255,.16),0 0 .75rem color-mix(in srgb,var(--flag-1,#34d7ee) 18%,transparent)}
.language-picker-menu::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--flag-1,#34d7ee) 90%,transparent),color-mix(in srgb,var(--flag-2,#dce8ea) 72%,transparent),color-mix(in srgb,var(--flag-3,#7fe6d0) 86%,transparent));box-shadow:inset 0 0 0 .0625rem rgba(255,255,255,.24),0 0 1rem color-mix(in srgb,var(--flag-1,#34d7ee) 28%,transparent)}
.language-picker-menu::-webkit-scrollbar-corner{background:transparent}
.language-picker-menu[hidden]{display:none!important}
.language-picker-option{position:relative;overflow:hidden;display:grid;grid-template-columns:2.375rem minmax(0,1fr) 1.125rem;align-items:center;gap:.625rem;padding:.8125rem .625rem .625rem;border-radius:.6875rem;color:var(--text);text-decoration:none;border:.0625rem solid transparent;transition:background .15s ease,border-color .15s ease}
.language-picker-option::before{content:"";position:absolute;left:.625rem;right:.625rem;top:.25rem;height:.125rem;border-radius:62.4375rem;background:linear-gradient(90deg,var(--flag-1,#2d8f86) 0 33.333%,var(--flag-2,#dce8ea) 33.333% 66.666%,var(--flag-3,#61717c) 66.666% 100%);opacity:.38;filter:saturate(.72);transition:opacity .15s ease,filter .15s ease}
.language-picker-option:hover,.language-picker-option:focus-visible{background:rgba(255,255,255,.06);border-color:var(--line);outline:none}
.language-picker-option:hover::before,.language-picker-option:focus-visible::before{opacity:.72;filter:saturate(.95)}
.language-picker-option.is-active{background:rgba(100,231,212,.09);border-color:rgba(100,231,212,.3)}
.language-picker-option.is-active::before{opacity:.9;filter:saturate(1)}
.language-picker-option strong{display:block;font-size:.75rem;font-weight:700;line-height:1.25}.language-picker-option small{display:block;margin-top:.1875rem;color:var(--muted);font-size:.625rem;line-height:1.25}
.language-option-code,.language-option-icon{display:grid;place-items:center;min-width:2.125rem;height:1.875rem;border-radius:.5rem;background:rgba(255,255,255,.055);border:.0625rem solid var(--line);color:var(--muted);font:700 .625rem/1 var(--font-mono)}
.language-picker-option--browser .language-option-icon{color:var(--accent);font-size:.8125rem}
.language-option-check{opacity:0;color:var(--accent);font-weight:900}.language-picker-option.is-active .language-option-check{opacity:1}
.language-picker-separator{height:.0625rem;background:var(--line);margin:.375rem .5rem}
.language-picker-note{margin:.4375rem .3125rem .125rem;padding:.5625rem .625rem;border-radius:.5625rem;background:rgba(255,255,255,.035);color:var(--muted);font-size:.625rem;line-height:1.45}
.google-translate-host{position:fixed!important;left:-625rem!important;top:-625rem!important;width:15rem!important;height:2.75rem!important;overflow:hidden!important;opacity:.01!important;pointer-events:none!important;white-space:nowrap!important}
.goog-te-banner-frame.skiptranslate,.goog-te-banner-frame,.VIpgJd-ZVi9od-ORHb-OEVmcd,.goog-logo-link,.goog-te-spinner-pos{display:none!important}
body{top:0!important}
html[dir="rtl"] .language-picker,html[dir="rtl"] .site-nav{direction:ltr}
html[dir="rtl"] .article,html[dir="rtl"] .page-hero-copy,html[dir="rtl"] .section-copy{direction:rtl;text-align:right}
@media(max-width:61.25rem){.language-picker{width:100%}.language-picker-button{width:100%;max-width:none}.language-picker-menu{left:0;right:auto;width:100%;max-height:52vh}.language-picker-label{text-align:left}}
@media(max-width:32.5rem){.language-picker-auto{display:none}.language-picker-button{grid-template-columns:1.375rem auto 1fr 1rem}.language-picker-menu{width:100%}}
.language-translation-notice{position:fixed;left:50%;bottom:1.375rem;z-index:300;display:flex;align-items:center;gap:.75rem;max-width:min(38.75rem,calc(100vw - 1.75rem));transform:translate(-50%,1.125rem);opacity:0;padding:.6875rem .875rem;border:.0625rem solid rgba(255,209,102,.45);border-radius:.6875rem;background:rgba(28,24,11,.96);box-shadow:0 1.125rem 3.125rem rgba(0,0,0,.35);color:#ffe7aa;font-size:.6875rem;line-height:1.45;transition:opacity .18s ease,transform .18s ease}.language-translation-notice button{flex:0 0 auto;border:.0625rem solid rgba(255,231,170,.4);border-radius:.5rem;background:rgba(255,255,255,.08);color:inherit;padding:.4375rem .625rem;font:700 .625rem/1 var(--font-mono);cursor:pointer}.language-translation-notice.is-visible{opacity:1;transform:translate(-50%,0)}


/* ---------- v18 reliable secondary-column visuals ---------- */
.article-visual-card > h2 {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.02rem, 1.25vw, 1.24rem);
  line-height: 1.35;
  letter-spacing: -.015em;
  text-transform: none;
}
.article-visual-card .article-figure figcaption:not(.ocr-text) {
  display: block;
  padding: .75rem .875rem .875rem;
  color: var(--ink-dim);
  font-size: .88rem;
  line-height: 1.5;
  background: rgba(0,0,0,.12);
}
.article-visual-card .article-figure img {
  min-height: 11.25rem;
  object-fit: cover;
}

/* ---------- v21 public-platform identity balance ---------- */
/* Keep the separate clinical pathway visible without letting it dominate the free platform. */
.nav-cta {
  color: var(--ink) !important;
  background: color-mix(in srgb, var(--panel-solid) 84%, var(--accent) 16%);
  border: .0625rem solid color-mix(in srgb, var(--line-strong) 62%, var(--accent) 38%);
  box-shadow: none;
  min-width: 9.5rem;
}
.nav-cta:hover {
  color: var(--accent) !important;
  background: color-mix(in srgb, var(--panel-solid) 74%, var(--accent) 26%);
  filter: none;
}

/* ---------- Neurohaven Studios panel ---------- */
.studios-block {
  padding-top: clamp(1.125rem, 2.5vw, 2.125rem);
}

/* Match the exact outer width of the CTA band above. The CTA paints its
   background on .section-shell itself; the Studios hero is nested, so its
   shell must not add a second horizontal inset. */
.studios-shell {
  padding-inline: 0;
}

.studios-panel {
  --studios-bg-position: center center;
  --studios-bg-mobile-position: center 24%;
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: clamp(42.5rem, 50vw, 51.25rem);
  overflow: hidden;
  border: .0625rem solid var(--line-strong);
  border-radius: var(--radius-lg);
  background: #030710;
  box-shadow: var(--shadow);
}

.studios-panel::before,
.studios-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.studios-panel::before {
  z-index: -1;
  background:
    radial-gradient(43.75rem 20.625rem at 12% 34%, rgba(0, 229, 239, .12), transparent 66%),
    radial-gradient(56.25rem 26.25rem at 100% 55%, rgba(112, 90, 255, .14), transparent 56%),
    linear-gradient(180deg, rgba(2, 5, 12, .08) 0%, rgba(2, 5, 12, .20) 45%, rgba(2, 5, 12, .72) 100%),
    linear-gradient(90deg, rgba(3, 6, 14, .72) 0%, rgba(3, 6, 14, .24) 48%, rgba(3, 6, 14, .30) 100%);
}

.studios-panel::after {
  z-index: 3;
  inset: .0625rem;
  border-radius: calc(var(--radius-lg) - .0625rem);
  box-shadow:
    inset 0 0 0 .0625rem rgba(255,255,255,.035),
    inset 0 -8.75rem 11.25rem rgba(1,5,12,.24);
}

.studios-panel-media,
.studios-panel-media picture,
.studios-panel-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.studios-panel-media {
  z-index: -2;
}

.studios-panel-media img {
  object-fit: cover;
  object-position: var(--studios-bg-position);
  filter: saturate(.96) contrast(1.06) brightness(.82);
  transform: scale(1.006);
}

.studios-layout {
  position: relative;
  z-index: 4;
  min-height: inherit;
  display: grid;
  grid-template-columns: minmax(0, 45rem) minmax(15rem, 1fr);
  gap: clamp(1.5rem, 4vw, 3.75rem);
  align-items: end;
  padding: clamp(2.125rem, 4vw, 3.75rem);
}

/* Content is placed directly over the image. There is deliberately no overlay card. */
.studios-content {
  position: relative;
  width: 100%;
  max-width: 45rem;
  min-width: 0;
  padding-block: clamp(.625rem, 1.5vw, 1.25rem);
}

.studios-kicker {
  max-width: 70ch;
  margin: 0 0 1rem;
  color: #77f2eb;
  font-family: var(--font-mono);
  font-size: clamp(.625rem, .9vw, .75rem);
  font-weight: 700;
  letter-spacing: .25em;
  line-height: 1.55;
  text-transform: uppercase;
  text-shadow: 0 0 1.125rem rgba(74, 239, 235, .32);
}

.studios-brand {
  display: flex;
  flex-direction: column;
  gap: .05em;
  margin: 0;
  width: 100%;
  max-width: 100%;
  overflow: visible;
  line-height: .86;
  text-transform: uppercase;
}

.studios-brand-main,
.studios-brand-sub {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -.048em;
}

.studios-brand-main {
  color: #fff;
  max-width: 100%;
  font-size: clamp(2.65rem, 5.05vw, 5.15rem);
  line-height: .92;
  white-space: nowrap;
  text-shadow: 0 .5rem 2rem rgba(0,0,0,.42);
}

.studios-brand-sub {
  color: #45eaff;
  max-width: 100%;
  font-size: clamp(2.05rem, 3.9vw, 3.85rem);
  line-height: .94;
  white-space: nowrap;
  text-shadow:
    0 0 .75rem rgba(69,234,255,.34),
    0 0 2rem rgba(69,234,255,.18),
    0 .5rem 1.5rem rgba(0,0,0,.36);
}

.studios-lede {
  max-width: 36ch;
  margin: 1.375rem 0 0;
  color: rgba(240, 247, 255, .94);
  font-size: clamp(1.02rem, 1.3vw, 1.25rem);
  font-weight: 600;
  line-height: 1.5;
  text-shadow: 0 .1875rem 1.125rem rgba(0,0,0,.52);
}

.studios-copy {
  max-width: 60ch;
  margin-top: 1.125rem;
  padding-left: 1rem;
  border-left: .0625rem solid rgba(119,242,235,.38);
  color: rgba(229, 239, 252, .84);
  text-shadow: 0 .1875rem 1.125rem rgba(0,0,0,.62);
}

.studios-copy p {
  margin-bottom: .8rem;
}

.studios-copy p:last-child {
  margin-bottom: 0;
}

.studios-capabilities {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem .625rem;
  align-items: center;
  margin: clamp(1.375rem, 2.8vw, 2.125rem) 0 0;
  color: rgba(224, 236, 250, .62);
  font-family: var(--font-mono);
  font-size: .625rem;
  letter-spacing: .075em;
  line-height: 1.55;
  text-transform: uppercase;
  text-shadow: 0 .125rem .75rem rgba(0,0,0,.62);
}

.studios-capabilities span {
  white-space: nowrap;
}

.studios-capabilities .is-primary {
  color: #72f3ed;
  font-weight: 700;
}

.studios-capabilities i {
  color: rgba(119,242,235,.42);
  font-style: normal;
}

.studios-actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(.75rem, 1.7vw, 1.25rem);
  margin-top: clamp(1.75rem, 3.2vw, 2.625rem);
}

.studios-actions .btn {
  min-height: 3.375rem;
  min-width: min(100%, 12.8125rem);
  justify-content: center;
  box-shadow: 0 .875rem 2.125rem rgba(0,0,0,.28);
}

.studios-actions .btn-primary {
  box-shadow:
    0 0 0 .0625rem rgba(69,234,255,.22),
    0 0 1.75rem rgba(69,234,255,.22),
    0 .875rem 2.125rem rgba(0,0,0,.30);
}

.studios-actions .btn-secondary {
  background: rgba(5,10,22,.38);
  border-color: rgba(255,255,255,.20);
  backdrop-filter: blur(.25rem);
  -webkit-backdrop-filter: blur(.25rem);
}

.studios-display {
  align-self: center;
  justify-self: end;
  width: min(100%, 36.25rem);
  min-width: 0;
  text-align: right;
}

.studios-display-title {
  display: flex;
  flex-direction: column;
  gap: .03em;
  color: rgba(238, 244, 255, .16);
  font-family: var(--font-display);
  max-width: 100%;
  font-size: clamp(2.55rem, 5.35vw, 5.65rem);
  font-weight: 800;
  line-height: .88;
  letter-spacing: -.055em;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 .5rem 1.75rem rgba(0,0,0,.26);
}

.studios-display-tag {
  margin: clamp(1.125rem, 2.7vw, 1.875rem) 0 0;
  color: rgba(235, 243, 255, .28);
  font-family: var(--font-mono);
  font-size: clamp(.6875rem, .95vw, .9375rem);
  letter-spacing: .095em;
  line-height: 1.5;
  text-transform: uppercase;
  text-shadow: 0 .1875rem 1rem rgba(0,0,0,.44);
}

@media (max-width: 73.75rem) {
  .studios-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.875rem;
  }

  .studios-display {
    display: none;
  }
}

@media (max-width: 47.5rem) {
  .studios-block {
    padding-top: .75rem;
  }

  .studios-panel {
    min-height: 58.75rem;
  }

  .studios-panel::before {
    background:
      radial-gradient(26.25rem 13.75rem at 15% 18%, rgba(0,229,239,.12), transparent 64%),
      linear-gradient(180deg, rgba(2,5,12,.06) 0%, rgba(2,5,12,.16) 30%, rgba(2,5,12,.74) 58%, rgba(2,5,12,.98) 100%);
  }

  .studios-panel-media img {
    object-position: var(--studios-bg-mobile-position);
    filter: saturate(.94) contrast(1.04) brightness(.80);
  }

  .studios-layout {
    grid-template-columns: 1fr;
    align-content: end;
    min-height: inherit;
    padding: 1.5rem clamp(1.25rem, 5vw, 1.875rem) 1.875rem;
  }

  .studios-content {
    padding-top: clamp(18.75rem, 82vw, 24.375rem);
  }

  .studios-kicker {
    letter-spacing: .17em;
  }

  .studios-brand-main {
    font-size: clamp(2.25rem, 11.25vw, 4rem);
    line-height: .94;
  }

  .studios-brand-sub {
    font-size: clamp(1.85rem, 9vw, 3rem);
    line-height: .96;
  }

  .studios-lede {
    font-size: 1rem;
  }

  .studios-copy {
    padding-left: .875rem;
  }

  .studios-capabilities {
    gap: .3125rem .5rem;
    font-size: .5625rem;
  }

  .studios-display {
    display: none;
  }

  .studios-actions {
    flex-direction: column;
  }

  .studios-actions .btn {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding-inline: 1.125rem;
    white-space: normal;
    line-height: 1.3;
  }
}

@media (max-width: 26.25rem) {
  .studios-brand-main {
    font-size: clamp(2.05rem, 10.7vw, 2.8rem);
    letter-spacing: -.055em;
  }

  .studios-brand-sub {
    font-size: clamp(1.65rem, 8.5vw, 2.35rem);
  }

  .studios-kicker,
  .studios-capabilities {
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .studios-actions .btn-secondary {
    background: #07101f;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* Recovered local-video support: native files share the existing playlist frame. */
.article-video-playlist-frame > video[data-video-player-native] {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #05080c;
}
.article-video-playlist-frame > video[data-video-player-native][hidden] { display: none !important; }
.article-video-playlist[data-video-current-type="local"] .article-media-placeholder { display: none !important; }


/* CMS-managed images placed inside article text */
.article-body-visuals{display:grid;gap:1.125rem;margin:clamp(1.375rem,3vw,2.375rem) 0}.article-body-visual-placement{width:100%;margin-inline:auto}.article-body-visual-placement--wide{max-width:48.75rem}.article-body-visual-placement--medium{max-width:38.75rem}.article-body-visual-placement--small{max-width:28.75rem}.article-body-visual-placement .article-figure{margin:0}.article-body-visual-placement .article-figure img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.article-figure img{height:auto;max-width:100%}
@media(max-width:47.5rem){.article-body-visual-placement--wide,.article-body-visual-placement--medium,.article-body-visual-placement--small{max-width:100%}.article-body-visuals{margin:1.375rem 0}}

/* v004 front-end editor image alignment records. */
.article-body-visual-placement .article-figure--align-left{margin-inline-start:0;margin-inline-end:auto}
.article-body-visual-placement .article-figure--align-center{margin-inline:auto}
.article-body-visual-placement .article-figure--align-right{margin-inline-start:auto;margin-inline-end:0}
@media(max-width:47.5rem){.article-body-visual-placement .article-figure--align-left,.article-body-visual-placement .article-figure--align-center,.article-body-visual-placement .article-figure--align-right{margin-inline:auto}}

/* v013: transparent disclosure for server-rendered automatic translations. */
.automatic-translation-disclosure{
  position:relative;z-index:8;display:flex;align-items:center;justify-content:center;gap:.875rem;
  width:100%;padding:.625rem clamp(1rem,3vw,2.625rem);border-bottom:.0625rem solid color-mix(in srgb,var(--accent,#49b8ac) 28%,transparent);
  background:color-mix(in srgb,var(--surface,#111820) 92%,var(--accent,#49b8ac) 8%);color:var(--muted,#b9c4ca);
  font-size:clamp(.78rem,.72rem + .18vw,.9rem);line-height:1.45;text-align:center;
}
.automatic-translation-disclosure a{color:var(--text,#fff);font-weight:700;text-decoration:none;white-space:nowrap}
.automatic-translation-disclosure a:hover,.automatic-translation-disclosure a:focus-visible{text-decoration:underline;text-underline-offset:.1875rem}
@media(max-width:40rem){.automatic-translation-disclosure{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:.25rem;text-align:start}}

/* ---------- v024 Neurohaven Arcade cards ---------- */
.nh-arcade-catalog {
  container-type: inline-size;
  margin-top: clamp(1.375rem, 3vw, 2.125rem);
  color: #eefcff;
  font-family: Inter, var(--font-sans);
}
.nh-arcade-catalog__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .8125rem;
}
.article .nh-arcade-catalog__heading {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  padding: 0;
  border: 0;
  color: rgba(42, 230, 255, .86);
  font: 600 .6875rem/1.2 var(--font-mono);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.nh-arcade-catalog__heading span {
  color: #2ae6ff;
  font-size: .8125rem;
}
.nh-arcade-catalog__count {
  color: rgba(178, 218, 227, .56);
  font: 600 .5625rem/1 var(--font-mono);
  letter-spacing: .12em;
}
.nh-arcade-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  width: 100%;
}
.article a.nh-arcade-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: .0625rem solid transparent;
  border-radius: .5rem;
  color: #f4fbff;
  text-decoration: none;
  background:
    linear-gradient(150deg, rgba(4, 15, 19, .98), rgba(3, 6, 12, .99)) padding-box,
    linear-gradient(135deg, #31dcff 0%, #18efc1 47%, #fa28cd 100%) border-box;
  box-shadow: 0 .75rem 1.75rem rgba(0, 0, 0, .26), 0 0 1.125rem rgba(0, 225, 255, .06);
  isolation: isolate;
  transform: translateZ(0);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.article a.nh-arcade-card:hover,
.article a.nh-arcade-card:focus-visible {
  color: #fff;
  transform: translateY(-.1875rem);
  filter: saturate(1.1);
  box-shadow: 0 1rem 2.125rem rgba(0, 0, 0, .36), 0 0 1.5rem rgba(20, 232, 255, .15);
}
.article a.nh-arcade-card:focus-visible {
  outline: .125rem solid #67efff;
  outline-offset: .1875rem;
}
.nh-arcade-card__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-bottom: .0625rem solid rgba(34, 226, 255, .18);
  background:
    radial-gradient(circle at 35% 35%, rgba(0, 237, 255, .18), transparent 48%),
    #061019;
}
.article .nh-arcade-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
  opacity: .68;
  transform: scale(1.002);
  transition: opacity .42s ease, transform .48s ease;
}
.nh-arcade-card:hover .nh-arcade-card__media img,
.nh-arcade-card:focus-visible .nh-arcade-card__media img {
  opacity: 1;
  transform: scale(1.055);
}
.nh-arcade-card__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(1, 6, 10, .88), rgba(1, 6, 10, .04) 70%);
  transition: opacity .25s ease;
}
.nh-arcade-card:hover .nh-arcade-card__shade,
.nh-arcade-card:focus-visible .nh-arcade-card__shade {
  opacity: .18;
}
.nh-arcade-card__play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  background: rgba(0, 4, 8, .34);
  backdrop-filter: blur(.09375rem);
  transition: opacity .22s ease;
}
.nh-arcade-card__play::before {
  content: "";
  position: absolute;
  width: 2.625rem;
  height: 2.625rem;
  border: .0625rem solid rgba(47, 233, 255, .88);
  border-radius: 62.4375rem;
  background: rgba(9, 168, 190, .20);
  box-shadow: 0 0 1.125rem rgba(0, 229, 255, .33);
  transform: scale(.85);
  transition: transform .22s ease;
}
.nh-arcade-card__play svg {
  position: relative;
  z-index: 1;
  width: 1.0625rem;
  height: 1.0625rem;
  margin-left: .125rem;
  fill: #62f1ff;
  stroke: #62f1ff;
}
.nh-arcade-card:hover .nh-arcade-card__play,
.nh-arcade-card:focus-visible .nh-arcade-card__play {
  opacity: 1;
}
.nh-arcade-card:hover .nh-arcade-card__play::before,
.nh-arcade-card:focus-visible .nh-arcade-card__play::before {
  transform: scale(1);
}
.nh-arcade-card__body {
  display: flex;
  min-height: 4.125rem;
  flex: 1;
  flex-direction: column;
  padding: .5625rem .625rem .5rem;
  background: rgba(0, 8, 10, .78);
}
.nh-arcade-card__title {
  display: block;
  overflow: hidden;
  color: #f5fbff;
  font-size: .71875rem;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color .18s ease;
}
.nh-arcade-card:hover .nh-arcade-card__title,
.nh-arcade-card:focus-visible .nh-arcade-card__title {
  color: #43e9ff;
}
.nh-arcade-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-top: auto;
  padding-top: .5rem;
  border-top: .0625rem solid rgba(42, 230, 255, .10);
  color: rgba(42, 230, 255, .68);
  font: 500 .5rem/1 var(--font-mono);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.nh-arcade-card__plays {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  min-width: 0;
  white-space: nowrap;
}
.nh-arcade-card__plays svg {
  width: .625rem;
  height: .625rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.nh-arcade-card__id {
  overflow: hidden;
  color: rgba(170, 195, 203, .34);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nh-arcade-card__scan {
  position: absolute;
  z-index: 4;
  top: 0;
  left: -35%;
  width: 35%;
  height: .125rem;
  opacity: 0;
  background: linear-gradient(90deg, transparent, #5ef4ff, transparent);
  box-shadow: 0 0 .75rem rgba(71, 240, 255, .8);
}
.nh-arcade-card:hover .nh-arcade-card__scan,
.nh-arcade-card:focus-visible .nh-arcade-card__scan {
  opacity: 1;
  animation: nh-arcade-scan 1.7s ease-in-out infinite;
}
@keyframes nh-arcade-scan {
  0% { left: -35%; }
  100% { left: 100%; }
}

.nh-arcade-modal {
  width: 90vw;
  max-width: none;
  height: 90vh;
  height: 90dvh;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
}
.nh-arcade-modal::backdrop {
  background: rgba(0, 3, 7, .90);
  backdrop-filter: blur(.5rem);
}
.nh-arcade-modal__stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: .0625rem solid rgba(54, 231, 255, .68);
  border-radius: .6875rem;
  background: #000;
  box-shadow: 0 0 0 .0625rem rgba(244, 35, 207, .22), 0 1.875rem 6.25rem rgba(0, 0, 0, .72), 0 0 3rem rgba(0, 226, 255, .16);
}
.nh-arcade-modal iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}
.nh-arcade-modal__loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(93, 239, 255, .82);
  background: #02070b;
  font: 600 .75rem/1.4 var(--font-mono);
  letter-spacing: .10em;
  text-transform: uppercase;
  pointer-events: none;
}
.nh-arcade-modal__loading[hidden] { display: none; }
.nh-arcade-modal__close {
  position: absolute;
  z-index: 5;
  top: .625rem;
  right: .625rem;
  display: grid;
  width: 2.625rem;
  height: 2.625rem;
  place-items: center;
  padding: 0;
  border: .0625rem solid rgba(76, 235, 255, .70);
  border-radius: 62.4375rem;
  color: #fff;
  background: rgba(0, 5, 9, .82);
  box-shadow: 0 .5rem 1.625rem rgba(0, 0, 0, .45), 0 0 1rem rgba(0, 229, 255, .16);
  font: 300 1.6875rem/1 Arial, sans-serif;
  cursor: pointer;
  backdrop-filter: blur(.5rem);
}
.nh-arcade-modal__close:hover,
.nh-arcade-modal__close:focus-visible {
  border-color: #f53bcf;
  color: #fff;
  background: rgba(36, 3, 31, .92);
  outline: .125rem solid rgba(245, 59, 207, .45);
  outline-offset: .125rem;
}
body.nh-arcade-modal-open { overflow: hidden !important; }

@container (max-width: 38.75rem) {
  .nh-arcade-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 23.75rem) {
  .nh-arcade-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 38.75rem) {
  .nh-arcade-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 25.625rem) {
  .nh-arcade-grid { grid-template-columns: minmax(0, 1fr); }
  .nh-arcade-card__title { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .article a.nh-arcade-card,
  .article .nh-arcade-card__media img,
  .nh-arcade-card__play,
  .nh-arcade-card__play::before {
    transition: none;
  }
  .nh-arcade-card:hover .nh-arcade-card__scan,
  .nh-arcade-card:focus-visible .nh-arcade-card__scan {
    animation: none;
  }
}


/* ---------- v027 on-domain clinical assessment pathway ---------- */
.clinical-pathway {
  display: grid;
  gap: clamp(1.375rem, 3vw, 2.375rem);
}
.clinical-pathway > * { margin-top: 0 !important; }
.clinical-kicker {
  display: inline-block;
  margin-bottom: .625rem;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.clinical-pathway h2 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--ink);
  font-size: clamp(1.5rem, 2.8vw, 2.35rem);
  line-height: 1.08;
}
.clinical-pathway p { margin: 0; }
.clinical-pathway__intro {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(16.25rem, .75fr);
  gap: clamp(1.375rem, 4vw, 3.25rem);
  align-items: center;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: .0625rem solid var(--line-strong);
  border-radius: calc(var(--radius-lg) + .25rem);
  background:
    radial-gradient(43.75rem 20rem at 0% 0%, rgba(52,215,238,.16), transparent 68%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  box-shadow: 0 1.5rem 4.6875rem rgba(0,0,0,.28), 0 0 2.8125rem rgba(52,215,238,.08);
}
.clinical-pathway__intro::after {
  content: "";
  position: absolute;
  right: -7.5rem;
  bottom: -9.375rem;
  width: 22.5rem;
  height: 22.5rem;
  border-radius: 50%;
  background: rgba(139,156,255,.10);
  filter: blur(3.75rem);
  pointer-events: none;
}
.clinical-pathway__intro-copy { position: relative; z-index: 1; }
.clinical-pathway__intro-copy > p {
  max-width: 41.875rem;
  margin-top: 1.125rem;
  color: var(--ink-dim);
  font-size: clamp(1rem, 1.25vw, 1.12rem);
}
.clinical-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.375rem;
  margin-top: 1.625rem;
}
.article .clinical-book-button {
  min-width: min(100%, 17.5rem);
  text-decoration: none;
}
.article .clinical-text-link {
  color: var(--ink);
  font-weight: 650;
  text-decoration-color: color-mix(in srgb, var(--accent) 65%, transparent);
}
.clinical-external-note {
  display: block;
  margin-top: .8125rem;
  color: var(--muted);
  font-size: .78125rem;
}
.clinical-provider-card {
  position: relative;
  z-index: 1;
  padding: clamp(1.25rem, 3vw, 1.875rem);
  border: .0625rem solid color-mix(in srgb, var(--accent-3) 45%, var(--line));
  border-radius: var(--radius-lg);
  background: rgba(4,9,18,.62);
  box-shadow: inset 0 .0625rem 0 rgba(255,255,255,.08), 0 1.125rem 3rem rgba(0,0,0,.25);
}
[data-theme="light"] .clinical-provider-card { background: rgba(255,255,255,.72); }
.clinical-provider-card__label {
  display: block;
  margin-bottom: 1rem;
  color: var(--accent-2);
  font-family: var(--font-mono);
  font-size: .625rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.article .clinical-provider-card img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: .8125rem;
}
.clinical-provider-card p {
  margin-top: 1rem;
  color: var(--muted);
  font-size: .84375rem;
  line-height: 1.6;
}
.clinical-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.clinical-fact {
  min-height: 11.125rem;
  padding: 1.375rem;
  border: .0625rem solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
}
.clinical-fact > span {
  display: block;
  color: var(--accent);
  font: 700 .6875rem/1 var(--font-mono);
  letter-spacing: .12em;
}
.clinical-fact strong {
  display: block;
  margin-top: 1.25rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.08rem;
}
.clinical-fact p {
  margin-top: .5625rem;
  color: var(--muted);
  font-size: .875rem;
  line-height: 1.6;
}
.clinical-profile {
  display: grid;
  grid-template-columns: minmax(16.25rem, .78fr) minmax(0, 1.22fr);
  gap: clamp(1.5rem, 4vw, 3.25rem);
  align-items: center;
  padding: clamp(1.375rem, 3.5vw, 2.625rem);
  border: .0625rem solid var(--line);
  border-radius: calc(var(--radius-lg) + .125rem);
  background: linear-gradient(135deg, rgba(127,230,208,.07), rgba(139,156,255,.055));
}
.clinical-profile__portrait { margin: 0; }
.article .clinical-profile__portrait img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 34%;
  margin: 0;
  border: .0625rem solid var(--line-strong);
  border-radius: var(--radius-lg);
  box-shadow: 0 1.25rem 3.4375rem rgba(0,0,0,.30);
}
.clinical-profile__copy > p { margin-top: .9375rem; }
.clinical-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: .5625rem;
  margin-top: 1.375rem;
}
.clinical-credentials span {
  padding: .5rem .75rem;
  border: .0625rem solid var(--line-strong);
  border-radius: 62.4375rem;
  color: var(--accent-2);
  background: rgba(255,255,255,.04);
  font: 700 .6875rem/1 var(--font-mono);
  letter-spacing: .05em;
}
.clinical-process {
  display: grid;
  grid-template-columns: minmax(15rem, .72fr) minmax(0, 1.28fr);
  gap: clamp(1.5rem, 4vw, 3.125rem);
  align-items: start;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  border: .0625rem solid var(--line);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.025);
  scroll-margin-top: calc(var(--header-h) + 1.5rem);
}
.clinical-section-heading > p { margin-top: .875rem; color: var(--muted); }
.clinical-process__steps {
  counter-reset: clinical-step;
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.clinical-process__steps li {
  counter-increment: clinical-step;
  position: relative;
  padding: 1.0625rem 1.125rem 1.0625rem 3.875rem;
  border: .0625rem solid var(--line);
  border-radius: .875rem;
  background: rgba(255,255,255,.045);
}
.clinical-process__steps li::before {
  content: counter(clinical-step);
  position: absolute;
  top: .9375rem;
  left: 1rem;
  width: 1.875rem;
  height: 1.875rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #06121b;
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  font: 700 .75rem/1 var(--font-mono);
  box-shadow: 0 0 1.125rem rgba(52,215,238,.22);
}
.clinical-process__steps strong { display: block; color: var(--ink); }
.clinical-process__steps span { display: block; margin-top: .25rem; color: var(--muted); font-size: .875rem; }
.clinical-boundary {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(13.75rem, .75fr);
  gap: clamp(1.5rem, 4vw, 3.125rem);
  align-items: center;
  padding: clamp(1.375rem, 3.5vw, 2.5rem);
  border: .0625rem solid color-mix(in srgb, var(--accent-3) 35%, var(--line));
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, rgba(139,156,255,.075), rgba(255,255,255,.025));
}
.clinical-boundary__copy > p { margin-top: .9375rem; }
.clinical-boundary__regulation {
  padding: 1rem;
  border-radius: 1rem;
  background: rgba(255,255,255,.96);
}
.article .clinical-boundary__regulation img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: .625rem;
}
.clinical-final-cta {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  align-items: center;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  border: .0625rem solid var(--line-strong);
  border-radius: calc(var(--radius-lg) + .25rem);
  background:
    radial-gradient(31.25rem 15rem at 10% 0%, rgba(52,215,238,.16), transparent 70%),
    linear-gradient(120deg, rgba(52,215,238,.07), rgba(127,230,208,.045));
}
.clinical-final-cta p { margin-top: .625rem; color: var(--muted); }
.clinical-final-cta .btn { flex: none; }
@media (max-width: 56.25rem) {
  .clinical-pathway__intro,
  .clinical-profile,
  .clinical-process,
  .clinical-boundary { grid-template-columns: 1fr; }
  .clinical-provider-card { max-width: 35rem; }
  .clinical-profile__portrait { max-width: 40rem; }
  .clinical-boundary__regulation { max-width: 28.75rem; }
}
@media (max-width: 47.5rem) {
  .clinical-facts { grid-template-columns: 1fr; }
  .clinical-fact { min-height: 0; }
  .clinical-final-cta { align-items: stretch; flex-direction: column; }
  .clinical-final-cta .btn { width: 100%; }
}
@media (max-width: 35rem) {
  .clinical-actions { align-items: stretch; flex-direction: column; }
  .clinical-actions > * { width: 100%; text-align: center; }
  .clinical-pathway__intro,
  .clinical-profile,
  .clinical-process,
  .clinical-boundary,
  .clinical-final-cta { padding: 1.25rem; }
}

/* ---------- v028 high-contrast interactive states ---------- */
/*
 * Interactive copy must remain readable independently of decorative accent
 * colours. The light theme uses a darker cyan for text links, while controls
 * that sit on bright cyan/teal fills retain near-black copy.
 */
:root {
  --link: #75e7f2;
  --link-hover: #d7fbff;
  --focus-ring: #7fe6d0;
  --control-on-accent: #06121b;
  --header-link: #dce8f7;
  --header-link-hover: #ffffff;
  --header-link-active: #7fe6d0;
}

[data-theme="light"] {
  --link: #005f73;
  --link-hover: #003f4f;
  --focus-ring: #005f73;
  --control-on-accent: #06121b;
  --header-link: #e8f0ff;
  --header-link-hover: #ffffff;
  --header-link-active: #7fe6d0;
}

a { color: var(--link); }
:focus-visible { outline-color: var(--focus-ring); }

/* Anchor buttons must not inherit article-link cyan. This fixes the clinical
   booking actions and protects every current/future CTA placed in CMS copy. */
a.btn-primary,
a.btn-primary:hover,
a.btn-primary:focus-visible,
a.btn-glow,
a.btn-glow:hover,
a.btn-glow:focus-visible,
.article a.btn-primary,
.article a.btn-primary:hover,
.article a.btn-primary:focus-visible,
.article a.btn-glow,
.article a.btn-glow:hover,
.article a.btn-glow:focus-visible,
.article a.clinical-book-button,
.article a.clinical-book-button:hover,
.article a.clinical-book-button:focus-visible {
  color: var(--control-on-accent) !important;
  text-decoration: none;
  text-shadow: none;
}

.article a.btn-secondary,
.article a.btn-secondary:hover,
.article a.btn-secondary:focus-visible {
  color: var(--ink) !important;
  text-decoration: none;
}

/* Header remains deliberately dark in both themes. Do not allow light-theme
   body variables to turn its menu copy dark. */
.site-header .language-picker {
  --text: #eef5ff;
  --muted: #b9c8dc;
  --line: rgba(232,240,255,.20);
}

.site-header .language-picker-button,
.site-header .language-picker-label,
.language-picker-menu,
.language-picker-option,
.language-picker-option strong {
  color: #eef5ff;
}

.language-picker-option small,
.language-picker-note,
.language-picker-chevron,
.language-picker-auto,
.language-option-code,
.language-option-icon {
  color: #b9c8dc;
}

[data-theme="light"] .site-header .nav-main a:not(.nav-cta) {
  color: var(--header-link);
  font-weight: 600;
  text-shadow: 0 .0625rem .0625rem rgba(0,0,0,.22);
}

[data-theme="light"] .site-header .nav-main a:not(.nav-cta):hover,
[data-theme="light"] .site-header .nav-main a:not(.nav-cta):focus-visible {
  color: var(--header-link-hover);
}

[data-theme="light"] .site-header .nav-main a.is-active:not(.nav-cta) {
  color: var(--header-link-active);
}

[data-theme="light"] .site-header .nav-main a:not(.nav-cta)::after {
  background: var(--header-link-active);
}

[data-theme="light"] .site-header .nav-cta {
  color: #06121b !important;
  background: linear-gradient(120deg, #d8fbff, #baf3e8);
  border-color: rgba(127,230,208,.72);
  box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.20);
}

[data-theme="light"] .site-header .nav-cta:hover,
[data-theme="light"] .site-header .nav-cta:focus-visible {
  color: #02090d !important;
  background: linear-gradient(120deg, #f1feff, #d5faef);
  border-color: #7fe6d0;
}

[data-theme="light"] .site-header .nav-toggle,
[data-theme="light"] .site-header .theme-toggle,
[data-theme="light"] .site-header .language-picker-button {
  color: #eef5ff;
  background: rgba(255,255,255,.08);
  border-color: rgba(232,240,255,.24);
}

[data-theme="light"] .site-header .nav-toggle:hover,
[data-theme="light"] .site-header .theme-toggle:hover,
[data-theme="light"] .site-header .language-picker-button:hover,
[data-theme="light"] .site-header .language-picker.is-open .language-picker-button {
  color: #ffffff;
  background: rgba(255,255,255,.13);
  border-color: rgba(127,230,208,.68);
}

[data-theme="light"] .site-header .nav-toggle span { background: #ffffff; }

/* High-contrast body links in light mode. */
[data-theme="light"] .breadcrumb a,
[data-theme="light"] .article a:not(.btn):not(.nh-arcade-card),
[data-theme="light"] .article-source a,
[data-theme="light"] .article-source-card a,
[data-theme="light"] .clinical-text-link,
[data-theme="light"] .team-link,
[data-theme="light"] .feature-more {
  color: var(--link);
  text-decoration-color: rgba(0,95,115,.55);
}

[data-theme="light"] .breadcrumb a:hover,
[data-theme="light"] .breadcrumb a:focus-visible,
[data-theme="light"] .article a:not(.btn):not(.nh-arcade-card):hover,
[data-theme="light"] .article a:not(.btn):not(.nh-arcade-card):focus-visible,
[data-theme="light"] .article-source a:hover,
[data-theme="light"] .article-source a:focus-visible,
[data-theme="light"] .article-source-card a:hover,
[data-theme="light"] .article-source-card a:focus-visible,
[data-theme="light"] .clinical-text-link:hover,
[data-theme="light"] .clinical-text-link:focus-visible,
[data-theme="light"] .team-link:hover,
[data-theme="light"] .team-link:focus-visible,
[data-theme="light"] .feature-more:hover,
[data-theme="light"] .feature-more:focus-visible {
  color: var(--link-hover);
  text-decoration-color: currentColor;
}

[data-theme="light"] .link-list a,
[data-theme="light"] .article-toc a,
[data-theme="light"] .article-sources a,
[data-theme="light"] .kcat-links a {
  color: #243357;
}

[data-theme="light"] .link-list a:hover,
[data-theme="light"] .link-list a:focus-visible,
[data-theme="light"] .article-toc a:hover,
[data-theme="light"] .article-toc a:focus-visible,
[data-theme="light"] .article-sources a:hover,
[data-theme="light"] .article-sources a:focus-visible,
[data-theme="light"] .kcat-links a:hover,
[data-theme="light"] .kcat-links a:focus-visible {
  color: var(--link-hover);
}

/* Accent-coloured labels and article headings also need enough contrast on
   pale surfaces, even when they are not links. */
[data-theme="light"] .eyebrow,
[data-theme="light"] .feature-tag,
[data-theme="light"] .author-role,
[data-theme="light"] .team-role,
[data-theme="light"] .ap-num,
[data-theme="light"] .article-card-kicker,
[data-theme="light"] .article-enhanced h2,
[data-theme="light"] .article-enhanced h3,
[data-theme="light"] .article-enhanced h2:target,
[data-theme="light"] .article-enhanced h3:target,
[data-theme="light"] .article-media-label,
[data-theme="light"] .clinical-kicker,
[data-theme="light"] .clinical-fact > span {
  color: #006479;
}

[data-theme="light"] .eyebrow-light,
[data-theme="light"] .connect-badge,
[data-theme="light"] .about-quote figcaption,
[data-theme="light"] .ap-partner,
[data-theme="light"] .clinical-provider-card__label,
[data-theme="light"] .clinical-credentials span {
  color: #08705e;
}

/* The light footer is actually light; a translucent black footer previously
   produced a mid-grey surface with weak link contrast. */
[data-theme="light"] .site-footer {
  background: rgba(248,251,255,.94);
  border-top-color: rgba(12,24,52,.16);
}

[data-theme="light"] .footer-nav a,
[data-theme="light"] .footer-socials a,
[data-theme="light"] .footer-credit-link,
[data-theme="light"] .footer-privacy-actions button,
[data-theme="light"] .footer-privacy-actions a {
  color: #243357;
}

[data-theme="light"] .footer-nav a:hover,
[data-theme="light"] .footer-nav a:focus-visible,
[data-theme="light"] .footer-socials a:hover,
[data-theme="light"] .footer-socials a:focus-visible,
[data-theme="light"] .footer-credit-link:hover,
[data-theme="light"] .footer-credit-link:focus-visible,
[data-theme="light"] .footer-privacy-actions button:hover,
[data-theme="light"] .footer-privacy-actions button:focus-visible,
[data-theme="light"] .footer-privacy-actions a:hover,
[data-theme="light"] .footer-privacy-actions a:focus-visible {
  color: var(--link-hover);
}

/* Keep primary controls explicit in light mode so later CMS/link rules cannot
   weaken their text contrast. */
[data-theme="light"] .btn-primary,
[data-theme="light"] .btn-glow,
[data-theme="light"] .mobile-sticky-cta,
[data-theme="light"] .skip-link {
  color: var(--control-on-accent) !important;
}

/* ---------- v032 Binaural Beats interactive soundscape launcher ---------- */
.nh-soundscape-panel {
  display: grid;
  gap: .75rem;
}
.nh-soundscape-panel__eyebrow,
.nh-soundscape-panel__note {
  margin: 0 !important;
}
.nh-soundscape-panel__eyebrow {
  color: var(--accent);
  font: 700 .625rem/1.2 var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
}
.nh-soundscape-panel__note {
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.45;
}
.article-side-card a.nh-soundscape-launch,
.article-side-card a.nh-soundscape-launch:hover,
.article-side-card a.nh-soundscape-launch:focus-visible {
  position: relative;
  width: 100%;
  min-height: 5.75rem;
  display: grid;
  grid-template-columns: 2.625rem minmax(0, 1fr) 1.875rem;
  align-items: center;
  gap: .75rem;
  overflow: hidden;
  padding: 1rem;
  border: .0625rem solid color-mix(in srgb, var(--accent) 68%, white 8%);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 15% 15%, rgba(255,255,255,.28), transparent 28%),
    linear-gradient(125deg, var(--accent), var(--accent-2));
  box-shadow: 0 1.125rem 2.75rem rgba(52,215,238,.22), inset 0 .0625rem 0 rgba(255,255,255,.28);
  color: #06121b !important;
  text-decoration: none !important;
  text-shadow: none;
  isolation: isolate;
  transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}
.article-side-card a.nh-soundscape-launch::before {
  content: '';
  position: absolute;
  inset: -60% auto -60% -36%;
  width: 28%;
  z-index: -1;
  background: rgba(255,255,255,.34);
  filter: blur(.8125rem);
  transform: skewX(-18deg);
  transition: left .5s ease;
}
.article-side-card a.nh-soundscape-launch:hover {
  transform: translateY(-.125rem);
  filter: saturate(1.08) brightness(1.04);
  box-shadow: 0 1.375rem 3.375rem rgba(52,215,238,.32), inset 0 .0625rem 0 rgba(255,255,255,.34);
}
.article-side-card a.nh-soundscape-launch:hover::before { left: 112%; }
.article-side-card a.nh-soundscape-launch:focus-visible {
  outline: .1875rem solid var(--focus-ring);
  outline-offset: .25rem;
}
.nh-soundscape-launch__icon {
  width: 2.625rem;
  height: 2.625rem;
  display: grid;
  place-items: center;
  border: .0625rem solid rgba(6,18,27,.38);
  border-radius: 50%;
  background: rgba(6,18,27,.10);
  box-shadow: inset 0 0 0 .3125rem rgba(255,255,255,.10);
  font-size: 1.1875rem;
}
.nh-soundscape-launch__copy {
  min-width: 0;
  display: grid;
  gap: .3125rem;
}
.nh-soundscape-launch__copy strong {
  color: #06121b;
  font: 800 clamp(.8125rem, 1vw, 1rem)/1.05 var(--font-display);
  letter-spacing: .055em;
}
.nh-soundscape-launch__copy small {
  color: rgba(6,18,27,.78);
  font-size: .6875rem;
  font-weight: 700;
  line-height: 1.35;
}
.nh-soundscape-launch__arrow {
  justify-self: end;
  font-size: 1.375rem;
  font-weight: 800;
}
[data-theme="light"] .article-manual-sidebar:has(.nh-soundscape-panel) {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(239,247,250,.96));
}
@media (max-width: 27.5rem) {
  .article-side-card a.nh-soundscape-launch {
    grid-template-columns: 2.375rem minmax(0, 1fr) 1.5rem;
    min-height: 5.125rem;
    padding: .8125rem;
  }
  .nh-soundscape-launch__icon { width: 2.375rem; height: 2.375rem; }
}

/* ---------- v038 article punctuation/resource structure ---------- */
.article-resource-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: clamp(1.125rem, 2.2vw, 1.875rem) 0;
}
.article-resource-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .375rem;
  padding: .9375rem 1rem;
  border: .0625rem solid var(--line);
  border-radius: .875rem;
  background: rgba(255,255,255,.045);
  color: var(--ink-dim);
  text-decoration: none !important;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
  overflow: hidden;
}
.article-resource-card:hover,
.article-resource-card:focus-visible {
  border-color: var(--line-strong);
  background: rgba(255,255,255,.075);
  transform: translateY(-.0625rem);
}
.article-resource-label {
  color: var(--ink);
  font-weight: 800;
  line-height: 1.35;
}
.article-resource-note {
  color: var(--muted);
  line-height: 1.35;
}
.article-resource-url {
  color: var(--accent);
  font-size: .84em;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.article-resource-card--url-only {
  justify-content: center;
  min-height: 3.625rem;
}
.article-resource-list-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .625rem 1.125rem;
  padding-left: 0 !important;
  list-style-position: inside;
}
.article-resource-list-grid > li {
  min-width: 0;
  break-inside: avoid;
  margin: 0 !important;
  padding: .625rem .75rem;
  border: .0625rem solid var(--line);
  border-radius: .75rem;
  background: rgba(255,255,255,.035);
  overflow-wrap: anywhere;
}
[dir="rtl"] .article-resource-card,
[dir="rtl"] .article-resource-list-grid > li { text-align: right; }
@media (max-width: 47.5rem) {
  .article-resource-grid,
  .article-resource-list-grid { grid-template-columns: 1fr; }
  .article-resource-card { padding: .875rem; }
}

/* ---------- v042 clinically coherent Knowledge taxonomy ---------- */
.kcat--grouped .kcat-head { margin-bottom: 1rem; }
.kcat-featured {
  margin: 0 0 1rem;
}
.kcat-featured-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: .875rem 1rem;
  border: .0625rem solid color-mix(in srgb, var(--accent) 42%, var(--line));
  border-radius: .875rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--panel)), var(--panel));
  color: var(--ink-dim);
  transition: border-color .18s ease, background .18s ease, transform .18s ease, color .18s ease;
}
.kcat-featured-link:hover,
.kcat-featured-link:focus-visible {
  color: var(--ink);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, var(--panel-2));
  transform: translateY(-.0625rem);
}
.kcat-featured-link:focus-visible {
  outline: .125rem solid color-mix(in srgb, var(--accent) 62%, transparent);
  outline-offset: .1875rem;
}
.kcat-featured-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: .25rem .5rem;
  border-radius: 62.4375rem;
  background: color-mix(in srgb, var(--accent) 15%, transparent);
  color: var(--accent);
  font: 700 .6875rem/1 var(--font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.kcat-featured-link strong {
  min-width: 0;
  font-size: .9375rem;
  line-height: 1.35;
}
.kcat-featured-arrow { color: var(--accent); }

.kcat-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
.kcat-subsection {
  min-width: 0;
  padding: 1rem 1.125rem .875rem;
  border: .0625rem solid var(--line);
  border-radius: 1rem;
  background: linear-gradient(145deg, rgba(255,255,255,.052), rgba(255,255,255,.025));
  box-shadow: 0 .75rem 2rem rgba(0,0,0,.12);
}
.kcat-subsection h3 {
  margin: 0 0 .625rem;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: .75rem;
  line-height: 1.35;
  font-weight: 750;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.kcat-subsection-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.kcat-subsection-links li {
  margin: 0;
  padding: 0;
}
.kcat-subsection-links li + li {
  border-top: .0625rem solid color-mix(in srgb, var(--line) 82%, transparent);
}
.kcat-subsection-links a,
.kcat-subsection-links .kcat-link-disabled {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  min-width: 0;
  padding: .6875rem .0625rem;
  color: var(--ink-dim);
  font-size: .875rem;
  line-height: 1.4;
  background: transparent;
  border: 0;
  border-radius: .375rem;
}
.kcat-subsection-links a span { color: var(--accent); opacity: .75; }
.kcat-subsection-links a:hover,
.kcat-subsection-links a:focus-visible {
  color: var(--ink);
}
.kcat-subsection-links a:focus-visible {
  outline: .125rem solid color-mix(in srgb, var(--accent) 62%, transparent);
  outline-offset: .125rem;
}
.kcat-subsection-links .kcat-link-disabled em {
  grid-column: 1 / -1;
  margin-top: -.25rem;
}

/* v050: current NHS/service monitoring is intentionally distinct from the
   evergreen assessment guides without becoming a second featured category. */
.kcat-subsection-links .kcat-subsection-item--emphasis {
  margin: .375rem 0;
  border-top: 0;
}
.kcat-subsection-links .kcat-subsection-item--emphasis + li {
  border-top: 0;
}
.kcat-subsection-links .kcat-monitor-link {
  grid-template-columns: minmax(0, 1fr) auto;
  padding: .8125rem .875rem;
  border: .0625rem solid color-mix(in srgb, var(--accent) 38%, var(--line));
  border-radius: .75rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--panel)), color-mix(in srgb, var(--panel-2) 92%, transparent));
  box-shadow: 0 .5rem 1.4rem rgba(0,0,0,.09);
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.kcat-subsection-links .kcat-monitor-link:hover,
.kcat-subsection-links .kcat-monitor-link:focus-visible {
  border-color: var(--accent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, var(--panel)), var(--panel-2));
  transform: translateY(-.0625rem);
  box-shadow: 0 .75rem 1.8rem rgba(0,0,0,.13);
}
.kcat-subsection-links .kcat-monitor-link > .kcat-link-copy {
  color: inherit;
  opacity: 1;
}
.kcat-link-copy {
  display: grid;
  min-width: 0;
  gap: .25rem;
}
.kcat-link-copy strong {
  color: inherit;
  font: inherit;
  font-weight: 720;
}
.kcat-link-copy small {
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.42;
}
.kcat-link-badge {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 1.25rem;
  padding: .1875rem .4375rem;
  border-radius: 62.4375rem;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  color: var(--accent);
  font: 720 .625rem/1 var(--font-mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.kcat-link-arrow { color: var(--accent); opacity: .85; }
[data-theme="light"] .kcat-subsection-links .kcat-monitor-link {
  box-shadow: 0 .5rem 1.4rem rgba(16,24,40,.055);
}
@media (max-width: 62.5rem) {
  .kcat-groups { grid-template-columns: 1fr; }
}
@media (max-width: 35rem) {
  .kcat-subsection { padding: .9375rem 1rem .75rem; }
  .kcat-featured-link { grid-template-columns: 1fr auto; }
  .kcat-featured-badge { grid-column: 1 / -1; justify-self: start; }
}

/* Cross-topic pathways are intentionally compact: the article keeps one
   primary catalogue home, while clinically adjacent guides stay discoverable. */
.article-related-links {
  display: grid;
  gap: .5rem;
}
.article-related-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .1875rem .625rem;
  min-width: 0;
  padding: .75rem .8125rem;
  border: .0625rem solid var(--line);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--panel-2) 70%, transparent);
  color: var(--ink-dim);
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.article-related-link:hover,
.article-related-link:focus-visible {
  color: var(--ink);
  border-color: color-mix(in srgb, var(--accent) 65%, var(--line));
  background: color-mix(in srgb, var(--accent) 7%, var(--panel-2));
  transform: translateY(-.0625rem);
}
.article-related-link:focus-visible {
  outline: .125rem solid color-mix(in srgb, var(--accent) 62%, transparent);
  outline-offset: .1875rem;
}
.article-related-section {
  grid-column: 1 / -1;
  color: var(--accent);
  font: 700 .625rem/1.2 var(--font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.article-related-link strong {
  min-width: 0;
  font-size: .8125rem;
  line-height: 1.35;
  font-weight: 650;
}
.article-related-arrow {
  align-self: center;
  color: var(--accent);
}

[data-theme="light"] .kcat-subsection {
  background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(246,249,252,.9));
}
[data-theme="light"] .kcat-subsection-links a,
[data-theme="light"] .kcat-featured-link,
[data-theme="light"] .article-related-link {
  color: #243357;
}
[data-theme="light"] .kcat-subsection-links a:hover,
[data-theme="light"] .kcat-subsection-links a:focus-visible,
[data-theme="light"] .kcat-featured-link:hover,
[data-theme="light"] .kcat-featured-link:focus-visible,
[data-theme="light"] .article-related-link:hover,
[data-theme="light"] .article-related-link:focus-visible {
  color: var(--link-hover);
}
[data-theme="light"] .kcat-subsection h3,
[data-theme="light"] .kcat-featured-badge,
[data-theme="light"] .article-related-section {
  color: #006479;
}

/* ---------- v047 assessment/reference rail behaviour ---------- */
/* Some structured reference pages have a compact navigation rail whose cards
   should travel with the document rather than pinning a long TOC to the
   viewport. The content record opts into this with toc_sticky=false. */
@media (min-width: 65.0625rem) {
  .article-layout--toc-static .article-aside {
    align-self: start;
  }
  .article-layout--toc-static .article-toc {
    position: static;
    top: auto;
    z-index: auto;
    align-self: auto;
    max-height: none;
    overflow: visible;
    overscroll-behavior: auto;
    scrollbar-gutter: auto;
  }
}

/* v054 — editor-created long-form tables and dividers */
.article-main table{width:100%;border-collapse:separate;border-spacing:0;margin:1.4rem 0 1.7rem;overflow:hidden;border:.0625rem solid rgba(139,156,255,.18);border-radius:.8rem;background:rgba(255,255,255,.018);font-size:.92em}.article-main th,.article-main td{padding:.7rem .8rem;border-right:.0625rem solid rgba(139,156,255,.13);border-bottom:.0625rem solid rgba(139,156,255,.13);vertical-align:top;text-align:left}.article-main th:last-child,.article-main td:last-child{border-right:0}.article-main tr:last-child td{border-bottom:0}.article-main th{background:rgba(139,156,255,.08);color:var(--ink);font-weight:750}.article-main .article-rule{margin:1.65rem 0}.article-main .article-rule hr,.article-main>hr{height:.0625rem;border:0;background:linear-gradient(90deg,transparent,rgba(139,156,255,.34),transparent)}
@media(max-width:45rem){.article-main table{display:block;overflow-x:auto;white-space:normal}.article-main th,.article-main td{min-width:9rem}}


/* ---------- v066 compact header language control ---------- */
/* Keep the clinical pathway and language selector on the same visual row/height. */
.site-header .nav-cta {
  box-sizing: border-box;
  height: 2.625rem;
  min-height: 2.625rem;
  padding-block: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Collapsed language selector is intentionally minimal: language code + chevron. */
.site-header .language-picker-button {
  box-sizing: border-box;
  display: inline-grid;
  grid-template-columns: auto .75rem;
  align-items: center;
  justify-content: center;
  gap: .3125rem;
  width: auto;
  min-width: 3.75rem;
  max-width: none;
  height: 2.625rem;
  min-height: 2.625rem;
  padding: .375rem .5rem;
  border-radius: .625rem;
}
.site-header .language-picker-button::before {
  left: .4375rem;
  right: .4375rem;
  top: .1875rem;
}
.site-header .language-picker-code {
  min-width: 1.875rem;
  padding: .3125rem .375rem;
  text-align: center;
}
.site-header .language-picker-chevron {
  font-size: .8125rem;
  line-height: 1;
}
.site-header .language-picker-globe,
.site-header .language-picker-label,
.site-header .language-picker-auto {
  display: none !important;
}

/* Remove explanatory second lines so the open language menu is compact too. */
.site-header .language-picker-option {
  padding: .5625rem .625rem .5rem;
}
.site-header .language-picker-option small,
.site-header .language-picker-note {
  display: none !important;
}

@media (max-width:72rem) {
  .site-header .nav-cta {
    height: 2.625rem;
    min-height: 2.625rem;
    padding-inline: 1rem !important;
  }
  .site-header .language-picker {
    width: auto;
  }
  .site-header .language-picker-button {
    width: auto;
    min-width: 3.75rem;
  }
}

/* ---------- v067 slimmer aligned header controls ---------- */
/* Clinical assessment and the compact language selector share a 36px control height. */
.site-header .nav-cta {
  height: 2.25rem;
  min-height: 2.25rem;
  padding: 0 .9375rem !important;
  border-radius: .5625rem;
  line-height: 1;
}
.site-header .language-picker-button {
  height: 2.25rem;
  min-height: 2.25rem;
  min-width: 3.5rem;
  padding: .25rem .4375rem;
  border-radius: .5625rem;
  gap: .25rem;
}
.site-header .language-picker-button::before {
  left: .375rem;
  right: .375rem;
  top: .15625rem;
}
.site-header .language-picker-code {
  min-width: 1.75rem;
  padding: .25rem .3125rem;
  border-radius: .3125rem;
  font-size: .59375rem;
}
.site-header .language-picker-chevron {
  font-size: .75rem;
}

@media (max-width:72rem) {
  .site-header .nav-cta {
    height: 2.25rem;
    min-height: 2.25rem;
    padding-inline: .9375rem !important;
  }
  .site-header .language-picker-button {
    height: 2.25rem;
    min-height: 2.25rem;
    min-width: 3.5rem;
  }
}


/* ---------- home featured video ---------- */
.home-featured-video {
  position: relative;
  padding-block: clamp(2rem, 4vw, 3.5rem) clamp(1rem, 2.5vw, 2rem);
}
.home-featured-video__panel {
  position: relative;
  max-width: 70rem;
  margin: 0 auto;
  padding: clamp(.35rem, .8vw, .65rem);
  border: .0625rem solid rgba(100,231,212,.22);
  border-radius: calc(var(--radius) + .55rem);
  background:
    radial-gradient(circle at 12% 0%, rgba(100,231,212,.10), transparent 32%),
    radial-gradient(circle at 88% 100%, rgba(139,156,255,.11), transparent 36%),
    rgba(12,18,39,.64);
  box-shadow: 0 1.35rem 4rem rgba(0,0,0,.24), inset 0 0 0 .0625rem rgba(255,255,255,.025);
}
.home-featured-video__frame {
  border-radius: calc(var(--radius) - .1rem);
  border-color: rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 50% 45%, rgba(100,231,212,.12), transparent 28%),
    linear-gradient(145deg, rgba(12,20,43,.98), rgba(8,13,29,.98));
  box-shadow: 0 .8rem 2.6rem rgba(0,0,0,.24);
}
.home-featured-video__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.home-featured-video__placeholder { background: linear-gradient(135deg, rgba(11,18,40,.94), rgba(8,13,29,.96)); }
.home-featured-video__play {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  padding-left: .15rem;
  border: .0625rem solid rgba(100,231,212,.42);
  border-radius: 50%;
  color: var(--accent);
  background: rgba(100,231,212,.08);
  box-shadow: 0 0 2rem rgba(100,231,212,.12);
  font-size: 1rem;
}
.home-featured-video + .apps-block { padding-top: clamp(2.25rem, 5vw, 4.25rem); }
@media (max-width: 45rem) {
  .home-featured-video { padding-block: 1.5rem .75rem; }
  .home-featured-video__panel { padding: .25rem; border-radius: calc(var(--radius) + .2rem); }
  .home-featured-video__frame { border-radius: var(--radius); }
}

/* Adaptive clinical/document tables — v083a no-horizontal-scroll policy.
   Tables always fit the available content width. Dense tables progressively
   reduce typography/padding; on narrow screens complex tables become stacked
   comparison cards. Ordinary words are never split mid-word. */
.nh-table-shell{position:relative;width:100%;max-width:100%;margin:1.4rem 0 1.7rem;overflow:visible!important;border-radius:.8rem}
.nh-table-shell>table{margin:0!important}
.article-main .nh-table-shell table,.section-copy .nh-table-shell table,[data-nh-editor-body] .nh-table-shell table{display:table!important;width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed;font-variant-numeric:tabular-nums;font-size:var(--nh-table-font-size,.9rem)}
.article-main .nh-table-shell th,.article-main .nh-table-shell td,.section-copy .nh-table-shell th,.section-copy .nh-table-shell td,[data-nh-editor-body] .nh-table-shell th,[data-nh-editor-body] .nh-table-shell td{min-width:0!important;max-width:none;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;white-space:normal!important;line-height:1.38;vertical-align:top}
.article-main .nh-table-shell a,.article-main .nh-table-shell code,.section-copy .nh-table-shell a,.section-copy .nh-table-shell code,[data-nh-editor-body] .nh-table-shell a,[data-nh-editor-body] .nh-table-shell code{overflow-wrap:anywhere!important;word-break:break-word!important}
.article-main table.nh-table--normal,.section-copy table.nh-table--normal,[data-nh-editor-body] table.nh-table--normal{--nh-table-font-size:clamp(.84rem,.8rem + .12vw,.94rem)}
.article-main table.nh-table--compact,.section-copy table.nh-table--compact,[data-nh-editor-body] table.nh-table--compact{--nh-table-font-size:clamp(.76rem,.72rem + .12vw,.86rem)}
.article-main table.nh-table--dense,.section-copy table.nh-table--dense,[data-nh-editor-body] table.nh-table--dense{--nh-table-font-size:clamp(.68rem,.64rem + .1vw,.79rem)}
.article-main table.nh-table--very-dense,.section-copy table.nh-table--very-dense,[data-nh-editor-body] table.nh-table--very-dense{--nh-table-font-size:clamp(.61rem,.58rem + .08vw,.72rem)}
.article-main table.nh-table--fit-tight,.section-copy table.nh-table--fit-tight,[data-nh-editor-body] table.nh-table--fit-tight{--nh-table-font-size:.64rem;letter-spacing:-.006em}
.article-main table.nh-table--fit-ultra,.section-copy table.nh-table--fit-ultra,[data-nh-editor-body] table.nh-table--fit-ultra{--nh-table-font-size:.56rem;letter-spacing:-.012em}
.article-main table.nh-table--normal th,.article-main table.nh-table--normal td,.section-copy table.nh-table--normal th,.section-copy table.nh-table--normal td{padding:.65rem .7rem}
.article-main table.nh-table--compact th,.article-main table.nh-table--compact td,.section-copy table.nh-table--compact th,.section-copy table.nh-table--compact td,[data-nh-editor-body] table.nh-table--compact th,[data-nh-editor-body] table.nh-table--compact td{padding:.52rem .56rem}
.article-main table.nh-table--dense th,.article-main table.nh-table--dense td,.article-main table.nh-table--very-dense th,.article-main table.nh-table--very-dense td,.section-copy table.nh-table--dense th,.section-copy table.nh-table--dense td,.section-copy table.nh-table--very-dense th,.section-copy table.nh-table--very-dense td,[data-nh-editor-body] table.nh-table--dense th,[data-nh-editor-body] table.nh-table--dense td,[data-nh-editor-body] table.nh-table--very-dense th,[data-nh-editor-body] table.nh-table--very-dense td{padding:.42rem .44rem}
.article-main table.nh-table--descriptor-first th:first-child,.article-main table.nh-table--descriptor-first td:first-child,.section-copy table.nh-table--descriptor-first th:first-child,.section-copy table.nh-table--descriptor-first td:first-child,[data-nh-editor-body] table.nh-table--descriptor-first th:first-child,[data-nh-editor-body] table.nh-table--descriptor-first td:first-child{width:var(--nh-table-first-column,auto)}

/* Never introduce horizontal scrolling for adaptive tables. */
.nh-table-shell.is-scrollable{overflow:visible!important;background:none!important}
.nh-table-shell.is-scrollable:focus{outline:0}

/* On narrow screens, text-heavy 4+ column comparisons become vertical cards.
   This preserves readable text without horizontal scrolling or mid-word breaks. */
@media(max-width:45rem){
  .nh-table-shell{margin:1.1rem 0 1.4rem;border-radius:.7rem}
  .article-main .nh-table-shell table:not(.nh-table--stack-mobile),.section-copy .nh-table-shell table:not(.nh-table--stack-mobile),[data-nh-editor-body] .nh-table-shell table:not(.nh-table--stack-mobile){--nh-table-font-size:clamp(.68rem,2.5vw,.78rem)}
  .nh-table-shell table.nh-table--stack-mobile{display:block!important;font-size:.79rem!important;border:0;background:transparent}
  .nh-table-shell table.nh-table--stack-mobile thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .nh-table-shell table.nh-table--stack-mobile tbody,.nh-table-shell table.nh-table--stack-mobile tr{display:block!important;width:100%!important}
  .nh-table-shell table.nh-table--stack-mobile tr{margin:0 0 .75rem;border:1px solid var(--line);border-radius:.65rem;overflow:hidden;background:rgba(255,255,255,.018)}
  .nh-table-shell table.nh-table--stack-mobile tbody tr:first-child[data-nh-header-row="1"]{display:none!important}
  .nh-table-shell table.nh-table--stack-mobile th,.nh-table-shell table.nh-table--stack-mobile td{display:grid!important;grid-template-columns:minmax(6.6rem,34%) minmax(0,1fr);gap:.55rem;width:100%!important;padding:.48rem .55rem!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important;font-size:inherit!important;text-align:left!important}
  .nh-table-shell table.nh-table--stack-mobile th:last-child,.nh-table-shell table.nh-table--stack-mobile td:last-child{border-bottom:0!important}
  .nh-table-shell table.nh-table--stack-mobile td::before,.nh-table-shell table.nh-table--stack-mobile th::before{content:attr(data-nh-label);display:block;font-weight:800;color:var(--accent);word-break:normal;overflow-wrap:normal;hyphens:none}
  .nh-table-shell table.nh-table--stack-mobile [data-nh-label=""]::before{display:none}
}



/* ===== Café premium spatial carousel v087 ===== */
.cafe-carousel-section{
  position:relative;
  overflow:hidden;
  padding-top:clamp(3rem,6vw,5.5rem);
  padding-bottom:clamp(4rem,7vw,6.5rem);
  background:
    radial-gradient(70rem 30rem at 50% 34%,rgba(67,223,244,.09),transparent 68%),
    linear-gradient(180deg,color-mix(in srgb,var(--bg) 94%,#081328 6%),var(--bg));
}
.cafe-carousel-shell{max-width:96rem}
.cafe-carousel-heading{max-width:48rem;margin:0 auto 1.35rem;text-align:center}
.cafe-carousel-heading h2{font-size:clamp(2rem,3.4vw,3.55rem);margin:.2rem 0 .75rem;letter-spacing:-.035em}
.cafe-carousel-intro{max-width:42rem;margin-inline:auto}
.cafe-carousel{
  --cafe-card-w:clamp(10.4rem,15vw,15.2rem);
  --cafe-card-h:clamp(13.9rem,20vw,20.2rem);
  position:relative;
  min-height:clamp(34rem,50vw,47rem);
  margin-top:.5rem;
  isolation:isolate;
  user-select:none;
}
.cafe-carousel::before{
  content:"";
  position:absolute;
  left:4%;right:4%;top:6.5rem;bottom:4rem;
  border-radius:3rem;
  border:1px solid color-mix(in srgb,var(--border) 70%,rgba(106,233,255,.25) 30%);
  background:
    linear-gradient(180deg,rgba(10,20,39,.36),rgba(6,11,24,.12)),
    radial-gradient(36rem 18rem at 50% 43%,rgba(53,222,242,.11),transparent 70%);
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 2.2rem 5rem rgba(0,0,0,.22);
  pointer-events:none;
}
[data-theme="light"] .cafe-carousel::before{
  background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(239,247,251,.64)),radial-gradient(36rem 18rem at 50% 43%,rgba(20,164,184,.10),transparent 70%);
}
.cafe-carousel__ambient{
  position:absolute;
  z-index:-1;
  inset:10% 15% 14%;
  background:radial-gradient(closest-side,rgba(61,226,245,.18),transparent 72%);
  filter:blur(2rem);
  opacity:.72;
  pointer-events:none;
}
.cafe-carousel__controls{
  position:absolute;z-index:30;right:6.5%;top:2.1rem;
  display:flex;align-items:center;gap:.45rem;
}
.cafe-carousel__nav,.cafe-carousel__sound{
  width:2.35rem;height:2.35rem;padding:0;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--border) 76%,#5de8ff 24%);
  background:color-mix(in srgb,var(--surface) 88%,transparent 12%);
  color:var(--text);
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 .5rem 1.5rem rgba(0,0,0,.16);
  backdrop-filter:blur(12px);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.cafe-carousel__nav:hover,.cafe-carousel__sound:hover{
  transform:translateY(-1px);
  border-color:rgba(91,231,248,.75);
  box-shadow:0 0 1.5rem rgba(70,219,239,.18);
}
.cafe-carousel__nav svg,.cafe-carousel__sound svg{width:1.08rem;height:1.08rem;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.cafe-carousel__sound .is-sound-off{display:none}
.cafe-carousel__sound[aria-pressed="false"] .is-sound-on{display:none}
.cafe-carousel__sound[aria-pressed="false"] .is-sound-off{display:block}
.cafe-carousel__stage{
  position:relative;
  height:clamp(24rem,37vw,34rem);
  perspective:110rem;
  perspective-origin:50% 45%;
  overflow:clip;
}
.cafe-carousel__items{position:absolute;inset:0}
.cafe-carousel__rail{
  position:absolute;z-index:0;
  left:3%;right:3%;bottom:3rem;height:5.75rem;
  border:1px solid rgba(76,215,238,.22);
  border-radius:50%;
  transform:rotateX(72deg);
  box-shadow:0 0 2.5rem rgba(32,193,222,.18),inset 0 0 2rem rgba(62,226,247,.09);
}
.cafe-carousel__rail::before{
  content:"";position:absolute;inset:45% 4%;
  border-top:1px solid rgba(107,237,255,.48);
  filter:drop-shadow(0 0 .45rem rgba(81,222,244,.72));
}
.cafe-carousel__rail span{
  position:absolute;width:.5rem;height:.5rem;left:50%;top:43%;border-radius:50%;
  background:#80efff;box-shadow:0 0 1rem #4ddff5;
}
.cafe-carousel__item{
  --tx:0px;--ty:0px;--scale:.82;--rot:0deg;--op:0;--z:1;
  position:absolute;
  z-index:var(--z);
  left:50%;top:2.2rem;
  width:var(--cafe-card-w);height:var(--cafe-card-h);
  transform:translateX(calc(-50% + var(--tx))) translateY(var(--ty)) scale(var(--scale)) rotateY(var(--rot));
  opacity:var(--op);
  transform-origin:50% 92%;
  border:1px solid rgba(134,199,221,.20);
  border-radius:1.5rem;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(18,31,55,.86),rgba(8,14,28,.94));
  color:#f4fbff;text-decoration:none;
  box-shadow:0 1rem 2.3rem rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.05);
  transition:transform .58s cubic-bezier(.2,.78,.18,1),opacity .38s ease,border-color .38s ease,box-shadow .38s ease,filter .38s ease;
  will-change:transform,opacity;
}
[data-theme="light"] .cafe-carousel__item{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(228,241,247,.95));color:#10202f}
.cafe-carousel__item[aria-hidden="true"]{pointer-events:none}
.cafe-carousel__item.is-active{
  border-color:rgba(116,235,255,.72);
  box-shadow:0 1.8rem 4rem rgba(0,0,0,.34),0 0 0 1px rgba(109,231,250,.18),0 0 2.8rem rgba(63,217,240,.24),inset 0 1px rgba(255,255,255,.11);
  filter:saturate(1.1);
}
.cafe-carousel__item.is-active::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 12%,rgba(255,255,255,.12) 34%,transparent 50%);
  transform:translateX(-125%);
  animation:cafeSheen 5.8s ease-in-out infinite;
}
@keyframes cafeSheen{0%,58%{transform:translateX(-125%)}78%,100%{transform:translateX(125%)}}
.cafe-carousel__card-glow{
  position:absolute;inset:auto 10% 1.3rem;height:4rem;border-radius:50%;
  background:rgba(65,224,247,.15);filter:blur(1rem);pointer-events:none;
}
.cafe-carousel__art{display:block;position:relative;height:72%;overflow:hidden;background:radial-gradient(circle at 50% 44%,rgba(91,230,249,.13),transparent 68%)}
.cafe-carousel__art img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .45s ease,filter .45s ease}
.cafe-carousel__item:hover .cafe-carousel__art img,.cafe-carousel__item.is-active .cafe-carousel__art img{transform:scale(1.025);filter:brightness(1.08)}
.cafe-carousel__fallback-glyph{display:grid;height:100%;place-items:center;font-size:4rem}
.cafe-carousel__label{
  position:absolute;left:0;right:0;bottom:0;min-height:30%;
  display:flex;flex-direction:column;justify-content:center;gap:.28rem;
  padding:.9rem 1rem 1rem;
  background:linear-gradient(180deg,rgba(8,15,30,0),rgba(8,15,30,.94) 24%,rgba(8,15,30,.98));
}
[data-theme="light"] .cafe-carousel__label{background:linear-gradient(180deg,rgba(238,248,252,0),rgba(238,248,252,.95) 28%,rgba(238,248,252,.99))}
.cafe-carousel__label strong{font-size:.95rem;line-height:1.18;letter-spacing:-.015em}
.cafe-carousel__label small{font-size:.69rem;line-height:1.32;color:rgba(227,240,248,.62)}
[data-theme="light"] .cafe-carousel__label small{color:rgba(16,32,47,.62)}
.cafe-carousel__open{
  position:absolute;right:.78rem;top:.72rem;width:1.7rem;height:1.7rem;border-radius:50%;
  display:grid;place-items:center;font-size:.85rem;
  border:1px solid rgba(121,228,244,.22);background:rgba(4,12,25,.48);backdrop-filter:blur(9px);
  opacity:.6;transition:opacity .25s,transform .25s;
}
.cafe-carousel__item:hover .cafe-carousel__open,.cafe-carousel__item.is-active .cafe-carousel__open{opacity:1;transform:translate(.06rem,-.06rem)}
.cafe-carousel__detail{
  position:relative;z-index:25;
  width:min(43rem,82%);
  min-height:7.7rem;
  margin:-1rem auto 0;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.15rem;
  padding:1rem 1.2rem;
  border-radius:1.35rem;
  border:1px solid color-mix(in srgb,var(--border) 76%,#5de9ff 24%);
  background:color-mix(in srgb,var(--surface) 90%,transparent 10%);
  box-shadow:inset 0 1px rgba(255,255,255,.06),0 1.2rem 3.4rem rgba(0,0,0,.20);
  backdrop-filter:blur(18px);
}
.cafe-carousel__count{align-self:stretch;display:flex;align-items:center;gap:.34rem;padding-right:1rem;border-right:1px solid var(--border);font:700 .68rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--muted)}
.cafe-carousel__count [data-cafe-count-current]{color:var(--accent)}
.cafe-carousel__detail-copy{min-width:0}
.cafe-carousel__detail-kicker{display:block;margin-bottom:.24rem;font-size:.63rem;text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}
.cafe-carousel__detail h3{margin:0 0 .26rem;font-size:clamp(1.05rem,1.5vw,1.32rem)}
.cafe-carousel__detail p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.cafe-carousel__enter{
  display:inline-flex;align-items:center;gap:.45rem;
  min-height:2.55rem;padding:0 .95rem;border-radius:.8rem;
  border:1px solid rgba(91,231,248,.30);
  color:var(--text);text-decoration:none;
  font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;
  background:linear-gradient(135deg,rgba(83,226,246,.12),rgba(128,126,255,.07));
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.cafe-carousel__enter:hover{transform:translateY(-1px);border-color:rgba(91,231,248,.7);box-shadow:0 0 1.4rem rgba(61,220,242,.13)}
.cafe-carousel__enter svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cafe-carousel__dots{position:relative;z-index:25;display:flex;justify-content:center;gap:.42rem;margin-top:1rem}
.cafe-carousel__dot{width:.38rem;height:.38rem;border-radius:999px;border:0;padding:0;background:color-mix(in srgb,var(--muted) 42%,transparent);transition:width .25s,background .25s,box-shadow .25s}
.cafe-carousel__dot.is-active{width:1.45rem;background:var(--accent);box-shadow:0 0 .8rem color-mix(in srgb,var(--accent) 70%,transparent)}
.cafe-carousel__hint{text-align:center;margin:.72rem 0 0;color:var(--muted);font-size:.67rem;letter-spacing:.035em}
.nh-core-editor-ready .cafe-carousel__item{user-select:text}
.nh-core-editor-ready .cafe-carousel__item [data-nh-core-item-field]{position:relative;z-index:3}
.nh-core-editor-ready .cafe-carousel__item .nh-core-item-handle{z-index:60}
@media (max-width:76rem){
  .cafe-carousel{--cafe-card-w:clamp(9.4rem,16vw,12.8rem);--cafe-card-h:clamp(12.6rem,22.5vw,17rem)}
  .cafe-carousel__stage{height:29rem}
}
@media (max-width:52rem){
  .cafe-carousel{min-height:38rem;--cafe-card-w:10.1rem;--cafe-card-h:13.5rem}
  .cafe-carousel::before{left:0;right:0;border-radius:2rem}
  .cafe-carousel__controls{right:1.2rem;top:1.3rem}
  .cafe-carousel__stage{height:25rem}
  .cafe-carousel__detail{width:94%;grid-template-columns:auto minmax(0,1fr);gap:.85rem}
  .cafe-carousel__enter{grid-column:2;justify-self:start}
  .cafe-carousel__count{grid-row:1/3}
}
@media (max-width:36rem){
  .cafe-carousel-section{padding-inline:0}
  .cafe-carousel-heading{padding-inline:1rem}
  .cafe-carousel{--cafe-card-w:9.2rem;--cafe-card-h:12.4rem;min-height:35.5rem}
  .cafe-carousel::before{inset:5rem .25rem 2.5rem}
  .cafe-carousel__stage{height:22rem}
  .cafe-carousel__controls{top:.95rem;right:.7rem}
  .cafe-carousel__detail{margin-top:-.45rem;padding:.8rem .9rem;border-radius:1rem;min-height:7rem}
  .cafe-carousel__count{padding-right:.7rem}
  .cafe-carousel__hint{padding-inline:1rem}
  .cafe-carousel__label small{display:none}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel__item,.cafe-carousel__nav,.cafe-carousel__sound,.cafe-carousel__enter{transition-duration:.01ms!important}
  .cafe-carousel__item.is-active::after{animation:none}
}

/* Café carousel motion polish v087a */
.cafe-carousel.is-ready .cafe-carousel__ambient{
  animation:cafeAmbientDrift 9s ease-in-out infinite alternate;
}
.cafe-carousel.is-ready .cafe-carousel__rail span{
  animation:cafeRailPulse 2.7s ease-in-out infinite;
}
.cafe-carousel.is-ready .cafe-carousel__item.is-active .cafe-carousel__card-glow{
  animation:cafeActiveGlow 2.8s ease-in-out infinite;
}
.cafe-carousel.is-moving .cafe-carousel__detail-copy{
  animation:cafeDetailRefresh .52s cubic-bezier(.2,.78,.18,1);
}
.cafe-carousel.is-moving .cafe-carousel__rail{
  box-shadow:0 0 3.3rem rgba(32,193,222,.28),inset 0 0 2.6rem rgba(62,226,247,.13);
}
@keyframes cafeAmbientDrift{
  from{transform:translate3d(-1.1%,0,0) scale(1);opacity:.7}
  to{transform:translate3d(1.1%,-1.2%,0) scale(1.035);opacity:1}
}
@keyframes cafeRailPulse{
  0%,100%{opacity:.48;transform:scale(.8);box-shadow:0 0 .65rem #4ddff5}
  50%{opacity:1;transform:scale(1.22);box-shadow:0 0 1.4rem #73efff}
}
@keyframes cafeActiveGlow{
  0%,100%{opacity:.58;transform:scaleX(.9)}
  50%{opacity:1;transform:scaleX(1.12)}
}
@keyframes cafeDetailRefresh{
  0%{opacity:.35;transform:translateY(.4rem)}
  100%{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel.is-ready .cafe-carousel__ambient,
  .cafe-carousel.is-ready .cafe-carousel__rail span,
  .cafe-carousel.is-ready .cafe-carousel__item.is-active .cafe-carousel__card-glow,
  .cafe-carousel.is-moving .cafe-carousel__detail-copy{animation:none!important}
}

/* Café magnetic curved-orbit carousel v088 */
.cafe-carousel{
  --cafe-orbit-cyan:#66ebff;
  --cafe-orbit-blue:#348dff;
  --cafe-orbit-violet:#9b78ff;
}
.cafe-carousel__stage{
  perspective:150rem;
  perspective-origin:50% 34%;
}
.cafe-carousel__orbit,
.cafe-carousel__orbit-nodes{
  position:absolute;
  z-index:1;
  left:1.5%;
  width:97%;
  bottom:1.55rem;
  height:14.5rem;
  pointer-events:none;
  overflow:visible;
}
.cafe-carousel__orbit{filter:drop-shadow(0 0 .7rem rgba(83,226,249,.18))}
.cafe-carousel__orbit-shadow{
  fill:none;
  stroke:rgba(12,91,116,.22);
  stroke-width:22;
  stroke-linecap:round;
  filter:blur(10px);
}
.cafe-carousel__orbit-line{
  fill:none;
  stroke:url(#cafe-orbit-gradient);
  stroke-width:1.8;
  vector-effect:non-scaling-stroke;
}
.cafe-carousel__orbit-energy{
  fill:none;
  stroke:rgba(123,240,255,.9);
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-dasharray:3 28;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 .45rem rgba(87,231,252,.75));
  animation:cafeOrbitEnergy 5.2s linear infinite;
}
@keyframes cafeOrbitEnergy{to{stroke-dashoffset:-124}}
.cafe-carousel__orbit-nodes i{
  position:absolute;
  width:.34rem;height:.34rem;
  margin:-.17rem 0 0 -.17rem;
  border-radius:50%;
  background:rgba(129,242,255,.8);
  box-shadow:0 0 .45rem rgba(81,226,248,.95),0 0 1.1rem rgba(54,184,255,.34);
  opacity:.55;
}
.cafe-carousel__orbit-nodes i:nth-child(1){left:3%;top:49%}
.cafe-carousel__orbit-nodes i:nth-child(2){left:15%;top:66%}
.cafe-carousel__orbit-nodes i:nth-child(3){left:27%;top:77%}
.cafe-carousel__orbit-nodes i:nth-child(4){left:39%;top:84%}
.cafe-carousel__orbit-nodes i:nth-child(5){left:50%;top:87%;width:.5rem;height:.5rem;margin:-.25rem 0 0 -.25rem;opacity:1}
.cafe-carousel__orbit-nodes i:nth-child(6){left:61%;top:84%}
.cafe-carousel__orbit-nodes i:nth-child(7){left:73%;top:77%}
.cafe-carousel__orbit-nodes i:nth-child(8){left:85%;top:66%}
.cafe-carousel__orbit-nodes i:nth-child(9){left:97%;top:49%}
.cafe-carousel__orbit-nodes i:nth-child(5){animation:cafeCenterNode 2.4s ease-in-out infinite}
@keyframes cafeCenterNode{50%{transform:scale(1.65);box-shadow:0 0 .7rem #8ef6ff,0 0 2.1rem rgba(54,211,255,.62)}}
.cafe-carousel__pedestal{
  position:absolute;
  z-index:2;
  left:50%;bottom:1.15rem;
  width:clamp(10rem,18vw,16rem);height:4.8rem;
  transform:translateX(-50%) perspective(22rem) rotateX(69deg);
  border-radius:50%;
  border:1px solid rgba(117,238,255,.32);
  background:radial-gradient(ellipse at center,rgba(75,222,247,.19),rgba(44,97,161,.05) 46%,transparent 68%);
  box-shadow:0 0 2rem rgba(38,204,234,.18),inset 0 0 1.8rem rgba(95,239,255,.12);
  pointer-events:none;
}
.cafe-carousel__pedestal::before,.cafe-carousel__pedestal::after{
  content:"";position:absolute;border-radius:50%;inset:19% 9%;border:1px solid rgba(125,236,255,.22)
}
.cafe-carousel__pedestal::after{inset:34% 22%;border-color:rgba(152,247,255,.38);box-shadow:0 0 1.1rem rgba(90,231,251,.26)}
.cafe-carousel__pedestal span{
  position:absolute;left:50%;top:50%;width:.6rem;height:.6rem;border-radius:50%;transform:translate(-50%,-50%);
  background:#9df7ff;box-shadow:0 0 1.3rem #66eaff,0 0 3rem rgba(67,212,255,.5)
}
.cafe-carousel__items{z-index:5}
.cafe-carousel__item{
  --tilt-x:0deg;--tilt-y:0deg;--tz:0px;--blur:0px;--lum:1;--sat:1;
  transform:
    translateX(calc(-50% + var(--tx)))
    translateY(var(--ty))
    translateZ(var(--tz))
    scale(var(--scale))
    rotateX(var(--tilt-x))
    rotateY(calc(var(--rot) + var(--tilt-y)));
  border-radius:1.95rem;
  border-color:rgba(118,219,255,.08);
  background:transparent;
  box-shadow:
    0 1.4rem 3rem rgba(0,0,0,.24),
    0 .5rem 1.5rem rgba(0,0,0,.12);
  transition:
    transform .72s cubic-bezier(.16,.84,.16,1),
    opacity .48s ease,
    border-color .38s ease,
    box-shadow .45s ease,
    filter .42s ease;
  cursor:default;
  filter:saturate(var(--sat)) brightness(var(--lum)) blur(var(--blur));
  overflow:visible;
}
.cafe-carousel__item:not(.is-active):hover{
  box-shadow:0 1.6rem 3.7rem rgba(0,0,0,.30),0 0 2.2rem rgba(49,210,239,.10);
}
.cafe-carousel__item.is-active{
  cursor:pointer;
  border-color:rgba(150,245,255,.16);
  box-shadow:
    0 2.5rem 5.8rem rgba(0,0,0,.44),
    0 0 0 1px rgba(116,233,252,.12),
    0 0 4.2rem rgba(61,218,242,.34),
    0 0 8.4rem rgba(80,127,255,.13);
}
.cafe-carousel__item.is-active::before{
  content:"";position:absolute;z-index:6;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(130deg,rgba(255,255,255,.13),transparent 24%,transparent 72%,rgba(94,227,255,.055));
  mix-blend-mode:screen;
}
.cafe-carousel__item:not(.is-active) .cafe-carousel__label small{
  opacity:0;max-height:0;overflow:hidden;margin:0;
}
.cafe-carousel__label small{transition:opacity .32s ease,max-height .32s ease}
.cafe-carousel__item.is-active .cafe-carousel__label small{opacity:1;max-height:4rem}
.cafe-carousel__art{display:block;position:absolute;inset:0;height:100%;overflow:visible;background:none}
.cafe-carousel__item.is-active .cafe-carousel__art img{transform:translateY(-.18rem) scale(1.018);filter:brightness(1.06) contrast(1.02)}
.cafe-carousel__card-glow{inset:auto 12% .6rem 12%;height:6.8rem;border-radius:999px;background:linear-gradient(90deg,rgba(77,224,247,0),rgba(77,224,247,.34),rgba(114,107,255,.18),rgba(77,224,247,0));filter:blur(1.25rem);opacity:.82}
.cafe-carousel__art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center;border-radius:1.75rem;filter:drop-shadow(0 .9rem 1.8rem rgba(0,0,0,.26));transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .42s ease}
body:not(.nh-core-editor-ready) .cafe-carousel__label,
body:not(.nh-core-editor-ready) .cafe-carousel__open{
  position:absolute!important;
  width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
.cafe-carousel__item::after{
  content:"";position:absolute;inset:1.2rem .95rem .85rem;border-radius:1.55rem;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 18%,transparent 78%,rgba(88,228,251,.08));
  opacity:calc(.22 + (var(--scale) * .12));mix-blend-mode:screen;
}
.cafe-carousel__item:not(.is-active)::after{opacity:.16}
.cafe-carousel__item[aria-disabled="true"]{cursor:default}
.cafe-carousel__item[aria-disabled="true"]:active{transform:translateX(calc(-50% + var(--tx))) translateY(var(--ty)) translateZ(var(--tz)) scale(var(--scale)) rotateX(var(--tilt-x)) rotateY(calc(var(--rot) + var(--tilt-y)))}
.cafe-carousel__item[aria-disabled="true"] .cafe-carousel__art img{pointer-events:none}
.cafe-carousel__item.is-active .cafe-carousel__art img{filter:drop-shadow(0 1.15rem 2.3rem rgba(0,0,0,.34))}
.cafe-carousel__orbit-line{stroke-width:2.2;filter:drop-shadow(0 0 .35rem rgba(111,240,255,.45))}
.cafe-carousel__orbit-energy{stroke-width:2.9;stroke-dasharray:4 24;filter:drop-shadow(0 0 .65rem rgba(87,231,252,.9))}
.cafe-carousel__pedestal{width:clamp(11rem,20vw,17rem);height:5.2rem;box-shadow:0 0 2.6rem rgba(38,204,234,.22),inset 0 0 2rem rgba(95,239,255,.16)}
.cafe-carousel__detail{box-shadow:inset 0 1px rgba(255,255,255,.08),0 1.75rem 4.8rem rgba(0,0,0,.28),0 0 3rem rgba(62,217,242,.09)}
.cafe-carousel__hint{max-width:52rem;margin-inline:auto}
.cafe-carousel__controls{gap:.34rem}
.cafe-carousel__nav{opacity:.28;transform:scale(.84)}
.cafe-carousel__nav:hover,.cafe-carousel__nav:focus-visible{opacity:.92;transform:scale(.94) translateY(-1px)}
.cafe-carousel__sound{width:2.15rem;height:2.15rem}
.cafe-carousel__detail{
  margin:-.05rem auto 0;
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,transparent 6%),color-mix(in srgb,var(--surface) 84%,#051329 16%));
  border-color:color-mix(in srgb,var(--border) 58%,#67eaff 42%);
  box-shadow:inset 0 1px rgba(255,255,255,.07),0 1.5rem 4.2rem rgba(0,0,0,.24),0 0 2.4rem rgba(62,217,242,.065);
}
.cafe-carousel__detail-kicker::before{content:"●";margin-right:.45rem;font-size:.52rem;vertical-align:.08rem;text-shadow:0 0 .7rem currentColor}
.cafe-carousel__hint{opacity:.76}
.cafe-carousel__hint-mobile{display:none}
.cafe-carousel.is-moving .cafe-carousel__orbit-energy{animation-duration:2.2s}
.cafe-carousel.is-moving .cafe-carousel__pedestal{box-shadow:0 0 3.3rem rgba(38,204,234,.31),inset 0 0 2.2rem rgba(95,239,255,.17)}
[data-theme="light"] .cafe-carousel__item{
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(230,243,249,.95));
}
[data-theme="light"] .cafe-carousel__orbit-shadow{stroke:rgba(35,146,170,.12)}
@media (max-width:52rem){
  .cafe-carousel__orbit,.cafe-carousel__orbit-nodes{bottom:1rem;height:11rem}
  .cafe-carousel__pedestal{bottom:.75rem;width:10rem;height:3.6rem}
  .cafe-carousel__nav{opacity:.88;transform:none}
  .cafe-carousel__hint-desktop{display:none}.cafe-carousel__hint-mobile{display:inline}
}
@media (max-width:36rem){
  .cafe-carousel__orbit,.cafe-carousel__orbit-nodes{left:-10%;width:120%;bottom:.4rem;height:9rem}
  .cafe-carousel__pedestal{bottom:.2rem;width:8.5rem;height:3rem}
  .cafe-carousel__item{border-radius:1.35rem}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel__orbit-energy,.cafe-carousel__orbit-nodes i:nth-child(5){animation:none!important}
}


/* Café pointer-steered orbit v089 */
.cafe-carousel__stage::before,
.cafe-carousel__stage::after{
  content:"";
  position:absolute;
  z-index:3;
  top:12%;bottom:10%;
  width:24%;
  pointer-events:none;
  opacity:0;
  transition:opacity .22s ease,filter .22s ease;
  filter:blur(.2rem);
}
.cafe-carousel__stage::before{
  left:0;
  background:radial-gradient(ellipse at 5% 56%,rgba(90,224,249,.15),rgba(61,151,255,.055) 35%,transparent 72%);
}
.cafe-carousel__stage::after{
  right:0;
  background:radial-gradient(ellipse at 95% 56%,rgba(90,224,249,.15),rgba(61,151,255,.055) 35%,transparent 72%);
}
.cafe-carousel.is-steering-left .cafe-carousel__stage::before,
.cafe-carousel.is-steering-right .cafe-carousel__stage::after{
  opacity:calc(.24 + var(--cafe-steer-strength, .4) * .48);
  filter:blur(.15rem) saturate(calc(1 + var(--cafe-steer-strength, .4) * .35));
}
.cafe-carousel.is-steering-left .cafe-carousel__orbit-energy{animation-direction:reverse;animation-duration:calc(4.1s - var(--cafe-steer-strength, .4) * 2.25s)}
.cafe-carousel.is-steering-right .cafe-carousel__orbit-energy{animation-direction:normal;animation-duration:calc(4.1s - var(--cafe-steer-strength, .4) * 2.25s)}
.cafe-carousel.is-steering-left .cafe-carousel__orbit-nodes i,
.cafe-carousel.is-steering-right .cafe-carousel__orbit-nodes i{
  opacity:calc(.48 + var(--cafe-steer-strength, .4) * .34);
}
.cafe-carousel.is-steering-left .cafe-carousel__pedestal,
.cafe-carousel.is-steering-right .cafe-carousel__pedestal{
  box-shadow:0 0 3.8rem rgba(38,204,234,.34),inset 0 0 2.5rem rgba(95,239,255,.19);
}
@media (hover:none),(pointer:coarse){
  .cafe-carousel__stage::before,.cafe-carousel__stage::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel__stage::before,.cafe-carousel__stage::after{display:none}
}


/* ========================================================================== */
/* Café continuous orbital UX v091                                            */
/* ========================================================================== */
.cafe-carousel{
  --cafe-speed:0;
  --cafe-drive:0;
  --cafe-orbit-duration:5.2s;
}
.cafe-carousel__stage{
  cursor:ew-resize;
  touch-action:pan-y;
}
.cafe-carousel__item{
  pointer-events:none;
  will-change:transform,opacity,filter;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:
    border-color .24s ease,
    box-shadow .28s ease;
}
.cafe-carousel__item.is-clickable{
  pointer-events:auto;
  cursor:pointer;
}
.cafe-carousel__item:not(.is-clickable){cursor:ew-resize}
.cafe-carousel__item:not(.is-active):hover{
  border-color:rgba(118,219,255,.08);
  box-shadow:0 1.4rem 3rem rgba(0,0,0,.24),0 .5rem 1.5rem rgba(0,0,0,.12);
}
.nh-core-editor-ready .cafe-carousel__item{
  pointer-events:auto!important;
  cursor:default!important;
  filter:none!important;
}
.cafe-carousel__art img{
  transition:none;
  -webkit-user-drag:none;
  user-select:none;
}
.cafe-carousel__item.is-active .cafe-carousel__art img{
  transform:translateY(-.12rem) scale(1.012);
}
.cafe-carousel.is-moving .cafe-carousel__item.is-active{
  box-shadow:
    0 2rem 4.8rem rgba(0,0,0,.38),
    0 0 2.8rem rgba(61,218,242,.19);
}
.cafe-carousel.is-locked .cafe-carousel__item.is-active{
  box-shadow:
    0 2.65rem 6rem rgba(0,0,0,.46),
    0 0 0 1px rgba(142,240,255,.18),
    0 0 4.8rem rgba(61,218,242,.38),
    0 0 9rem rgba(73,124,255,.14);
}
.cafe-carousel.just-locked .cafe-carousel__item.is-active .cafe-carousel__card-glow{
  animation:cafeV091LockGlow .48s cubic-bezier(.2,.75,.25,1) both;
}
.cafe-carousel.just-locked .cafe-carousel__pedestal{
  animation:cafeV091PedestalLock .52s cubic-bezier(.2,.75,.25,1) both;
}
@keyframes cafeV091LockGlow{
  0%{opacity:.42;transform:scaleX(.82)}
  48%{opacity:1;transform:scaleX(1.16)}
  100%{opacity:.82;transform:scaleX(1)}
}
@keyframes cafeV091PedestalLock{
  0%,100%{filter:brightness(1)}
  48%{filter:brightness(1.34)}
}
.cafe-carousel__orbit-energy{
  animation-duration:var(--cafe-orbit-duration,5.2s);
}
.cafe-carousel.is-steering-left .cafe-carousel__orbit-energy{
  animation-direction:reverse;
}
.cafe-carousel.is-steering-right .cafe-carousel__orbit-energy{
  animation-direction:normal;
}
.cafe-carousel__enter.is-disabled,
.cafe-carousel__enter[aria-disabled="true"]{
  pointer-events:none;
  opacity:.38;
  filter:saturate(.55);
}
.cafe-carousel.is-moving .cafe-carousel__pedestal{
  opacity:calc(.72 + (var(--cafe-speed) * .24));
}
.cafe-carousel__hint-desktop::before{
  content:"";
  display:inline-block;
  width:.38rem;height:.38rem;border-radius:50%;
  margin-right:.5rem;vertical-align:.06rem;
  background:var(--accent);
  box-shadow:0 0 .75rem color-mix(in srgb,var(--accent) 74%,transparent);
  opacity:.7;
}

@media (hover:hover) and (pointer:fine) and (min-width:52.01rem){
  /* Pointer steering is the primary desktop control. Keep sound, remove visual clutter. */
  .cafe-carousel__nav{display:none}
  .cafe-carousel__dots{display:none}
  .cafe-carousel__controls{right:6.25%;top:2rem}
  .cafe-carousel__detail{
    width:min(64rem,82%);
    min-height:4.65rem;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:1rem;
    padding:.72rem 1rem .72rem 1.08rem;
    border-radius:1.15rem;
  }
  .cafe-carousel__detail-kicker,
  .cafe-carousel__detail h3{display:none}
  .cafe-carousel__detail-copy{display:flex;align-items:center;min-height:2.5rem}
  .cafe-carousel__detail p{font-size:.82rem;line-height:1.4;color:color-mix(in srgb,var(--ink) 74%,var(--muted) 26%)}
  .cafe-carousel__count{min-width:4.25rem;justify-content:center}
  .cafe-carousel__enter{min-height:2.65rem;padding:.58rem .92rem}
  .cafe-carousel__hint{margin-top:.8rem;font-size:.65rem;opacity:.64}
}

@media (prefers-reduced-motion:reduce){
  .cafe-carousel__stage{cursor:default}
  .cafe-carousel__item{will-change:auto}
  .cafe-carousel.just-locked .cafe-carousel__item.is-active .cafe-carousel__card-glow,
  .cafe-carousel.just-locked .cafe-carousel__pedestal{animation:none!important}
}

/* v091: destination navigation is intentionally available only on the locked centre card. */
.cafe-carousel__enter{display:none!important}

/* ========================================================================== */
/* Café tactile orbital UX v092 — drag / throw / deeper premium staging       */
/* ========================================================================== */
.cafe-carousel{
  min-height:clamp(43rem,56vw,54rem);
}
.cafe-carousel::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:10%;right:10%;top:7.4rem;
  height:22rem;
  border-radius:50%;
  background:
    radial-gradient(ellipse at 50% 68%,rgba(78,228,249,.105),transparent 48%),
    radial-gradient(ellipse at 50% 34%,rgba(80,119,255,.075),transparent 62%);
  filter:blur(1.2rem);
  pointer-events:none;
}
.cafe-carousel__stage{
  height:clamp(31rem,43vw,40rem)!important;
  overflow:visible!important;
  cursor:grab!important;
  margin-top:.6rem;
  perspective:165rem!important;
  perspective-origin:50% 38%!important;
  touch-action:pan-y;
}
.cafe-carousel.is-dragging .cafe-carousel__stage{
  cursor:grabbing!important;
}
.cafe-carousel__items{
  overflow:visible;
  transform-style:preserve-3d;
}
.cafe-carousel__item{
  top:6rem!important;
  transform:
    translateX(calc(-50% + var(--tx)))
    translateY(var(--ty))
    translateZ(var(--tz))
    scale(var(--scale))
    rotateX(var(--tilt-x))
    rotateY(calc(var(--rot) + var(--tilt-y)))
    rotateZ(var(--roll,0deg))!important;
  transform-origin:50% 88%!important;
  -webkit-user-drag:none;
  user-select:none;
}
.cafe-carousel.is-dragging .cafe-carousel__item{
  transition:border-color .16s ease,box-shadow .18s ease!important;
}
.cafe-carousel.is-dragging .cafe-carousel__item.is-active{
  box-shadow:
    0 2.2rem 5rem rgba(0,0,0,.42),
    0 0 3.4rem rgba(61,218,242,.27),
    0 0 7rem rgba(68,112,255,.10)!important;
}
.cafe-carousel__ambient::before,
.cafe-carousel__ambient::after{
  content:"";
  position:absolute;
  inset:-14%;
  border-radius:50%;
  pointer-events:none;
}
.cafe-carousel__ambient::before{
  background:conic-gradient(from 90deg,transparent 0 34%,rgba(86,231,250,.08) 43%,rgba(113,100,255,.065) 50%,rgba(86,231,250,.08) 57%,transparent 66% 100%);
  filter:blur(2rem);
  animation:cafeV092Atmosphere 18s linear infinite;
}
.cafe-carousel__ambient::after{
  inset:12% 21%;
  background:radial-gradient(circle,rgba(80,234,252,.15),rgba(63,120,255,.06) 36%,transparent 70%);
  filter:blur(1.5rem);
  opacity:.62;
  transform:scale(1);
  transition:opacity .22s ease,transform .22s ease;
}
@keyframes cafeV092Atmosphere{to{transform:rotate(360deg)}}
.cafe-carousel__item.is-active::before{
  background:
    linear-gradient(122deg,rgba(255,255,255,.16),transparent 18%,transparent 68%,rgba(96,230,255,.07)),
    linear-gradient(90deg,transparent 38%,rgba(194,250,255,.075) 50%,transparent 62%)!important;
  background-size:100% 100%,220% 100%!important;
  animation:cafeV092CardSheen 5.8s ease-in-out infinite;
}
@keyframes cafeV092CardSheen{
  0%,38%{background-position:0 0,-80% 0}
  68%,100%{background-position:0 0,180% 0}
}
.cafe-carousel__pedestal{
  bottom:1.45rem!important;
  width:clamp(12rem,21vw,18rem)!important;
  height:5.6rem!important;
  background:
    radial-gradient(ellipse at center,rgba(96,238,255,.23),rgba(43,105,179,.07) 45%,transparent 70%),
    linear-gradient(90deg,transparent,rgba(123,240,255,.05),transparent)!important;
  box-shadow:0 0 3rem rgba(38,204,234,.24),inset 0 0 2.3rem rgba(95,239,255,.18)!important;
}
.cafe-carousel.is-dragging .cafe-carousel__pedestal,
.cafe-carousel.is-moving .cafe-carousel__pedestal{
  box-shadow:0 0 5rem rgba(38,204,234,.31),inset 0 0 2.6rem rgba(95,239,255,.21)!important;
}
.cafe-carousel__orbit,
.cafe-carousel__orbit-nodes{
  bottom:1.7rem!important;
}
.cafe-carousel__orbit-energy{
  opacity:.72;
  stroke-width:3.1!important;
}
.cafe-carousel.is-dragging .cafe-carousel__orbit-energy{
  filter:drop-shadow(0 0 .9rem rgba(87,231,252,1))!important;
}
.cafe-carousel.is-moving .cafe-carousel__ambient::after{opacity:.9;transform:scale(1.055)}
.cafe-carousel.is-moving .cafe-carousel__orbit-energy{opacity:1;stroke-width:4.1!important}
.cafe-carousel__hint-desktop::after{
  content:"  Drag / throw anywhere on the ring.";
  color:color-mix(in srgb,var(--accent) 68%,var(--muted) 32%);
}
@media (max-width:76rem){
  .cafe-carousel{min-height:45rem}
  .cafe-carousel__stage{height:33rem!important}
  .cafe-carousel__item{top:5.3rem!important}
}
@media (max-width:52rem){
  .cafe-carousel{min-height:39.5rem}
  .cafe-carousel__stage{height:27rem!important;margin-top:0}
  .cafe-carousel__item{top:4rem!important}
  .cafe-carousel__pedestal{bottom:.7rem!important;width:10.8rem!important;height:3.8rem!important}
  .cafe-carousel__orbit,.cafe-carousel__orbit-nodes{bottom:.9rem!important}
}
@media (max-width:36rem){
  .cafe-carousel{min-height:37rem}
  .cafe-carousel__stage{height:24rem!important}
  .cafe-carousel__item{top:3.5rem!important}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel__ambient::before,.cafe-carousel__item.is-active::before{animation:none!important}
}

/* ---------- contextual detail-page Back control v093 ---------- */
.context-back{
  position:fixed;
  z-index:92;
  left:max(1.15rem,env(safe-area-inset-left));
  bottom:max(1.2rem,env(safe-area-inset-bottom));
  display:inline-flex;
  align-items:center;
  gap:.58rem;
  min-height:3rem;
  padding:.55rem 1rem .55rem .68rem;
  border:1px solid rgba(102,229,255,.55);
  border-radius:.78rem;
  color:#7beeff;
  background:
    linear-gradient(145deg,rgba(26,53,78,.76),rgba(7,18,34,.86)),
    rgba(8,18,34,.78);
  box-shadow:
    0 .85rem 2.4rem rgba(0,0,0,.30),
    0 0 0 1px rgba(123,238,255,.055) inset,
    0 0 1.45rem rgba(48,210,239,.14);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
  backdrop-filter:blur(18px) saturate(145%);
  font-family:var(--font-body);
  font-size:.93rem;
  font-weight:600;
  letter-spacing:.005em;
  text-decoration:none;
  opacity:0;
  transform:translate3d(-.65rem,.4rem,0) scale(.96);
  transition:
    opacity .36s ease,
    transform .44s cubic-bezier(.18,.84,.24,1),
    color .2s ease,
    border-color .2s ease,
    background .2s ease,
    box-shadow .25s ease;
  overflow:hidden;
  isolation:isolate;
}
.context-back.is-ready{opacity:1;transform:none}
.context-back::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:radial-gradient(8rem 4rem at 18% 0%,rgba(108,235,255,.15),transparent 72%);
  pointer-events:none;
}
.context-back__arrow{
  display:grid;
  place-items:center;
  width:1.65rem;
  height:1.65rem;
  flex:0 0 auto;
  border-radius:.48rem;
  background:rgba(83,217,243,.075);
  box-shadow:inset 0 0 0 1px rgba(116,235,255,.09);
  transition:transform .23s cubic-bezier(.2,.8,.2,1),background .2s ease;
}
.context-back__arrow svg{
  width:1.12rem;
  height:1.12rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.context-back__shine{
  position:absolute;
  top:-80%;
  left:-35%;
  width:22%;
  height:260%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(198,250,255,.19),transparent);
  opacity:0;
  pointer-events:none;
}
.context-back:hover,
.context-back:focus-visible{
  color:#b9f8ff;
  border-color:rgba(123,239,255,.9);
  background:linear-gradient(145deg,rgba(29,65,92,.88),rgba(8,24,43,.94));
  box-shadow:
    0 1rem 2.8rem rgba(0,0,0,.34),
    0 0 0 1px rgba(154,246,255,.10) inset,
    0 0 2rem rgba(54,219,246,.24);
  transform:translateY(-2px);
}
.context-back:hover .context-back__arrow,
.context-back:focus-visible .context-back__arrow{transform:translateX(-3px);background:rgba(83,217,243,.13)}
.context-back:hover .context-back__shine,
.context-back:focus-visible .context-back__shine{opacity:1;animation:contextBackShine .72s ease forwards}
.context-back:active{transform:translateY(0) scale(.975)}
.context-back:focus-visible{outline:2px solid rgba(117,235,255,.75);outline-offset:3px}
@keyframes contextBackShine{from{left:-35%}to{left:125%}}

[data-theme="light"] .context-back{
  color:#087b91;
  border-color:rgba(18,146,170,.38);
  background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(232,246,250,.90));
  box-shadow:0 .85rem 2.4rem rgba(20,66,82,.14),0 0 0 1px rgba(255,255,255,.72) inset,0 0 1rem rgba(20,163,188,.10);
}
[data-theme="light"] .context-back:hover,[data-theme="light"] .context-back:focus-visible{color:#045f71;border-color:rgba(8,143,169,.68)}

/* Keep it above mobile CTA/editor chrome without covering content controls. */
body.nh-fe-active .context-back{bottom:5.25rem}
@media (max-width:46rem){
  .context-back{left:max(.75rem,env(safe-area-inset-left));bottom:max(.8rem,env(safe-area-inset-bottom));min-height:2.75rem;padding:.48rem .82rem .48rem .58rem;border-radius:.72rem;font-size:.86rem}
  .context-back__arrow{width:1.5rem;height:1.5rem}
  .mobile-sticky-cta~.context-back,.context-back:has(~ .mobile-sticky-cta){bottom:4.85rem}
  body.nh-fe-active .context-back{bottom:5.75rem}
}
@media (prefers-reduced-motion:reduce){
  .context-back{opacity:1;transform:none;transition:none}
  .context-back__shine{display:none}
}


/* ========================================================================== */
/* Café immersive full-width orbital UX v094                                  */
/* ========================================================================== */
.cafe-carousel-section{
  position:relative;
  padding-inline:0!important;
  overflow:visible!important;
}
.cafe-carousel-shell{
  width:100%!important;
  max-width:none!important;
  padding-inline:0!important;
  overflow:visible!important;
}
.cafe-carousel-heading{
  width:min(100%,48rem);
  padding-inline:var(--shell-x);
  margin-inline:auto;
}
.cafe-carousel{
  width:100%;
  max-width:none;
  margin-inline:0;
  min-height:clamp(45rem,57vw,55rem);
  overflow:visible!important;
  isolation:isolate;
  padding-top:2.6rem;
  --cafe-chrome:rgba(132,235,252,.44);
  --cafe-chrome-soft:rgba(132,235,252,.13);
}
/* v092's blurred pseudo layer could visibly terminate at the section edge.
   v094 moves atmospheric effects into an internal masked visual plane. */
.cafe-carousel::after{content:none!important;display:none!important}
.cafe-carousel::before{
  inset:0!important;
  left:0!important;right:0!important;top:0!important;bottom:0!important;
  border:0!important;
  border-radius:0!important;
  background:
    radial-gradient(ellipse 50% 40% at 50% 49%,rgba(43,210,239,.105),transparent 72%),
    linear-gradient(180deg,transparent 0%,rgba(6,14,31,.18) 16%,rgba(7,14,30,.28) 50%,rgba(6,12,27,.14) 84%,transparent 100%)!important;
  box-shadow:none!important;
  opacity:.92;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%);
}
.cafe-carousel__fx{
  position:absolute;
  z-index:-2;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 10%,#000 90%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 10%,#000 90%,transparent 100%);
}
.cafe-carousel__fx::before,
.cafe-carousel__fx::after,
.cafe-carousel__fx i{
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:50%;
}
.cafe-carousel__fx::before{
  left:8%;right:8%;top:8%;height:54%;
  background:radial-gradient(ellipse at center,rgba(66,224,247,.15),rgba(62,107,220,.055) 40%,transparent 73%);
  filter:blur(2.4rem);
}
.cafe-carousel__fx::after{
  left:27%;right:27%;top:18%;height:42%;
  border:1px solid rgba(108,231,250,.10);
  box-shadow:0 0 5rem rgba(57,208,239,.09),inset 0 0 4rem rgba(68,117,245,.045);
  transform:perspective(60rem) rotateX(66deg);
}
.cafe-carousel__fx i:nth-child(1){
  left:-5%;top:20%;width:34%;height:43%;
  background:radial-gradient(circle at center,rgba(48,176,235,.075),transparent 70%);
  filter:blur(2.2rem);
}
.cafe-carousel__fx i:nth-child(2){
  right:-5%;top:20%;width:34%;height:43%;
  background:radial-gradient(circle at center,rgba(85,108,255,.065),transparent 70%);
  filter:blur(2.2rem);
}
.cafe-carousel__fx i:nth-child(3){
  left:35%;right:35%;bottom:12%;height:16%;
  background:radial-gradient(ellipse at center,rgba(104,238,255,.10),transparent 72%);
  filter:blur(1.6rem);
}
.cafe-carousel__ambient{
  inset:13% 12% 15%!important;
  overflow:hidden;
  border-radius:45%;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 0 55%,transparent 86%);
  mask-image:radial-gradient(ellipse at center,#000 0 55%,transparent 86%);
}
.cafe-carousel__stage{
  width:100%;
  height:clamp(33rem,44vw,41rem)!important;
  margin-top:0!important;
  padding-top:1.5rem;
  overflow:visible!important;
  cursor:grab!important;
  perspective:175rem!important;
  perspective-origin:50% 40%!important;
}
.cafe-carousel.is-dragging .cafe-carousel__stage{cursor:grabbing!important}
.cafe-carousel__item{top:6.5rem!important}

/* Smaller, richer navigation chrome. Kept as secondary controls on desktop. */
.cafe-carousel__controls{
  right:max(1.25rem,var(--shell-x))!important;
  top:2.8rem!important;
  gap:.24rem!important;
  padding:.27rem!important;
  border:1px solid rgba(134,226,246,.11);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(12,28,47,.52),rgba(7,16,31,.34));
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 .8rem 2.6rem rgba(0,0,0,.14);
  -webkit-backdrop-filter:blur(14px) saturate(135%);
  backdrop-filter:blur(14px) saturate(135%);
}
.cafe-carousel__nav,
.cafe-carousel__sound{
  display:grid!important;
  place-items:center;
  width:2rem!important;height:2rem!important;
  border-radius:50%!important;
  border:1px solid transparent!important;
  color:color-mix(in srgb,var(--ink) 66%,var(--accent) 34%)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(63,221,245,.018))!important;
  box-shadow:none!important;
  opacity:.52!important;
  transform:none!important;
  transition:opacity .2s ease,color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .16s ease!important;
}
.cafe-carousel__nav:hover,.cafe-carousel__nav:focus-visible,
.cafe-carousel__sound:hover,.cafe-carousel__sound:focus-visible{
  opacity:.96!important;
  color:#aef6ff!important;
  border-color:rgba(135,235,252,.18)!important;
  background:linear-gradient(145deg,rgba(91,225,247,.10),rgba(65,108,224,.045))!important;
  box-shadow:inset 0 1px rgba(255,255,255,.065),0 0 1rem rgba(65,216,241,.08)!important;
  transform:translateY(-1px)!important;
}
.cafe-carousel__nav:active,.cafe-carousel__sound:active{transform:translateY(0) scale(.94)!important}
.cafe-carousel__nav svg,.cafe-carousel__sound svg{width:.92rem!important;height:.92rem!important;stroke-width:1.55!important}

/* Restore Enter as the deliberate secondary action, without competing with the card. */
.cafe-carousel__enter{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:.48rem;
  min-height:2.45rem!important;
  padding:.48rem .82rem!important;
  border-radius:.72rem!important;
  border:1px solid rgba(118,229,248,.17)!important;
  color:color-mix(in srgb,var(--ink) 74%,var(--accent) 26%)!important;
  background:linear-gradient(145deg,rgba(72,217,240,.07),rgba(47,80,150,.035))!important;
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 .6rem 1.6rem rgba(0,0,0,.09)!important;
  font-size:.72rem!important;
  font-weight:650!important;
  letter-spacing:.105em!important;
  text-transform:uppercase;
  transition:color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .18s ease,opacity .2s ease!important;
}
.cafe-carousel__enter:hover,.cafe-carousel__enter:focus-visible{
  color:#b9f8ff!important;
  border-color:rgba(127,236,253,.42)!important;
  background:linear-gradient(145deg,rgba(71,220,243,.12),rgba(57,98,184,.055))!important;
  box-shadow:inset 0 1px rgba(255,255,255,.07),0 .7rem 1.9rem rgba(0,0,0,.12),0 0 1.3rem rgba(53,211,240,.08)!important;
  transform:translateY(-1px)!important;
}
.cafe-carousel__enter.is-disabled,.cafe-carousel__enter[aria-disabled="true"]{opacity:.28!important;pointer-events:none!important}
.cafe-carousel__detail{
  width:min(90%,63rem)!important;
  border-color:rgba(116,226,247,.13)!important;
  background:linear-gradient(145deg,rgba(10,23,42,.58),rgba(6,14,29,.46))!important;
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  backdrop-filter:blur(18px) saturate(135%);
}
.cafe-carousel__hint{padding-inline:var(--shell-x);opacity:.58!important}
.cafe-carousel__hint-desktop::after{content:""!important}

/* Movement atmosphere reacts continuously, but always fades within the scene. */
.cafe-carousel.is-moving .cafe-carousel__fx::before{opacity:calc(.72 + var(--cafe-speed,0) * .28)}
.cafe-carousel.is-moving .cafe-carousel__orbit-energy{
  animation-duration:var(--cafe-orbit-duration,2.8s)!important;
  filter:drop-shadow(0 0 calc(.45rem + var(--cafe-speed,0) * .7rem) rgba(87,231,252,.88))!important;
}

@media (min-width:52.01rem){
  .cafe-carousel__nav{display:grid!important}
  .cafe-carousel__dots{display:none!important}
}
@media (max-width:76rem){
  .cafe-carousel{min-height:46rem}
  .cafe-carousel__stage{height:34rem!important}
  .cafe-carousel__item{top:5.5rem!important}
}
@media (max-width:52rem){
  .cafe-carousel{padding-top:1.4rem;min-height:40.5rem}
  .cafe-carousel__controls{top:1.25rem!important;right:1rem!important}
  .cafe-carousel__stage{height:28rem!important;padding-top:1rem}
  .cafe-carousel__item{top:4.2rem!important}
  .cafe-carousel__detail{width:94%!important}
}
@media (max-width:36rem){
  .cafe-carousel{min-height:38rem}
  .cafe-carousel__stage{height:24.8rem!important}
  .cafe-carousel__item{top:3.7rem!important}
}
@media (prefers-reduced-motion:reduce){
  .cafe-carousel__fx::before,.cafe-carousel__ambient::before,.cafe-carousel__item.is-active::before{animation:none!important}
}

/* ---------- v146 universal expanded article guide (non-destructive) ---------- */
/* Keep generated “In this guide” rails fully expanded and sticky below the
   fixed header. The stretched article companion column remains the containing
   block, so the rail releases naturally at the article/footer boundary. */
@media (min-width: 65.0625rem) {
  /* Future-proof editor changes: a page that contains a guide keeps the same
     two-column reading/navigation relationship even if its stored layout is
     later switched to wide or single. */
  .article-layout--wide:has(.article-toc),
  .article-layout--single:has(.article-toc) {
    grid-template-columns: minmax(0, 2fr) minmax(17.5rem, 1fr);
    grid-template-areas: "main aside";
  }
  .article-layout--dual .article-aside,
  .article-layout--toc-static .article-aside,
  .article-layout:has(.article-toc) .article-aside {
    align-self: stretch;
    align-content: start;
    grid-auto-rows: max-content;
  }
  .article-layout--dual .article-toc,
  .article-layout--toc-static .article-toc,
  .article-layout:has(.article-toc) .article-toc {
    position: sticky;
    top: calc(var(--header-h) + 1.25rem);
    z-index: 2;
    align-self: start;
    max-height: none;
    overflow: visible;
    overscroll-behavior: auto;
    scrollbar-gutter: auto;
    scrollbar-width: auto;
  }
}

/* ---------- v147 viewport-aware scrollable article guide ---------- */
/*
 * Keep “In this guide” fully open up to the maximum vertical space available
 * below the fixed site header. Short lists keep their natural height. Only a
 * list taller than the available browser height gets its own vertical scrollbar.
 * The article/aside remains the sticky containing block, so the rail still
 * releases at the article/footer boundary instead of overlapping the footer.
 */
@media (min-width: 65.0625rem) {
  .article-layout--wide:has(.article-toc),
  .article-layout--single:has(.article-toc) {
    grid-template-columns: minmax(0, 2fr) minmax(17.5rem, 1fr);
    grid-template-areas: "main aside";
  }

  .article-layout--dual .article-aside,
  .article-layout--toc-static .article-aside,
  .article-layout:has(.article-toc) .article-aside {
    align-self: stretch;
    align-content: start;
    grid-auto-rows: max-content;
  }

  .article-layout--dual .article-toc,
  .article-layout--toc-static .article-toc,
  .article-layout:has(.article-toc) .article-toc {
    position: sticky;
    top: calc(var(--header-h) + 1.25rem);
    z-index: 2;
    align-self: start;

    /* Fallback for browsers without dynamic viewport units. */
    max-height: calc(100vh - var(--header-h) - 2.5rem);
    /* Tracks the actually visible browser viewport as browser chrome changes. */
    max-height: calc(100dvh - var(--header-h) - 2.5rem);

    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--line-strong) transparent;
  }
}

/* ---------- v148 integral article guide companion rail ---------- */
/*
 * The sticky unit is now the whole generated guide rail, not only the TOC.
 * This keeps Related guides and any later companion cards structurally attached
 * to the guide and prevents them from travelling underneath/through a sticky TOC.
 * Short rails use their natural height. A rail taller than the usable browser
 * height gets one internal vertical scrollbar for the entire rail.
 */
@media (min-width: 65.0625rem) {
  .article-guide-rail {
    display: grid;
    gap: 1.125rem;
    min-width: 0;
    align-self: start;
    position: sticky;
    top: calc(var(--header-h) + 1.25rem);
    z-index: 2;

    /* Fallback, followed by the dynamic visible viewport value. */
    max-height: calc(100vh - var(--header-h) - 2.5rem);
    max-height: calc(100dvh - var(--header-h) - 2.5rem);

    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--line-strong) transparent;
  }

  /* v147 and older rules made the TOC itself sticky/scrollable. Once it lives
     in the integral rail, the outer rail owns sticky and scroll behavior. */
  .article-layout .article-guide-rail .article-toc {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    align-self: auto !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-gutter: auto !important;
  }
}

@media (max-width: 65rem) {
  .article-guide-rail {
    display: grid;
    gap: 1.125rem;
    min-width: 0;
  }
}

/* ---------- v164 Knowledge architecture + book-like article navigation ---------- */
/* ADHD subgroup cards are paired by similar content depth and stretched within
   each grid row. This removes the ragged external gaps of the previous
   start-aligned layout without crowding the links themselves. */
.page-knowledge #adhd .kcat-groups {
  gap: .8rem;
  align-items: stretch;
}
.page-knowledge #adhd .kcat-subsection {
  height: 100%;
  padding: .9rem 1rem .72rem;
}
.page-knowledge #adhd .kcat-subsection h3 { margin-bottom: .48rem; }
.page-knowledge #adhd .kcat-subsection-links a,
.page-knowledge #adhd .kcat-subsection-links .kcat-link-disabled { padding-block: .61rem; }

.article-sequence-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: .0625rem solid var(--line);
}
.article-sequence-nav__link {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 5.5rem;
  padding: .9rem 1rem;
  border: .0625rem solid var(--line);
  border-radius: .9rem;
  background: color-mix(in srgb, var(--panel-2) 76%, transparent);
  color: var(--ink-dim);
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.article-sequence-nav__link:hover,
.article-sequence-nav__link:focus-visible {
  color: var(--ink);
  border-color: color-mix(in srgb, var(--accent) 64%, var(--line));
  background: color-mix(in srgb, var(--accent) 7%, var(--panel-2));
  transform: translateY(-.0625rem);
}
.article-sequence-nav__link:focus-visible {
  outline: .125rem solid color-mix(in srgb, var(--accent) 62%, transparent);
  outline-offset: .1875rem;
}
.article-sequence-nav__direction {
  display: block;
  margin-bottom: .38rem;
  color: var(--accent);
  font: 740 .66rem/1.2 var(--font-mono);
  letter-spacing: .085em;
  text-transform: uppercase;
}
.article-sequence-nav__link strong {
  min-width: 0;
  font-size: .9rem;
  line-height: 1.38;
  overflow-wrap: anywhere;
}
.article-sequence-nav__link--next { text-align: right; }
.article-sequence-nav__spacer { min-width: 0; }
[data-theme="light"] .article-sequence-nav__link {
  background: rgba(255,255,255,.82);
  color: #243357;
}
[data-theme="light"] .article-sequence-nav__link:hover,
[data-theme="light"] .article-sequence-nav__link:focus-visible { color: var(--link-hover); }
@media (max-width: 42rem) {
  .article-sequence-nav { grid-template-columns: 1fr; }
  .article-sequence-nav__spacer { display: none; }
  .article-sequence-nav__link--next { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .article-sequence-nav__link:hover,
  .article-sequence-nav__link:focus-visible { transform: none; }
}


/* ---------- v166 Augmentive monochrome brand treatment ---------- */
/*
 * The external Augmentive card must not inherit Neurohaven's violet/purple
 * accent treatment. Keep the provider identity deliberately monochrome in
 * both site themes so it cannot be confused with Diverse Diagnostics.
 */
.clinical-pathway__intro::after {
  background: rgba(255,255,255,.045);
  filter: none;
}
.clinical-provider-card,
[data-theme="light"] .clinical-provider-card {
  border-color: rgba(255,255,255,.18);
  background: #050505;
  color: #ffffff;
  box-shadow: inset 0 .0625rem 0 rgba(255,255,255,.10), 0 1.125rem 3rem rgba(0,0,0,.28);
}
.clinical-provider-card__label {
  color: #ffffff;
}
.clinical-provider-card p {
  color: rgba(255,255,255,.74);
}
.article .clinical-provider-card img {
  background: #000000;
}

/* ---------- v167 Step 5 visual/reliability pass ---------- */
/*
 * Light-mode image harmonisation for the three surfaces called out in the
 * design review. Keep the photographic hero, but lift dense shadows and let
 * the bottom edge merge into the light page rather than ending as a hard dark
 * slab. No blur is introduced by these rules.
 */
[data-theme="light"] .page-hero--cafe-lounge .page-hero-bg img,
[data-theme="light"] .publications-hero .page-hero-bg img,
[data-theme="light"] .page-hero--contact-support .page-hero-bg img {
  opacity: var(--page-hero-bg-opacity, .78);
  filter: saturate(.92) contrast(.90) brightness(1.10);
}

[data-theme="light"] .page-hero--cafe-lounge .page-hero-bg::before,
[data-theme="light"] .publications-hero .page-hero-bg::before,
[data-theme="light"] .page-hero--contact-support .page-hero-bg::before {
  background:
    radial-gradient(42.5rem 32.5rem at 76% 36%, rgba(52,215,238,.10), transparent 68%),
    radial-gradient(32.5rem 26.25rem at 14% 72%, rgba(127,230,208,.08), transparent 66%),
    linear-gradient(90deg, rgba(5,8,20,.78) 0%, rgba(5,8,20,.48) 31%, rgba(5,8,20,.12) 60%, rgba(244,248,252,.08) 100%);
  mix-blend-mode: normal;
  opacity: 1;
}

[data-theme="light"] .page-hero--cafe-lounge .page-hero-bg::after,
[data-theme="light"] .publications-hero .page-hero-bg::after,
[data-theme="light"] .page-hero--contact-support .page-hero-bg::after {
  background:
    linear-gradient(180deg, rgba(5,8,20,.14) 0%, rgba(5,8,20,.02) 42%, color-mix(in srgb, var(--bg) 24%, transparent) 73%, var(--bg) 100%),
    linear-gradient(90deg, rgba(5,8,20,.72) 0%, rgba(5,8,20,.24) 44%, rgba(244,248,252,.06) 100%);
}

/* Contact: the blue orb is no longer imprisoned in a dark rectangular card.
   It stays crisp, pulses more clearly, and the supporting line sits beneath it
   in normal flow so the composition remains stable at every viewport size. */
.contact-card {
  min-height: 20rem;
  grid-template-rows: auto auto;
  align-content: center;
  justify-items: center;
  gap: 2.25rem;
  padding: 1.5rem 1rem;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.contact-orb {
  width: clamp(6.75rem, 10vw, 8.5rem);
  height: clamp(6.75rem, 10vw, 8.5rem);
  filter: none;
  box-shadow: 0 0 0 .0625rem rgba(52,215,238,.18), 0 0 3.25rem rgba(52,215,238,.42);
  animation: nh-contact-pulse-v167 3.8s ease-in-out infinite;
  transform-origin: center;
}
.contact-card-tag {
  position: static;
  max-width: 28rem;
  margin: 0;
  color: var(--ink-dim);
  font-size: clamp(.72rem, .85vw, .82rem);
  line-height: 1.55;
  letter-spacing: .095em;
  text-align: center;
}
@keyframes nh-contact-pulse-v167 {
  0%, 100% {
    opacity: .76;
    transform: scale(.94);
    box-shadow: 0 0 0 .0625rem rgba(52,215,238,.16), 0 0 2.25rem rgba(52,215,238,.30);
  }
  50% {
    opacity: 1;
    transform: scale(1.075);
    box-shadow: 0 0 0 .125rem rgba(52,215,238,.32), 0 0 4.5rem rgba(52,215,238,.58);
  }
}
[data-theme="light"] .contact-orb {
  box-shadow: 0 0 0 .0625rem rgba(0,112,132,.20), 0 0 2.75rem rgba(52,215,238,.28);
}
[data-theme="light"] .contact-card-tag { color: #344560; }

/* Admin/responsive collision guards discovered during the Step 5 sweep. */
body.nh-fe-active .cookie-banner {
  bottom: 6.75rem;
  max-height: calc(100vh - var(--header-h) - 8rem);
  max-height: calc(100dvh - var(--header-h) - 8rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}
body.nh-fe-active .cookie-modal { z-index: 10150; }
@media (max-width: 47.5rem) {
  body.nh-fe-available:not(.nh-fe-active) .mobile-sticky-cta { bottom: 4.875rem; }
  body.nh-fe-active .cookie-banner {
    bottom: 9.75rem;
    grid-template-columns: 1fr;
  }
  .contact-card {
    min-height: 16.5rem;
    gap: 1.75rem;
    padding-block: .75rem 1.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .contact-orb { animation: none; transform: none; opacity: 1; }
}

/* ---------- v195/v196 About supporters image ---------- */
.about-supporters-block {
  padding-top: clamp(.5rem, 2vw, 1.25rem);
}
.about-supporters-title {
  margin: 0 0 clamp(1rem, 2.1vw, 1.75rem);
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
}
.about-supporters-figure {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
}
.about-supporters-figure img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* ---------- v195 article arrow-key affordance ---------- */
.article-sequence-nav__direction kbd {
  display: inline-grid;
  place-items: center;
  min-width: 1.5rem;
  height: 1.35rem;
  margin-inline: .12rem;
  padding-inline: .28rem;
  border: .0625rem solid color-mix(in srgb, var(--accent) 46%, var(--line));
  border-bottom-width: .125rem;
  border-radius: .34rem;
  background: color-mix(in srgb, var(--panel) 82%, transparent);
  color: var(--accent);
  font: 800 .78rem/1 var(--font-mono);
  vertical-align: middle;
  box-shadow: inset 0 .0625rem rgba(255,255,255,.06);
}

