/*
 * Design tokens — all semantic UI colors, shadows, and accents live here.
 * `<html data-theme="light" | "dark">` is set by ThemeProvider (resolved value).
 * See docs/DESIGN_SYSTEM.md for how to extend the system without one-off colors.
 */

[data-theme='light'] {
  color-scheme: light;

  --text: #5b5366;
  --text-muted: #7a7285;
  --text-h: #0c0a12;
  /* Opaque warm off-white canvas (was #fffff5f7 — alpha washed to pure white over the browser default) */
  --bg: #f6f5ef;
  --surface: #ffffff;
  --border: #e4e2e8;
  --code-bg: #edeaf2;
  --element-bg: #e5e3dd;
  --toggle-selected-bg: #c7c5bf;
  --toggle-selected-fg: var(--text);
  --toggle-selected-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.22);
  --accent: #3a55ed;
  --accent-hover: #6d28d9;
  /* Text-style links / wordmark — hover uses grey, not accent */
  --text-interactive-hover: #33313a;
  /* Home “Trial Viva” pill */
  --cta-pill-bg: #1a1a1a;
  --cta-pill-bg-hover: #333333;
  --cta-pill-fg: #ffffff;
  --cta-pill-fg-hover: #ffffff;
  --site-index-bg: #f6f5ef;
  /* Home draggable overlays on hero / post-lede photos — layered depth */
  --elevated-photo-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.07),
    0 10px 36px -10px rgba(0, 0, 0, 0.22),
    0 36px 100px -40px rgba(0, 0, 0, 0.2);

  /* Reserved for accent-filled UI (e.g. future chip); primary CTAs use --cta-pill-fg */
  --on-accent: #ffffff;
  --shadow-button: 0 1px 2px rgba(0, 0, 0, 0.08);
  /* Wash over hero / post-lede photography */
  --media-photo-wash: rgba(255, 255, 255, 0.3);
  --shadow-card-soft:
    0 1px 2px color-mix(in srgb, var(--text-h) 4%, transparent),
    0 8px 24px -8px color-mix(in srgb, var(--text-h) 8%, transparent);
  /* Ghost controls: heading-colored label, slightly softer on hover */
  --text-choice-hover: #3a3a42;

  /* Selection / picked-state accent (not used for keyboard focus outlines) */
  --focus-ring-color: #0a0a0a;

  /* Verdict / readiness status (progress dashboard) */
  --status-pass-fg: #15803d;
  --status-pass: #2a9d5c;
  --status-borderline-fg: #b45309;
  --status-borderline: #c9921a;
  --status-fail-fg: #c0392b;
  --status-fail: #c0392b;

  /* Trial mic — active (listening) state */
  --trial-mic-accent: #2a6bc9;
  --trial-mic-accent-rgb: 42 107 201;

  /* QR code quiet zone — always white for scan reliability */
  --qr-surface: #ffffff;

  /* Progress dashboard panels — matches directory-card depth */
  --progress-panel-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
  --progress-panel-shadow-hover:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 4px 8px rgba(0, 0, 0, 0.18),
    0 14px 36px -8px rgba(0, 0, 0, 0.38),
    0 28px 56px -16px rgba(0, 0, 0, 0.28);
}

[data-theme='dark'] {
  color-scheme: dark;

  --text: #a1a1aa;
  --text-muted: #71717a;
  --text-h: #fafafa;
  --bg: #11110c;
  --surface: #161612;
  --border: #2c2b24;
  --code-bg: #1e1e19;
  --element-bg: #262520;
  --toggle-selected-bg: #1a1916;
  --toggle-selected-fg: var(--text);
  --toggle-selected-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.55);
  --accent: #a78bfa;
  --accent-hover: #c4b5fd;
  --text-interactive-hover: #d4d4d8;
  --cta-pill-bg: #fafafa;
  --cta-pill-bg-hover: #e8e8e8;
  --cta-pill-fg: #0a0a0a;
  --cta-pill-fg-hover: #0a0a0a;
  --site-index-bg: #1c1b16;
  --elevated-photo-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.07),
    0 12px 48px -12px rgba(0, 0, 0, 0.65),
    0 48px 120px -48px rgba(0, 0, 0, 0.55);

  /* Reserved for accent-filled UI; primary CTAs use --cta-pill-fg */
  --on-accent: #ffffff;
  --shadow-button: 0 1px 2px rgba(0, 0, 0, 0.24);
  --media-photo-wash: rgba(255, 255, 255, 0.3);
  --shadow-card-soft:
    0 1px 0 color-mix(in srgb, var(--text-h) 5%, transparent),
    0 12px 32px -12px rgba(0, 0, 0, 0.45);
  --text-choice-hover: #b6b6be;
  /* Raised cards / panels in dark mode (pricing, FAQ, etc.) */
  --shadow-panel-raised:
    0 1px 0 color-mix(in srgb, var(--text-h) 6%, transparent),
    0 18px 48px -20px rgba(0, 0, 0, 0.65);

  --focus-ring-color: #f4f4f5;

  --status-pass-fg: #4ade80;
  --status-pass: #22c55e;
  --status-borderline-fg: #fbbf24;
  --status-borderline: #d97706;
  --status-fail-fg: #f87171;
  --status-fail: #ef4444;

  --trial-mic-accent: #7eb8ff;
  --trial-mic-accent-rgb: 126 184 255;

  --qr-surface: #ffffff;

  --progress-panel-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
  --progress-panel-shadow-hover:
    0 0 0 1px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 16px 40px -10px rgba(0, 0, 0, 0.65),
    0 30px 60px -16px rgba(0, 0, 0, 0.55);
}

:root {
  /* cursor.com uses proprietary CursorGothic; Inter matches that neutral UI sans role */
  --sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --heading: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --mono: ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace;

  font: 16px/148% var(--sans);
  letter-spacing: -0.0105em;
  font-optical-sizing: auto;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Keyboard focus rings disabled sitewide (see app.css cascade override). */

:focus-visible {
  outline: none;
}

html {
  color: var(--text);
  /* Force opaque so any legacy alpha on `--bg` cannot wash the site to browser-white */
  background-color: rgb(from var(--bg) r g b / 1);
  /* Prevent iOS from inflating type (feels like the page loaded zoomed in). */
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  /* Clip sub-pixel horizontal bleed from full-bleed `100vw` sections on mobile. */
  overflow-x: clip;
  /* Avoid double-tap zoom; keeps the layout viewport at device width on load. */
  touch-action: manipulation;
}

html,
body,
#root {
  height: 100%;
}

body {
  margin: 0;
  width: 100%;
  overflow-x: clip;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* iOS Safari zooms focused fields below 16px and can keep that zoom on later loads. */

@media (max-width: 639px) {
  input:not(
      [type='checkbox'],
      [type='radio'],
      [type='range'],
      [type='hidden'],
      [type='button'],
      [type='submit'],
      [type='reset'],
      [type='file'],
      [type='image']
    ),
  textarea,
  select {
    font-size: 1rem;
  }
}

#root {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

h1 {
  font-family: var(--heading);
  font-weight: 600;
  color: var(--text-h);
  font-size: 1.825rem;
  letter-spacing: -0.029em;
  margin: 0 0 0.925rem;
}

code {
  font-family: var(--mono);
  padding: 0.15em 0.4em;
  border-radius: 4px;
  background: var(--code-bg);
  color: var(--text-h);
}
.companion-link-layout {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  background: var(--bg);
  color: var(--text);
}

.companion-link-layout__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 0.75rem;
  padding:
    max(0.55rem, env(safe-area-inset-top, 0px))
    max(var(--page-inline), env(safe-area-inset-right, 0px))
    0.55rem
    max(var(--page-inline), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
  background: color-mix(in srgb, var(--bg) 92%, var(--site-index-bg) 8%);
}

.companion-link-layout__main {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.companion-link-layout__main > * {
  flex: 1 1 auto;
  min-height: 0;
}
.reactEasyCrop_Container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  user-select: none;
  touch-action: none;
  cursor: move;
  display: flex;
  justify-content: center;
  align-items: center;
}

.reactEasyCrop_Image,
.reactEasyCrop_Video {
  will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */
}

.reactEasyCrop_Contain {
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.reactEasyCrop_Cover_Horizontal {
  width: 100%;
  height: auto;
}
.reactEasyCrop_Cover_Vertical {
  width: auto;
  height: 100%;
}

.reactEasyCrop_CropArea {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-sizing: border-box;
  box-shadow: 0 0 0 9999em;
  color: rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.reactEasyCrop_CropAreaRound {
  border-radius: 50%;
}

.reactEasyCrop_CropAreaGrid::before {
  content: ' ';
  box-sizing: border-box;
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.5);
  top: 0;
  bottom: 0;
  left: 33.33%;
  right: 33.33%;
  border-top: 0;
  border-bottom: 0;
}

.reactEasyCrop_CropAreaGrid::after {
  content: ' ';
  box-sizing: border-box;
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.5);
  top: 33.33%;
  bottom: 33.33%;
  left: 0;
  right: 0;
  border-left: 0;
  border-right: 0;
}
/**
 * Application styles — import order matters for cascade.
 * Tokens: theme/theme.css (via index.css). Layers: layout → primitives → routes.
 */
/* Shell: header, main, global page column, footer bar, theme toggle */
.layout {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  /* Equal horizontal inset (header, main, footers); ~10% wider than prior */
  --page-inline-base: calc((1.5rem + 6rem / 2 + 1vw) * 1.1);
  --page-inline-factor: 1;
  --page-inline: calc(var(--page-inline-base) * var(--page-inline-factor));
  /* Header row height budget (picker / sign-in); ~20% shorter than 1.62rem slot era */
  --site-header-slot-h: 1.3rem;
  /* Full fixed header block: vertical padding + tallest control (+3px) + vertical padding */
  --site-header-chrome-h: calc(0.8rem + var(--site-header-slot-h) + 3px + 0.8rem);
  /* Clearance under fixed header for main content (was 3.35rem) */
  --site-header-clearance: 2.68rem;
}
/* Below Tailwind `sm` (640px): side margins 80% smaller (20% of default formula). */
@media (max-width: 639px) {
  .layout {
    --page-inline-base: calc((1.5rem + 5.25rem / 2 + 1vw) * 1.1);
    --page-inline-factor: 0.2;
  }
}
.site-header {
  position: fixed;
  top: env(safe-area-inset-top, 0px);
  left: 0;
  right: 0;
  z-index: 1000;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 1.1rem;
  row-gap: 0.6rem;
  padding: 0.8rem calc(var(--page-inline) + env(safe-area-inset-right, 0px)) 0.8rem
    calc(var(--page-inline) + env(safe-area-inset-left, 0px));
  box-sizing: border-box;
  /* `--bg` can include alpha (e.g. light theme); keep the chrome fully opaque */
  background: rgb(from var(--bg) r g b / 1);
  overflow: visible;
}
/* Marketing shell: hamburger + drawer below this width; inline nav only when there is room */
/* Keep in sync: `max-width` here = one less than `min-width` for desktop marketing rules + mobile-nav hide */
.site-header__menu-toggle {
  display: none;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.35rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--text-h);
  cursor: pointer;
  line-height: 0;
}
.site-header__menu-toggle:hover {
  color: var(--text-interactive-hover);
}
.site-header__menu-toggle:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
@media (max-width: 959px) {
  .site-header--marketing {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    column-gap: 0.5rem;
    row-gap: 0;
  }

  .site-header--marketing .site-header__start {
    flex: 0 1 auto;
    min-width: 0;
    /* Avoid line-box / baseline strut so the compact mic mark lines up with Sign in + menu */
    display: flex;
    align-items: center;
  }

  .site-header--marketing .site-header__center {
    display: none !important;
  }

  /* Trailing region grows; college + Sign in + menu bunched at the right edge */
  .site-header--marketing .site-header__end {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-end;
  }

  .site-header--marketing .site-header__marketing-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    width: auto;
    max-width: 100%;
    min-width: 0;
  }

  .site-header--marketing .site-header__marketing-actions > * {
    flex: 0 0 auto;
    min-width: 0;
  }

  .site-header--marketing .site-header__menu-toggle {
    display: inline-flex;
  }
}
/* Desktop marketing: full center nav; college + sign-in stay on one row (no wrap before nav collapses) */
@media (min-width: 960px) {
  .site-header--marketing .site-header__center {
    flex-wrap: nowrap;
  }

  .site-header--marketing .site-header__end {
    flex-wrap: nowrap;
  }

  .site-header--marketing .site-header__marketing-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.42rem;
  }
}
.site-header-mobile-nav[hidden] {
  display: none !important;
}
.site-header-mobile-nav:not([hidden]) {
  position: fixed;
  inset: 0;
  z-index: 1500;
  pointer-events: auto;
}
.site-header-mobile-nav__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: color-mix(in srgb, var(--text-h) 28%, transparent);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.site-header-mobile-nav__sheet {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  box-sizing: border-box;
  width: min(20.5rem, calc(100% - 1.25rem));
  max-width: calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
  padding: calc(0.85rem + env(safe-area-inset-top, 0px)) calc(1rem + env(safe-area-inset-right, 0px))
    calc(1rem + env(safe-area-inset-bottom, 0px)) calc(1rem + env(safe-area-inset-left, 0px));
  background: var(--surface);
  border-left: 1px solid var(--border);
  box-shadow: var(--elevated-photo-shadow);
  overflow: auto;
  overscroll-behavior: contain;
}
.site-header-mobile-nav__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.site-header-mobile-nav__title {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-h);
}
.site-header-mobile-nav__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.35rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--text-h);
  cursor: pointer;
  line-height: 0;
}
.site-header-mobile-nav__close:hover {
  color: var(--text-interactive-hover);
}
.site-header-mobile-nav__nav {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.site-header-mobile-nav__group-label {
  margin: 1rem 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.site-header-mobile-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.site-header-mobile-nav__link {
  display: block;
  padding: 0.75rem 0.85rem; /* larger tap target for mobile (~48px effective) */
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--text-h);
  text-decoration: none;
  border-radius: 8px;
  min-height: 44px; /* ensure good touch target */
  display: flex;
  align-items: center;
}
.site-header-mobile-nav__link:hover {
  color: var(--text-interactive-hover);
}
.site-header-mobile-nav__link--active {
  font-weight: 600;
}
@media (min-width: 960px) {
  .site-header-mobile-nav {
    display: none !important;
  }
}
.site-header__start {
  justify-self: start;
}
.site-header__center {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.45rem 1.9rem;
  transition:
    opacity 0.24s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.24s ease;
}
.site-header__dropdown {
  position: relative;
  display: flex;
  align-items: center;
}
.site-header__dropdown-trigger {
  margin: 0;
  padding: 0.2rem 0;
  border: none;
  background: none;
  font-family: inherit;
  font-size: 0.85625rem;
  font-weight: 400;
  letter-spacing: inherit;
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
  border-radius: 4px;
}
a.site-header__dropdown-trigger {
  text-decoration: none;
  cursor: pointer;
}
.site-header__dropdown-trigger:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.site-header__dropdown-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-header__dropdown-trigger--active {
  color: var(--text-h);
}
/* Hit area between trigger and panel so hover isn’t dropped */
.site-header__dropdown::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 0.45rem;
  z-index: 1;
}
.site-header__dropdown-panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 1100;
  min-width: 11.5rem;
  max-width: min(18rem, calc(100vw - 2rem));
  padding: 0.35rem 0;
  margin: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--elevated-photo-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.12s ease,
    visibility 0.12s ease;
}
.site-header__dropdown--open .site-header__dropdown-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.site-header__dropdown-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-header__dropdown-list li {
  margin: 0;
}
.site-header__dropdown-link {
  display: block;
  padding: 0.4rem 1rem;
  font-size: 0.85625rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--text-h);
  text-decoration: none;
}
.site-header__dropdown-link:hover {
  color: var(--text-interactive-hover);
  background: color-mix(in srgb, var(--text-h) 5%, transparent);
}
.site-header__end {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem 1.375rem;
  justify-self: end;
}
@media (max-width: 720px) {
  .site-header:not(.site-header--marketing) {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
  }

  .site-header:not(.site-header--marketing) .site-header__start {
    grid-column: 1;
    grid-row: 1;
  }

  .site-header:not(.site-header--marketing) .site-header__end {
    grid-column: 2;
    grid-row: 1;
  }

  .site-header:not(.site-header--marketing) .site-header__center {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}
/* Logged-in workspace shell — primary row (logo | modes or title | theme + user) */
.site-header--workspace {
  --site-header-workspace-control-gap: 0.42rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
}
.site-header__workspace-primary {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 1.1rem;
  width: 100%;
}
/* Station / Viva / Progress workspace routes: logo + controls only */
.site-header__workspace-primary--no-center {
  grid-template-columns: 1fr auto;
}
.site-header--workspace .site-header__start {
  justify-self: start;
}
.site-header--workspace .site-header__workspace-modes {
  justify-self: center;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.85rem 1rem;
  min-width: 0;
}
.site-header--workspace .site-header__page-title-slot,
.site-header--workspace .site-header__workspace-modes {
  transition:
    opacity 0.24s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.24s ease;
}
/* Mic-only mark (≤720px): reveal wordmark on hover/focus and tuck center nav / title aside */
.site-header:has(.site-logo--compact-mark:hover) .site-header__center,
.site-header:has(.site-logo--compact-mark:focus-visible) .site-header__center,
.site-header:has(.site-logo--compact-mark:focus-within) .site-header__center,
.site-header:has(.site-logo--compact-mark:hover) .site-header__page-title-slot,
.site-header:has(.site-logo--compact-mark:focus-visible) .site-header__page-title-slot,
.site-header:has(.site-logo--compact-mark:focus-within) .site-header__page-title-slot,
.site-header:has(.site-logo--compact-mark:hover) .site-header__workspace-modes,
.site-header:has(.site-logo--compact-mark:focus-visible) .site-header__workspace-modes,
.site-header:has(.site-logo--compact-mark:focus-within) .site-header__workspace-modes {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-0.18rem) scale(0.98);
  pointer-events: none;
}
/* Equal spacing: theme ↔ session / a11y / builder settings ↔ account (matches in-slot gap) */
.site-header--workspace .site-header__end {
  justify-self: end;
  gap: var(--site-header-workspace-control-gap);
}
.site-header--workspace .site-header__theme-slot {
  display: flex;
  align-items: center;
  gap: var(--site-header-workspace-control-gap);
  flex: 0 0 auto;
  position: relative;
}
/* Application route: optional session countdown (accessibility “Timer”), left of session info */
.site-header__application-viva-timer {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
  max-width: 0;
  min-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateX(6px);
  transition:
    max-width 0.28s ease,
    opacity 0.22s ease,
    transform 0.28s ease;
  pointer-events: none;
}
.site-header__application-viva-timer--visible {
  max-width: 5.75rem;
  opacity: 1;
  transform: translateX(0);
}
.site-header__application-viva-timer-face {
  font-size: 0.85625rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  white-space: nowrap;
}
@media (prefers-reduced-motion: reduce) {
  .site-header__application-viva-timer {
    transition: opacity 0.15s ease;
    transform: none;
  }

  .site-header__application-viva-timer--visible {
    transform: none;
  }

  .site-header--workspace .site-header__page-title-slot,
  .site-header--workspace .site-header__workspace-modes {
    transition: opacity 0.15s ease;
    transform: none;
  }

  .site-header:has(.site-logo--compact-mark:hover) .site-header__center,
  .site-header:has(.site-logo--compact-mark:focus-visible) .site-header__center,
  .site-header:has(.site-logo--compact-mark:focus-within) .site-header__center,
  .site-header:has(.site-logo--compact-mark:hover) .site-header__page-title-slot,
  .site-header:has(.site-logo--compact-mark:focus-visible) .site-header__page-title-slot,
  .site-header:has(.site-logo--compact-mark:focus-within) .site-header__page-title-slot,
  .site-header:has(.site-logo--compact-mark:hover) .site-header__workspace-modes,
  .site-header:has(.site-logo--compact-mark:focus-visible) .site-header__workspace-modes,
  .site-header:has(.site-logo--compact-mark:focus-within) .site-header__workspace-modes {
    transform: none;
  }
}
.site-header__session-info {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.site-header__session-info-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.12rem;
  height: calc(var(--site-header-slot-h) + 3px);
  margin: 0;
  padding: 1.5px;
  border: 1px solid var(--border);
  border-radius: 9999px;
  color: var(--text-muted);
  background: var(--element-bg);
  cursor: pointer;
  transition: color 0.15s ease;
}
.site-header__session-info-trigger:hover {
  color: var(--text-h);
}
.site-header__session-info--open .site-header__session-info-trigger {
  color: var(--text);
}
.site-header__session-info-icon {
  display: flex;
  width: 1.05rem;
  height: 1.05rem;
}
.site-header__session-info-icon svg {
  width: 100%;
  height: 100%;
}
.site-header__session-info-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-header__session-info-panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 1200;
  width: min(22.5rem, calc(100vw - 2rem));
  padding: 0.65rem 0.72rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition:
    opacity 0.12s ease,
    visibility 0.12s ease,
    transform 0.12s ease;
}
.site-header__session-info-panel p {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--text);
}
.site-header__session-info-panel p + p {
  margin-top: 0.55rem;
}
.site-header__session-info--open .site-header__session-info-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
/* Hover/focus hint under header icon buttons (same box as theme picker tooltip) */
.site-header__control-hint {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 1200;
  padding: 0.35rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--text);
  background: var(--element-bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: var(--elevated-photo-shadow);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease,
    transform 0.15s ease;
}
/* Hover only: focus stays on the trigger after click; :focus-within would keep the hint visible without hover */
.site-header__session-info:hover .site-header__control-hint {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-header__session-info--open .site-header__control-hint,
.site-header__session-info--open:hover .site-header__control-hint,
.site-header__session-info--open:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
/* After trigger click: hide hint until pointer leaves anchor (new hover), like theme picker */
.site-header__session-info--suppress-hint .site-header__control-hint,
.site-header__session-info--suppress-hint:hover .site-header__control-hint,
.site-header__session-info--suppress-hint:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
/* Application route: accessibility options (subtitles, timer) between session info and theme.
   Builder session menu (/viva-builder, /station-builder) reuses the same chrome. */
.site-header__app-accessibility,
.site-header__builder-session {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
/* Station Voice / Written segmented control — "Mode" + icons; expands to Voice/Written */
.site-header__station-mode {
  position: relative;
  display: inline-flex;
  align-items: stretch;
  flex: 0 0 auto;
  height: calc(var(--site-header-slot-h) + 6px);
  padding: 2px;
  border: 1px solid var(--border);
  border-radius: 9999px;
  background: color-mix(in srgb, var(--element-bg) 88%, var(--text-h) 4%);
  box-sizing: border-box;
}
.site-header__station-mode-caption {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  max-width: 3.25rem;
  margin: 0;
  padding: 0 0.2rem 0 0.55rem;
  overflow: hidden;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  white-space: nowrap;
  color: var(--text-muted);
  opacity: 1;
  transition:
    max-width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.18s ease;
}
.site-header__station-mode:hover .site-header__station-mode-caption,
.site-header__station-mode:focus-within .site-header__station-mode-caption {
  max-width: 0;
  padding-left: 0;
  padding-right: 0;
  opacity: 0;
}
.site-header__station-mode-switch {
  position: relative;
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  flex: 0 0 auto;
  width: 4.5rem;
  min-width: 4.5rem;
  transition:
    width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    min-width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.site-header__station-mode:hover .site-header__station-mode-switch,
.site-header__station-mode:focus-within .site-header__station-mode-switch {
  width: 11rem;
  min-width: 11rem;
}
.site-header__station-mode-thumb {
  position: absolute;
  inset: 0 auto 0 0;
  width: 50%;
  border-radius: 9999px;
  background: var(--surface);
  box-shadow:
    0 1px 2px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 0 0 1px color-mix(in srgb, var(--border) 70%, transparent);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  z-index: 0;
}
.site-header__station-mode-thumb--written {
  transform: translateX(100%);
}
.site-header__station-mode-option {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  height: 100%;
  min-height: 0;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1;
  transition:
    color 0.15s ease,
    gap 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.site-header__station-mode:hover .site-header__station-mode-option,
.site-header__station-mode:focus-within .site-header__station-mode-option {
  gap: 0.32rem;
  padding: 0 0.5rem;
}
.site-header__station-mode-option:hover {
  color: var(--text-h);
}
.site-header__station-mode-option--on {
  color: var(--text-h);
}
.site-header__station-mode-option:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.site-header__station-mode-option-art {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  line-height: 0;
}
.site-header__station-mode-art {
  display: block;
  width: 100%;
  height: 100%;
}
.site-header__station-mode-option-label {
  display: inline-flex;
  align-items: center;
  max-width: 0;
  margin: 0;
  overflow: hidden;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  white-space: nowrap;
  opacity: 0;
  transition:
    max-width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.2s ease;
}
.site-header__station-mode:hover .site-header__station-mode-option-label,
.site-header__station-mode:focus-within .site-header__station-mode-option-label {
  max-width: 4.25rem;
  opacity: 1;
}
@media (max-width: 639px) {
  .site-header__station-mode:hover .site-header__station-mode-caption,
  .site-header__station-mode:focus-within .site-header__station-mode-caption {
    max-width: 3.25rem;
    padding: 0 0.2rem 0 0.55rem;
    opacity: 1;
  }

  .site-header__station-mode:hover .site-header__station-mode-switch,
  .site-header__station-mode:focus-within .site-header__station-mode-switch {
    width: 4.5rem;
    min-width: 4.5rem;
  }

  .site-header__station-mode:hover .site-header__station-mode-option,
  .site-header__station-mode:focus-within .site-header__station-mode-option {
    gap: 0;
    padding: 0;
  }

  .site-header__station-mode-option-label {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-header__station-mode-caption,
  .site-header__station-mode-switch,
  .site-header__station-mode-option,
  .site-header__station-mode-option-label,
  .site-header__station-mode-thumb {
    transition: none;
  }
}
.site-header__app-accessibility-trigger,
.site-header__builder-session-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.12rem;
  height: calc(var(--site-header-slot-h) + 3px);
  margin: 0;
  padding: 1.5px;
  border: 1px solid var(--border);
  border-radius: 9999px;
  color: var(--text-muted);
  background: var(--element-bg);
  cursor: pointer;
  transition: color 0.15s ease;
}
.site-header__app-accessibility-trigger:hover,
.site-header__builder-session-trigger:hover {
  color: var(--text-h);
}
.site-header__app-accessibility--open .site-header__app-accessibility-trigger,
.site-header__builder-session--open .site-header__builder-session-trigger {
  color: var(--text);
}
.site-header__app-accessibility-trigger-icon,
.site-header__builder-session-trigger-icon {
  display: flex;
  width: 1.05rem;
  height: 1.05rem;
}
.site-header__app-accessibility-trigger-svg,
.site-header__builder-session-trigger-svg {
  width: 100%;
  height: 100%;
}
.site-header__app-accessibility-trigger:focus-visible,
.site-header__builder-session-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-header__app-accessibility-panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 1200;
  min-width: 12.5rem;
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition:
    opacity 0.12s ease,
    visibility 0.12s ease,
    transform 0.12s ease;
}
.site-header__app-accessibility--open .site-header__app-accessibility-panel,
.site-header__builder-session--open .site-header__app-accessibility-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.site-header__app-accessibility:hover .site-header__control-hint,
.site-header__builder-session:hover .site-header__control-hint {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-header__app-accessibility--open .site-header__control-hint,
.site-header__app-accessibility--open:hover .site-header__control-hint,
.site-header__app-accessibility--open:focus-within .site-header__control-hint,
.site-header__builder-session--open .site-header__control-hint,
.site-header__builder-session--open:hover .site-header__control-hint,
.site-header__builder-session--open:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
.site-header__app-accessibility--suppress-hint .site-header__control-hint,
.site-header__app-accessibility--suppress-hint:hover .site-header__control-hint,
.site-header__app-accessibility--suppress-hint:focus-within .site-header__control-hint,
.site-header__builder-session--suppress-hint .site-header__control-hint,
.site-header__builder-session--suppress-hint:hover .site-header__control-hint,
.site-header__builder-session--suppress-hint:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
.site-header__app-accessibility-row {
  display: grid;
  grid-template-columns: 1.2rem minmax(0, 1fr) 2.35rem;
  align-items: center;
  gap: 0.45rem 0.55rem;
  padding: 0.38rem 0.2rem;
}
.site-header__app-accessibility-row + .site-header__app-accessibility-row {
  border-top: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
  margin-top: 0.12rem;
  padding-top: 0.5rem;
}
.site-header__app-accessibility-row-lead {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.2rem;
  height: 1.2rem;
  color: var(--text-h);
}
.site-header__app-accessibility-option-t {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  font-family: system-ui, sans-serif;
}
.site-header__app-accessibility-option-svg {
  width: 1.05rem;
  height: 1.05rem;
}
.site-header__app-accessibility-row-label {
  font-size: 0.8rem;
  line-height: 1.25;
  color: var(--text);
}
.site-header__app-accessibility-switch {
  position: relative;
  flex-shrink: 0;
  justify-self: end;
  width: 2.35rem;
  height: 1.28rem;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--border) 90%, var(--text-h));
  border-radius: 9999px;
  background: color-mix(in srgb, var(--text-h) 8%, var(--element-bg));
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}
.site-header__app-accessibility-switch:hover {
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
}
.site-header__app-accessibility-switch:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.site-header__app-accessibility-switch-thumb {
  position: absolute;
  top: 50%;
  left: 2px;
  width: 0.92rem;
  height: 0.92rem;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text-h) 18%, transparent);
  transform: translateY(-50%);
  transition: transform 0.15s ease;
  pointer-events: none;
}
.site-header__app-accessibility-switch--on {
  background: color-mix(in srgb, var(--text-h) 42%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 45%, var(--border));
}
.site-header__app-accessibility-switch--on .site-header__app-accessibility-switch-thumb {
  transform: translate(1.05rem, -50%);
}
.site-header__app-accessibility-switch--locked,
.site-header__app-accessibility-switch--locked:hover {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
  border-color: color-mix(in srgb, var(--border) 90%, var(--text-h));
}
.site-header__app-accessibility-row--locked .site-header__app-accessibility-row-label {
  opacity: 0.72;
}
.site-header__app-accessibility-row--locked {
  position: relative;
}
.site-header__builder-session-row-hint {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 1300;
  padding: 0.3rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--text);
  background: var(--element-bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: var(--elevated-photo-shadow);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(2px);
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease,
    transform 0.15s ease;
}
.site-header__app-accessibility-row--locked:hover .site-header__builder-session-row-hint,
.site-header__app-accessibility-row--locked:focus-within .site-header__builder-session-row-hint,
.site-header__builder-voice-row--min-selected:hover .site-header__builder-session-row-hint,
.site-header__builder-voice-row--min-selected:focus-within .site-header__builder-session-row-hint {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-header__builder-session-panel {
  max-height: min(70vh, 28rem);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.site-header__builder-voice-row {
  grid-template-columns: minmax(0, 1fr) 2.35rem;
}
.site-header__builder-session-voices-loading {
  margin: 0;
  padding: 0.2rem 0.2rem;
  font-size: 0.75rem;
  color: var(--text);
  opacity: 0.75;
}
.site-header__workspace-mode-link {
  font-size: 0.85625rem;
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 4px;
}
.site-header__workspace-mode-link--outlined {
  padding: 0.3rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 28%, var(--border));
  border-radius: 9999px;
  font-weight: 600;
  color: var(--text-h);
}
.site-header__workspace-mode-link:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.site-header__workspace-mode-link--outlined:hover {
  color: var(--text-h);
  border-color: color-mix(in srgb, var(--text-h) 42%, var(--border));
  text-decoration: none;
}
.site-header__workspace-mode-link:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-header__workspace-mode-link--active {
  color: var(--text-h);
  font-weight: 600;
}
/* Workspace pages with a route title in the shared header */
.site-header--workspace-viva-builder .site-header__workspace-primary {
  grid-template-columns: 1fr auto 1fr;
  /* Centre logo (wordmark or mic), page title / feedback toggle, and theme + account on one axis */
  align-items: center;
}
.site-header--workspace-viva-builder .site-header__start {
  grid-column: 1;
  justify-self: start;
}
.site-header--workspace-viva-builder .site-header__page-title-slot {
  grid-column: 2;
  justify-self: center;
  min-width: 0;
}
.site-header__page-title-slot--with-nav {
  display: flex;
  align-items: center;
  gap: 0.75rem 1rem;
}
.site-header--workspace-viva-builder .site-header__end {
  grid-column: 3;
  justify-self: end;
  align-self: center;
}
.site-header__page-heading {
  margin: 0;
  font-family: var(--heading);
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: -0.029em;
  line-height: 1.35;
  color: var(--text-h);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(55vw, 18rem);
}
/* /feedback — same affordance as former in-page title toggle */
.site-header__feedback-scope-toggle {
  margin: 0;
  padding: 0;
  max-width: 100%;
  appearance: none;
  background: none;
  border: none;
  border-radius: 6px;
  font: inherit;
  font-weight: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: inherit;
  text-align: center;
  cursor: pointer;
  transition: color 0.2s ease;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-header__feedback-scope-toggle:hover {
  color: var(--text-interactive-hover);
}
.site-header__feedback-scope-toggle:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
/* Workspace header account: icon + shared `.site-header__control-hint` label (see `WorkspaceUserAccount`) */
.site-header__user-account {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
.site-header__user-account-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.12rem;
  height: calc(var(--site-header-slot-h) + 3px);
  margin: 0;
  padding: 1.5px;
  border: 1px solid var(--border);
  border-radius: 9999px;
  color: var(--text-muted);
  background: var(--element-bg);
  cursor: pointer;
  transition: color 0.15s ease;
}
.site-header__user-account-trigger:hover {
  color: var(--text-h);
}
.site-header__user-account-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-header__user-account--open .site-header__user-account-trigger {
  color: var(--text);
}
.site-header__user-account-icon {
  display: flex;
  width: 1.05rem;
  height: 1.05rem;
}
.site-header__user-account-icon svg {
  width: 100%;
  height: 100%;
}
.site-header__user-account:hover .site-header__control-hint {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-header__user-account--suppress-hint .site-header__control-hint,
.site-header__user-account--suppress-hint:hover .site-header__control-hint,
.site-header__user-account--suppress-hint:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
.site-header__user-account--open .site-header__control-hint,
.site-header__user-account--open:hover .site-header__control-hint,
.site-header__user-account--open:focus-within .site-header__control-hint {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
/* Workspace account: full-screen dimmed backdrop + large tile (see `WorkspaceUserAccount`) */
.account-modal {
  position: fixed;
  inset: 0;
  z-index: 1600;
  box-sizing: border-box;
}
.account-modal__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: color-mix(in srgb, var(--text-h) 52%, transparent);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.account-modal__frame {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  pointer-events: none;
}
.account-modal__tile {
  pointer-events: auto;
  box-sizing: border-box;
  width: min(100%, min(92vw, 44rem));
  max-height: min(88vh, 44rem);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 1.15rem 1.2rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
}
.account-modal__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1.15rem;
}
.account-modal__title {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-h);
}
.account-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
  background: transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.account-modal__close:hover {
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
}
.account-modal__close:focus,
.account-modal__close:focus-visible {
  outline: none;
}
.account-modal__body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.1rem 1.25rem;
  align-items: start;
}
@media (max-width: 520px) {
  .account-modal__body {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .account-modal__fields {
    width: 100%;
  }

  .account-modal__dd--subscription {
    justify-content: center;
    text-align: center;
  }
}
.account-modal__photo-wrap {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.account-modal__photo-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.account-modal__photo-button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: inherit;
}
.account-modal__photo-button:focus {
  outline: none;
}
.account-modal__photo-button:focus-visible .account-modal__photo,
.account-modal__photo-button:focus-visible .account-modal__photo--placeholder {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 26%, transparent);
}
.account-modal__photo-button:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.account-modal__photo-hint {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
}
.account-modal__photo-button:hover:not(:disabled) .account-modal__photo-hint,
.account-modal__photo-button:focus-visible .account-modal__photo-hint {
  color: var(--text-interactive-hover);
}
.account-modal__photo-error {
  margin: 0;
  max-width: 12rem;
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: center;
  color: #7f1d1d;
}
.account-modal__photo {
  display: block;
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 9999px;
  object-fit: cover;
  border: 1px solid var(--border);
  background: var(--element-bg);
}
.account-modal__photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}
.account-modal__photo-initials {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--text-h);
  letter-spacing: 0.03em;
}
.account-modal__fields {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}
.account-modal__field {
  margin: 0;
}
.account-modal__dt {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.account-modal__dd {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.35;
  color: var(--text);
  word-break: break-word;
}
.account-modal__input {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
  font-size: 0.95rem;
  color: var(--text);
  background: var(--element-bg);
}
.account-modal__input:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}
.account-modal__profile-error {
  margin-top: 0.75rem;
  max-width: none;
  text-align: left;
}
.account-modal__profile-success {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #166534;
}
.account-modal__empty {
  color: var(--text-muted);
  font-style: italic;
}
.account-modal__hint {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--text-muted);
}
.account-modal__dd--subscription {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.75rem;
}
.account-modal__subscription-label {
  min-width: 0;
}
.account-modal__upgrade {
  flex: 0 0 auto;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-h);
  text-decoration: none;
  white-space: nowrap;
  padding: 0.28rem 0.55rem;
  border-radius: 7px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--text-h) 5%, transparent);
}
.account-modal__upgrade:hover {
  color: var(--text-interactive-hover);
  border-color: color-mix(in srgb, var(--text-h) 28%, var(--border));
  text-decoration: none;
}
.account-modal__upgrade:focus,
.account-modal__upgrade:focus-visible {
  outline: none;
}
.account-modal__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem 0.65rem;
  margin-top: 1.35rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--border);
}
.account-modal__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.4rem 1rem;
  border-radius: 8px;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease;
}
.account-modal__btn--secondary {
  border: 1px solid var(--border);
  color: var(--text);
  background: var(--element-bg);
}
.account-modal__btn--secondary:hover {
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
  color: var(--text-h);
}
.account-modal__btn--secondary:focus,
.account-modal__btn--secondary:focus-visible {
  outline: none;
}
.account-modal__btn--primary {
  border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--border));
  color: var(--text-h);
  background: color-mix(in srgb, var(--accent) 14%, var(--element-bg));
}
.account-modal__btn--primary:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--border));
  background: color-mix(in srgb, var(--accent) 22%, var(--element-bg));
}
.account-modal__btn--primary:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.account-modal__btn--primary:focus,
.account-modal__btn--primary:focus-visible {
  outline: none;
}
.account-modal__btn--danger {
  border: 1px solid color-mix(in srgb, #c53030 45%, var(--border));
  color: #c53030;
  background: color-mix(in srgb, #c53030 6%, transparent);
}
.account-modal__btn--danger:hover {
  background: color-mix(in srgb, #c53030 12%, transparent);
}
.account-modal__btn--danger:focus,
.account-modal__btn--danger:focus-visible {
  outline: none;
}
/* Avatar crop modal (opens above account modal) */
.avatar-crop-modal {
  position: fixed;
  inset: 0;
  z-index: 1700;
  box-sizing: border-box;
}
.avatar-crop-modal__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: color-mix(in srgb, var(--text-h) 58%, transparent);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.avatar-crop-modal__backdrop:disabled {
  cursor: not-allowed;
}
.avatar-crop-modal__frame {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  pointer-events: none;
}
.avatar-crop-modal__tile {
  pointer-events: auto;
  box-sizing: border-box;
  width: min(100%, min(92vw, 28rem));
  max-height: min(92vh, 40rem);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 1.15rem 1.2rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
}
.avatar-crop-modal__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.avatar-crop-modal__title {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-h);
}
.avatar-crop-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
  background: transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.avatar-crop-modal__close:hover:not(:disabled) {
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
}
.avatar-crop-modal__close:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.avatar-crop-modal__close:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.avatar-crop-modal__hint {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--text-muted);
}
.avatar-crop-modal__crop-area {
  position: relative;
  width: 100%;
  height: min(52vw, 18rem);
  margin-bottom: 0.85rem;
  border-radius: 10px;
  overflow: hidden;
  background: var(--element-bg);
  border: 1px solid var(--border);
}
.avatar-crop-modal__zoom-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.avatar-crop-modal__zoom {
  display: block;
  width: 100%;
  margin: 0 0 0.85rem;
  accent-color: var(--accent);
}
.avatar-crop-modal__error {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: #7f1d1d;
}
.avatar-crop-modal__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem 0.65rem;
  padding-top: 0.15rem;
}
.avatar-crop-modal__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.4rem 1rem;
  border-radius: 8px;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition:
    color 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease;
}
.avatar-crop-modal__btn:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.avatar-crop-modal__btn--secondary {
  border: 1px solid var(--border);
  color: var(--text);
  background: var(--element-bg);
}
.avatar-crop-modal__btn--secondary:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
  color: var(--text-h);
}
.avatar-crop-modal__btn--primary {
  border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--border));
  color: var(--surface);
  background: var(--accent);
}
.avatar-crop-modal__btn--primary:hover:not(:disabled) {
  background: color-mix(in srgb, var(--accent) 88%, var(--text-h));
}
.avatar-crop-modal__btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
@media (max-width: 720px) {
  .site-header__workspace-primary {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    row-gap: 0.35rem;
  }

  /* Let the logo link shrink so wordmark can ellipsis beside the mic */
  .site-header--workspace .site-header__start {
    min-width: 0;
  }

  .site-header--workspace:not(.site-header--workspace-viva-builder) .site-header__start {
    grid-column: 1;
    grid-row: 1;
  }

  .site-header--workspace:not(.site-header--workspace-viva-builder) .site-header__end {
    grid-column: 2;
    grid-row: 1;
  }

  .site-header--workspace:not(.site-header--workspace-viva-builder) .site-header__workspace-modes {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
  }

  .site-header__workspace-primary--no-center {
    grid-template-rows: auto;
    row-gap: 0;
  }

  .site-header__workspace-primary--no-center .site-header__start {
    grid-column: 1;
    grid-row: 1;
  }

  .site-header__workspace-primary--no-center .site-header__end {
    grid-column: 2;
    grid-row: 1;
  }

  .site-header--workspace-viva-builder .site-header__workspace-primary {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    row-gap: 0.35rem;
    align-items: center;
  }

  .site-header--workspace-viva-builder .site-header__start {
    grid-column: 1;
    grid-row: 1;
  }

  .site-header--workspace-viva-builder .site-header__end {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }

  .site-header--workspace-viva-builder:not(.site-header--workspace-feedback)
    .site-header__page-title-slot {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
  }

  /* /feedback — one row with mic | Feedback (ellipsis) | theme + account */
  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__workspace-primary {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto;
    row-gap: 0;
    align-items: center;
  }

  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__start {
    grid-column: 1;
    grid-row: 1;
  }

  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__page-title-slot {
    grid-column: 2;
    grid-row: 1;
    justify-self: stretch;
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__end {
    grid-column: 3;
    grid-row: 1;
    flex-shrink: 0;
  }

  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__page-heading--feedback {
    max-width: 100%;
    width: 100%;
    min-width: 0;
    text-align: center;
  }

  .site-header--workspace-viva-builder.site-header--workspace-feedback
    .site-header__feedback-scope-toggle {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .site-header__page-title-slot--with-nav {
    flex-wrap: wrap;
    justify-content: center;
  }

  .site-header__page-heading {
    max-width: min(92vw, 20rem);
    font-size: clamp(1.1rem, 4.5vw, 1.35rem);
  }
}
.site-logo {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  min-width: 0;
}
.site-logo:hover {
  color: var(--text-interactive-hover);
}
.site-logo__mark-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.site-logo__mark-svg {
  width: 1.2rem;
  height: 1.35rem;
  display: block;
}
.site-logo__wordmark {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  transition:
    max-width 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.24s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (max-width: 720px) {
  .site-logo--compact-mark .site-logo__wordmark {
    max-width: 0;
    opacity: 0;
    transform: translateX(-0.25rem);
  }

  .site-logo--compact-mark:hover .site-logo__wordmark,
  .site-logo--compact-mark:focus-visible .site-logo__wordmark,
  .site-logo--compact-mark:focus-within .site-logo__wordmark {
    max-width: 9rem;
    opacity: 1;
    transform: translateX(0);
  }

  /* Same outer height as `.site-header__signin` so the mic lines up with the pill row */
  .site-header--marketing .site-logo--compact-mark {
    min-height: calc(var(--site-header-slot-h) + 3px);
    box-sizing: border-box;
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-header__center,
  .site-logo__wordmark {
    transition: opacity 0.15s ease;
    transform: none;
  }

  .site-logo--compact-mark .site-logo__wordmark,
  .site-logo--compact-mark:hover .site-logo__wordmark,
  .site-logo--compact-mark:focus-visible .site-logo__wordmark,
  .site-logo--compact-mark:focus-within .site-logo__wordmark {
    transform: none;
  }
}
/* Feedback header title: shorter label, smaller type; toggle unchanged */
.site-header__page-heading--feedback {
  font-size: clamp(0.92rem, 3vw, 1.2rem);
  line-height: 1.25;
  max-width: min(40vw, 9rem);
}
.site-header__page-heading--feedback .site-header__feedback-scope-toggle {
  font-size: inherit;
}
/*
 * Sign in: same outer height as college picker (slot 1.62rem + 2×2px padding),
 * same colours and type as primary pill CTAs (.btn--primary).
 */
.site-header__signin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  box-sizing: border-box;
  height: calc(var(--site-header-slot-h) + 3px);
  min-height: calc(var(--site-header-slot-h) + 3px);
  padding: 0 0.68rem;
  border: none;
  border-radius: 9999px;
  font: inherit;
  font-size: 0.925rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  color: var(--cta-pill-fg);
  background: var(--cta-pill-bg);
  box-shadow: none;
  cursor: pointer;
  transition:
    background 0.28s ease,
    color 0.2s ease;
}
.site-header__signin:hover {
  color: var(--cta-pill-fg-hover);
  background: var(--cta-pill-bg-hover);
}
.site-header__signin:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
/* Reserves one row in the header; pill grows downward from this corner (does not change header height) */
.site-college-picker-anchor {
  --site-college-slot-h: var(--site-header-slot-h);

  position: relative;
  flex: 0 0 auto;
  width: 2.12rem;
  height: calc(var(--site-college-slot-h) + 3px);
  margin-right: 0.35rem;
  box-sizing: border-box;
  overflow: visible;
}
/* Segmented vertical pill — same top/left when collapsed or open so it expands & retracts in place */
.site-college-picker {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  padding: 1.5px;
  border-radius: 9999px;
  border: 1px solid var(--border);
  background: var(--element-bg);
  box-sizing: border-box;
}
.site-college-picker--collapsed,
.site-college-picker--open {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: none;
}
.site-college-picker--collapsed {
  justify-content: flex-start;
  gap: 0;
}
.site-college-picker--open {
  z-index: 1100;
  justify-content: flex-start;
  gap: 1px;
  box-shadow: var(--elevated-photo-shadow);
}
.site-college-picker__slot {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  overflow: hidden;
  max-height: var(--site-college-slot-h);
  opacity: 1;
  transition:
    max-height 0.34s cubic-bezier(0.33, 1, 0.68, 1),
    opacity 0.26s ease;
}
.site-college-picker--collapsed .site-college-picker__slot:not(.site-college-picker__slot--active) {
  max-height: 0;
  min-height: 0;
  opacity: 0;
  pointer-events: none;
}
.site-college-picker--collapsed .site-college-picker__slot--active {
  max-height: var(--site-college-slot-h);
}
.site-college-picker__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.2rem 0.28rem;
  border: none;
  border-radius: 9999px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: color 0.15s ease;
}
.site-college-picker__btn:hover:not(.site-college-picker__btn--active) {
  color: var(--text-h);
}
.site-college-picker__btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.site-college-picker__btn--active {
  color: var(--text);
  background: transparent;
  box-shadow: none;
}
.site-college-picker__icon {
  display: flex;
  width: 1.05rem;
  height: 1.05rem;
}
.site-college-picker__icon svg {
  width: 100%;
  height: 100%;
}
.site-college-picker__tooltip {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 1200;
  padding: 0.35rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--text);
  background: var(--element-bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: var(--elevated-photo-shadow);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease,
    transform 0.15s ease;
}
.site-college-picker-anchor:hover .site-college-picker__tooltip,
.site-college-picker-anchor:focus-within .site-college-picker__tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
/* After click opens the menu, hide the hint even if pointer is still over the anchor */
.site-college-picker-anchor:has(.site-college-picker--open) .site-college-picker__tooltip {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
/* After choosing an option, hide hint until pointer leaves or focus leaves the anchor */
.site-college-picker-anchor--suppress-hint .site-college-picker__tooltip,
.site-college-picker-anchor--suppress-hint:hover .site-college-picker__tooltip,
.site-college-picker-anchor--suppress-hint:focus-within .site-college-picker__tooltip {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
}
/* Footer (and shared pattern with header college picker): segmented control in a pill */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  padding: 2px;
  border-radius: 9999px;
  border: 1px solid var(--border);
  background: var(--element-bg);
  gap: 1px;
}
.theme-toggle__btn {
  margin: 0;
  padding: 0.2rem 0.28rem;
  border: none;
  border-radius: 9999px;
  font: inherit;
  color: var(--text-muted);
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition:
    color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}
.theme-toggle__btn:hover:not(.theme-toggle__btn--active) {
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 9%, transparent);
}
.theme-toggle__btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.theme-toggle__btn--active {
  color: var(--toggle-selected-fg);
  background: var(--toggle-selected-bg);
  box-shadow: var(--toggle-selected-shadow);
  transition: none;
}
.theme-toggle__icon {
  display: flex;
  width: 1.15rem;
  height: 1.15rem;
}
.theme-toggle__svg {
  width: 100%;
  height: 100%;
}
.site-footer-bar {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-left: calc(-1 * (var(--page-inline) + env(safe-area-inset-left, 0px)));
  margin-right: calc(-1 * (var(--page-inline) + env(safe-area-inset-right, 0px)));
  padding: 1.25rem calc(var(--page-inline) + env(safe-area-inset-right, 0px)) 1.5rem
    calc(var(--page-inline) + env(safe-area-inset-left, 0px));
  background: var(--bg);
}
.site-footer-bar--in-index {
  margin-inline: 0;
  margin-top: 2rem;
  padding: 1.25rem 0 0;
  background: transparent;
}
.site-footer-bar__legal {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.site-footer-bar__copyright,
.site-footer-bar__abn {
  margin: 0;
  font-size: 0.83125rem;
  color: var(--text-muted);
}
.site-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Fixed header + prior top gap; content scrolls under header */
  padding-top: calc(2rem + var(--site-header-clearance) + env(safe-area-inset-top, 0px));
  padding-right: calc(var(--page-inline) + env(safe-area-inset-right, 0px));
  padding-bottom: 0;
  padding-left: calc(var(--page-inline) + env(safe-area-inset-left, 0px));
}
/* viva-builder ?embed=1 — no workspace header; drop main top padding that assumed fixed header */
.layout--workspace-no-header .site-main {
  padding-top: max(1rem, env(safe-area-inset-top, 0px));
}
/* Marketing preview iframes: header is decorative; only the theme toggle stays interactive. */
.layout:has(.site-header--marketing-iframe-embed) {
  --page-inline-factor: 1;
}
/* Narrow marketing iframe (`embedMobile=1`): minimal horizontal inset inside scaled chrome. */
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile {
  --page-inline: 4px;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile .site-main {
  padding-top: calc(var(--site-header-chrome-h) + env(safe-area-inset-top, 0px));
  padding-inline: 4px;
}
.site-header--marketing-iframe-embed .site-header__start,
.site-header--marketing-iframe-embed .site-header__page-title-slot,
.site-header--marketing-iframe-embed .site-header__end > :not(.site-header__theme-slot),
.site-header--marketing-iframe-embed
  .site-header__theme-slot
  > :not(.site-college-picker-anchor) {
  pointer-events: none;
  cursor: default;
}
.site-header--marketing-iframe-embed .site-header__theme-slot .site-college-picker-anchor,
.site-header--marketing-iframe-embed .site-header__theme-slot .site-college-picker-anchor * {
  cursor: pointer;
}
/* Grow route content so the footer bar stays at the bottom of the viewport on short pages */
.site-main > :first-child {
  flex: 1 1 auto;
  min-height: 0;
}
/* Standalone pages — keep space below content */
.site-main > .page {
  padding-bottom: 3rem;
}
.page {
  max-width: 42rem;
}
/* Better mobile: tighter column on phones, reduced padding for readability */
@media (max-width: 480px) {
  .page {
    max-width: 100%;
    padding-inline: 1rem;
  }

  .page p {
    line-height: 1.6;
    font-size: 0.95rem;
  }
}
.page h1 {
  margin-top: 0;
}
.page p {
  margin: 0 0 1rem;
  line-height: 1.55;
}
.page code {
  font-size: 0.89em;
}
/* Terms / Privacy — compact left nav so body sits ~50% further left vs former 1:2 grid */
.page.legal-page {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  box-sizing: border-box;
}
.legal-page__layout {
  --legal-nav-w: 12rem;
  --legal-col-gap: clamp(1rem, 2.5vw, 2rem);

  display: grid;
  grid-template-columns: minmax(0, var(--legal-nav-w)) minmax(0, 1fr);
  gap: var(--legal-col-gap);
  align-items: start;
}
@media (max-width: 640px) {
  .legal-page__layout {
    grid-template-columns: 1fr;
  }
}
.legal-page__nav {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding-top: 0.15rem;
}
@media (min-width: 641px) {
  .legal-page__nav {
    position: sticky;
    top: calc(2rem + var(--site-header-clearance) + env(safe-area-inset-top, 0px));
  }
}
.legal-page__nav-link {
  font-size: 0.9125rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--text);
  text-decoration: none;
}
.legal-page__nav-link:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.legal-page__nav-link[aria-current='page'] {
  color: var(--text-h);
  font-weight: 600;
}
.legal-page__body {
  min-width: 0;
}
/* Match right inset to nav column + gap so prose isn’t flush to the main column edge */
@media (min-width: 641px) {
  .legal-page__body {
    padding-right: calc(var(--legal-nav-w) + var(--legal-col-gap));
  }
}
.page.legal-page h2 {
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 1.75rem 0 0.5rem;
  color: var(--text-h);
}
.page.legal-page h3 {
  font-size: 0.9875rem;
  font-weight: 600;
  margin: 1.25rem 0 0.4rem;
  color: var(--text-h);
}
.page.legal-page section:first-of-type h2 {
  margin-top: 1.25rem;
}
.page.legal-page ul {
  margin: 0 0 1rem;
  padding-left: 1.35rem;
  line-height: 1.55;
}
.page.legal-page li {
  margin-bottom: 0.35rem;
}
.legal-page__body a {
  color: var(--accent);
}
.legal-page__body a:hover {
  color: var(--accent-hover);
}
/* Shared button primitives */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.15rem;
  border-radius: 8px;
  font: inherit;
  font-size: 0.9125rem;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
}
.btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
/* Primary = marketing pill (--cta-pill-*); use on <button> or <a> */
.btn--primary {
  border-radius: 9999px;
  padding: 0.55rem 1.595rem;
  font-size: 1.00375rem;
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
  box-shadow: none;
  transition:
    background 0.28s ease,
    color 0.2s ease;
}
.btn--primary:hover {
  background: var(--cta-pill-bg-hover);
  color: var(--cta-pill-fg-hover);
}
/* Secondary = bordered ghost; use on <button> or <a> */
.btn--secondary {
  color: var(--text-h);
  background: transparent;
  border: 1px solid var(--border);
}
.btn--secondary:hover {
  background: var(--element-bg);
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
  color: var(--text-h);
}
a.btn--secondary:visited {
  color: var(--text-h);
}
/* First visit: full-page college picker with optional “peek” through scrim on hover/focus. */
@property --peek-scale {
  syntax: '<number>';
  inherits: true;
  initial-value: 0;
}
.home-college-landing {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: max(1rem, env(safe-area-inset-top, 0px))
    calc(var(--page-inline) + env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px))
    calc(var(--page-inline) + env(safe-area-inset-left, 0px));
  /* Must stay transparent so masked “holes” in the scrim show the page beneath, not this layer */
  background: transparent;
  isolation: isolate;
  transition: opacity 0.5s ease;
}
.home-college-landing--exiting {
  opacity: 0;
  pointer-events: none;
}
/* Full-viewport scrim behind choices; radial mask = more transparent at label, opaque toward edges */
.home-college-landing__scrim {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* Opaque fill so non-peek isn’t washed out by alpha in `--bg`; parent `.home-college-landing` stays transparent so masked regions reveal `.home-body` */
  background: rgb(from var(--bg) r g b / 1);
  -webkit-mask-image: none;
  mask-image: none;
}
/* Position follows pointer in JS (no transition); scale eases open / shut */
.home-college-landing__scrim--peek {
  transition: --peek-scale 5s ease-out;
  /* Never use a literal 0px circle — some engines treat it as an unmasked full viewport flash. */
  -webkit-mask-image: radial-gradient(
    circle max(1px, calc(min(39.6vmin, 61.2vw) * var(--peek-scale, 0))) at var(--peek-x-pct, 50%)
      var(--peek-y-pct, 50%),
    transparent 0%,
    rgba(255, 255, 255, 0.2) 42%,
    rgba(255, 255, 255, 0.75) 78%,
    #fff 100%
  );
  mask-image: radial-gradient(
    circle max(1px, calc(min(39.6vmin, 61.2vw) * var(--peek-scale, 0))) at var(--peek-x-pct, 50%)
      var(--peek-y-pct, 50%),
    transparent 0%,
    rgba(255, 255, 255, 0.2) 42%,
    rgba(255, 255, 255, 0.75) 78%,
    #fff 100%
  );
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}
.home-college-landing__scrim--peek.home-college-landing__scrim--peek-retract {
  transition: --peek-scale 0.5s cubic-bezier(0.4, 0, 1, 1);
}
.home-college-landing__inner {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  text-align: center;
}
/* Plain text controls — no focus “box”; keyboard users get underline */
.home-college-landing-overlay__choices {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(2.5rem, 7.6vw, 3.6rem);
  width: 100%;
  pointer-events: auto;
}
.home-college-landing-overlay__choice {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.05rem, 2.8vw, 1.3rem);
  font-weight: 500;
  letter-spacing: 0.24em;
  line-height: 1.15;
  color: var(--text-h);
  background: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
  padding: 0.12em 0;
  box-shadow: none;
  outline: none;
  text-shadow: none;
  transition:
    color 0.28s ease,
    text-shadow 0.28s ease,
    transform 0.28s ease,
    letter-spacing 0.28s ease;
}
/* Restore slight horizontal stagger from the earlier design. */
.home-college-landing-overlay__choice--acem {
  transform: translateX(clamp(-1.1rem, -5vw, -0.5rem));
}
.home-college-landing-overlay__choice--anzca {
  transform: translateX(0);
}
.home-college-landing-overlay__choice:hover {
  color: var(--text-choice-hover);
  letter-spacing: 0.26em;
  text-shadow:
    0 0.06em 0.12em color-mix(in srgb, var(--text-choice-hover) 22%, transparent),
    0 0.12em 0.35em color-mix(in srgb, var(--text-h) 12%, transparent);
}
.home-college-landing-overlay__choice--acem:hover {
  transform: translateX(clamp(-1.1rem, -5vw, -0.5rem)) scale(1.035);
}
.home-college-landing-overlay__choice--anzca:hover {
  transform: translateX(0) scale(1.035);
}
.home-college-landing-overlay__choice:focus {
  outline: none;
  box-shadow: none;
}
.home-college-landing-overlay__choice:focus-visible {
  outline: none;
  color: var(--text-h);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.home-college-landing-overlay__choice:focus-visible:not(:hover) {
  letter-spacing: 0.24em;
  text-shadow: none;
}
.home-college-landing-overlay__choice--acem:focus-visible:not(:hover) {
  transform: translateX(clamp(-1.1rem, -5vw, -0.5rem));
}
.home-college-landing-overlay__choice--anzca:focus-visible:not(:hover) {
  transform: translateX(0);
}
/* Below Tailwind `sm` (640px): horizontal offsets can cause horizontal scroll on narrow notches */
@media (max-width: 639px) {
  .home-college-landing-overlay__choice--acem {
    transform: none;
  }

  .home-college-landing-overlay__choice--acem:hover {
    transform: scale(1.035);
  }

  .home-college-landing-overlay__choice--acem:focus-visible:not(:hover) {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-college-landing__scrim--peek,
  .home-college-landing__scrim--peek.home-college-landing__scrim--peek-retract {
    transition: none;
  }

  .home-college-landing-overlay__choice {
    transition: color 0.15s ease;
  }

  .home-college-landing-overlay__choice:hover {
    letter-spacing: 0.24em;
    text-shadow: none;
  }

  .home-college-landing-overlay__choice--acem:hover,
  .home-college-landing-overlay__choice--anzca:hover {
    transform: none;
  }

  @media (min-width: 640px) {
    .home-college-landing-overlay__choice--acem:hover {
      transform: translateX(clamp(-1.1rem, -5vw, -0.5rem));
    }

    .home-college-landing-overlay__choice--anzca:hover {
      transform: translateX(0);
    }
  }
}
/* Home route only — hero, feedback strips, draggable overlays */
/*
 * Marketing band heights: fixed rem so narrowing the viewport only changes width;
 * photos use object-fit: cover and crop horizontally. Tune once here and in
 * /admin/components (same custom properties).
 */
:root {
  /*
   * Homepage marketing heights: post-lede strips + stacked photo row use the band baseline only.
   * The hero iframe band is intentionally +10% taller — do not reuse --home-marketing-hero-h
   * for strips or the stacked photo height.
   */
  --home-marketing-band-base-h: 45rem;
  --home-marketing-hero-h: calc(var(--home-marketing-band-base-h) * 1.1);
  /* Post-lede side-by-side frame: same as band baseline (not +10%). */
  --home-marketing-post-lede-frame-h: var(--home-marketing-band-base-h);
  /* Stacked layout photo row — independent of hero bump */
  --home-marketing-stacked-photo-h: 40rem;
  /*
   * Notional full-width strip for side-by-side layout. Text column ~∝ strip width.
   * Stack when strip ≤ 60% of ref ⇒ text/background width has dropped by ≥40% vs ref.
   */
  --home-post-lede-sidebyside-ref-w: 80rem;
  --home-post-lede-stack-until: calc(0.6 * var(--home-post-lede-sidebyside-ref-w));
  /* Mirrored strips stack earlier so copy is not stuck on the opposite side before stack. */
  --home-post-lede-mirror-stack-until: calc(0.72 * var(--home-post-lede-sidebyside-ref-w));
  /*
   * Stacked layout only: scale with viewport; a higher min was forcing extra line wraps
   * instead of shrinking type. Same crop anchor as side-by-side: object-position left top.
   */
  --home-post-lede-stacked-lead-fs: clamp(0.78rem, 0.52rem + 2.85vw, 1.22rem);
  --home-post-lede-stacked-detail-fs: clamp(0.68rem, 0.48rem + 1.35vw, 0.92rem);
}
/* Home: fill viewport under header so the site index can sit at the bottom */
.layout:has(.home) .site-main {
  padding-top: calc(var(--site-header-clearance) + env(safe-area-inset-top, 0px));
}
.home {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
}
/* Main home content — painted under first-visit college scrim; landing mask reveals peek on hover */
.home-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  transition: opacity 0.5s ease;
  opacity: 1;
}
.home-body--behind-landing {
  opacity: 1;
  pointer-events: none;
}
.home-body--behind-landing.home-body--revealing {
  pointer-events: auto;
}
.home-hero-headline {
  margin: 0;
  /* Fluid size lives on `.home-intro.page` so the Trial Viva pill scales to the same curve */
  font-size: 1em;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--text-h);
  max-width: 38rem;
}
/* Only this span updates during first-visit landing peek — avoids repainting the whole line. */
.home-hero-headline__college {
  white-space: nowrap;
}
@keyframes home-hero-headline-out {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -0.28em, 0);
  }
}
@keyframes home-hero-headline-in {
  from {
    opacity: 0;
    transform: translate3d(0, 0.32em, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
.home-hero-headline--motion-out {
  animation: home-hero-headline-out 0.28s ease-in forwards;
}
.home-hero-headline--motion-in {
  animation: home-hero-headline-in 0.36s ease-out forwards;
}
@media (prefers-reduced-motion: reduce) {
  .home-hero-headline--motion-out,
  .home-hero-headline--motion-in {
    animation: none;
  }
}
/*
 * Headline + Trial Viva share one fluid `font-size` on the intro column; pill uses the same
 * proportion as the former fixed pair (1.00375rem at 1.9rem headline).
 */
.home-intro .btn--primary {
  margin: 0;
  font-size: calc(100% * 1.00375 / 1.9);
  padding: 0.54795em 1.58904em;
}
.home-article {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: 0;
  /* Equal vertical gap: text hero → stats line → following sections. */
  --home-stats-v-gap: clamp(0.4rem, 0.25rem + 0.85vw, 0.8rem);
  /* Top landing rail + lower art sections share this content width */
  --home-rail-max: min(100%, 76rem);
  --home-rail-line: color-mix(in srgb, var(--text-h) 6%, transparent);
  --home-rail-pad-x: clamp(1.15rem, 3vw, 2rem);
  --home-rail-to-viva-gap: 2.85rem;
}
[data-theme='dark'] .home-article {
  --home-rail-line: color-mix(in srgb, var(--text-h) 8%, transparent);
}
/*
 * Architectural page grid: full-width top rule; vertical pillars on content column;
 * horizontal dividers span pillar-to-pillar (not inset by section padding).
 */
.home-top-rail {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  --home-secondary-body: color-mix(in srgb, var(--text) 90%, var(--text-muted) 10%);
}
[data-theme='dark'] .home-top-rail {
  --home-secondary-body: #cdd6e8;
}
.home-top-rail::before {
  content: '';
  display: block;
  width: 100vw;
  width: 100dvw;
  margin-left: calc(50% - 50vw);
  margin-left: calc(50% - 50dvw);
  margin-right: calc(50% - 50vw);
  margin-right: calc(50% - 50dvw);
  border-top: 1px solid var(--home-rail-line);
  pointer-events: none;
}
.home-top-rail__frame {
  width: 100%;
  max-width: var(--home-rail-max);
  margin-inline: auto;
  box-sizing: border-box;
  border-left: 1px solid var(--home-rail-line);
  border-right: 1px solid var(--home-rail-line);
  border-bottom: none;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--site-index-bg) 35%, var(--bg)) 0%,
    var(--bg) 100%
  );
}
.home-top-rail__section {
  box-sizing: border-box;
}
.home-top-rail__pathways {
  border-top: 1px solid var(--home-rail-line);
  border-bottom: 1px solid var(--home-rail-line);
  padding: clamp(0.95rem, 2vw, 1.25rem) var(--home-rail-pad-x)
    clamp(1rem, 2.2vh, 1.35rem);
  box-sizing: border-box;
}
.home-top-rail__pathways-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin: 0;
}
.home-top-rail__pathways-item {
  margin: 0;
  min-width: 0;
  padding: clamp(0.55rem, 1.2vw, 0.8rem) clamp(0.5rem, 2vw, 1.25rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(0.15rem, 0.35vw, 0.28rem);
  text-align: center;
  box-sizing: border-box;
  border-right: 1px solid var(--home-rail-line);
}
.home-top-rail__pathways-item:last-child {
  border-right: none;
}
.home-top-rail__pathways-college {
  display: block;
  font-size: clamp(0.8rem, 0.22vw + 0.72rem, 0.9rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-h);
}
.home-top-rail__pathways-exam {
  display: block;
  font-size: clamp(0.88rem, 0.32vw + 0.78rem, 0.98rem);
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: -0.014em;
  color: color-mix(in srgb, var(--text-h) 68%, var(--home-secondary-body));
}
.home-top-rail__pathways-item--coming-soon .home-top-rail__pathways-college {
  color: color-mix(in srgb, var(--text-h) 58%, var(--text-muted));
}
.home-top-rail__pathways-item--coming-soon .home-top-rail__pathways-exam {
  color: color-mix(in srgb, var(--text-h) 48%, var(--text-muted));
}
.home-top-rail__pathways-soon {
  font-weight: 400;
  color: color-mix(in srgb, var(--text-h) 42%, var(--text-muted));
}
@media (max-width: 39.99rem) {
  .home-top-rail__pathways-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .home-top-rail__pathways-item {
    padding: 0.55rem clamp(0.35rem, 2vw, 0.5rem);
  }

  .home-top-rail__pathways-college {
    font-size: clamp(0.68rem, 2.4vw + 0.42rem, 0.78rem);
    letter-spacing: 0.08em;
  }

  .home-top-rail__pathways-exam {
    font-size: clamp(0.72rem, 2.1vw + 0.44rem, 0.86rem);
    line-height: 1.28;
  }
}
.home-intro.page {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 0;
  font-size: clamp(1.35rem, 4.2vw, 1.9rem);
  row-gap: calc(1.2rem / 1.35 * 1em);
}
/* Text-led homepage hero (ACEM / ANZCA): copy + mic / rotating questions */
.home-text-hero {
  --home-hero-headline-size: clamp(1.42rem, 2.35vw + 0.65rem, 2.05rem);
  --home-hero-support-size: clamp(0.92rem, 0.35vw + 0.82rem, 1.04rem);
  --home-hero-copy-pad-top: clamp(1.25rem, 2.8vw, 2.35rem);
  --home-hero-copy-gap: clamp(0.7rem, 1.45vw, 0.95rem);
  --home-hero-visual-nudge: clamp(-1.5rem, -2.75vw, -1.35rem);
  --home-hero-proof-green: #15803d;
  --home-hero-proof-green-soft: #16a34a;
  --home-hero-supporting: color-mix(in srgb, var(--text) 88%, var(--text-muted) 12%);
  --home-hero-proof-line: color-mix(in srgb, var(--text) 74%, var(--text-muted) 26%);
  --home-hero-question: color-mix(in srgb, var(--text-h) 68%, var(--text-muted) 32%);
  width: 100%;
  margin: 0;
}
[data-theme='dark'] .home-text-hero {
  --home-hero-proof-green: #4ade80;
  --home-hero-proof-green-soft: #86efac;
  --home-hero-supporting: #d0d9eb;
  --home-hero-proof-line: #bcc8de;
  --home-hero-question: #b3bfd6;
}
.home-text-hero__main {
  padding: clamp(0.65rem, 1.35vw, 0.95rem) var(--home-rail-pad-x)
    clamp(0.75rem, 1.5vw, 1rem);
}
.home-text-hero > .home-top-rail__pathways {
  padding-top: clamp(1.15rem, 2.3vw, 1.45rem);
}
.home-text-hero__grid {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(1.25rem, 3.2vw, 2rem);
}
@media (min-width: 64rem) {
  .home-text-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.44fr) minmax(0, 0.56fr);
    align-items: stretch;
    column-gap: clamp(2.25rem, 4vw, 3.75rem);
    row-gap: 1.25rem;
  }

  .home-text-hero__headline,
  .home-text-hero__support {
    max-width: none;
  }

  .home-text-hero__copy {
    padding-top: var(--home-hero-copy-pad-top);
  }

  .home-text-hero__visual {
    justify-content: flex-start;
    margin-top: var(--home-hero-visual-nudge);
  }

  .home-text-hero__visual-inner {
    position: relative;
    flex: 1;
    width: 100%;
    min-height: 100%;
    display: flex;
    justify-content: center;
  }

  .home-text-hero__visual-stack {
    position: relative;
    width: min(100%, 28rem);
    min-height: 100%;
  }
}
.home-text-hero__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--home-hero-copy-gap);
}
.home-text-hero__proof {
  margin: clamp(0.55rem, 1.1vw, 0.75rem) 0 0;
  font-size: clamp(0.84rem, 0.32vw + 0.74rem, 0.94rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.012em;
  color: var(--home-hero-proof-line);
  text-wrap: pretty;
}
.home-text-hero__proof-count {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--home-hero-proof-green-soft);
}
.home-text-hero__headline {
  margin: 0;
  max-width: 36rem;
  font-size: clamp(1.42rem, 2.35vw + 0.65rem, 2.05rem);
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: -0.025em;
  color: var(--text-h);
  text-wrap: pretty;
}
.home-text-hero__support {
  margin: 0;
  max-width: 36rem;
  font-size: clamp(0.92rem, 0.35vw + 0.82rem, 1.04rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--home-hero-supporting);
  text-wrap: pretty;
}
.home-text-hero__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
  margin-top: 0;
}
.home-text-hero__btn-secondary {
  border-radius: 9999px;
  padding: 0.55rem 1.595rem;
  font-size: 1.00375rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--text-h) 32%, transparent);
  color: var(--text-h);
  background: transparent;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.22s ease;
}
.home-text-hero__btn-secondary:hover {
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
  border-color: color-mix(in srgb, var(--text-h) 48%, transparent);
  transform: translateY(-1px);
}
[data-theme='dark'] .home-text-hero__btn-secondary {
  border-color: color-mix(in srgb, var(--text-h) 38%, transparent);
}
[data-theme='dark'] .home-text-hero__btn-secondary:hover {
  border-color: color-mix(in srgb, var(--text-h) 52%, transparent);
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
}
.home-text-hero__visual {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.home-text-hero__visual-inner {
  width: 100%;
  max-width: min(36rem, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.home-text-hero__visual-stack {
  width: 100%;
  max-width: min(28rem, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* Stacked hero: copy + pathways only; must follow base `.home-text-hero__visual` rules. */
@media (max-width: 63.99875rem) {
  .home-text-hero__visual {
    display: none;
  }

  .home-top-rail .home-how-works {
    padding-top: clamp(1.75rem, 4.5vw, 2.5rem);
  }
}
@media (min-width: 64rem) {
  .home-text-hero__visual {
    align-items: center;
    padding-left: 0;
  }

  .home-text-hero__visual-inner {
    margin-left: 0;
    margin-right: 0;
  }
}
.home-text-hero__mic-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 22rem);
  aspect-ratio: 1;
  max-width: 100%;
  overflow: visible;
}
@media (min-width: 64rem) {
  .home-text-hero__mic-stage {
    width: min(100%, 28rem);
  }

  .home-text-hero__visual-stack .home-text-hero__mic-stage {
    position: absolute;
    left: 50%;
    width: 100%;
    margin: 0;
    transform: translateX(-50%);
    top: calc(
      var(--home-hero-copy-pad-top) + 2.5 * 1.28 * var(--home-hero-headline-size) -
        min(100%, 28rem) / 2 - var(--home-hero-visual-nudge)
    );
  }

  .home-text-hero__visual-stack .home-text-hero__question-wrap {
    position: absolute;
    left: 50%;
    width: 100%;
    margin: 0;
    min-height: 0;
    max-width: none;
    top: calc(
      var(--home-hero-copy-pad-top) + 3 * 1.28 * var(--home-hero-headline-size) +
        var(--home-hero-copy-gap) + 2 * 1.5 * var(--home-hero-support-size) +
        var(--home-hero-copy-gap) + 1.35rem - var(--home-hero-visual-nudge)
    );
    transform: translate(-50%, -50%);
  }
}
.home-text-hero__mic-inner {
  position: relative;
  z-index: 1;
  overflow: visible;
  transform: scale(1.08) translateY(-0.65rem);
  transform-origin: center center;
}
@media (min-width: 64rem) {
  .home-text-hero__mic-inner {
    transform: scale(1.14) translateY(-0.65rem);
  }
}
.home-text-hero__question-wrap {
  margin: 0.35rem 0 0;
  width: min(100%, 28rem);
  max-width: 100%;
  min-height: 2.75lh;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.home-text-hero__question-text {
  margin: 0;
  text-align: center;
  font-family: var(--sans);
  font-size: clamp(0.86rem, 1.35vw + 0.55rem, 0.98rem);
  line-height: 1.48;
  font-weight: 400;
  color: var(--home-hero-question);
}
@keyframes home-text-hero-q-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.home-text-hero__question-text--initial {
  animation: home-text-hero-q-in 0.55s ease-out both;
}
.home-text-hero__question-text--cycle {
  animation: home-text-hero-q-in 0.42s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .home-text-hero__question-text--initial,
  .home-text-hero__question-text--cycle {
    animation: none;
  }
}
/* “How PracticeViva works” — spacious three-card zone inside top rail */
.home-how-works {
  --home-how-card-bg: color-mix(in srgb, var(--surface) 88%, var(--element-bg));
  --home-how-card-border: color-mix(in srgb, var(--border) 72%, transparent);
  --home-how-card-title: var(--text-h);
  --home-how-card-body: var(--home-secondary-body);
  --home-how-card-step: color-mix(in srgb, var(--text-muted) 78%, var(--text-h));
  width: 100%;
  margin: 0;
  padding: clamp(2.25rem, 5vw, 3.25rem) var(--home-rail-pad-x)
    clamp(2.75rem, 6vw, 3.75rem);
  box-sizing: border-box;
}
[data-theme='dark'] .home-how-works {
  --home-how-card-bg: color-mix(in srgb, var(--surface) 82%, var(--element-bg));
  --home-how-card-border: color-mix(in srgb, var(--border) 62%, transparent);
  --home-how-card-body: #c5cfe3;
  --home-how-card-step: color-mix(in srgb, var(--text-muted) 55%, var(--text-h));
}
@media (min-width: 64rem) {
  .home-top-rail__pathways {
    padding-bottom: clamp(1.15rem, 3.2vh, 2rem);
  }

  .home-top-rail .home-how-works {
    padding-top: clamp(2.75rem, 6vh, 4rem);
    padding-bottom: clamp(2rem, 3.5vh, 2.75rem);
  }
}
.home-top-rail .home-how-works {
  max-width: none;
}
.home-how-works__heading {
  margin: 0 0 clamp(1.65rem, 3.5vw, 2.35rem);
  max-width: 44rem;
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 1.1vw, 0.7rem);
}
.home-how-works__heading-primary {
  display: block;
  font-size: clamp(1.35rem, 2.1vw + 0.7rem, 1.9rem);
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--text-h);
  text-wrap: pretty;
}
.home-how-works__heading-support {
  display: block;
  font-size: clamp(1rem, 0.55vw + 0.88rem, 1.2rem);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.018em;
  color: var(--home-secondary-body);
  text-wrap: pretty;
}
.home-how-works__cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2.2vw, 1.35rem);
  align-items: stretch;
}
@media (min-width: 40rem) and (max-width: 63.99rem) {
  .home-how-works__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-how-works__card:last-child {
    grid-column: 1 / -1;
  }
}
@media (min-width: 64rem) {
  .home-how-works__cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.2rem, 2vw, 1.65rem);
  }

  .home-how-works__card:last-child {
    grid-column: auto;
  }
}
.home-how-works__card {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  min-height: auto;
  height: 100%;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  box-sizing: border-box;
  perspective: 1200px;
  overflow: visible;
  cursor: default;
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease;
}
.home-how-works__card:not(.home-how-works__card--flipped):hover {
  transform: translateY(-4px) scale(1.02);
}
@media (min-width: 48rem) {
  .home-how-works__card {
    min-height: clamp(11.5rem, 18vh, 14.5rem);
  }

  .home-how-works__mic-wrap {
    transform: translateZ(2px) translateY(0.55rem);
  }

  .home-how-works__feedback-doc-wrap {
    transform: translateY(0.55rem);
  }
}
.home-how-works__card-step {
  display: block;
  margin: 0 0 0.85rem;
  font-size: clamp(0.72rem, 0.18vw + 0.66rem, 0.8rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.12em;
  color: var(--home-how-card-step);
}
.home-how-works__card-title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.08rem, 0.55vw + 0.94rem, 1.24rem);
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.022em;
  color: var(--home-how-card-title);
}
.home-how-works__card-body {
  margin: 0;
  max-width: 22rem;
  font-size: clamp(0.9rem, 0.28vw + 0.84rem, 1rem);
  font-weight: 400;
  line-height: 1.56;
  color: var(--home-how-card-body);
  text-wrap: pretty;
}
/* Interactive demo — flip cards, mic stages, step arrow */
.home-how-works__live-region {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.home-how-works__cards-wrap {
  position: relative;
  touch-action: pan-y;
}
.home-how-works__card:not(.home-how-works__card--flipped) .home-how-works__card-face--front {
  cursor: pointer;
}
.home-how-works__card:not(.home-how-works__card--flipped):hover .home-how-works__card-face--front {
  border-color: color-mix(in srgb, var(--accent, #3b6fd9) 28%, var(--home-how-card-border));
  box-shadow:
    var(--shadow-card-soft),
    0 12px 32px -12px color-mix(in srgb, var(--text-h) 16%, transparent);
}
.home-how-works__card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  transform-style: preserve-3d;
  transition: transform 0.55s cubic-bezier(0.4, 0.15, 0.2, 1);
  overflow: visible;
}
.home-how-works__card--flipped .home-how-works__card-inner {
  transform: rotateY(180deg);
}
.home-how-works__card-face {
  box-sizing: border-box;
  width: 100%;
  min-height: inherit;
  padding: clamp(1.35rem, 2.8vw, 1.65rem) clamp(1.25rem, 2.4vw, 1.55rem);
  border: 1px solid var(--home-how-card-border);
  border-radius: 0.85rem;
  background: var(--home-how-card-bg);
  box-shadow: var(--shadow-card-soft);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.home-how-works__card-face--front {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  height: 100%;
}
.home-how-works__card-face--back {
  position: absolute;
  inset: 0;
  transform: rotateY(180deg) translateZ(1px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  container-type: inline-size;
}
.home-how-works__card-hint {
  margin-top: auto;
  padding-top: 0.85rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--accent, #3b6fd9) 72%, var(--text-muted));
}
.home-how-works__card--active .home-how-works__card-face--back {
  border-color: color-mix(in srgb, var(--accent, #3b6fd9) 42%, var(--home-how-card-border));
  box-shadow:
    var(--shadow-card-soft),
    0 0 0 1px color-mix(in srgb, var(--accent, #3b6fd9) 18%, transparent);
}
.home-how-works__card--record.home-how-works__card--active:not(.home-how-works__card--recording)
  .home-how-works__card-face--back {
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--home-how-card-border));
  box-shadow: var(--shadow-card-soft);
}
.home-how-works__card--record.home-how-works__card--recording .home-how-works__card-face--back {
  border-color: color-mix(in srgb, #e05252 42%, var(--home-how-card-border));
  box-shadow:
    var(--shadow-card-soft),
    0 0 0 1px color-mix(in srgb, #e05252 18%, transparent);
}
.home-how-works__card--dimmed .home-how-works__card-face--back {
  opacity: 0.55;
}
.home-how-works__card-back-stage {
  display: grid;
  grid-template-rows: auto auto;
  align-content: center;
  justify-items: center;
  gap: 0.55rem;
  width: 100%;
  min-height: clamp(8rem, 14vh, 10rem);
  overflow: visible;
}
/*
 * Match application-page mic anchor: shrink-wrap the 4rem disc, paint equalizer on a
 * larger absolute stage so bars are not clipped inside the flip card.
 */
.home-how-works__mic-wrap {
  grid-row: 1;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(4rem * 2.2);
  height: calc(4rem * 2.2);
  flex-shrink: 0;
  overflow: hidden;
  transform: translateZ(2px) translateY(0.4rem);
}
.home-how-works__mic-wrap .trial-mic-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  overflow: visible;
  flex-shrink: 0;
}
.home-how-works__mic-wrap .trial-reactive-mic__stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(4rem * 2.2);
  height: calc(4rem * 2.2);
  transform: translate(-50%, calc(-50% - 0.65rem));
}
.home-how-works__mic-wrap .trial-reactive-mic__animation .mic-design__canvas {
  max-width: none;
  max-height: none;
}
/* Keep equalizer visible; skip hover lift inside the demo cards. */
.home-how-works__mic-wrap .trial-mic:hover .trial-mic__frame,
.home-how-works__mic-wrap .trial-mic:active .trial-mic__frame {
  transform: none;
}
.home-how-works__mic-wrap .trial-mic:hover .trial-mic__disc {
  box-shadow: none;
}
.home-how-works__mic-wrap .trial-mic:hover .trial-mic__icon-svg {
  transform: none;
}
.home-how-works__back-label {
  grid-row: 2;
  margin: 0;
  width: 100%;
  max-width: 100%;
  padding: 0 0.35rem;
  box-sizing: border-box;
  min-height: 1.3rem;
  font-size: clamp(0.78rem, 0.22vw + 0.72rem, 0.88rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.012em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--home-how-card-body);
}
/* Full question text during playback — scale to one line so the mic does not shift. */
.home-how-works__back-label--question {
  font-size: clamp(0.48rem, 4.2cqi, 0.76rem);
  letter-spacing: -0.02em;
}
.home-how-works__feedback-doc-wrap {
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  transform: translateY(0.4rem);
}
.home-how-works__feedback-doc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5.5rem;
  height: 5.5rem;
  padding: 0;
  border: none;
  background: none;
  color: color-mix(in srgb, var(--text-muted) 72%, var(--text-h));
  transition:
    color 0.35s ease,
    transform 0.25s ease;
}
.home-how-works__feedback-doc--waiting {
  opacity: 0.55;
}
.home-how-works__feedback-doc--loading {
  opacity: 0.72;
}
.home-how-works__feedback-doc--loading .home-how-works__feedback-doc-spinner {
  animation: home-how-works-doc-pulse 1.1s ease-in-out infinite;
}
.home-how-works__feedback-doc--ready,
.home-how-works__feedback-doc--done {
  color: color-mix(in srgb, #2d9f6f 88%, var(--text-h));
  animation: home-how-works-feedback-pop 0.45s ease;
}
.home-how-works__feedback-doc--clickable {
  cursor: pointer;
}
.home-how-works__feedback-doc--clickable:hover {
  transform: scale(1.04);
}
.home-how-works__feedback-doc--clickable:focus-visible {
  outline: 2px solid color-mix(in srgb, #2d9f6f 60%, transparent);
  outline-offset: 4px;
  border-radius: 0.5rem;
}
.home-how-works__feedback-doc-svg {
  display: block;
}
@keyframes home-how-works-doc-pulse {
  0%,
  100% {
    opacity: 0.35;
  }
  50% {
    opacity: 1;
  }
}
.home-how-works__feedback-popup-root {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}
.home-how-works__feedback-popup-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: color-mix(in srgb, var(--text-h) 28%, transparent);
  backdrop-filter: blur(4px);
  cursor: pointer;
}
.home-how-works__feedback-popup {
  position: relative;
  z-index: 1;
  width: min(100%, 26rem);
  max-height: min(85vh, 32rem);
  overflow: auto;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid var(--home-how-card-border);
  background: var(--home-how-card-bg, var(--surface-elevated, #fff));
  box-shadow:
    0 18px 48px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 2px 8px color-mix(in srgb, var(--text-h) 8%, transparent);
  animation: home-how-works-feedback-pop 0.35s ease;
}
.home-how-works__feedback-popup-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.home-how-works__feedback-popup-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--home-how-card-title);
}
.home-how-works__feedback-popup-close {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--text-muted) 10%, transparent);
  color: var(--text-muted);
  cursor: pointer;
}
.home-how-works__feedback-popup-close:hover {
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-muted) 18%, transparent);
}
.home-how-works__feedback-popup-transcript {
  margin: 0 0 0.85rem;
  font-size: clamp(0.78rem, 0.2vw + 0.74rem, 0.86rem);
  line-height: 1.4;
  color: var(--text-muted);
  text-wrap: pretty;
}
.home-how-works__feedback-popup-text {
  margin: 0;
  font-size: clamp(0.86rem, 0.24vw + 0.8rem, 0.96rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--home-how-card-title);
  text-wrap: pretty;
}
.home-how-works__feedback-done {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  color: color-mix(in srgb, #2d9f6f 82%, var(--text-h));
  animation: home-how-works-feedback-pop 0.45s ease;
}
.home-how-works__feedback-done-icon {
  display: block;
}
@keyframes home-how-works-feedback-pop {
  0% {
    transform: scale(0.6);
    opacity: 0;
  }
  70% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.home-how-works__feedback-panel {
  grid-row: 1 / -1;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  padding: 0.15rem 0.25rem;
}
.home-how-works__audio {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}
.home-how-works__feedback-transcript {
  margin: 0;
  font-size: clamp(0.78rem, 0.2vw + 0.74rem, 0.86rem);
  line-height: 1.4;
  color: var(--text-muted);
  text-wrap: pretty;
}
.home-how-works__feedback-transcript-label {
  font-weight: 600;
  color: var(--home-how-card-title);
}
.home-how-works__feedback-text {
  margin: 0;
  font-size: clamp(0.86rem, 0.24vw + 0.8rem, 0.96rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--home-how-card-title);
  text-wrap: pretty;
}
.home-how-works__feedback-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
.home-how-works__feedback-cta {
  padding: 0.42rem 0.85rem;
  font-size: 0.82rem;
}
.home-how-works__feedback-cta-secondary {
  background: transparent;
  border: 1px solid var(--home-how-card-border);
  color: var(--home-how-card-title);
}
.home-how-works__feedback-cta-secondary:hover {
  border-color: color-mix(in srgb, var(--text-h) 20%, var(--home-how-card-border));
}
.home-how-works__arrow {
  position: absolute;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  color: color-mix(in srgb, var(--accent, #3b6fd9) 70%, var(--text-muted));
  transition:
    opacity 0.35s ease,
    transform 0.45s ease;
}
.home-how-works__cards--show-arrow .home-how-works__arrow {
  opacity: 1;
}
.home-how-works__arrow-svg {
  display: block;
  width: 2.5rem;
  height: 1.25rem;
}
@media (min-width: 64rem) {
  .home-how-works__arrow {
    top: 50%;
    left: calc(33.333% - 0.35rem);
    width: calc(33.333% - 0.7rem);
    transform: translateY(-50%) translateX(-8px);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .home-how-works__cards--show-arrow .home-how-works__arrow {
    transform: translateY(-50%) translateX(0);
  }

  .home-how-works__arrow-svg {
    width: 100%;
    max-width: 4.5rem;
    height: auto;
  }
}
@media (min-width: 40rem) and (max-width: 63.99rem) {
  .home-how-works__arrow {
    top: calc(50% - 0.5rem);
    left: 50%;
    transform: translate(-50%, -50%) translateY(-8px);
  }

  .home-how-works__cards--show-arrow .home-how-works__arrow {
    transform: translate(-50%, -50%) translateY(0);
  }

  .home-how-works__arrow-svg {
    transform: rotate(90deg);
  }
}
@media (max-width: 39.99rem) {
  .home-how-works__arrow {
    top: calc(33.333% - 0.25rem);
    left: 50%;
    transform: translate(-50%, -50%) translateY(-8px);
  }

  .home-how-works__cards--show-arrow .home-how-works__arrow {
    transform: translate(-50%, -50%) translateY(0);
  }

  .home-how-works__arrow-svg {
    transform: rotate(90deg);
  }
}
.home-how-works__reset-row {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}
.home-how-works__reset-btn {
  padding: 0.35rem 0.65rem;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.86rem;
  color: var(--text-muted);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}
.home-how-works__reset-btn:hover {
  color: var(--text-h);
}
@media (prefers-reduced-motion: reduce) {
  .home-how-works__card-inner {
    transition: none;
  }

  .home-how-works__card--flipped .home-how-works__card-inner {
    transform: none;
  }

  .home-how-works__card-face--front {
    transition: opacity 0.2s ease;
  }

  .home-how-works__card--flipped .home-how-works__card-face--front {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    inset: 0;
  }

  .home-how-works__card-face--back {
    position: relative;
    transform: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  .home-how-works__card--flipped .home-how-works__card-face--back {
    opacity: 1;
    pointer-events: auto;
  }

  .home-how-works__feedback-doc--ready,
  .home-how-works__feedback-doc--done,
  .home-how-works__feedback-popup {
    animation: none;
  }

  .home-how-works__feedback-doc--loading .home-how-works__feedback-doc-spinner {
    animation: none;
  }

  .home-how-works__feedback-done {
    animation: none;
  }

  .home-how-works__arrow {
    transition: opacity 0.2s ease;
  }
}
.home-hero-figure {
  margin: 0 auto 2.85rem;
  width: 100%;
  max-width: var(--home-rail-max);
  box-sizing: border-box;
  border-left: 1px solid var(--home-rail-line);
  border-right: 1px solid var(--home-rail-line);
}
.home-hero-figure__frame {
  isolation: isolate;
  position: relative;
  overflow: hidden;
  width: 100%;
  border-radius: 10px;
  aspect-ratio: 16 / 9;
  user-select: none;
  -webkit-user-select: none;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 6%, transparent),
    0 18px 48px -28px color-mix(in srgb, var(--text-h) 18%, transparent);
}
/*
 * Desktop hero band: fixed height (see :root --home-marketing-hero-h), not 16∶9 or vh,
 * so vertical size stays constant as the column narrows.
 */
.home-hero-figure--desktop .home-hero-figure__frame {
  aspect-ratio: unset;
  height: var(--home-marketing-hero-h);
  min-height: var(--home-marketing-hero-h);
  max-height: var(--home-marketing-hero-h);
}
.home-hero-figure img {
  position: relative;
  z-index: 0;
  display: block;
  margin: 0;
  height: 100%;
  width: max(100%, var(--artwork-base-w, 100%));
  object-fit: cover;
  object-position: 54% center;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}
.home-hero-figure__wash {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  border-radius: inherit;
  background: var(--media-photo-wash);
}
/* Above wash (z-index 1); draggable browser mockup — drag from title bar only (JS) */
.draggable-browser-overlay {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border-radius: 6px;
  cursor: default;
  touch-action: auto;
  box-shadow: var(--elevated-photo-shadow);
  overflow: hidden;
}
.draggable-browser-overlay.draggable-browser-overlay--maximized {
  top: 4px !important;
  right: 4px !important;
  bottom: 4px !important;
  left: 4px !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  transform: none !important;
}
.home-post-lede__photo-slot--equal-overlay-gutters
  > .draggable-browser-overlay.draggable-browser-overlay--maximized {
  top: 4px !important;
  right: 4px !important;
  bottom: 4px !important;
  left: 4px !important;
  width: auto !important;
  max-width: none !important;
  transform: none !important;
}
.home-marketing-embed-reset {
  position: absolute;
  right: 0.55rem;
  bottom: 0.55rem;
  z-index: 24;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  color: var(--text-h);
  box-shadow: var(--elevated-photo-shadow);
  cursor: pointer;
  touch-action: manipulation;
}
.home-marketing-embed-reset:hover {
  background: color-mix(in srgb, var(--element-bg) 92%, var(--bg));
}
.home-marketing-embed-reset:focus-visible {
  outline: 2px solid var(--text-h);
  outline-offset: 2px;
}
.home-marketing-embed-reset svg {
  width: 1.05rem;
  height: 1.05rem;
}
/*
 * Titlebar uses `touch-action: none` so drags aren’t interpreted as scroll;
 * some UAs still show a link/hand cursor for that combo — force the arrow.
 */
.draggable-browser-overlay .browser-chrome__titlebar,
.draggable-browser-overlay .browser-chrome__titlebar * {
  cursor: default !important;
  touch-action: none;
}
.draggable-browser-overlay .browser-chrome__dot-btn {
  cursor: pointer !important;
  touch-action: manipulation;
}
.browser-chrome {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  background: var(--bg);
}
.browser-chrome__titlebar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.22rem 0.38rem 0.26rem;
  background: var(--element-bg);
  border-bottom: 1px solid var(--border);
}
.browser-chrome__titlebar--with-controls {
  gap: 0;
  padding: 0.18rem 0.32rem 0.22rem;
}
.browser-chrome__titlebar-drag {
  flex: 1;
  min-width: 0;
  min-height: 1.1rem;
  align-self: stretch;
  margin: -0.18rem -0.32rem -0.22rem 0;
  padding: 0.18rem 0.38rem 0.22rem 0.28rem;
  border-radius: 0 4px 0 0;
}
.browser-chrome__traffic--controls {
  flex-shrink: 0;
  gap: 0.22rem;
}
.browser-chrome__dot-btn {
  box-sizing: border-box;
  width: 1.125rem;
  height: 1.125rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.browser-chrome__dot-btn:focus-visible {
  outline: 2px solid var(--text-h);
  outline-offset: 1px;
}
.browser-chrome__traffic {
  display: flex;
  align-items: center;
  gap: 0.22rem;
}
.browser-chrome__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: inset 0 -0.5px 1px rgba(0, 0, 0, 0.12);
}
/* Grey steps vs titlebar — not coloured traffic lights */
.browser-chrome__dot--close {
  background: color-mix(in srgb, var(--text-h) 22%, var(--element-bg));
}
.browser-chrome__dot--min {
  background: color-mix(in srgb, var(--text-h) 14%, var(--element-bg));
}
.browser-chrome__dot--max {
  background: color-mix(in srgb, var(--text-h) 8%, var(--element-bg));
}
.browser-chrome__viewport {
  flex: 1;
  min-height: 0;
  min-width: 0;
  background: var(--bg);
}
.draggable-browser-overlay .browser-chrome__viewport {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.45rem;
}
/*
 * Chrome/Safari can render the measured JS centre for post-lede shrink-panel embeds a few
 * pixels off at narrow widths. These homepage embeds should visually match the hero:
 * fixed 5% painting gutters on both sides, no transform/width math involved.
 */
.home-post-lede__photo-slot--equal-overlay-gutters > .draggable-browser-overlay {
  left: 5% !important;
  right: 5% !important;
  width: auto !important;
  max-width: none !important;
  transform: none !important;
}
.home-hero-browser-placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 4px;
  background: color-mix(in srgb, var(--bg) 75%, transparent);
  border: 1px dashed color-mix(in srgb, var(--border) 70%, var(--text-muted));
  color: var(--text-muted);
  font-size: 0.95rem;
}
.draggable-browser-overlay
  .browser-chrome__viewport:has(.home-hero-browser-iframe-shell) {
  padding: 0;
  align-items: stretch;
  justify-content: flex-start;
}
.draggable-browser-overlay
  .browser-chrome__viewport:has(.home-founders-mock-cq) {
  padding: 0.35rem 0.45rem;
  align-items: center;
  justify-content: center;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.draggable-browser-overlay
  .browser-chrome__viewport:has(.home-application-strip-preview) {
  padding: 0;
  align-items: stretch;
  justify-content: flex-start;
}
/*
 * Founders browser mock — photo + caption; card chrome echoes `/directory` mode tiles
 * (flat border; hover/picked border only — no drop shadows).
 * Outer `.home-founders-mock-cq` is an inline-size container so `cqi` applies to typography.
 */
.home-founders-mock-cq {
  container-type: inline-size;
  container-name: founders-mock;
  position: relative;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.home-founders-mock {
  position: relative;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: var(--heading);
  color: var(--text-h);
  font-size: clamp(0.58rem, 5.4cqi, 1rem);
}
.home-founders-mock__body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  /* Flatter vertical padding — avoids gaps growing oddly as the mock narrows (cqi-linked type). */
  /* Slightly wider horizontal inset so picked-card ring + chrome aren’t flush to clip edges. */
  padding: clamp(0.38em, 3.2cqi, 0.62em) clamp(0.34em, 2.8cqi, 0.5em) clamp(0.38em, 3.2cqi, 0.62em);
  box-sizing: border-box;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.home-founders-mock__vote-stack {
  --fm-cta-fs: 0.66em;
  --fm-cta-pad-y: 0.62em;
  --fm-cta-pad-x: 0.95em;
  --fm-cta-minw: clamp(4.75rem, 38cqi, 8rem);

  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
  /* Softer than 19cqi — spacing stayed large when the iframe got tighter */
  margin-top: clamp(1em, 7cqi, 1.65em);
}
.home-founders-mock__people {
  flex: 0 0 auto;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  /* Prefer two columns only when container is comfortably wide enough; collapse to one. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.75rem), 1fr));
  gap: clamp(0.32em, 2.5cqi, 0.52em) clamp(0.28em, 2.5cqi, 0.48em);
  align-content: start;
}
.home-founders-mock__person {
  margin: 0;
  padding: 0;
  min-width: 0;
}
.home-founders-mock__choice {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: center;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.home-founders-mock__choice:disabled {
  cursor: progress;
  opacity: 0.75;
}
.home-founders-mock__choice:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
  border-radius: 6px;
}
.home-founders-mock__card {
  --fm-card-radius: 10px;

  /* Stacking anchor for the picked-state ring overlay (::after). */
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /*
   * Keep portrait size coherent when crossing 2-up → stacked: plain 78% width would
   * jump from ~39% container to ~78% container. Clamp with cqi + vw so width tracks
   * the mock inset and viewport without a discontinuity when the grid collapses.
   */
  box-sizing: border-box;
  width: min(78%, 37cqi, 44vw);
  max-width: 100%;
  margin-inline: auto;
  border-radius: var(--fm-card-radius);
  overflow: hidden;
  background: var(--site-index-bg);
  border: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
  box-shadow: none;
  transition:
    transform 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}
[data-theme='dark'] .home-founders-mock__card {
  border-color: color-mix(in srgb, var(--text-h) 12%, transparent);
}
.home-founders-mock__choice:hover:not(:disabled) .home-founders-mock__card {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--text-h) 18%, transparent);
}
[data-theme='dark'] .home-founders-mock__choice:hover:not(:disabled) .home-founders-mock__card {
  border-color: color-mix(in srgb, var(--text-h) 24%, transparent);
}
/* Picked tile: no hover lift (override `.choice:hover` which otherwise still matches). */
.home-founders-mock__choice.home-founders-mock__choice--picked .home-founders-mock__card,
.home-founders-mock__choice.home-founders-mock__choice--picked:hover:not(:disabled) .home-founders-mock__card {
  transform: none;
}
/*
 * Picked state: plain inset box-shadow sits *under* flex children, so it was nearly invisible.
 * A ::after overlay paints the ring above photo + caption; ring stays inside border-radius.
 */
.home-founders-mock__choice--picked .home-founders-mock__card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 4;
  box-shadow: inset 0 0 0 3px var(--focus-ring-color);
}
.home-founders-mock__photo-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: var(--fm-card-radius) var(--fm-card-radius) 0 0;
  background: var(--element-bg);
}
/*
 * Crop source photo: drop top 10% + bottom 40% (keep middle 50% vertically), then
 * `object-fit: cover` fills the square with that band. `object-view-box` inset
 * percentages are relative to intrinsic image size (Chrome 111+, Safari 17.4+).
 * Fallback: bias framing toward the midpoint of that band (35% from top).
 */
.home-founders-mock__photo {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  object-position: 50% 35%;
  filter: saturate(70%);
  vertical-align: middle;
}
@supports (object-view-box: inset(0%)) {
  .home-founders-mock__photo {
    object-view-box: inset(10% 0% 40% 0%);
    object-position: 50% 50%;
  }
}
/* Caption body: same panel fill as `.directory-page__mode-card` (light); dark keeps ink panel + white type */
.home-founders-mock__caption-tile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.3em;
  width: 100%;
  padding: 0.58em 0.5em 0.62em;
  box-sizing: border-box;
  text-align: center;
  font-family: var(--heading);
  background: var(--site-index-bg);
  border-top: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
}
[data-theme='dark'] .home-founders-mock__caption-tile {
  background: #000;
  border-top-color: color-mix(in srgb, #fff 18%, transparent);
}
.home-founders-mock__caption-tile .home-founders-mock__name {
  margin: 0;
}
.home-founders-mock__caption-tile .home-founders-mock__titles {
  margin: 0;
}
.home-founders-mock__celebrate {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  pointer-events: none;
  animation: home-founders-celebrate-fade-in 0.28s ease-out both;
}
.home-founders-mock__celebrate-icon {
  width: min(3.35em, 56%);
  height: auto;
  color: var(--text-h);
  filter:
    drop-shadow(0 0 2px rgba(255, 255, 255, 0.92))
    drop-shadow(0 2px 10px rgba(0, 0, 0, 0.28));
  animation: home-founders-celebrate-thumb 1.1s cubic-bezier(0.22, 1, 0.36, 1) both;
}
[data-theme='dark'] .home-founders-mock__celebrate-icon {
  color: #fff;
  filter:
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.75))
    drop-shadow(0 2px 14px rgba(0, 0, 0, 0.55));
}
@keyframes home-founders-celebrate-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@keyframes home-founders-celebrate-thumb {
  0% {
    opacity: 0;
    transform: scale(0.82) rotate(-5deg);
  }

  52% {
    opacity: 1;
    transform: scale(1.05) rotate(1deg);
  }

  78% {
    transform: scale(0.985) rotate(0deg);
  }

  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}
/*
 * Caption type: `/directory` mode heading + feature lines (`.directory-page__mode-heading`,
 * `.directory-page__feature-item`).
 */
.home-founders-mock__name {
  display: block;
  margin: 0;
  /*
   * Single rule for both founders — identical size. Fluid down from the mock width (cqi)
   * so “Christopher Leeson” stays one line before wrapping; nowrap enforces one line.
   */
  font-size: clamp(0.48rem, calc(0.32rem + 2.35cqi), 0.92rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.28;
  color: var(--text-h);
  white-space: nowrap;
}
.home-founders-mock__titles {
  display: flex;
  flex-direction: column;
  gap: 0.12em;
  font-size: 0.81em;
  line-height: 1.45;
  font-weight: 400;
  color: color-mix(in srgb, var(--text) 92%, var(--text-h));
}
.home-founders-mock__title-line {
  display: block;
}
.home-founders-mock__title-line--muted {
  font-size: 0.94em;
  color: var(--text-muted);
}
[data-theme='dark'] .home-founders-mock__caption-tile .home-founders-mock__name {
  color: #fff;
}
[data-theme='dark'] .home-founders-mock__caption-tile .home-founders-mock__titles {
  color: #fff;
}
[data-theme='dark'] .home-founders-mock__caption-tile .home-founders-mock__title-line--muted {
  color: color-mix(in srgb, #fff 76%, transparent);
}
/*
 * Narrow mocks (viewport or container ≤450px): founder list stacks to one column;
 * each tile is photo | name/titles in one row (second row mirrored).
 * This block intentionally comes *after* base `.home-founders-mock__card`, `.photo-wrap`,
 * and `.caption-tile` so `flex-direction: row`, radii, and borders override the defaults.
 */
/* Stacked photo|text rows + compact vote chrome only when the mock is quite narrow. */
@media (max-width: 450px) {
  .home-founders-mock__body {
    justify-content: flex-start;
    padding: clamp(0.32em, 3.5cqi, 0.52em) clamp(0.34rem, 1.85cqi, 0.62rem)
      clamp(0.55em, 6cqi, 0.85em);
  }

  /*
   * Founders + survey: intrinsic row heights — avoids minmax(1fr) stretching founder rows
   * apart when the chrome gets shorter/narrower (was ballooning gaps between tiles + survey).
   */
  .home-founders-mock:not(.home-founders-mock--story) .home-founders-mock__body {
    overflow: hidden;
    display: grid;
    grid-template-rows: auto auto;
    gap: clamp(0.28em, 2.25cqi, 0.42em);
  }

  .home-founders-mock__people {
    grid-column: 1 / -1;
    grid-row: 1 / 2;
    display: flex;
    flex-direction: column;
    gap: clamp(0.2em, 1.75cqi, 0.38em);
    width: 100%;
    min-height: 0;
    align-self: stretch;
    overflow: hidden;
    /* Room for the 3px picked ring so it isn’t lost against `overflow: hidden` ancestors. */
    padding-inline: clamp(5px, 1.15cqi, 10px);
    box-sizing: border-box;
  }

  .home-founders-mock__people > .home-founders-mock__person {
    flex: 0 0 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .home-founders-mock__people > .home-founders-mock__choice {
    flex: 0 0 auto;
    min-height: 0;
    align-items: stretch;
  }

  .home-founders-mock__card {
    flex: 0 0 auto;
    min-height: 0;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  /*
   * Square thumb capped by row height so two rows always fit above the voting strip —
   * no scrolling to reveal the bottom of the lower portrait.
   */
  .home-founders-mock__photo-wrap {
    flex: 0 0 auto;
    align-self: center;
    box-sizing: border-box;
    max-height: 100%;
    width: auto;
    max-width: min(44%, max(3.05rem, min(44cqi, 36vw, 34vmin)));
    aspect-ratio: 1;
    border-radius: var(--fm-card-radius) 0 0 var(--fm-card-radius);
  }

  .home-founders-mock__caption-tile {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    width: auto;
    align-self: stretch;
    justify-content: center;
    text-align: start;
    border-top: none;
    border-left: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
    border-radius: 0 var(--fm-card-radius) var(--fm-card-radius) 0;
    padding: 0.45em 0.48em 0.48em;
  }

  [data-theme='dark'] .home-founders-mock__caption-tile {
    border-top: none;
    border-left-color: color-mix(in srgb, #fff 18%, transparent);
  }

  /* Second founder in stack: text left, photo right (only in these thin layouts; wide 2-up is unchanged). */
  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__card {
    flex-direction: row-reverse;
  }

  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__photo-wrap {
    border-radius: 0 var(--fm-card-radius) var(--fm-card-radius) 0;
  }

  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__caption-tile {
    border-left: none;
    border-right: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
    border-radius: var(--fm-card-radius) 0 0 var(--fm-card-radius);
  }

  [data-theme='dark']
    .home-founders-mock__people
    > .home-founders-mock__person:nth-child(2)
    .home-founders-mock__caption-tile {
    border-left: none;
    border-right-color: color-mix(in srgb, #fff 18%, transparent);
  }

  .home-founders-mock__vote-stack {
    grid-column: 1 / -1;
    grid-row: 2 / 3;
    margin-top: 0;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    padding-top: 0.28em;
    /*
     * Fixed pill metrics (narrow ~450px-wide mock / slot): same as clamp(4.75rem, 38cqi, 8rem) ceiling on growth.
     * Prevents CTAs narrowing further when the UA gets tighter.
     */
    --fm-cta-fs: 0.66em;
    --fm-cta-pad-y: 0.62em;
    --fm-cta-pad-x: 0.95em;
    --fm-cta-minw: 7.35rem;
    background: var(--bg);
  }

  [data-theme='dark'] .home-founders-mock__vote-stack {
    box-shadow: none;
  }

  .home-founders-mock__vote.btn {
    margin-bottom: 0.58em;
  }

  .home-founders-mock__prompt {
    margin-bottom: clamp(0.36em, 2.8cqi, 0.58em);
    font-size: clamp(0.68em, calc(7cqi + 1.1vw), 0.82em);
  }

  .draggable-browser-overlay .browser-chrome__viewport:has(.home-founders-mock-cq) {
    padding: 0.3rem clamp(0.24rem, 1.45vw, 0.42rem) 0.55rem;
  }
}
@container founders-mock (max-width: 450px) {
  .home-founders-mock__body {
    justify-content: flex-start;
    padding: clamp(0.32em, 3.5cqi, 0.52em) clamp(0.34rem, 1.85cqi, 0.62rem)
      clamp(0.55em, 6cqi, 0.85em);
  }

  .home-founders-mock:not(.home-founders-mock--story) .home-founders-mock__body {
    overflow: hidden;
    display: grid;
    grid-template-rows: auto auto;
    gap: clamp(0.28em, 2.25cqi, 0.42em);
  }

  .home-founders-mock__people {
    grid-column: 1 / -1;
    grid-row: 1 / 2;
    display: flex;
    flex-direction: column;
    gap: clamp(0.2em, 1.75cqi, 0.38em);
    width: 100%;
    min-height: 0;
    align-self: stretch;
    overflow: hidden;
    padding-inline: clamp(5px, 1.15cqi, 10px);
    box-sizing: border-box;
  }

  .home-founders-mock__people > .home-founders-mock__person {
    flex: 0 0 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .home-founders-mock__people > .home-founders-mock__choice {
    flex: 0 0 auto;
    min-height: 0;
    align-items: stretch;
  }

  .home-founders-mock__card {
    flex: 0 0 auto;
    min-height: 0;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .home-founders-mock__photo-wrap {
    flex: 0 0 auto;
    align-self: center;
    box-sizing: border-box;
    max-height: 100%;
    width: auto;
    max-width: min(44%, max(3.05rem, min(44cqi, 36vw, 34vmin)));
    aspect-ratio: 1;
    border-radius: var(--fm-card-radius) 0 0 var(--fm-card-radius);
  }

  .home-founders-mock__caption-tile {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    width: auto;
    align-self: stretch;
    justify-content: center;
    text-align: start;
    border-top: none;
    border-left: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
    border-radius: 0 var(--fm-card-radius) var(--fm-card-radius) 0;
    padding: 0.45em 0.48em 0.48em;
  }

  [data-theme='dark'] .home-founders-mock__caption-tile {
    border-top: none;
    border-left-color: color-mix(in srgb, #fff 18%, transparent);
  }

  /* Second founder in stack: text left, photo right (only in these thin layouts; wide 2-up is unchanged). */
  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__card {
    flex-direction: row-reverse;
  }

  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__photo-wrap {
    border-radius: 0 var(--fm-card-radius) var(--fm-card-radius) 0;
  }

  .home-founders-mock__people > .home-founders-mock__person:nth-child(2) .home-founders-mock__caption-tile {
    border-left: none;
    border-right: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
    border-radius: var(--fm-card-radius) 0 0 var(--fm-card-radius);
  }

  [data-theme='dark']
    .home-founders-mock__people
    > .home-founders-mock__person:nth-child(2)
    .home-founders-mock__caption-tile {
    border-left: none;
    border-right-color: color-mix(in srgb, #fff 18%, transparent);
  }

  .home-founders-mock__vote-stack {
    grid-column: 1 / -1;
    grid-row: 2 / 3;
    margin-top: 0;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    padding-top: 0.28em;
    /*
     * Fixed pill metrics (narrow ~450px-wide mock / slot): same as clamp(4.75rem, 38cqi, 8rem) ceiling on growth.
     * Prevents CTAs narrowing further when the UA gets tighter.
     */
    --fm-cta-fs: 0.66em;
    --fm-cta-pad-y: 0.62em;
    --fm-cta-pad-x: 0.95em;
    --fm-cta-minw: 7.35rem;
    background: var(--bg);
  }

  [data-theme='dark'] .home-founders-mock__vote-stack {
    box-shadow: none;
  }

  .home-founders-mock__vote.btn {
    margin-bottom: 0.58em;
  }

  .home-founders-mock__prompt {
    margin-bottom: clamp(0.36em, 2.8cqi, 0.58em);
    font-size: clamp(0.68em, calc(7cqi + 1.1vw), 0.82em);
  }
}
.home-founders-mock__prompt {
  flex-shrink: 0;
  width: 100%;
  margin: 0 0 clamp(0.55em, 4.5cqi, 0.85em);
  text-align: center;
  font-family: var(--heading);
  font-size: 0.82em;
  font-weight: 400;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text) 92%, var(--text-h));
  text-wrap: balance;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.32s ease,
    transform 0.32s ease;
}
.home-founders-mock__prompt--hide {
  opacity: 0;
  transform: translateY(0.2em);
}
/* Cast vote + Our story: identical footprint (pill size); primary vs outline only */
.home-founders-mock__vote.btn {
  flex-shrink: 0;
  align-self: center;
  box-sizing: border-box;
  min-width: var(--fm-cta-minw, clamp(4.75rem, 38cqi, 8rem));
  padding: var(--fm-cta-pad-y, 0.62em) var(--fm-cta-pad-x, 0.95em);
  font-size: var(--fm-cta-fs, 0.66em);
  font-weight: 600;
  line-height: 1.25;
  border-radius: 9999px;
  border: 1px solid transparent;
  margin-bottom: clamp(0.32em, 3cqi, 0.52em);
}
.home-founders-mock__story.btn {
  flex-shrink: 0;
  margin: 0;
  box-sizing: border-box;
  min-width: var(--fm-cta-minw);
  padding: var(--fm-cta-pad-y) var(--fm-cta-pad-x);
  font-size: var(--fm-cta-fs);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
  border-radius: 9999px;
  color: var(--text-h);
  text-align: center;
  text-decoration: none;
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--text-h) 32%, transparent);
  box-shadow: none;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}
.home-founders-mock__story.btn:hover {
  background: color-mix(in srgb, var(--text-h) 7%, transparent);
  border-color: color-mix(in srgb, var(--text-h) 48%, transparent);
  color: var(--text-h);
}
[data-theme='dark'] .home-founders-mock__story.btn {
  border-color: color-mix(in srgb, var(--text-h) 42%, transparent);
}
[data-theme='dark'] .home-founders-mock__story.btn:hover {
  background: color-mix(in srgb, var(--text-h) 10%, transparent);
  border-color: color-mix(in srgb, var(--text-h) 55%, transparent);
}
/*
 * In-mock “Our story”: match `.home-post-lede__aside-detail` / mirrored aside
 * (same strip as “Doctors for doctors”) — one size, one alignment, no panels.
 */
.home-founders-mock.home-founders-mock--story {
  font-size: var(--home-post-lede-stacked-detail-fs);
  line-height: 1.45;
  color: var(--text);
}
.home-founders-mock--story .home-founders-mock__body {
  padding-inline: clamp(0.42em, 4.2cqi, 0.72em);
}
.home-founders-story {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  max-width: min(100%, 38em);
  margin-inline: auto;
  padding-bottom: 0.35rem;
}
.home-founders-story__back {
  flex-shrink: 0;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.28em;
  margin: 0;
  padding: 0.35rem 0.55rem 0.35rem 0.48rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 28%, transparent);
  border-radius: 9999px;
  background: transparent;
  font-family: inherit;
  font-size: 1em;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text-h);
  cursor: pointer;
  transition: border-color 0.18s ease;
  -webkit-tap-highlight-color: transparent;
}
.home-founders-story__back:hover {
  border-color: color-mix(in srgb, var(--text-h) 44%, transparent);
}
.home-founders-story__back:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
.home-founders-story__back-icon {
  flex-shrink: 0;
  margin-top: 0.04em;
  opacity: 0.88;
}
[data-theme='dark'] .home-founders-story__back {
  border-color: color-mix(in srgb, var(--text-h) 38%, transparent);
}
[data-theme='dark'] .home-founders-story__back:hover {
  border-color: color-mix(in srgb, var(--text-h) 52%, transparent);
}
.home-founders-story__article {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  text-align: left;
  text-wrap: pretty;
}
.home-founders-story__p {
  margin: 0;
  font-family: inherit;
  font-size: 1em;
  font-weight: 400;
  line-height: 1.45;
  color: var(--text);
}
.home-founders-story__p strong {
  font-weight: 600;
  color: var(--text-h);
}
.home-founders-story__p em {
  font-style: italic;
  color: inherit;
}
.home-founders-mock__vote.btn--primary:disabled,
.home-founders-mock__vote.btn--primary:disabled:hover {
  cursor: not-allowed;
  opacity: 0.42;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .home-founders-mock__celebrate-icon {
    animation: none;
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }

  .home-founders-mock__celebrate {
    animation: none;
    opacity: 1;
  }

  .home-founders-mock__card {
    transition: none;
  }

  .home-founders-mock__photo-wrap,
  .home-founders-mock__caption-tile {
    transition: none;
  }

  .home-founders-mock__choice:hover:not(:disabled) .home-founders-mock__card,
  .home-founders-mock__choice--picked:hover:not(:disabled) .home-founders-mock__card {
    transform: none;
  }

  .home-founders-mock__vote-stack {
    transition: none;
  }

  .home-founders-mock__vote.btn,
  .home-founders-mock__story.btn {
    transition: none;
  }

  .home-founders-mock__prompt {
    transition: none;
  }

  .home-founders-mock__prompt--hide {
    transform: none;
  }
}
.home-hero-browser-iframe-shell {
  position: relative;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  overflow: hidden;
  isolation: isolate;
}
/* Fills chrome viewport; iframe content drawn ~20% smaller (125% layout × scale(0.8)) */
.home-hero-browser-iframe-viewport {
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  box-sizing: border-box;
  overflow: hidden;
}
.home-hero-browser-iframe-scaled {
  position: relative;
  overflow: hidden;
  flex: 1;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
}
.home-hero-browser-iframe {
  position: absolute;
  top: 0;
  left: 0;
  /* 125% × 0.8 = 100% — fills shell while viva-builder lays out in a larger logical size */
  width: 125%;
  height: 125%;
  border: 0;
  display: block;
  cursor: default;
  transform: scale(0.8);
  transform-origin: 0 0;
}
/* Homepage post-lede: `/application` iframe + readable overlay (rotating questions, active mic) */
.home-application-strip-preview {
  position: relative;
  flex: 1;
  align-self: stretch;
  width: 100%;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
.home-application-strip-preview__iframe {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.home-application-strip-preview__iframe .home-hero-browser-iframe-shell {
  height: 100%;
}
.home-application-strip-preview .home-hero-browser-iframe {
  pointer-events: none;
}
.home-application-strip-preview__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
  pointer-events: none;
}
/*
 * Match `/application` mic + subtitle rhythm: mic centred, copy below with the same
 * max line length as `.application-page__audio-caption-host` — but width must be tied to
 * this strip (full slot), not the shrink-wrapped mic anchor, or the text collapses to a narrow column.
 */
.home-application-strip-preview__mic-caption-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  min-width: 0;
  box-sizing: border-box;
  padding: clamp(1rem, 3vh, 2rem) clamp(0.75rem, 2vw, 1rem);
}
.home-application-strip-preview__mic-caption-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.home-application-strip-preview__mic-hero-wrap {
  flex-shrink: 0;
}
.home-application-strip-preview__question-as-caption {
  width: min(38rem, 100%);
  max-width: 100%;
  margin-top: 1lh;
  padding: 0 0.75rem;
  box-sizing: border-box;
  pointer-events: none;
  font-size: clamp(0.84rem, 2.2vw, 0.98rem);
  line-height: 1.48;
}
.home-application-strip-preview__question-zone {
  flex: 1.12 1 0;
  min-height: 0;
  box-sizing: border-box;
  padding: clamp(0.65rem, 2.5vw, 1.1rem) clamp(0.75rem, 3vw, 1.35rem)
    clamp(0.45rem, 1.5vw, 0.75rem);
  background: rgb(from var(--bg) r g b / 1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.45rem;
}
.home-application-strip-preview__question-kicker {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 48%, transparent);
}
.home-application-strip-preview__question-text {
  margin: 0;
  text-align: center;
  font-family: var(--sans);
  font-size: inherit;
  line-height: inherit;
  font-weight: 400;
  color: color-mix(in srgb, var(--text-h) 90%, transparent);
}
@keyframes home-application-strip-preview-q-in {
  from {
    opacity: 0;
    transform: translateY(5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.home-application-strip-preview__question-text--initial {
  animation: home-application-strip-preview-q-in 0.55s ease-out both;
}
.home-application-strip-preview__question-text--cycle {
  animation: home-application-strip-preview-q-in 0.42s ease-out both;
}
.home-application-strip-preview__mic-zone {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  background: rgb(from var(--bg) r g b / 1);
}
.home-application-strip-preview__mic-slot {
  flex: 1 1 auto;
  min-height: 0;
}
.home-application-strip-preview__dock {
  flex-shrink: 0;
  padding-top: 0.35rem;
  padding-bottom: max(0.25rem, env(safe-area-inset-bottom, 0px));
}
@media (prefers-reduced-motion: reduce) {
  .home-application-strip-preview__question-text--initial,
  .home-application-strip-preview__question-text--cycle {
    animation: none;
  }
}
/* Reset preview — inset from full browser content area (shell), not the letterboxed iframe tile */
.home-hero-iframe-reset {
  position: absolute;
  right: 5%;
  bottom: 5%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--text-h);
  cursor: pointer;
  box-shadow: none;
}
.home-hero-iframe-reset:hover {
  color: var(--text-h);
  opacity: 0.82;
}
.home-hero-iframe-reset:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.home-hero-iframe-reset svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 1px rgb(0 0 0 / 0.22));
}
[data-theme='dark'] .home-hero-iframe-reset svg {
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.45));
}
/* Top rail pillars run straight into the Viva Builder hero — no gap */
.home-article > .home-top-rail + .home-hero-figure {
  margin-top: 0;
}
/* Gap under hero figure → first feedback strip (lede moved above figure) */
.home-hero-figure + .home-post-lede-strip-cq {
  margin-top: 2.85rem;
}
/* Between consecutive feedback strips — double the usual strip gap */
.home-post-lede-strip-cq + .home-post-lede-strip-cq {
  margin-top: 5.7rem;
}
.home-post-lede {
  margin-bottom: 0;
  padding-bottom: 0;
  width: 100%;
  max-width: none;
}
.home-article > .home-post-lede-strip-cq:last-of-type {
  margin-bottom: 0;
  padding-bottom: clamp(2.5rem, 10vh, 6rem);
}
/* CTA fills slack above the site index; flex-shrink 0 avoids collapse when the article is tall */
.home-pre-footer-cta {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  padding-top: clamp(2rem, 5vh, 3.75rem);
  padding-bottom: clamp(3.75rem, 14vh, 9rem);
}
.home-pre-footer-cta__inner {
  flex-shrink: 0;
  margin-inline: auto;
  text-align: center;
}
.home-pre-footer-cta__title {
  margin: 0;
  max-width: 14ch;
  font-size: clamp(2rem, 5.5vw + 0.45rem, 3.35rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.035em;
  color: var(--text-h);
  text-wrap: balance;
}
.home-pre-footer-cta__title + .btn--primary {
  margin-top: clamp(1.25rem, 2.5vw, 1.6rem);
}
.home-text-hero__cta-row .btn--primary,
.home-pre-footer-cta .btn--primary {
  transition:
    background 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.22s ease;
}
.home-text-hero__cta-row .btn--primary:hover,
.home-pre-footer-cta .btn--primary:hover {
  background: color-mix(in srgb, var(--cta-pill-fg) 12%, var(--cta-pill-bg));
  color: var(--cta-pill-fg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 48%, transparent);
  transform: translateY(-1px);
}
[data-theme='dark'] .home-text-hero__cta-row .btn--primary:hover,
[data-theme='dark'] .home-pre-footer-cta .btn--primary:hover {
  background: color-mix(in srgb, var(--text-muted) 32%, var(--cta-pill-bg));
  color: var(--cta-pill-fg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 52%, transparent);
}
@media (prefers-reduced-motion: reduce) {
  .home-text-hero__cta-row .btn--primary:hover,
  .home-pre-footer-cta .btn--primary:hover,
  .home-text-hero__btn-secondary:hover {
    transform: none;
  }

  .home-how-works__card:not(.home-how-works__card--flipped):hover {
    transform: none;
  }
}
/* Inline-size of strip — stack breakpoint via @container home-pl-strip. */
.home-post-lede-strip-cq {
  container-type: inline-size;
  container-name: home-pl-strip;
  min-width: 0;
  width: 100%;
}
/* Homepage: match top rail / Viva Builder content width (--home-rail-max on .home-article) */
.home-article > .home-post-lede-strip-cq {
  max-width: var(--home-rail-max);
  margin-inline: auto;
}
.home-post-lede__frame {
  container-type: size;
  container-name: post-lede;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  aspect-ratio: unset;
  height: var(--home-marketing-post-lede-frame-h);
  min-height: var(--home-marketing-post-lede-frame-h);
  max-height: var(--home-marketing-post-lede-frame-h);
  border-radius: 10px;
  background: var(--site-index-bg);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 5%, transparent),
    0 16px 40px -26px color-mix(in srgb, var(--text-h) 14%, transparent);
}
/* Text column: remainder of frame minus photo (66%) and right cqh inset */
.home-post-lede__aside {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: calc(34% - 3cqh);
  padding: 0.75rem 0.65rem 0.75rem 1.1rem;
}
.home-post-lede__aside-copy {
  max-width: 100%;
  text-align: left;
}
.home-post-lede--with-eyebrow .home-post-lede__aside {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}
.home-post-lede--with-eyebrow .home-post-lede__aside-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
}
.home-post-lede__aside-eyebrow {
  margin: 0;
  flex-shrink: 0;
  font-size: clamp(1.35rem, 4.2vw, 1.9rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.home-post-lede__aside-lead {
  margin: 0;
  font-size: clamp(1.35rem, 4.2vw, 1.9rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.home-post-lede__aside-detail {
  margin: 0.45rem 0 0;
  font-size: clamp(0.78rem, 1.85cqw, 0.9rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--text);
}
.home-post-lede__aside-copy .home-post-lede__aside-detail + .home-post-lede__aside-detail {
  margin-top: 0.55rem;
}
/* Homepage “about” strip: clearer lead vs body; pair the two supporting paragraphs */
.home-post-lede--about-copy .home-post-lede__aside-lead + .home-post-lede__aside-detail {
  margin-top: 0.65rem;
}
.home-post-lede--about-copy .home-post-lede__aside-detail + .home-post-lede__aside-detail {
  margin-top: 0.4rem;
}
/*
 * Same physical inset on top, right, and bottom: 3% of frame height (matches
 * former top: 3%), using cqh so horizontal % isn’t tied to width.
 */
.home-post-lede__photo-slot {
  isolation: isolate;
  position: absolute;
  top: 3cqh;
  right: 3cqh;
  bottom: 3cqh;
  width: 66%;
  overflow: hidden;
  border-radius: 4px;
  user-select: none;
  -webkit-user-select: none;
  /* Stable clipping stack in Safari for scaled iframe descendants inside the overlay */
  transform: translateZ(0);
}
.home-post-lede__photo-slot::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  border-radius: inherit;
  /* Match hero wash so post-lede photos read consistently */
  background: var(--media-photo-wash);
}
/* Double-opacity white wash (default token is rgba(255,255,255,0.3)) — e.g. high-chroma sunset art */
.home-post-lede--photo-wash-2x .home-post-lede__photo-slot::after {
  background: rgba(255, 255, 255, 0.6);
}
.home-post-lede__photo-slot--no-wash::after {
  content: none;
}
/*
 * Safari: `<picture>` must fill the slot height so img `height: 100%` matches the overlay’s
 * measured rect (avoids iframe chrome visually extending below the artwork).
 */
.home-post-lede__photo-slot picture {
  display: block;
  margin: 0;
  height: 100%;
  width: 100%;
}
.home-post-lede__img {
  position: relative;
  z-index: 0;
  display: block;
  margin: 0;
  /* Same fill model as `.home-hero-figure img`: slot defines box; cover crops wide artwork */
  height: 100%;
  width: max(100%, var(--artwork-base-w, 100%));
  max-width: none;
  object-fit: cover;
  object-position: left top;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}
/*
 * First homepage feedback strip: wide landscape art (1672×941); scale by height and let the
 * slot clip the sides so subjects stay in the gutters around the browser overlay.
 */
.home-post-lede--feedback-hero-photo .home-post-lede__img {
  width: auto;
  height: 100%;
  max-width: none;
  min-width: 0;
  object-position: 48% center;
}
/*
 * Progress strip: nearly square ward art — default `cover` fill, centered framing.
 */
.home-post-lede--progress-tracking .home-post-lede__img,
.home-post-lede-strip-cq
  .home-post-lede--progress-tracking.home-post-lede--mirrored
  .home-post-lede__img,
.home
  .home-article
  .home-post-lede-strip-cq
  .home-post-lede--progress-tracking.home-post-lede--mirrored
  .home-post-lede__img {
  object-fit: cover;
  object-position: center center;
}
/* Mirrored strip: photo left, copy right (same proportions as default). */
.home-post-lede--mirrored .home-post-lede__photo-slot {
  left: 3cqh;
  right: auto;
}
.home-post-lede--mirrored .home-post-lede__aside {
  left: auto;
  right: 0;
  justify-content: flex-end;
  padding: 0.75rem 1.1rem 0.75rem 0.65rem;
}
.home-post-lede--mirrored .home-post-lede__aside-copy {
  text-align: right;
}
.home-post-lede--mirrored .home-post-lede__img {
  object-position: left top;
}
/*
 * Mirrored strips: stack sooner so copy is not trapped on the opposite side of the image.
 */
@container home-pl-strip (max-width: var(--home-post-lede-mirror-stack-until)) {
  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__frame {
    container-type: inline-size;
    container-name: post-lede;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.8rem;
    width: 100%;
    margin: 0;
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0.95rem 0.85rem 1.05rem;
    border-radius: 8px;
    background: var(--site-index-bg);
    overflow: hidden;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside {
    order: 1;
    position: static;
    inset: auto;
    z-index: 1;
    display: block;
    width: 100%;
    padding: 0;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-copy {
    text-align: left;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__photo-slot {
    order: 2;
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: unset;
    height: var(--home-marketing-stacked-photo-h);
    min-height: var(--home-marketing-stacked-photo-h);
    max-height: var(--home-marketing-stacked-photo-h);
    border-radius: 6px;
    overflow: hidden;
    isolation: isolate;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-lead {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-detail {
    font-size: var(--home-post-lede-stacked-detail-fs);
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__img {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
    object-fit: cover;
    object-position: left top;
  }
}
/*
 * All strips: copy (order 1) above image + chrome (order 2) when text column has lost ≥40% vs ref.
 */
@container home-pl-strip (max-width: var(--home-post-lede-stack-until)) {
  .home-post-lede-strip-cq .home-post-lede__frame {
    container-type: inline-size;
    container-name: post-lede;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.8rem;
    width: 100%;
    margin: 0;
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0.95rem 0.85rem 1.05rem;
    border-radius: 8px;
    background: var(--site-index-bg);
    /* Clip anything that escapes the card; overlay is clipped inside the photo slot. */
    overflow: hidden;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__frame {
    background: var(--site-index-bg);
  }

  .home-post-lede-strip-cq .home-post-lede__aside {
    order: 1;
    position: static;
    inset: auto;
    z-index: 1;
    display: block;
    width: 100%;
    padding: 0;
  }

  .home-post-lede-strip-cq .home-post-lede__aside-copy {
    text-align: left;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-copy {
    text-align: left;
  }

  /*
   * position: relative so .draggable-browser-overlay (absolute) is positioned against the
   * slot only — not the whole figure — and cannot extend into the copy block above.
   */
  .home-post-lede-strip-cq .home-post-lede__photo-slot {
    order: 2;
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: unset;
    height: var(--home-marketing-stacked-photo-h);
    min-height: var(--home-marketing-stacked-photo-h);
    max-height: var(--home-marketing-stacked-photo-h);
    border-radius: 6px;
    overflow: hidden;
    isolation: isolate;
  }

  .home-post-lede-strip-cq .home-post-lede__aside-lead {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home-post-lede-strip-cq .home-post-lede__aside-eyebrow {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home-post-lede-strip-cq .home-post-lede--with-eyebrow .home-post-lede__aside-copy {
    flex: none;
    display: block;
  }

  .home-post-lede-strip-cq .home-post-lede--with-eyebrow .home-post-lede__aside-eyebrow {
    margin-bottom: 0.45rem;
  }

  .home-post-lede-strip-cq .home-post-lede__aside-detail {
    font-size: var(--home-post-lede-stacked-detail-fs);
  }

  .home-post-lede-strip-cq .home-post-lede__img {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
    object-fit: cover;
    object-position: left top;
  }

  .home-post-lede-strip-cq .home-post-lede--feedback-hero-photo .home-post-lede__img {
    width: auto;
    height: 100%;
    max-width: none;
    object-position: 48% center;
  }

  .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__img {
    object-position: left top;
  }
}
/*
 * Homepage fallback: same stack layout when viewport is narrow (container queries can miss).
 * Matches --home-post-lede-stack-until at default 16px root (48rem ≈ 0.6×80rem).
 */
@media (max-width: 48rem) {
  .home .home-article .home-post-lede-strip-cq .home-post-lede__frame {
    container-type: inline-size;
    container-name: post-lede;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.8rem;
    width: 100%;
    margin: 0;
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0.95rem 0.85rem 1.05rem;
    border-radius: 8px;
    background: var(--site-index-bg);
    overflow: hidden;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__frame {
    background: var(--site-index-bg);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__aside {
    order: 1;
    position: static;
    inset: auto;
    z-index: 1;
    display: block;
    width: 100%;
    padding: 0;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__aside-copy {
    text-align: left;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-copy {
    text-align: left;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__photo-slot {
    order: 2;
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: unset;
    height: var(--home-marketing-stacked-photo-h);
    min-height: var(--home-marketing-stacked-photo-h);
    max-height: var(--home-marketing-stacked-photo-h);
    border-radius: 6px;
    overflow: hidden;
    isolation: isolate;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__aside-lead {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__aside-eyebrow {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--with-eyebrow .home-post-lede__aside-copy {
    flex: none;
    display: block;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--with-eyebrow .home-post-lede__aside-eyebrow {
    margin-bottom: 0.45rem;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__aside-detail {
    font-size: var(--home-post-lede-stacked-detail-fs);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede__img {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
    object-fit: cover;
    object-position: left top;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--feedback-hero-photo .home-post-lede__img {
    width: auto;
    height: 100%;
    max-width: none;
    object-position: 48% center;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__img {
    object-position: left top;
  }
}
@media (max-width: 58rem) {
  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__frame {
    container-type: inline-size;
    container-name: post-lede;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.8rem;
    width: 100%;
    margin: 0;
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0.95rem 0.85rem 1.05rem;
    border-radius: 8px;
    background: var(--site-index-bg);
    overflow: hidden;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside {
    order: 1;
    position: static;
    inset: auto;
    z-index: 1;
    display: block;
    width: 100%;
    padding: 0;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-copy {
    text-align: left;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__photo-slot {
    order: 2;
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: unset;
    height: var(--home-marketing-stacked-photo-h);
    min-height: var(--home-marketing-stacked-photo-h);
    max-height: var(--home-marketing-stacked-photo-h);
    border-radius: 6px;
    overflow: hidden;
    isolation: isolate;
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-lead {
    font-size: var(--home-post-lede-stacked-lead-fs);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__aside-detail {
    font-size: var(--home-post-lede-stacked-detail-fs);
  }

  .home .home-article .home-post-lede-strip-cq .home-post-lede--mirrored .home-post-lede__img {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
    object-fit: cover;
    object-position: left top;
  }
}
@container home-pl-strip (min-width: calc(var(--home-post-lede-stack-until) + 1px)) and (max-width: var(--home-post-lede-mirror-stack-until)) {
  .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__frame {
    display: block;
    gap: normal;
    height: var(--home-marketing-post-lede-frame-h);
    min-height: var(--home-marketing-post-lede-frame-h);
    max-height: var(--home-marketing-post-lede-frame-h);
    padding: 0;
    border-radius: 10px;
  }

  .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__aside {
    position: absolute;
    left: auto;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: calc(34% - 3cqh);
    padding: 0.75rem 1.1rem 0.75rem 0.65rem;
  }

  .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__aside-copy {
    text-align: right;
  }

  .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__photo-slot {
    position: absolute;
    top: 3cqh;
    right: auto;
    bottom: 3cqh;
    left: 3cqh;
    width: 66%;
    height: auto;
    min-height: 0;
    max-height: none;
    border-radius: 4px;
  }
}
@media (min-width: 48.001rem) and (max-width: 58rem) {
  .home
    .home-article
    .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__frame {
    display: block;
    gap: normal;
    height: var(--home-marketing-post-lede-frame-h);
    min-height: var(--home-marketing-post-lede-frame-h);
    max-height: var(--home-marketing-post-lede-frame-h);
    padding: 0;
    border-radius: 10px;
  }

  .home
    .home-article
    .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__aside {
    position: absolute;
    left: auto;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: calc(34% - 3cqh);
    padding: 0.75rem 1.1rem 0.75rem 0.65rem;
  }

  .home
    .home-article
    .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__aside-copy {
    text-align: right;
  }

  .home
    .home-article
    .home-post-lede-strip-cq
    .home-post-lede--progress-tracking.home-post-lede--mirrored
    .home-post-lede__photo-slot {
    position: absolute;
    top: 3cqh;
    right: auto;
    bottom: 3cqh;
    left: 3cqh;
    width: 66%;
    height: auto;
    min-height: 0;
    max-height: none;
    border-radius: 4px;
  }
}
/* Match hero headline rhythm (Inter, normal weight, tight tracking) — secondary scale */
.home-lede-text {
  margin: 0;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  font-size: clamp(0.94rem, 0.38vw + 0.8rem, 1.05rem);
  color: var(--text-muted);
}
.home-lede-count {
  font-variant-numeric: tabular-nums;
  color: var(--text-h);
  font-weight: 400;
}
.home-lede--proof {
  max-width: 100%;
}
.home-lede-proof {
  --home-proof-green: #15803d;
  --home-proof-green-soft: #16a34a;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 1.05rem;
  border-radius: 12px;
  background: color-mix(in srgb, var(--home-proof-green) 7%, transparent);
  border: 1px solid color-mix(in srgb, var(--home-proof-green) 18%, transparent);
}
[data-theme='dark'] .home-lede-proof {
  --home-proof-green: #4ade80;
  --home-proof-green-soft: #86efac;
  background: color-mix(in srgb, var(--home-proof-green) 9%, transparent);
  border-color: color-mix(in srgb, var(--home-proof-green) 22%, transparent);
}
.home-lede-proof__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--home-proof-green);
}
.home-lede-proof__icon-svg {
  display: block;
}
.home-lede-proof__icon-ring {
  stroke: color-mix(in srgb, var(--home-proof-green) 72%, transparent);
  fill: color-mix(in srgb, var(--home-proof-green) 14%, transparent);
}
.home-lede-proof__icon-check {
  stroke: var(--home-proof-green-soft);
}
.home-lede-text--proof {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: clamp(0.96rem, 0.42vw + 0.82rem, 1.08rem);
  line-height: 1.4;
  color: color-mix(in srgb, var(--text) 88%, var(--text-muted) 12%);
}
.home-lede-proof__label {
  font-weight: 600;
  letter-spacing: -0.018em;
  color: var(--text-h);
}
.home-lede-text--proof .home-lede-count {
  color: var(--home-proof-green);
  font-weight: 600;
}
/*
 * Mobile-first home layout: default / max-width 639px targets ~375–393px notched phones.
 * Tailwind-aligned tiers: base & <640px, sm:640px+, md:768px+, lg:1024px+, xl:1280px+.
 * From 640px up, rules here do not apply — desktop/tablet layout stays as authored above.
 */
@media (max-width: 639px) {
  .home {
    max-width: 100%;
    min-width: 0;
  }

  .home-how-works__card:not(.home-how-works__card--flipped):hover {
    transform: none;
  }

  /*
   * Horizontal bleed: clip on each in-flow child, not on `.home-body`.
   * `overflow-x: clip` on the flex column forces `overflow-y: auto` (CSS pairing), which made
   * `.home-body` a nested scrollport under `min-height: 0` — iOS then glitches `position: fixed`
   * chrome (header / sign-in clipped). Document scroll keeps the header stable.
   */
  .home-body {
    min-width: 0;
  }

  .home-body > * {
    overflow-x: clip;
    min-width: 0;
  }

  /* Let the article use document scroll — pairing overflow-x: clip with visible y on the
     whole article creates a nested scrollport on iOS and makes the page hard to scroll. */
  .home-body > .home-article {
    overflow-x: visible;
  }

  .home-hero-figure,
  .home-post-lede-strip-cq {
    overflow-x: clip;
  }

  .home-article {
    min-width: 0;
    padding-top: 0;
    --home-stats-v-gap: clamp(0.35rem, 0.2rem + 0.75vw, 0.65rem);
  }

  .home-intro.page {
    font-size: clamp(1.08rem, 5.2vw + 0.15rem, 1.32rem);
    row-gap: calc(1rem / 1.08 * 1em);
  }

  .home-text-hero__main {
    padding: clamp(0.75rem, 2vw, 1rem) var(--home-rail-pad-x)
      clamp(0.85rem, 2.2vw, 1.05rem);
  }

  .home-text-hero > .home-top-rail__pathways {
    padding-top: clamp(0.95rem, 2.8vw, 1.1rem);
  }

  .home-top-rail__pathways {
    padding: 0.65rem 0;
  }

  .home-how-works {
    padding: clamp(2.25rem, 5.5vw, 2.85rem) var(--home-rail-pad-x)
      clamp(2.65rem, 6.5vw, 3.35rem);
  }

  .home-how-works__heading {
    margin-bottom: clamp(1.5rem, 4vw, 1.85rem);
    gap: 0.45rem;
  }

  .home-how-works__heading-primary {
    font-size: clamp(1.2rem, 4.5vw + 0.5rem, 1.45rem);
    line-height: 1.26;
  }

  .home-how-works__heading-support {
    font-size: clamp(0.92rem, 2.8vw + 0.5rem, 1.05rem);
  }

  .home-how-works__card {
    padding: 0;
    min-height: clamp(10.5rem, 32vw, 12.25rem);
    height: auto;
  }

  .home-how-works__card-inner {
    min-height: clamp(10.5rem, 32vw, 12.25rem);
  }

  .home-how-works__card-face {
    padding: clamp(1.1rem, 3vw, 1.35rem) clamp(1rem, 2.8vw, 1.25rem);
  }

  .home-how-works__card-back-stage {
    min-height: clamp(7.5rem, 22vw, 8.5rem);
    gap: 0.45rem;
  }

  .home-how-works__mic-wrap {
    width: calc(3.5rem * 2.2);
    height: calc(3.5rem * 2.2);
    transform: translateZ(2px) translateY(0.3rem);
  }

  .home-how-works__mic-wrap .trial-mic-hero {
    width: 3.5rem;
    height: 3.5rem;
  }

  .home-how-works__mic-wrap .trial-reactive-mic__stage {
    width: calc(3.5rem * 2.2);
    height: calc(3.5rem * 2.2);
    transform: translate(-50%, calc(-50% - 0.5rem));
  }

  /* Playing / recording: centre mic and hide caption so equalizer is not clipped. */
  .home-how-works__card--mic-live {
    overflow: visible;
  }

  .home-how-works__card--mic-live .home-how-works__card-face--back {
    overflow: visible;
    justify-content: center;
    padding-block: clamp(0.85rem, 2.5vw, 1.1rem);
  }

  .home-how-works__card--mic-live .home-how-works__card-back-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    width: 100%;
    min-height: 100%;
    gap: 0;
  }

  .home-how-works__card--mic-live .home-how-works__back-label {
    display: none;
  }

  .home-how-works__card--mic-live .home-how-works__mic-wrap {
    overflow: visible;
    transform: translateZ(2px);
  }

  .home-how-works__card--mic-live .home-how-works__mic-wrap .trial-reactive-mic__stage {
    transform: translate(-50%, -50%);
  }

  .home-how-works__back-label {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.35;
    min-height: auto;
    padding-inline: 0.15rem;
  }

  .home-how-works__back-label--question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .home-how-works__arrow {
    display: none;
  }

  .home-how-works__feedback-popup-root {
    padding: max(1rem, env(safe-area-inset-top, 0px)) 1rem
      max(1rem, env(safe-area-inset-bottom, 0px));
  }

  .home-how-works__card-step {
    margin-bottom: 0.7rem;
  }

  .home-text-hero__headline {
    font-size: clamp(1.18rem, 4.8vw + 0.35rem, 1.42rem);
    line-height: 1.3;
  }

  .home-text-hero__mic-stage {
    width: min(100%, 19rem);
  }

  .home-hero-headline {
    max-width: none;
    line-height: 1.33;
  }

  .home-hero-figure {
    margin: 0 0 1.55rem;
  }

  /*
   * Mobile marketing hero: 16∶9 makes the chrome viewport very short when the strip is
   * narrow; the viva-builder embed stacks vertically and ends up with an internal
   * scrollport. A taller frame plus a slightly denser downscale (see iframe rules below)
   * widens the iframe’s layout box so the full embed fits without scrolling inside it.
   */
  .home-hero-figure:not(.home-hero-figure--desktop) .home-hero-figure__frame {
    /* Between 16∶9 and 9∶14: enough chrome height for the stacked builder without extreme letterboxing on ~600px-wide viewports that still match this query */
    aspect-ratio: 9 / 13;
    /* Very small phones: guarantee a minimum iframe chrome height */
    min-height: 27.5rem;
  }

  .home-hero-figure:not(.home-hero-figure--desktop) .home-hero-browser-iframe {
    /* 1/0.72 ≈ 138.89%; keeps the scaled tile filling the shell while ~+11% taller logical viewport vs 125%/0.8 */
    width: 138.889%;
    height: 138.889%;
    transform: scale(0.72);
  }

  .home-article > .home-top-rail + .home-hero-figure {
    margin-top: 0;
  }

  .home-hero-figure + .home-post-lede-strip-cq {
    margin-top: 2rem;
  }

  .home-post-lede-strip-cq + .home-post-lede-strip-cq {
    margin-top: 2.65rem;
  }

  .home-lede-text {
    font-size: clamp(0.88rem, 2.4vw + 0.42rem, 0.98rem);
    line-height: 1.35;
    letter-spacing: -0.02em;
  }

  .home-lede-proof {
    padding: 0.55rem 0.8rem;
    gap: 0.65rem;
    border-radius: 10px;
  }

  .home-lede-proof__icon-svg {
    width: 20px;
    height: 20px;
  }

  .home-pre-footer-cta {
    padding-top: clamp(1.25rem, 3.5vh, 2.5rem);
    padding-bottom: clamp(2.25rem, 10vh, 6rem);
  }

  .home-pre-footer-cta__title {
    max-width: 12ch;
    font-size: clamp(1.75rem, 7vw + 0.25rem, 2.35rem);
    line-height: 1.12;
  }

  .home-article > .home-post-lede-strip-cq:last-of-type {
    padding-bottom: clamp(1.75rem, 8vh, 4rem);
  }
}
/*
 * Narrow homepage marketing strips (`HOME_MARKETING_MOBILE_MQ`, 48rem): denser iframe
 * downscale (138.889% layout × scale(0.72)) so embeds lay out at readable sizes.
 */
@media (max-width: 48rem) {
  /*
   * Maximized mobile embeds: 3px inset on all sides so background art peeks through
   * (replaces edge-to-edge `inset: 0`).
   */
  .draggable-browser-overlay.draggable-browser-overlay--maximized {
    top: 3px !important;
    right: 3px !important;
    bottom: 3px !important;
    left: 3px !important;
  }

  .home-post-lede__photo-slot--equal-overlay-gutters
    > .draggable-browser-overlay.draggable-browser-overlay--maximized {
    top: 3px !important;
    right: 3px !important;
    bottom: 3px !important;
    left: 3px !important;
  }

  /* Expanded iframe content: 5px horizontal margins inside browser chrome. */
  .draggable-browser-overlay.draggable-browser-overlay--maximized
    .browser-chrome__viewport:has(.home-hero-browser-iframe-shell) {
    padding-left: 5px;
    padding-right: 5px;
  }

  .home-post-lede__photo-slot--equal-overlay-gutters > .draggable-browser-overlay {
    left: 5px !important;
    right: 5px !important;
  }

  .home-post-lede-strip-cq
    .home-post-lede__photo-slot
    > .draggable-browser-overlay:not(.draggable-browser-overlay--maximized) {
    left: 5px !important;
    right: 5px !important;
    width: auto !important;
    transform: none !important;
  }

  .home-hero-figure__frame
    > .draggable-browser-overlay:not(.draggable-browser-overlay--maximized) {
    left: 5px !important;
    right: 5px !important;
    width: auto !important;
    transform: none !important;
  }

  .home-hero-figure--desktop .home-hero-browser-iframe {
    width: 138.889%;
    height: 138.889%;
    transform: scale(0.72);
    transform-origin: 0 0;
  }

  .home-post-lede--feedback-mobile-embed .home-hero-browser-iframe,
  .home-post-lede--marketing-mobile-embed .home-hero-browser-iframe {
    width: 138.889%;
    height: 138.889%;
    transform: scale(0.72);
    transform-origin: 0 0;
  }

  .home-marketing-browser-static {
    position: absolute;
    z-index: 2;
    inset: 5%;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    pointer-events: none;
    user-select: none;
    touch-action: none;
  }

  .home-marketing-browser-static__chrome {
    flex: 1;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-shadow:
      0 0.35rem 1.1rem color-mix(in srgb, #000 22%, transparent),
      0 0 0 1px color-mix(in srgb, #000 12%, transparent);
  }

  .home-marketing-browser-static__viewport {
    flex: 1;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    align-items: stretch;
    justify-content: flex-start;
  }

  .home-marketing-browser-static__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top left;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
  }

  /*
   * Progress strip: static preview bleeds past the trailing edge (like desktop clip-trailing
   * iframe chrome) instead of the default 5% inset on all sides.
   */
  .home-post-lede--progress-tracking .home-marketing-browser-static {
    inset: 0 auto 0 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: auto;
    width: 112%;
    max-width: none;
    height: 100%;
  }
}
/* /viva-info — reuse home strip layout */
.viva-page .home-article > .home-post-lede-strip-cq:first-of-type {
  margin-top: 2.85rem;
}
/* /station-info — same strip spacing as viva-info */
.station-page .home-article > .home-post-lede-strip-cq:first-of-type {
  margin-top: 2.85rem;
}
.station-page__mic-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(
      circle at center,
      color-mix(in srgb, var(--surface) 84%, transparent) 0 40%,
      transparent 64%
    ),
    var(--site-index-bg);
}
.station-page__mic-preview .trial-mic {
  transform: scale(2.1);
  transform-origin: center center;
}
@container home-pl-strip (min-width: calc(var(--home-post-lede-stack-until) + 1px)) {
  .station-page__mic-preview .trial-mic {
    transform: scale(2.55);
  }
}
/* /about — editorial company page */
.about-page__article {
  display: flex;
  flex-direction: column;
  gap: clamp(3rem, 8vw, 5.5rem);
  padding-top: 2.85rem;
  padding-bottom: clamp(2.5rem, 10vh, 6rem);
}
.about-page__hero {
  display: flex;
  flex-direction: column;
  gap: clamp(0.85rem, 2vw, 1.25rem);
  max-width: 42rem;
}
.about-page__title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(2.25rem, 5.5vw, 3.35rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--text-h);
}
.about-page__lede {
  margin: 0;
  max-width: 38rem;
  font-size: clamp(1.05rem, 2.2vw, 1.2rem);
  line-height: 1.55;
  color: var(--text);
}
.about-page__section-title {
  margin: 0 0 clamp(1.35rem, 3vw, 2rem);
  font-family: var(--heading);
  font-size: clamp(1.35rem, 2.8vw, 1.65rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.about-page__founder-grid {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2rem);
  width: min(100%, 20rem);
  margin: 0 auto;
  padding: 0;
  list-style: none;
  grid-template-columns: 1fr;
}
@media (max-width: 639px) {
  .about-page__founder-grid {
    width: min(100%, 20rem);
    gap: clamp(1rem, 3vw, 1.35rem);
  }

  .about-page__founder-card picture {
    display: block;
    flex: 0 0 auto;
    width: 100%;
  }

  .about-page__founder-meta {
    flex: 1;
    min-width: 0;
  }
}
@media (min-width: 640px) {
  .about-page__founder-grid {
    width: min(100%, 46rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.about-page__founder-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 16px;
  background: var(--site-index-bg);
  box-shadow: var(--shadow-card-soft);
}
.about-page__founder-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  background: var(--site-index-bg);
  object-fit: cover;
  object-position: center center;
}
.about-page__founder-meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: clamp(1.1rem, 2.5vw, 1.45rem) clamp(1.15rem, 2.5vw, 1.5rem)
    clamp(1.25rem, 2.8vw, 1.6rem);
}
.about-page__founder-name {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.about-page__founder-role {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text);
}
.about-page__founder-role--muted {
  color: var(--text-muted);
}
.about-page__story {
  position: relative;
  overflow: hidden;
  max-width: 46rem;
  margin-inline: auto;
  padding: clamp(1.5rem, 4vw, 2.35rem);
  border: 1px solid color-mix(in srgb, var(--text-h) 9%, transparent);
  border-radius: 24px;
  background: var(--site-index-bg);
  box-shadow: var(--shadow-card-soft);
  text-align: center;
}
.about-page__story .about-page__section-title {
  margin-bottom: clamp(1rem, 2.5vw, 1.45rem);
}
.about-page__story-prose {
  display: flex;
  flex-direction: column;
  gap: clamp(0.85rem, 2vw, 1.1rem);
  max-width: 40rem;
  margin-inline: auto;
}
.about-page__story-p {
  margin: 0;
  font-size: clamp(0.98rem, 1.7vw, 1.05rem);
  line-height: 1.65;
  color: var(--text);
}
.about-page__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(0.75rem, 2vw, 1rem);
  padding: clamp(1.75rem, 4vw, 2.5rem);
  border-radius: 16px;
  background: var(--site-index-bg);
  box-shadow: var(--shadow-card-soft);
}
.about-page__cta-title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.about-page__cta-body {
  margin: 0;
  max-width: 32rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text);
}
.about-page__cta-btn {
  margin-top: 0.35rem;
}
/* /values — homepage post-lede strip + section gap + full-width value tiles */
.values-page .home-article > .home-post-lede-strip-cq:first-of-type {
  margin-top: 2.85rem;
}
/* No extra margin under strip; spacing to tiles is `.values-page__section-gap` only */
.values-page {
  --home-marketing-post-lede-frame-h: clamp(24.8rem, 54.4vh, 28.8rem);
  --home-marketing-stacked-photo-h: clamp(14.4rem, 41.6vw, 20rem);
}
.values-page__post-lede.home-post-lede {
  margin-bottom: 0;
}
.values-page .home-article {
  --values-tiles-gap: clamp(1.35rem, 3vw, 2.25rem);
  padding-bottom: clamp(2.5rem, 10vh, 6rem);
  container-type: inline-size;
  container-name: values-article;
}
/* Match the value-tile grid: text spans Clarity + Trust, mic spans Quality + Access. */
@media (min-width: 48rem) {
  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__frame {
    display: grid;
    align-items: center;
    box-sizing: border-box;
    padding: clamp(0.75rem, 1.2vw, 1.1rem);
    column-gap: var(--values-tiles-gap);
    overflow: visible;
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__aside {
    position: static;
    inset: auto;
    z-index: 1;
    display: flex;
    align-items: center;
    width: auto;
    max-width: none;
    padding: 0;
    pointer-events: auto;
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__aside-copy {
    position: static;
    transform: none;
    width: auto;
    max-width: min(30rem, calc(50cqw - var(--values-tiles-gap)));
    padding-inline: 0;
    /* Left edge of copy aligns with horizontal centre of the Clarity tile below. */
    margin-left: calc(
      (100cqw - var(--values-tiles-gap)) / 4 - clamp(0.75rem, 1.2vw, 1.1rem)
    );
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__photo-slot {
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    transform: none;
    width: 100%;
    height: auto;
    justify-self: center;
    align-self: center;
    aspect-ratio: 1;
    max-height: calc(var(--home-marketing-post-lede-frame-h) - 1.5rem);
    max-width: min(100%, calc(var(--home-marketing-post-lede-frame-h) - 1.5rem));
  }
}
@media (min-width: 48rem) and (max-width: 59.99rem) {
  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__frame {
    grid-template-columns: repeat(2, 1fr);
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__aside {
    grid-column: 1 / 3;
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__photo-slot {
    grid-column: 2 / 3;
    grid-row: 1;
    justify-self: end;
  }
}
@media (min-width: 60rem) {
  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__frame {
    grid-template-columns: repeat(4, 1fr);
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__aside {
    grid-column: 1 / 3;
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__aside-copy {
    margin-left: calc(
      (100cqw - 3 * var(--values-tiles-gap)) / 8 - clamp(0.75rem, 1.2vw, 1.1rem)
    );
    max-width: min(30rem, calc(37.5cqw - var(--values-tiles-gap)));
  }

  .home.values-page
    .values-page__post-lede.home-post-lede:not(.values-page__post-lede--text-only)
    .home-post-lede__photo-slot {
    grid-column: 3 / 5;
    grid-row: 1;
  }
}
/* Intro strip matches full-width value tiles (not --home-rail-max). */
.values-page .home-article > .home-post-lede-strip-cq {
  max-width: none;
}
@container home-pl-strip (max-width: var(--home-post-lede-stack-until)) {
  .values-page__post-lede.home-post-lede .home-post-lede__photo-slot {
    aspect-ratio: 1;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
  }
}
.values-page__mic-artwork {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  container-type: size;
}
/* Square stage — never stretch the equalizer ring to the photo slot aspect ratio. */
.values-page__mic-artwork .home-text-hero__mic-stage {
  position: relative;
  flex-shrink: 0;
  aspect-ratio: 1;
  width: min(100cqw, 100cqh);
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
@media (max-width: 48rem) {
  .home.values-page
    .home-article
    .home-post-lede-strip-cq
    .values-page__post-lede.home-post-lede
    .home-post-lede__photo-slot {
    aspect-ratio: 1;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .values-page__post-lede--text-only .home-post-lede__photo-slot {
    display: none;
  }

  .home.values-page
    .home-article
    .home-post-lede-strip-cq
    .values-page__post-lede--text-only.home-post-lede
    .home-post-lede__frame {
    gap: 0;
  }
}
/* Same as hero figure bottom margin and `.home-hero-figure + .home-post-lede` on the homepage */
.values-page__section-gap {
  flex-shrink: 0;
  width: 100%;
  height: clamp(1rem, 2.4vw, 1.5rem);
}
.values-page__tiles {
  display: grid;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  gap: var(--values-tiles-gap);
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .values-page__tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 960px) {
  .values-page__tiles {
    grid-template-columns: repeat(4, 1fr);
    align-items: stretch;
  }
}
.values-page__tile {
  display: flex;
  flex-direction: column;
  padding: clamp(1.65rem, 3vw, 2.15rem) clamp(1.35rem, 2.5vw, 1.85rem)
    clamp(1.5rem, 2.8vw, 2rem);
  border-radius: 14px;
  background: var(--site-index-bg);
  box-sizing: border-box;
}
.values-page__tile-title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.125rem, 2.2vw, 1.35rem);
  font-weight: 600;
  color: var(--text-h);
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.values-page__tile-body {
  margin: clamp(0.65rem, 1.5vw, 0.85rem) 0 0;
  font-size: 0.9125rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--text);
}
/* /pricing — themed panel spans the same horizontal band as other pages; inner column stays readable */
.page.pricing-page {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  text-align: center;
  overflow-y: auto;
  --pricing-content-gutter: clamp(0.7rem, 4.2vw, 1.05rem);
  --pricing-page-bg-top: color-mix(in srgb, var(--site-index-bg) 56%, var(--bg));
  --pricing-page-bg-bottom: var(--bg);
  --pricing-panel-bg: color-mix(in srgb, var(--site-index-bg) 72%, var(--surface));
  --pricing-panel-glow: color-mix(in srgb, var(--surface) 84%, transparent);
  --pricing-panel-border: color-mix(in srgb, var(--text-h) 7%, var(--border));
  --pricing-card-bg: color-mix(in srgb, var(--surface) 88%, var(--site-index-bg));
  --pricing-card-border: color-mix(in srgb, var(--text-h) 8%, var(--border));
  --pricing-card-text: var(--text-h);
  --pricing-card-text-inverse: var(--cta-pill-fg);
  --pricing-card-muted: color-mix(in srgb, var(--text) 82%, var(--text-muted));
  --pricing-season-accent: var(--accent);
  --pricing-season-accent-contrast: var(--on-accent);
  --pricing-featured-bg: color-mix(in srgb, var(--surface) 82%, var(--pricing-season-accent));
  --pricing-featured-border: color-mix(in srgb, var(--pricing-season-accent) 70%, var(--border));
  padding-top: clamp(1rem, 2.5vw + 0.5rem, 2.25rem);
  background: var(--bg);
}
.pricing-page__shell {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  --pricing-backdrop-radius: clamp(14px, 2.8vw, 26px);
  border-radius: var(--pricing-backdrop-radius);
  border: 0;
  background: transparent;
  box-shadow: none;
}
.pricing-page__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: min(58rem, 100%);
  min-width: 0;
  margin-inline: auto;
  box-sizing: border-box;
  padding-block: clamp(1.35rem, 3.5vw, 2.35rem);
  padding-inline: var(--pricing-content-gutter);
}
.pricing-page__back-home {
  align-self: center;
  margin-top: clamp(1.25rem, 3vw, 2rem);
  padding: 0.35rem 0.65rem;
  border: 1px solid color-mix(in srgb, var(--pricing-card-text) 12%, var(--border));
  border-radius: 9999px;
  background: var(--pricing-card-bg);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--pricing-card-text);
  text-decoration: none;
  transition:
    border-color 0.18s ease,
    color 0.18s ease;
}
.pricing-page__back-home:hover {
  border-color: color-mix(in srgb, var(--pricing-card-text) 28%, var(--border));
  color: var(--text-interactive-hover, var(--pricing-card-text));
  text-decoration: none;
}
.pricing-page__back-home:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
.pricing-page__grid {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: clamp(1.35rem, 3vw, 2.25rem);
  grid-template-columns: minmax(0, 1fr);
}
/* iPad / tablet portrait stays a single column; only wider landscape gets multi-column */
/* e.g. iPhone landscape 667×375 — two columns so rows don’t force horizontal overflow */
@media (min-width: 640px) and (max-width: 767px) and (orientation: landscape) {
  .pricing-page__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
}
@media (min-width: 768px) and (orientation: landscape) {
  .pricing-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }
}
/* Mobile: visible panel inset because layout --page-inline is very small here. */
/* Enhanced for phones: tighter cards, better single-column spacing */
@media (max-width: 639px) {
  .pricing-page__shell {
    width: calc(100% - 2 * var(--pricing-content-gutter));
    max-width: calc(100% - 2 * var(--pricing-content-gutter));
    margin-top: var(--pricing-content-gutter);
    margin-inline: auto;
  }

  .pricing-card {
    padding: 1.25rem 1rem;
  }

  .pricing-page__grid {
    gap: 1rem;
  }
}
@media (max-width: 390px) {
  .pricing-card {
    padding: 1rem 0.85rem;
  }
}
.pricing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.65rem, 3vw, 2.15rem) clamp(1.35rem, 2.5vw, 1.85rem)
    clamp(1.5rem, 2.8vw, 2rem);
  border: 1px solid var(--pricing-card-border);
  border-radius: 14px;
  background: var(--pricing-card-bg);
  box-shadow: var(--shadow-card-soft);
  box-sizing: border-box;
  color: var(--pricing-card-text);
}
.pricing-card--featured {
  padding-top: clamp(2.7rem, 4vw, 3.15rem);
  background: var(--pricing-card-bg);
  border: 2px solid var(--pricing-featured-border);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--pricing-season-accent) 24%, transparent),
    0 20px 46px -26px color-mix(in srgb, var(--pricing-season-accent) 52%, transparent);
}
.pricing-card__ribbon {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.32rem 0.62rem;
  border-radius: 999px;
  background: var(--pricing-season-accent);
  color: var(--pricing-season-accent-contrast);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  box-shadow: 0 8px 22px -14px color-mix(in srgb, var(--pricing-season-accent) 70%, transparent);
}
.pricing-card__name {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.125rem, 2.2vw, 1.35rem);
  font-weight: 600;
  color: var(--pricing-card-text);
  text-align: center;
}
.pricing-card__price {
  margin: clamp(0.85rem, 2vw, 1.15rem) 0 0;
  font-size: clamp(2.05rem, 4.5vw, 2.65rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--pricing-card-text);
  text-align: center;
}
.pricing-card__price-original {
  margin: clamp(0.85rem, 2vw, 1.15rem) 0 0;
  font-size: clamp(0.9rem, 1.7vw, 1rem);
  color: var(--pricing-card-muted);
  text-align: center;
  text-decoration: line-through;
}
.pricing-card__duration {
  margin: clamp(0.4rem, 1.2vw, 0.55rem) 0 0;
  flex: 1 1 auto;
  font-size: clamp(0.95rem, 1.8vw, 1.0625rem);
  line-height: 1.45;
  color: var(--pricing-card-text);
  text-align: center;
}
.pricing-card__duration-note {
  display: block;
  margin-top: 0.28rem;
  font-size: 0.84em;
  line-height: 1.35;
  color: var(--pricing-card-muted);
}
.page.pricing-page .pricing-card__cta--disabled.btn--primary,
.page.pricing-page .pricing-card__cta--disabled.pricing-card__cta--season.btn--primary,
.page.pricing-page .pricing-card__cta--disabled.pricing-card__cta--subtle.btn--primary {
  cursor: default;
  opacity: 1;
  border: 1px solid color-mix(in srgb, var(--pricing-card-text) 10%, var(--border));
  background: color-mix(in srgb, var(--pricing-card-muted) 22%, var(--pricing-card-bg));
  color: var(--pricing-card-muted);
  pointer-events: none;
  box-shadow: none;
  transform: none;
}
.page.pricing-page .pricing-card__cta--disabled.btn--primary:hover,
.page.pricing-page .pricing-card__cta--disabled.pricing-card__cta--season.btn--primary:hover,
.page.pricing-page .pricing-card__cta--disabled.pricing-card__cta--subtle.btn--primary:hover {
  transform: none;
  background: color-mix(in srgb, var(--pricing-card-muted) 22%, var(--pricing-card-bg));
  color: var(--pricing-card-muted);
  border-color: color-mix(in srgb, var(--pricing-card-text) 10%, var(--border));
}
.pricing-card__cta {
  margin-top: clamp(1.2rem, 2.5vw, 1.65rem);
  width: 100%;
  box-sizing: border-box;
}
.page.pricing-page .pricing-card__cta.btn--primary {
  padding: 0.7rem 1.4rem;
  font-size: clamp(0.95rem, 1.5vw, 1.0625rem);
  box-shadow: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.22s ease;
}
/* Week / month — slightly stronger than the card while staying on-theme. */
.page.pricing-page .pricing-card__cta--subtle.btn--primary {
  border: 1px solid color-mix(in srgb, var(--pricing-card-text) 12%, var(--border));
  background: #fff;
  color: var(--pricing-card-text);
}
.page.pricing-page .pricing-card__cta--subtle.btn--primary:hover,
.page.pricing-page .pricing-card__cta--season.btn--primary:hover {
  background: var(--cta-pill-bg);
  color: var(--pricing-card-text-inverse);
  border-color: transparent;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 48%, transparent);
  transform: translateY(-1px);
}
.page.pricing-page .pricing-card__cta--season.btn--primary {
  border: 1px solid transparent;
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
}
[data-theme='dark'] .pricing-page {
  --pricing-page-bg-top: color-mix(in srgb, var(--site-index-bg) 54%, var(--bg));
  --pricing-page-bg-bottom: var(--bg);
  --pricing-panel-bg: color-mix(in srgb, var(--bg) 68%, var(--site-index-bg));
  --pricing-panel-glow: color-mix(in srgb, var(--element-bg) 58%, transparent);
  --pricing-panel-border: color-mix(in srgb, var(--text-h) 8%, var(--border));
  --pricing-card-bg: color-mix(in srgb, var(--surface) 88%, var(--site-index-bg));
  --pricing-card-border: color-mix(in srgb, var(--text-h) 8%, var(--border));
  --pricing-card-text: var(--text-h);
  --pricing-card-text-inverse: var(--cta-pill-fg);
  --pricing-card-muted: color-mix(in srgb, var(--text) 82%, var(--text-muted));
  --pricing-season-accent-contrast: var(--cta-pill-fg);
  --pricing-featured-bg: color-mix(in srgb, var(--surface) 84%, var(--pricing-season-accent));
  --pricing-featured-border: color-mix(in srgb, var(--pricing-season-accent) 72%, var(--border));
}
[data-theme='dark'] .pricing-card {
  box-shadow: var(--shadow-panel-raised);
}
[data-theme='dark'] .page.pricing-page .pricing-card__cta--subtle.btn--primary {
  border-color: color-mix(in srgb, var(--text-h) 10%, var(--border));
  background: #fff;
  color: var(--bg);
}
[data-theme='dark'] .page.pricing-page .pricing-card__cta--subtle.btn--primary:hover,
[data-theme='dark'] .page.pricing-page .pricing-card__cta--season.btn--primary:hover {
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
  border-color: transparent;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 52%, transparent);
}
[data-theme='dark'] .page.pricing-page .pricing-card__cta--season.btn--primary {
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
}
@media (prefers-reduced-motion: reduce) {
  .page.pricing-page .pricing-card__cta.btn--primary:hover {
    transform: none;
  }
}
/* Full-width band so the checkout card can sit in the viewport centre (see pages-stripe.css). */
.site-main > .page.stripe-page {
  padding-bottom: clamp(1.25rem, 4vw, 2.5rem);
}
.page.stripe-page {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  min-height: max(28rem, calc(100dvh - var(--site-header-h)));
  padding: clamp(1.25rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.5rem);
  box-sizing: border-box;
}
.stripe-page__stage {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-inline: auto;
}
.stripe-page__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(28rem, 100%);
  border: 1px solid color-mix(in srgb, var(--border) 88%, var(--accent) 12%);
  border-radius: 1.25rem;
  padding: clamp(2rem, 5vw, 2.75rem) clamp(1.5rem, 4vw, 2.25rem);
  background: color-mix(in oklab, var(--surface) 94%, var(--accent) 6%);
  box-shadow:
    0 1.5rem 3rem -1.75rem color-mix(in srgb, var(--accent) 28%, transparent),
    0 0.5rem 1.5rem -0.75rem rgba(0, 0, 0, 0.18);
  text-align: center;
  animation: stripe-page-card-in 520ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.stripe-page__card--success {
  border-color: color-mix(in srgb, var(--accent) 34%, var(--border));
}
.stripe-page__card--error {
  border-color: color-mix(in srgb, #c45c5c 40%, var(--border));
}
.stripe-page__loader {
  position: relative;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 1.35rem;
}
.stripe-page__loader-ring,
.stripe-page__loader-core {
  position: absolute;
  inset: 0;
  border-radius: 50%;
}
.stripe-page__loader-ring {
  border: 2px solid color-mix(in srgb, var(--accent) 16%, transparent);
  border-top-color: var(--accent);
  animation: stripe-page-spin 1.1s cubic-bezier(0.55, 0.1, 0.35, 0.95) infinite;
}
.stripe-page__loader-core {
  inset: 0.95rem;
  background: color-mix(in srgb, var(--accent) 14%, var(--surface));
  animation: stripe-page-pulse 1.8s ease-in-out infinite;
}
.stripe-page__title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.45rem, 3.2vw, 1.9rem);
  line-height: 1.25;
  color: var(--text-h);
  letter-spacing: -0.02em;
  animation: stripe-page-text-in 640ms cubic-bezier(0.22, 1, 0.36, 1) 80ms both;
}
.stripe-page__body {
  margin: 0.85rem 0 0;
  max-width: 22rem;
  color: var(--text);
  line-height: 1.65;
  font-size: clamp(0.98rem, 2vw, 1.05rem);
  animation: stripe-page-text-in 640ms cubic-bezier(0.22, 1, 0.36, 1) 160ms both;
}
.page.stripe-page .stripe-page__body {
  margin-bottom: 0;
}
.stripe-page__actions {
  margin-top: 1.5rem;
  animation: stripe-page-text-in 640ms cubic-bezier(0.22, 1, 0.36, 1) 240ms both;
}
.stripe-page__home-btn {
  min-width: 11rem;
}
@keyframes stripe-page-card-in {
  from {
    opacity: 0;
    transform: translateY(1.1rem) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes stripe-page-text-in {
  from {
    opacity: 0;
    transform: translateY(0.45rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes stripe-page-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes stripe-page-pulse {
  0%,
  100% {
    transform: scale(0.92);
    opacity: 0.72;
  }

  50% {
    transform: scale(1);
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .stripe-page__card,
  .stripe-page__title,
  .stripe-page__body,
  .stripe-page__actions {
    animation: none;
  }

  .stripe-page__loader-ring {
    animation-duration: 1.6s;
  }

  .stripe-page__loader-core {
    animation: none;
    opacity: 0.85;
  }
}
/* Shared layout + card dimensions for /exam-choice and /directory */
:root {
  --workspace-choice-page-padding-block: clamp(1.25rem, 4vh, 2.5rem);
  --workspace-choice-shell-max: min(76rem, 100%);
  --workspace-choice-shell-gap: clamp(1.4rem, 3.5vw, 2.2rem);
  --workspace-choice-grid-gap: clamp(1rem, 2.4vw, 1.5rem);
  --workspace-choice-card-radius: 8px;
  --workspace-choice-card-accent-height: 3px;
  --workspace-choice-card-header-gap: 0.55rem;
  --workspace-choice-card-header-padding: clamp(1rem, 2.4vw, 1.25rem);
  --workspace-choice-card-body-gap: 0.72rem;
  --workspace-choice-card-body-padding: clamp(1rem, 2.4vw, 1.25rem);
  --workspace-choice-card-accent: var(--trial-mic-accent);
  --workspace-choice-card-header-wash: color-mix(
    in srgb,
    var(--trial-mic-accent) 5%,
    transparent
  );
}
.page.directory-page,
.page.exam-choice-page {
  justify-content: flex-start;
  padding-block: var(--workspace-choice-page-padding-block);
}
/* Legacy spacer — unused since /directory shows a visible pathway header. */
.workspace-choice-header-sizer {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
  max-width: 42rem;
}
/* Shared card header primitives (used by /exam-choice and /directory) */
.workspace-choice-card__accent {
  display: block;
  width: 100%;
  height: var(--workspace-choice-card-accent-height);
  flex-shrink: 0;
}
.workspace-choice-card__accent--0,
.workspace-choice-card__accent--1,
.workspace-choice-card__accent--2 {
  background: var(--workspace-choice-card-accent);
}
/* Viva builder section cards: outcome progress along the accent (see vivaBuilderSectionAccentProgress). */
.viva-builder-page__card-accent--progress {
  background: var(--workspace-choice-card-accent);
}
.page.viva-builder-page {
  --vb-accent-grade-unknown: color-mix(in srgb, var(--text-h) 28%, transparent);
  /* Hover-charge perimeter stroke + matching expanded card border */
  --vb-stats-charge-line: color-mix(in srgb, var(--text-h) 72%, var(--bg));
}
.workspace-choice-card__header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--workspace-choice-card-header-gap);
  padding: var(--workspace-choice-card-header-padding);
  padding-bottom: 0;
}
.workspace-choice-card__header--available {
  background: linear-gradient(
    180deg,
    var(--workspace-choice-card-header-wash),
    transparent 72%
  );
}
.workspace-choice-card__header-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  min-height: 1.35rem;
}
.workspace-choice-card__header-meta--status-only {
  justify-content: flex-end;
}
.workspace-choice-card__kicker {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-muted) 78%, var(--text-h));
}
.workspace-choice-card__status {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin-left: auto;
  border-radius: 9999px;
  padding: 0.28rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  color: var(--text-h);
  background: color-mix(in srgb, var(--site-index-bg) 88%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent);
}
.workspace-choice-card__title {
  font-family: var(--heading);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.workspace-choice-card__divider {
  display: block;
  height: 1px;
  margin: 0.85rem var(--workspace-choice-card-body-padding) 0;
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
}
.workspace-choice-card--disabled .workspace-choice-card__status {
  color: color-mix(in srgb, var(--text) 86%, var(--text-h));
}
[data-theme='dark'] {
  --workspace-choice-card-header-wash: color-mix(
    in srgb,
    var(--trial-mic-accent) 6%,
    transparent
  );
}
/* /directory — mode cards with typographic headers + feature lists */
/*
 * Scroll lives on `.site-main`, not on this flex child: `overflow-x: clip` pairs
 * `overflow-y` to `auto` (CSS overflow 3), which trapped a short internal scrollport
 * under `min-height: 0` and clipped content on small phones.
 */
.layout:has(.page.directory-page) .site-main {
  overflow-x: clip;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
/* Grow with content so `site-main` scrolls; min-height still fills the viewport when content is short */
.layout .site-main > .page.directory-page {
  flex: 0 1 auto;
  align-self: stretch;
}
.page.directory-page {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  width: 100vw;
  width: 100dvw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-left: calc(50% - 50dvw);
  margin-right: calc(50% - 50vw);
  margin-right: calc(50% - 50dvw);
  padding-inline: var(--page-inline, 1.25rem);
  text-align: left;
  overflow: visible;
  position: relative;
  flex: 1 1 auto;
  min-height: calc(
    100dvh - 2rem - var(--site-header-clearance) - env(safe-area-inset-top, 0px)
  );
}
.layout--workspace-no-header .page.directory-page {
  min-height: calc(100dvh - max(1rem, env(safe-area-inset-top, 0px)) - env(safe-area-inset-bottom, 0px));
}
.directory-page__shell {
  width: 100%;
  max-width: var(--workspace-choice-shell-max);
  margin-inline: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--workspace-choice-shell-gap);
}
.directory-page__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.directory-page__back-btn {
  margin-top: clamp(1rem, 2.2vw, 1.35rem);
}
.directory-page__fieldset {
  margin: 0;
  padding: 0;
  border: none;
  min-inline-size: 0;
}
.directory-page__modes-grid {
  display: grid;
  gap: var(--workspace-choice-grid-gap);
  grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 780px) {
  .directory-page__modes-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .directory-page--two-modes .directory-page__modes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 52rem;
    margin-inline: auto;
    width: 100%;
  }
}
.directory-page__mode-option {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  cursor: pointer;
  margin: 0;
  border-radius: var(--workspace-choice-card-radius);
  outline-offset: 3px;
}
button.directory-page__mode-option {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  text-align: inherit;
  width: 100%;
}
a.directory-page__mode-option {
  color: inherit;
  text-decoration: none;
  width: 100%;
}
.directory-page__mode-option--disabled {
  cursor: pointer;
  opacity: 0.78;
}
.directory-page__mode-option--sign-in-prompt {
  cursor: default;
}
.directory-page__mode-option--disabled .directory-page__mode-card {
  transition: none;
}
.directory-page__mode-option--disabled:hover .directory-page__mode-card {
  transform: none;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
}
[data-theme='dark'] .directory-page__mode-option--disabled:hover .directory-page__mode-card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
.directory-page__mode-option--selected .directory-page__mode-card {
  box-shadow:
    0 0 0 2.4px var(--focus-ring-color, color-mix(in srgb, var(--text-h) 35%, transparent)),
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
}
[data-theme='dark'] .directory-page__mode-option--selected .directory-page__mode-card {
  box-shadow:
    0 0 0 2.4px color-mix(in srgb, var(--text-h) 45%, transparent),
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
.directory-page__mode-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.directory-page__mode-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--workspace-choice-card-radius);
  background: var(--site-index-bg);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.directory-page__mode-option:hover .directory-page__mode-card {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 4px 8px rgba(0, 0, 0, 0.18),
    0 14px 36px -8px rgba(0, 0, 0, 0.38),
    0 28px 56px -16px rgba(0, 0, 0, 0.28);
}
.directory-page__mode-option--selected:hover .directory-page__mode-card {
  box-shadow:
    0 0 0 2.4px var(--focus-ring-color, color-mix(in srgb, var(--text-h) 35%, transparent)),
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 4px 8px rgba(0, 0, 0, 0.18),
    0 14px 36px -8px rgba(0, 0, 0, 0.38),
    0 28px 56px -16px rgba(0, 0, 0, 0.28);
}
[data-theme='dark'] .directory-page__mode-option--selected:hover .directory-page__mode-card {
  box-shadow:
    0 0 0 2.4px color-mix(in srgb, var(--text-h) 45%, transparent),
    0 0 0 1px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 16px 40px -10px rgba(0, 0, 0, 0.65),
    0 30px 60px -16px rgba(0, 0, 0, 0.55);
}
[data-theme='dark'] .directory-page__mode-card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
[data-theme='dark'] .directory-page__mode-option:hover .directory-page__mode-card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 16px 40px -10px rgba(0, 0, 0, 0.65),
    0 30px 60px -16px rgba(0, 0, 0, 0.55);
}
.directory-page__mode-kicker {
  min-width: 0;
  font-family: var(--heading);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--text-h);
}
.directory-page__mode-card-header .workspace-choice-card__header-meta {
  align-items: center;
  min-height: clamp(1.15rem, 2vw, 1.35rem);
}
.directory-page__mode-card-header .workspace-choice-card__status {
  margin-left: 0;
}
.directory-page__mode-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  gap: var(--workspace-choice-card-body-gap);
  min-height: 0;
  padding: var(--workspace-choice-card-body-padding);
  padding-top: 0.85rem;
  text-align: left;
}
.directory-page__feature-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.48rem;
}
.directory-page__feature-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--text) 92%, var(--text-h));
}
.directory-page__feature-tick {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.12em;
  border-radius: 3px;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-h) 14%, transparent);
}
.directory-page__feature-item--sign-in {
  color: color-mix(in srgb, var(--text) 78%, var(--text-h));
}
.directory-page__sign-in-link {
  color: var(--text-h);
  font-weight: 600;
  text-underline-offset: 0.15em;
}
.directory-page__sign-in-link:hover {
  text-decoration: underline;
}
.directory-page__mode-card--sign-in-prompt {
  position: relative;
}
.directory-page__mode-card-sizer {
  display: flex;
  flex-direction: column;
  width: 100%;
  visibility: hidden;
  pointer-events: none;
}
.directory-page__sign-in-prompt-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 2.4vw, 1.25rem);
}
.directory-page__sign-in-prompt-message {
  margin: 0;
  max-width: 16rem;
  font-family: var(--heading);
  font-size: clamp(1.05rem, 2.2vw, 1.25rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.02em;
  text-align: center;
  color: var(--text-h);
}
/* Mobile — tighter top spacing */
@media (max-width: 779px) {
  .page.directory-page {
    padding-block: 0.75rem;
    min-height: auto;
  }

  .directory-page__shell {
    gap: 0.85rem;
    padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
  }
}
.directory-page__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* Same panel fill as site index links (legacy `.directory-card` on /directory — cards elsewhere unchanged). */
.directory-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: clamp(5.25rem, 13vw, 6.75rem);
  padding: clamp(0.85rem, 2vw, 1.15rem) clamp(1.5rem, 3vw, 2.25rem);
  border: none;
  border-radius: 6px;
  background: var(--site-index-bg);
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.directory-card__title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.2rem, 2.4vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-h);
}
.directory-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 4px 8px rgba(0, 0, 0, 0.18),
    0 14px 36px -8px rgba(0, 0, 0, 0.38),
    0 28px 56px -16px rgba(0, 0, 0, 0.28);
}
.directory-card:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
[data-theme='dark'] .directory-card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
[data-theme='dark'] .directory-card:hover {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 16px 40px -10px rgba(0, 0, 0, 0.65),
    0 30px 60px -16px rgba(0, 0, 0, 0.55);
}
@media (max-width: 520px) {
  .directory-page__mode-card-body {
    gap: 0.58rem;
  }
}
/* /exam-choice — exam-first entry before sample or workspace mode selection */
.page.exam-choice-page {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  width: 100vw;
  width: 100dvw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-left: calc(50% - 50dvw);
  margin-right: calc(50% - 50vw);
  margin-right: calc(50% - 50dvw);
  padding-inline: var(--page-inline, 1.25rem);
  text-align: left;
  position: relative;
  flex: 1 1 auto;
  min-height: calc(
    100dvh - 2rem - var(--site-header-clearance) - env(safe-area-inset-top, 0px)
  );
}
.exam-choice-page__shell {
  width: 100%;
  max-width: var(--workspace-choice-shell-max, min(76rem, 100%));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--workspace-choice-shell-gap);
}
.exam-choice-page__header {
  max-width: 42rem;
}
.exam-choice-page__eyebrow,
.exam-choice-page__coming-soon-kicker {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-muted) 78%, var(--text-h));
}
.exam-choice-page__title {
  margin: 0.45rem 0 0;
  font-family: var(--heading);
  font-size: clamp(2.1rem, 5vw, 4rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.055em;
  color: var(--text-h);
}
.exam-choice-page__intro {
  margin: clamp(0.9rem, 2vw, 1.15rem) 0 0;
  max-width: 38rem;
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.6;
  color: color-mix(in srgb, var(--text) 88%, var(--text-muted));
}
.exam-choice-page__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--workspace-choice-grid-gap);
  align-items: stretch;
}
@media (min-width: 780px) {
  .exam-choice-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.exam-choice-page__grid > .exam-choice-page__card {
  height: 100%;
}
.exam-choice-page__card {
  appearance: none;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  padding: 0;
  border: none;
  border-radius: var(--workspace-choice-card-radius);
  background: var(--site-index-bg);
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.14),
    0 10px 28px -6px rgba(0, 0, 0, 0.32),
    0 22px 48px -14px rgba(0, 0, 0, 0.22);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
  overflow: hidden;
}
.exam-choice-page--sample .exam-choice-page__card {
  border-radius: var(--workspace-choice-card-radius);
}
.exam-choice-page__card--available:hover {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 4px 8px rgba(0, 0, 0, 0.18),
    0 14px 36px -8px rgba(0, 0, 0, 0.38),
    0 28px 56px -16px rgba(0, 0, 0, 0.28);
}
.exam-choice-page__card--disabled,
.exam-choice-page__card--disabled:hover {
  cursor: not-allowed;
  transform: none;
  opacity: 0.72;
  filter: grayscale(0.9) saturate(0.72);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-muted) 16%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.1);
}
.exam-choice-page__card:focus-visible,
.exam-choice-page__secondary-btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
[data-theme='dark'] .exam-choice-page__card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
[data-theme='dark'] .exam-choice-page__card--available:hover {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 16%, transparent),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 16px 40px -10px rgba(0, 0, 0, 0.65),
    0 30px 60px -16px rgba(0, 0, 0, 0.55);
}
[data-theme='dark'] .exam-choice-page__card--disabled,
[data-theme='dark'] .exam-choice-page__card--disabled:hover {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-muted) 18%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.35);
}
.exam-choice-page__card--available {
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--text-h) 4%, transparent),
      transparent 48%
    ),
    var(--site-index-bg);
}
.exam-choice-page__card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  gap: var(--workspace-choice-card-body-gap);
  min-height: 0;
  padding: var(--workspace-choice-card-body-padding);
  padding-top: 0.85rem;
}
.exam-choice-page__feature-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.48rem;
}
.exam-choice-page__feature-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--text) 92%, var(--text-h));
}
.exam-choice-page__feature-tick {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.12em;
  border-radius: 3px;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-h) 14%, transparent);
}
.exam-choice-page__card--disabled .exam-choice-page__feature-tick {
  color: color-mix(in srgb, var(--text) 88%, var(--text-h));
  background: color-mix(in srgb, var(--text-muted) 9%, transparent);
  border-color: color-mix(in srgb, var(--text-muted) 16%, transparent);
}
.exam-choice-page__card-copy {
  margin-top: auto;
  max-width: 22rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text) 88%, var(--text-muted));
}
@media (max-width: 520px) {
  .exam-choice-page__card {
    min-height: 0;
  }

  .exam-choice-page__card-body {
    gap: 0.58rem;
  }
}
/* /fellowship — admin-gated Anaesthetics Fellowship typed viva */
.page.fellowship-page {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  width: 100vw;
  width: 100dvw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-left: calc(50% - 50dvw);
  margin-right: calc(50% - 50vw);
  margin-right: calc(50% - 50dvw);
  padding-inline: var(--page-inline, 1.25rem);
  text-align: left;
  position: relative;
  flex: 1 1 auto;
  min-height: calc(
    100dvh - 2rem - var(--site-header-clearance) - env(safe-area-inset-top, 0px)
  );
  justify-content: flex-start;
  padding-block: var(--workspace-choice-page-padding-block, clamp(1.25rem, 4vh, 2.5rem));
  /* The `padding-block` shorthand above resets padding-bottom to the small top
     clamp, so the final card row sits too close to the bottom edge. Restore a
     comfortable, scroll-friendly bottom gap for all Fellowship views. */
  padding-bottom: clamp(2.5rem, 6vh, 4.5rem);
}
/*
 * The Fellowship page reuses the `.directory-page` class for card styling, which
 * opts it into /directory's INTERNAL-scroll model:
 *   - `.layout:has(.page.directory-page) .site-main { overflow-y: auto }` makes
 *     `.site-main` a scroll container, and
 *   - `.layout .site-main > .page.directory-page { flex: 0 1 auto }` stops the
 *     page from growing.
 * With the taller theme grid this traps the grid's overflow inside `.site-main`
 * so it never expands the page box or the document — the page ends above the
 * grid and `document.scrollingElement` cannot scroll to the final row.
 *
 * Restore the standard document-scroll model for Fellowship only: let the page
 * grow to contain its content and hand vertical scrolling back to the document.
 * These win over the /directory rules by source order (equal specificity, this
 * file is imported after `pages-directory.css`); `/directory` is unaffected.
 */
.layout:has(.page.fellowship-page) .site-main {
  overflow: visible;
}
.layout .site-main > .page.fellowship-page {
  flex: 0 0 auto;
}
.fellowship-page__shell {
  width: 100%;
  max-width: var(--workspace-choice-shell-max, min(76rem, 100%));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--workspace-choice-shell-gap, clamp(1.4rem, 3.5vw, 2.2rem));
}
/*
 * Active Fellowship viva page (`/fellowship/station`) — compact header +
 * centered stem/question stack. Scoped to `.fellowship-viva-page` so browse,
 * Practice Mode, Primary trial/application, and directory pages are untouched.
 *
 * Horizontal centre fix:
 * `.page.fellowship-page` breakout uses width: 100vw + margin-inline:
 * calc(50% - 50vw) + padding-inline. That centres content in the viewport.
 * But this page also carries `.trial-page`, and `pages-trial.css` loads after
 * this file with `.page.trial-page { width: 100%; align-items: center }`.
 * That replaces 100vw with 100% of the already-inset `.site-main` content box
 * while leaving the breakout margins + padding-inline in place, so the shell’s
 * centre line sits ~--page-inline left of the true viewport centre. Stem and
 * question then share that left-biased centre. Restore the breakout width
 * (and stretch alignment) only for this viva page.
 */
.page.fellowship-viva-page.trial-page {
  width: 100vw;
  width: 100dvw;
  align-items: stretch;
}
.page.fellowship-viva-page .fellowship-page__shell {
  /* Tighter than the shared workspace shell gap now that the large station
     title and Viva N label are gone from this header. */
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
.page.fellowship-viva-page .fellowship-viva-page__header {
  /* Keep Back + eyebrow left-aligned; only stem/question content is centered. */
  align-items: flex-start;
}
.page.fellowship-viva-page .fellowship-viva__back-link {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 clamp(0.45rem, 1.2vw, 0.7rem);
  /* Baseline matches the standard secondary-button hover fill so it reads as
     a settled, filled control; hover then enhances it further. */
  background: var(--element-bg);
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.page.fellowship-viva-page .fellowship-viva__back-link:hover {
  background: color-mix(in srgb, var(--text-h) 12%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 38%, var(--border));
  color: var(--text-h);
}
.page.fellowship-viva-page .fellowship-viva__back-arrow {
  font-size: 1.05em;
  line-height: 1;
}
/* Stem stays ~48rem wide; center it under the left-aligned header. */
.page.fellowship-viva-page .fellowship-panel--stem {
  margin-inline: auto;
  width: 100%;
}
/*
 * Override inherited trial/application stage min-height and generous vertical
 * padding so the question panel sits closer under the stem without affecting
 * Primary `/application-written` or other trial pages.
 */
.page.fellowship-viva-page .trial-page__stage {
  min-height: 0;
  padding-top: clamp(0.35rem, 1.5vh, 0.85rem);
  padding-bottom: clamp(2rem, 8vh, 4rem);
}
/*
 * Fellowship Practice single-question page — compact header + centered stem/
 * question stack. Scoped to `.fellowship-practice-question-page` (no `.trial-page`
 * breakout fix needed on this route).
 */
.page.fellowship-practice-question-page .fellowship-page__shell {
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
.page.fellowship-practice-question-page .fellowship-practice-question-page__header {
  align-items: flex-start;
}
.page.fellowship-practice-question-page .directory-page__back-btn {
  margin-top: clamp(0.65rem, 1.6vw, 1rem);
}
.page.fellowship-practice-question-page .fellowship-practice-question-runtime {
  gap: clamp(0.85rem, 2vw, 1.15rem);
}
.page.fellowship-practice-question-page .fellowship-panel--stem {
  margin-inline: auto;
  width: 100%;
}
.page.fellowship-practice-question-page .fellowship-practice-question__complete {
  margin-inline: auto;
  width: 100%;
  max-width: min(100%, 36rem);
}
.page.fellowship-practice-question-page .fellowship-practice-question__complete .fellowship-actions {
  justify-content: center;
  gap: clamp(0.65rem, 2vw, 1rem);
}
.page.fellowship-practice-question-page .fellowship-practice-question__calibration-wide {
  box-sizing: border-box;
  width: min(100%, calc(100vw - 32px), 112rem);
  width: min(100%, calc(100dvw - 32px), 112rem);
  margin: clamp(1.1rem, 3vw, 1.75rem) auto 0;
}
.fellowship-final-mark-calibration {
  box-sizing: border-box;
  width: 100%;
  padding: clamp(0.85rem, 2vw, 1.25rem);
  border: 2px dashed #b45309;
  border-radius: var(--workspace-choice-card-radius, 8px);
  font-size: 0.9rem;
  background: color-mix(in srgb, var(--surface) 96%, #b45309 4%);
  overflow-wrap: anywhere;
}
.fellowship-final-mark-calibration__slug,
.fellowship-final-mark-calibration code {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.fellowship-final-mark-calibration__table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.fellowship-final-mark-calibration__table {
  width: 100%;
  min-width: 64rem;
  border-collapse: collapse;
  table-layout: auto;
}
.fellowship-final-mark-calibration__atom-table {
  min-width: 78rem;
}
.fellowship-final-mark-calibration__table th,
.fellowship-final-mark-calibration__table td {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.fellowship-final-mark-calibration__evidence {
  font-size: 0.85em;
  white-space: pre-wrap;
}
.fellowship-final-mark-calibration__details {
  margin-top: 0.4rem;
}
.fellowship-final-mark-calibration__details pre {
  margin: 0.35rem 0 0;
  max-width: 100%;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.fellowship-page__meta,
.fellowship-page__loading {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--text) 88%, var(--text-muted));
}
.fellowship-page__loading {
  color: var(--text-muted);
}
.fellowship-page__error {
  padding: 1rem 1.1rem;
  border-radius: var(--workspace-choice-card-radius, 8px);
  border: 1px solid color-mix(in srgb, var(--status-fail-fg) 40%, transparent);
  background: color-mix(in srgb, var(--status-fail-fg) 12%, var(--surface));
  color: var(--text-h);
}
.fellowship-page__header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.25rem;
}
/* Single action row: Back on the left, the viva-action pair genuinely centred
   relative to the full content width via a 1fr / auto / 1fr grid (the empty
   third track balances the Back column so the pair is not right-shifted).
   Negative block margin pulls it in against the shell's large flex gap so the
   theme grid begins noticeably higher (no big empty vertical band). */
.fellowship-page__landing-actions {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.65rem;
  margin-block: calc(var(--workspace-choice-shell-gap, 1.6rem) * -0.5);
}
/* Practice Mode: single random CTA — centre and cap width (Stations keeps the
   3-column grid above for Back + action pair). */
.fellowship-page__landing-actions--solo-random {
  display: flex;
  justify-content: center;
}
.fellowship-page__landing-actions--solo-random .fellowship-page__random-btn {
  width: auto;
  min-width: 17.5rem; /* 280px */
  max-width: min(21.25rem, 100%); /* 340px */
  box-sizing: border-box;
  text-align: center;
}
.fellowship-page__landing-back {
  grid-column: 1;
  justify-self: start;
}
.fellowship-page__landing-viva-actions {
  grid-column: 2;
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.fellowship-page__random-btn,
.fellowship-page__browse-all-btn {
  min-width: 11rem;
}
/* Primary random: dark rounded rectangle (not a pill) matching Browse's shape. */
.fellowship-page__random-btn {
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
  border: 1px solid transparent;
}
.fellowship-page__random-btn:hover {
  background: var(--cta-pill-bg-hover);
  color: var(--cta-pill-fg-hover);
}
.fellowship-page__random-btn[aria-disabled='true'] {
  opacity: 0.55;
  pointer-events: none;
  cursor: not-allowed;
}
/* Stronger default fill: base state matches the standard secondary hover, with
   a deeper hover so the control still clearly responds. Scoped to Fellowship. */
.fellowship-page__browse-all-btn {
  background: var(--element-bg);
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.fellowship-page__browse-all-btn:hover {
  background: color-mix(in srgb, var(--text-h) 12%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 38%, var(--border));
  color: var(--text-h);
}
.fellowship-page__browse-all-btn[aria-disabled='true'] {
  opacity: 0.55;
  pointer-events: none;
  cursor: not-allowed;
}
@media (max-width: 40rem) {
  .fellowship-page__landing-actions {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .fellowship-page__landing-back,
  .fellowship-page__landing-viva-actions {
    grid-column: 1;
    justify-self: stretch;
  }

  .fellowship-page__landing-viva-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .fellowship-page__landing-back,
  .fellowship-page__random-btn,
  .fellowship-page__browse-all-btn {
    width: 100%;
    min-width: 0;
  }

  .fellowship-page__landing-actions--solo-random .fellowship-page__random-btn {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}
.fellowship-page__invalid-theme-btn {
  margin-top: 0.85rem;
}
/* Major-theme browse grid */
.fellowship-theme-grid {
  margin-top: 0.15rem;
}
.fellowship-theme-grid > .fellowship-theme-card {
  height: 100%;
}
.fellowship-theme-card--compact .exam-choice-page__card-header {
  padding-bottom: clamp(1rem, 2.4vw, 1.25rem);
}
.fellowship-theme-card--compact .workspace-choice-card__title {
  margin-bottom: 0;
}
.fellowship-theme-card__progress {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.4;
  font-weight: 400;
  color: var(--text-muted);
}
@media (min-width: 780px) {
  .fellowship-theme-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .fellowship-theme-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* Station picker grid */
.fellowship-station-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--workspace-choice-grid-gap, clamp(1rem, 2.4vw, 1.5rem));
  align-items: stretch;
}
@media (min-width: 780px) {
  .fellowship-station-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .fellowship-station-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.fellowship-station-grid > .fellowship-station-card {
  height: 100%;
}
.fellowship-station-card__viva {
  display: block;
  font-size: 0.875rem;
  color: var(--text-muted);
}
/* Panels */
.fellowship-panel {
  padding: clamp(1rem, 2.4vw, 1.25rem);
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--surface);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.1),
    0 10px 28px -6px rgba(0, 0, 0, 0.18);
}
.fellowship-panel__label {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-panel__title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--text-h);
}
.fellowship-panel__text {
  margin: 0.65rem 0 0;
  white-space: pre-wrap;
  line-height: 1.55;
  color: var(--text);
}
.fellowship-panel__context {
  margin: 0.65rem 0 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--text) 85%, var(--text-muted));
}
.fellowship-panel__context-label {
  font-weight: 600;
  color: var(--text-muted);
}
.fellowship-panel--stem {
  max-width: min(100%, 48rem);
}
.fellowship-panel--followup {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 12%, transparent);
  border-left: 3px solid color-mix(in srgb, var(--accent) 55%, transparent);
}
.fellowship-panel--complete {
  max-width: min(100%, 32rem);
  margin-inline: auto;
}
.fellowship-question-meta {
  margin: 0 0 0.35rem;
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 0.78rem;
  color: var(--text-muted);
  text-align: center;
}
/* Viva panel overrides */
.fellowship-viva__panel {
  max-width: min(100%, 36rem);
}
.fellowship-viva__step {
  pointer-events: none;
  cursor: default;
}
/* Forms */
.fellowship-form__field-label {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
.fellowship-form__label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-muted);
}
.fellowship-form__textarea {
  width: 100%;
}
.fellowship-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  width: 100%;
}
.fellowship-actions__primary,
.fellowship-actions__secondary {
  min-width: 8.5rem;
}
.fellowship-actions--secondary-row {
  margin-top: 0.55rem;
}
.page.fellowship-viva-page .fellowship-actions__quiet {
  min-width: 8.5rem;
  flex: 1 1 8.5rem;
  max-width: 14rem;
  /* Match Back to stations fill / border / hover. */
  background: var(--element-bg);
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.page.fellowship-viva-page .fellowship-actions__quiet:hover:not(:disabled) {
  background: color-mix(in srgb, var(--text-h) 12%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 38%, var(--border));
  color: var(--text-h);
}
/* Finish-early confirmation */
.fellowship-finish-dialog {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.fellowship-finish-dialog__backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  cursor: pointer;
}
.fellowship-finish-dialog__backdrop:disabled {
  cursor: default;
}
.fellowship-finish-dialog__panel {
  position: relative;
  z-index: 1;
  width: min(100%, 26rem);
  padding: 1.25rem 1.35rem;
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--surface);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 12px 32px rgba(0, 0, 0, 0.18);
}
.fellowship-finish-dialog__title {
  margin: 0 0 0.75rem;
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--text-h);
}
.fellowship-finish-dialog__body {
  display: grid;
  gap: 0.65rem;
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--text);
}
.fellowship-finish-dialog__body p {
  margin: 0;
}
.fellowship-finish-dialog__error {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  color: var(--status-borderline-fg, #a15c00);
}
.fellowship-finish-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
}
.fellowship-finish-dialog__btn {
  min-width: 8rem;
}
/* Examiner feedback */
.fellowship-feedback {
  width: 100%;
  padding: 1rem 1.05rem;
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: color-mix(in srgb, var(--surface) 92%, var(--text-h) 8%);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 10%, transparent);
}
.fellowship-feedback__heading {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-h);
}
.fellowship-feedback__reason {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.5;
  color: var(--text);
}
.fellowship-feedback__diagnostics {
  margin-top: 0.85rem;
}
.fellowship-feedback__diagnostics-summary {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  user-select: none;
}
.fellowship-feedback__flags {
  margin: 0.65rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
  font-size: 0.88rem;
}
.fellowship-feedback__flags div {
  display: flex;
  gap: 0.5rem;
}
.fellowship-feedback__flags dt {
  min-width: 9rem;
  color: var(--text-muted);
}
.fellowship-feedback__flags dd {
  margin: 0;
  font-family: var(--mono, ui-monospace, monospace);
  color: var(--text-h);
}
.fellowship-status--safe {
  color: var(--status-pass-fg);
}
.fellowship-status--warn {
  color: var(--status-borderline-fg);
}
.fellowship-status--danger {
  color: var(--status-fail-fg);
}
.fellowship-notice {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--accent) 75%, var(--text));
}
.fellowship-notice--warn {
  color: var(--status-borderline-fg);
}
.fellowship-marking {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
  color: var(--text-muted);
  text-align: center;
}
/* Question media controls */
.fellowship-media-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
  justify-content: center;
}
.fellowship-media-controls__button {
  appearance: none;
  padding: 0.4rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  color: var(--text-h);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}
.fellowship-media-controls__button:hover {
  background: color-mix(in srgb, var(--accent) 18%, var(--surface));
}
.fellowship-media-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.fellowship-media-modal__backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(0, 0, 0, 0.75);
  cursor: pointer;
}
.fellowship-media-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 42rem;
  max-height: 90vh;
  overflow: auto;
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--surface);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.fellowship-media-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 12%, transparent);
}
.fellowship-media-modal__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-h);
}
.fellowship-media-modal__caption {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--text-muted);
}
.fellowship-media-modal__close {
  appearance: none;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 1.1rem;
  cursor: pointer;
  padding: 0.15rem 0.35rem;
  border-radius: 0.35rem;
}
.fellowship-media-modal__close:hover {
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
  color: var(--text-h);
}
.fellowship-media-modal__body {
  padding: 1rem;
}
.fellowship-media-modal__image {
  display: block;
  width: 100%;
  max-height: 65vh;
  object-fit: contain;
  border-radius: 0.5rem;
}
.fellowship-media-modal__text {
  margin: 0;
  white-space: pre-wrap;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text);
}
.fellowship-media-modal__fallback {
  padding: 1rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in srgb, var(--status-borderline-fg) 35%, transparent);
  background: color-mix(in srgb, var(--status-borderline-fg) 10%, var(--surface));
}
.fellowship-media-modal__fallback-title {
  margin: 0;
  font-weight: 600;
  color: var(--text-h);
}
.fellowship-media-modal__fallback-text {
  margin: 0.5rem 0 0;
  white-space: pre-wrap;
  color: var(--text);
}
/* Practice Mode — interactive focus cards and selection placeholder */
button.fellowship-practice-focus-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  text-align: inherit;
  color: inherit;
  cursor: pointer;
}
button.fellowship-practice-focus-card:disabled {
  cursor: wait;
  opacity: 0.72;
}
button.fellowship-practice-focus-card:focus-visible {
  outline: 2px solid var(--trial-mic-accent);
  outline-offset: 3px;
}
.fellowship-practice-focus-card__action {
  display: block;
  margin-top: 0.55rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-muted);
}
.fellowship-practice-focus-grid {
  align-items: stretch;
}
.fellowship-practice-question-meta {
  display: grid;
  gap: 0.85rem;
  margin: 0;
}
.fellowship-practice-question-meta dt {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-practice-question-meta dd {
  margin: 0.2rem 0 0;
}
.fellowship-practice-question__themes {
  font-weight: 600;
}
.fellowship-practice-question-runtime {
  display: grid;
  gap: 1.25rem;
}
.fellowship-practice-question__stem {
  white-space: pre-wrap;
}
.fellowship-practice-question__media {
  margin-top: 0.85rem;
}
.fellowship-practice-question__panel {
  display: grid;
  gap: 0.85rem;
}
.fellowship-practice-question__feedback,
.fellowship-practice-question__followup,
.fellowship-practice-question__complete {
  outline: none;
}
.fellowship-practice-question__followup,
.fellowship-practice-question__complete {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding-top: 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--border, #d0d4dc) 80%, transparent);
}
/* Fellowship Practice final-mark result — calm, compact, Emergency-inspired */
.page.fellowship-final-marking-page {
  padding-block: clamp(0.85rem, 2.5vh, 1.5rem);
  padding-bottom: clamp(2rem, 5vh, 3.5rem);
}
.fellowship-final-marking-page__shell {
  max-width: var(--workspace-choice-shell-max, min(76rem, 100%));
  gap: clamp(0.65rem, 1.6vw, 1rem);
}
.fellowship-final-marking-page__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  margin: 0;
}
.fellowship-final-marking-page__back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.fellowship-final-marking-page__back:hover {
  color: var(--text-h);
}
.fellowship-final-marking-page__back:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  outline-offset: 2px;
  border-radius: 2px;
}
.fellowship-final-marking-page__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-final-mark-result {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: min(100%, 56rem);
  max-width: min(100%, 56rem);
  margin-inline: auto;
}
.fellowship-final-mark-result__surface {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid color-mix(in srgb, var(--text-h) 12%, transparent);
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--surface);
  overflow: hidden;
}
.fellowship-final-mark-result__summary {
  --mark-summary-accent: color-mix(in srgb, var(--text-h) 34%, var(--border));

  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.45rem;
  margin: 0;
  padding: 0.95rem 1.05rem 0.85rem;
}
.fellowship-final-mark-result__tone--well-above {
  --mark-summary-accent: #2563eb;
}
.fellowship-final-mark-result__tone--at-standard {
  --mark-summary-accent: #059669;
}
.fellowship-final-mark-result__tone--borderline {
  --mark-summary-accent: #d97706;
}
.fellowship-final-mark-result__tone--fail {
  --mark-summary-accent: #dc2626;
}
.fellowship-final-mark-result__summary-marks {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
}
.fellowship-final-mark-result__summary-fraction {
  display: inline-flex;
  align-items: baseline;
  gap: 0.12rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  font-family: var(--heading);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text-h);
}
.fellowship-final-mark-result__summary-unit {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-final-mark-result__summary-sep {
  color: var(--text-muted);
  opacity: 0.55;
  font-size: 0.85rem;
}
.fellowship-final-mark-result__summary-band {
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--mark-summary-accent);
}
.fellowship-final-mark-result__summary-pct {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-muted);
}
.fellowship-final-mark-result__feedback {
  padding: 0.15rem 1.05rem 0.95rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.fellowship-final-mark-result__section-label {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-final-mark-result__feedback-text {
  margin: 0;
  max-width: 42rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--text);
  white-space: pre-wrap;
}
.fellowship-final-mark-result__lists {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.95rem 1.5rem;
  padding: 0.85rem 1.05rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
@media (min-width: 720px) {
  .fellowship-final-mark-result__lists {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.fellowship-final-mark-result__list-section {
  min-width: 0;
}
.fellowship-final-mark-result__bullet-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.94rem;
  line-height: 1.45;
  color: var(--text);
}
.fellowship-final-mark-result__bullet-list li + li {
  margin-top: 0.28rem;
}
.fellowship-final-mark-result__disclosures {
  display: flex;
  flex-direction: column;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.fellowship-final-mark-result__reveal {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.fellowship-final-mark-result__reveal + .fellowship-final-mark-result__reveal {
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.fellowship-final-mark-result__reveal-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  min-height: 2.55rem;
  padding: 0.55rem 1.05rem;
  border: 0;
  background: transparent;
  color: var(--text-h);
  font: inherit;
  font-size: 0.94rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.fellowship-final-mark-result__reveal-toggle:hover {
  background: color-mix(in srgb, var(--text-h) 3%, transparent);
}
.fellowship-final-mark-result__reveal-toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  outline-offset: -2px;
}
.fellowship-final-mark-result__reveal-toggle-end {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  min-width: 0;
}
.fellowship-final-mark-result__reveal-status {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-muted);
  text-align: right;
}
.fellowship-final-mark-result__reveal-chevron {
  flex-shrink: 0;
  transition: transform 0.15s ease;
  color: var(--text-muted);
}
.fellowship-final-mark-result__reveal-chevron--open {
  transform: rotate(180deg);
}
.fellowship-final-mark-result__reveal-body {
  padding: 0 1.05rem 0.85rem;
  border-top: 0;
}
.fellowship-final-mark-result__transcript {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding-top: 0.35rem;
  max-width: 42rem;
}
.fellowship-final-mark-result__transcript-heading {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fellowship-final-mark-result__transcript-body {
  margin: 0;
  white-space: pre-wrap;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text) 88%, var(--text-muted));
}
.fellowship-final-mark-result__atom-groups {
  display: flex;
  flex-direction: column;
  gap: 1.45rem;
  padding-top: 0.45rem;

  /* Row-state colours only — headers stay neutral */
  --ffm-covered-fg: var(--status-pass-fg);
  --ffm-safety-fg: var(--status-fail-fg);
  --ffm-partial-fg: var(--status-borderline-fg);
  --ffm-missed-fg: var(--status-fail-fg);
}
[data-theme='dark'] .fellowship-final-mark-result__atom-groups {
  /* Deliberate amber — distinct from fail red and covered green */
  --ffm-partial-fg: #fbbf24;
}
.fellowship-final-mark-result__atom-group {
  margin: 0;
}
.fellowship-final-mark-result__atom-group-header {
  display: block;
  padding: 0 0 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 16%, transparent);
  background: transparent;
}
.fellowship-final-mark-result__atom-group-title {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  margin: 0;
  min-width: 0;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--text-h);
}
.fellowship-final-mark-result__atom-group-name {
  overflow-wrap: anywhere;
}
.fellowship-final-mark-result__atom-group-sep {
  color: var(--text-muted);
  font-weight: 500;
  letter-spacing: 0;
}
.fellowship-final-mark-result__atom-group-count {
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  letter-spacing: 0;
  color: color-mix(in srgb, var(--text-h) 72%, var(--text-muted));
}
.fellowship-final-mark-result__atom-empty {
  margin: 0.35rem 0 0;
  padding: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text) 78%, var(--text-muted));
}
.fellowship-final-mark-result__atom-list {
  list-style: none;
  margin: 0.15rem 0 0;
  padding: 0;
}
.fellowship-final-mark-result__atom-row {
  display: grid;
  grid-template-columns: 1rem max-content minmax(0, 1fr);
  gap: 0.4rem 0.55rem;
  align-items: start;
  padding: 0.38rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 7%, transparent);
}
.fellowship-final-mark-result__atom-row:last-child {
  border-bottom: 0;
}
.fellowship-final-mark-result__atom-glyph {
  display: inline-flex;
  justify-content: center;
  width: 1rem;
  margin-top: 0.08rem;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.3;
}
.fellowship-final-mark-result__atom-glyph--safety {
  color: var(--ffm-safety-fg);
}
.fellowship-final-mark-result__atom-glyph--missed {
  color: var(--ffm-missed-fg);
}
.fellowship-final-mark-result__atom-glyph--partial {
  color: var(--ffm-partial-fg);
}
.fellowship-final-mark-result__atom-glyph--covered {
  color: var(--ffm-covered-fg);
}
.fellowship-final-mark-result__atom-state {
  margin-top: 0.05rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  white-space: nowrap;
  line-height: 1.35;
}
.fellowship-final-mark-result__atom-state--safety {
  color: var(--ffm-safety-fg);
}
.fellowship-final-mark-result__atom-state--missed {
  color: var(--ffm-missed-fg);
}
.fellowship-final-mark-result__atom-state--partial {
  color: var(--ffm-partial-fg);
}
.fellowship-final-mark-result__atom-state--covered {
  color: var(--ffm-covered-fg);
}
.fellowship-final-mark-result__atom-text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text);
  overflow-wrap: anywhere;
}
.fellowship-final-mark-result__status {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.35rem 0 0;
  color: color-mix(in srgb, var(--text) 85%, var(--text-muted));
}
.fellowship-final-mark-result__status-spinner {
  width: 1rem;
  height: 1rem;
  border: 2px solid color-mix(in srgb, var(--text-muted) 35%, transparent);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: fellowship-final-mark-spin 0.8s linear infinite;
}
@keyframes fellowship-final-mark-spin {
  to {
    transform: rotate(360deg);
  }
}
.fellowship-final-mark-result__failure {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.5rem;
}
.fellowship-final-mark-result__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1rem;
}
.fellowship-final-mark-result__actions-primary {
  display: flex;
  justify-content: center;
  width: 100%;
}
.fellowship-final-mark-result__actions-secondary {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
}
/* Resting state = former global secondary hover; hover steps one shade deeper. */
.fellowship-final-mark-result__actions .btn--secondary {
  background: var(--element-bg);
  border: 1px solid color-mix(in srgb, var(--text-h) 22%, var(--border));
  color: var(--text-h);
}
.fellowship-final-mark-result__actions .btn--secondary:hover {
  background: color-mix(in srgb, var(--text-h) 12%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 38%, var(--border));
  color: var(--text-h);
}
[data-theme='dark'] .fellowship-final-mark-result__actions .btn--secondary {
  background: color-mix(in srgb, var(--element-bg) 88%, var(--text-h));
  border-color: color-mix(in srgb, var(--text-h) 28%, var(--border));
}
[data-theme='dark'] .fellowship-final-mark-result__actions .btn--secondary:hover {
  background: color-mix(in srgb, var(--text-h) 16%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 44%, var(--border));
}
@media (max-width: 639px) {
  .fellowship-final-mark-result__reveal-status {
    max-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fellowship-final-mark-result__atom-row {
    grid-template-columns: 1rem minmax(0, 1fr);
    grid-template-areas:
      'glyph state'
      'glyph text';
  }

  .fellowship-final-mark-result__atom-glyph {
    grid-area: glyph;
  }

  .fellowship-final-mark-result__atom-state {
    grid-area: state;
  }

  .fellowship-final-mark-result__atom-text {
    grid-area: text;
  }

  .fellowship-final-mark-result__actions {
    gap: 0.65rem;
  }

  .fellowship-final-mark-result__actions-primary .btn {
    width: 100%;
  }

  .fellowship-final-mark-result__actions-secondary {
    flex-direction: column;
    align-items: stretch;
  }

  .fellowship-final-mark-result__actions-secondary .btn {
    width: 100%;
  }
}
/* Viewport inset via `site-main` (`--page-inline`). Tighter gap between cards only. */
.page.viva-builder-page {
  --vb-edge-gutter: var(--page-inline, 1.25rem);
  --vb-card-gap: clamp(0.5rem, 1.2vw, 0.85rem);
  /* Expanded stats overlay height beyond one collapsed tile (matches sub-card min-height). */
  --vb-stats-expanded-extra-height: calc(3.35rem + var(--vb-card-gap));
  --vb-start-viva-band-gap: clamp(1.25rem, 4vw, 2.25rem);
  /* Main section tiles: ~15% shorter vertical footprint (1 elsewhere via fallback). */
  --vb-section-card-vscale: 0.85;
  /* Match Start viva / Done pill block height for bottom reserve */
  --vb-options-bar-h: calc(
    0.65rem * 2 + 1.2 * clamp(0.84rem, 1.5vw, 0.9375rem)
  );
  --vb-options-bar-pad: clamp(0.45rem, 1.2vw, 0.65rem);
  /* Lift pills from bottom: 5× the prior tripled gap (15× pad) + safe area */
  --vb-options-bottom-inset: calc(
    var(--vb-options-bar-pad) * 15 + env(safe-area-inset-bottom, 0px)
  );

  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  max-width: none;
  width: 100%;
  margin-inline: 0;
  box-sizing: border-box;
  padding-inline: 0;
  /* Reserve space so grid/content does not sit under fixed bottom pills */
  padding-bottom: calc(
    var(--vb-options-bar-h) + var(--vb-options-bar-pad) + var(--vb-options-bottom-inset) +
      var(--vb-edge-gutter)
  );
}
/* Session toggles live in the header — no fixed bottom pill bar (including marketing `?embed=1` iframes). */
.page.viva-builder-page--title-in-header {
  padding-bottom: calc(var(--vb-edge-gutter) + env(safe-area-inset-bottom, 0px));
}
.site-main > .page.viva-builder-page {
  flex: 0 1 auto;
}
/* Bottom option bar only with Start viva — tighter page padding when a block is open */
.page.viva-builder-page--no-bottom-options {
  padding-bottom: calc(var(--vb-edge-gutter) + env(safe-area-inset-bottom, 0px));
}
/* Title lives in workspace header; reserve former in-flow h1 + gap so cards stay put */
.page.viva-builder-page--title-in-header {
  padding-top: calc(1.825rem * 1.48 + clamp(0.75rem, 1.85vw, 1.1rem));
}
.page.viva-builder-page--embed h1 {
  margin: 0 0 clamp(0.75rem, 1.85vw, 1.1rem);
}
/* Homepage hero iframe: default arrow on the page shell; hand on clickable tiles/controls. */
.page.viva-builder-page--embed {
  cursor: default;
}
.page.viva-builder-page--embed
  .viva-builder-page__grid
  > .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card:not(
    .viva-builder-page__card--viva-zero-questions
  ),
.page.viva-builder-page--embed
  .viva-builder-page__grid
  > .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card:not(
    .viva-builder-page__card--viva-zero-questions
  )
  *,
.page.viva-builder-page--embed .viva-builder-page__card-main,
.page.viva-builder-page--embed .viva-builder-page__card-main *,
.page.viva-builder-page--embed
  .viva-builder-page__card-more:not(.viva-builder-page__card-more--hint),
.page.viva-builder-page--embed .viva-builder-page__sub-card-hit,
.page.viva-builder-page--embed .viva-builder-page__sub-card-hit *,
.page.viva-builder-page--embed
  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked),
.page.viva-builder-page--embed
  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked) *,
.page.viva-builder-page--embed
  .viva-builder-page__sub-check:not(.viva-builder-page__sub-check--locked),
.page.viva-builder-page--embed .viva-builder-page__done,
.page.viva-builder-page--embed .viva-builder-page__done *,
.page.viva-builder-page--embed .viva-builder-page__option-pill,
.page.viva-builder-page--embed .viva-builder-page__option-pill *,
.page.viva-builder-page--embed
  .viva-builder-page__start-viva-centre
  [data-vb-recovery-target='start-viva'],
.page.viva-builder-page--embed
  .viva-builder-page__start-viva-centre
  [data-vb-recovery-target='start-viva']
  *,
.page.viva-builder-page--embed .viva-builder-page__choose-station,
.page.viva-builder-page--embed .viva-builder-page__choose-station *,
.page.viva-builder-page--embed .viva-builder-page__station-response-btn,
.page.viva-builder-page--embed .viva-builder-page__station-response-btn * {
  cursor: pointer;
}
/* Column: card grid + topic strip + Start viva (scrolls together; CTA is not viewport-fixed). */
.viva-builder-page__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  /* Space between the grid block and Start viva (margin-top: auto on band still consumes extra height). */
  gap: clamp(1rem, 3vw, 2.25rem);
}
.viva-builder-page__body:has(.viva-builder-page__start-viva-band--with-hint) {
  gap: var(--vb-start-viva-band-gap);
}
/* Start viva band: below the grid; margin-top auto uses spare height on short pages */
.viva-builder-page__start-viva-band {
  position: relative;
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: auto;
  padding: clamp(1.25rem, 4vw, 2.75rem) var(--page-inline, 1.25rem);
  pointer-events: none;
}
.viva-builder-page__start-viva-band--with-hint {
  gap: var(--vb-start-viva-band-gap);
  padding-top: 0;
}
/* Start Viva: centres the pill stack inside the band */
.viva-builder-page__start-viva-centre {
  position: relative;
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  pointer-events: none;
}
.viva-builder-page__start-viva-band--with-hint .viva-builder-page__start-viva-centre {
  padding: 0;
}
.viva-builder-page__start-viva-centre .viva-builder-page__done {
  pointer-events: auto;
}
.viva-builder-page__start-viva-stack {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
}
/* Voice / Written sit in the vertical gap above Start station (symmetric inset ≈ halfway). */
.viva-builder-page__start-viva-stack--station-response {
  gap: 0;
}
.viva-builder-page__station-connect-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  z-index: 2;
}
.viva-builder-page__station-connect-path {
  fill: none;
  stroke: var(--text-h);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.viva-builder-page__station-response-row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(1.3rem, 4vw, 2.2rem);
  margin-block: clamp(2rem, 10vmin, 5rem);
  margin-inline: auto;
  pointer-events: auto;
  position: relative;
  z-index: 3;
}
.viva-builder-page__station-response-btn {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: min(7.5rem, 42vw);
  margin: 0;
  box-sizing: border-box;
  padding: 0.65rem 1.5rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 72%, var(--text-h) 14%);
  box-shadow: none;
  font-family: var(--heading, inherit);
  font-size: clamp(0.84rem, 1.5vw, 0.9375rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-align: center;
  color: var(--text-h);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
[data-theme='light'] .viva-builder-page__station-response-btn {
  background: #fff;
  color: #1a1a1a;
}
.viva-builder-page__station-response-btn-label {
  position: relative;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.28s ease;
}
.viva-builder-page__station-response-btn--label-muted
  .viva-builder-page__station-response-btn-label {
  opacity: 0.38;
}
.viva-builder-page__station-response-border-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}
/* Path sits inside `<button>`; JS also sets inline stroke for WAAPI. Dark buttons keep light stroke visible. */
.page.viva-builder-page--station .viva-builder-page__station-response-border-path {
  fill: none;
  stroke: var(--text-h);
  stroke-width: 2;
}
.viva-builder-page__station-response-btn:hover {
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
}
[data-theme='light'] .viva-builder-page__station-response-btn:hover {
  border-color: color-mix(in srgb, #1a1a1a 35%, var(--border));
}
.viva-builder-page__station-response-btn--on {
  border-color: transparent;
  box-shadow: none;
}
.viva-builder-page__station-response-btn--on:hover {
  border-color: transparent;
}
.viva-builder-page__station-response-btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
@keyframes viva-builder-station-response-wiggle {
  0%,
  100% {
    transform: translateX(0);
  }
  15% {
    transform: translateX(-5px) rotate(-2deg);
  }
  30% {
    transform: translateX(5px) rotate(2deg);
  }
  45% {
    transform: translateX(-4px) rotate(-1.5deg);
  }
  60% {
    transform: translateX(4px) rotate(1.5deg);
  }
  75% {
    transform: translateX(-2px) rotate(-0.75deg);
  }
}
.viva-builder-page__station-response-row--wiggle
  .viva-builder-page__station-response-btn {
  animation: viva-builder-station-response-wiggle 0.48s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__station-response-row--wiggle
    .viva-builder-page__station-response-btn {
    animation: none;
  }
}
.page.viva-builder-page--embed .viva-builder-page__station-response-btn {
  cursor: pointer;
}
.viva-builder-page__start-viva-stack--station-response > .viva-builder-page__start-cta-group .viva-builder-page__done {
  position: relative;
  z-index: 3;
  /* Suppress viva-builder-done-in when choose-station drops — otherwise opacity/scale replays ~0.4s */
  animation: none;
  transition:
    background-color 0.14s ease,
    color 0.14s ease,
    border-color 0.14s ease,
    box-shadow 0.14s ease;
}
/* Start pill + browser notice: explicit gap (margin on the notice was unreliable in the flex stack). */
.viva-builder-page__start-cta-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2.25rem, 6vmin, 3.5rem);
  pointer-events: none;
}
.viva-builder-page__start-cta-group .viva-builder-page__done {
  pointer-events: auto;
}
.viva-builder-page__start-cta-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}
.viva-builder-page__station-domain-hint {
  margin: 0;
  max-width: min(100%, 22rem);
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: center;
  color: var(--text-muted);
}
.viva-builder-page__start-viva-stack--station-response > .viva-builder-page__start-cta-group {
  position: relative;
  z-index: 3;
  pointer-events: auto;
}
.viva-builder-page__station-back.home-hero-iframe-reset {
  position: absolute;
  top: calc(100% + 0.7rem);
  left: 50%;
  right: auto;
  bottom: auto;
  z-index: 4;
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  width: auto;
  height: auto;
  min-width: 1.925rem;
  border-radius: 0;
  transform: translateX(-50%);
  transition:
    opacity 0.22s ease,
    transform 0.22s ease,
    background-color 0.22s ease;
}
.viva-builder-page__station-back.home-hero-iframe-reset svg {
  width: 1.2375rem;
  height: 1.2375rem;
  transform-origin: center;
}
.viva-builder-page__station-back-label {
  font-family: var(--heading, inherit);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--text-h);
}
.viva-builder-page__station-back.home-hero-iframe-reset:hover {
  transform: translateX(-50%) translateY(-1px);
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__station-back.home-hero-iframe-reset svg {
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .viva-builder-page__station-back.home-hero-iframe-reset:hover svg {
    transform: translateX(-3px);
  }

  .viva-builder-page__station-back.home-hero-iframe-reset:active svg {
    transform: translateX(-5px);
  }

  .viva-builder-page__station-back--fade-out {
    animation: viva-builder-station-back-out 0.5s ease both;
  }

  .viva-builder-page__station-back--fade-in {
    animation: viva-builder-station-back-in 0.5s cubic-bezier(0.22, 1, 0.36, 1)
      both;
  }
}
@keyframes viva-builder-station-back-out {
  from {
    opacity: 1;
    transform: translateX(-50%) translateX(0);
  }

  to {
    opacity: 0;
    transform: translateX(-50%) translateX(-0.55rem);
  }
}
@keyframes viva-builder-station-back-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateX(0.45rem);
  }

  to {
    opacity: 1;
    transform: translateX(-50%) translateX(0);
  }
}
/* Bottom option pills — fixed to viewport base, below centred Start viva */
.viva-builder-page__options {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 950;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: var(--vb-options-bar-pad) var(--vb-edge-gutter)
    var(--vb-options-bottom-inset);
  pointer-events: none;
}
.viva-builder-page__options-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.35rem, 1.2vw, 0.65rem);
  width: min(24rem, calc(100% - 2 * var(--vb-edge-gutter)));
  max-width: 100%;
  min-width: 0;
  margin-inline: auto;
  pointer-events: auto;
  justify-items: stretch;
  align-items: start;
}
@media (min-width: 640px) {
  .viva-builder-page__options-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(52rem, calc(100% - 2 * var(--vb-edge-gutter)));
  }
}
/*
 * Option pills: same type + padding as Start viva / Done, but topic-tile fill (not black CTA).
 * No min-height / stretch — intrinsic height matches Start viva for one line.
 */
.viva-builder-page__option-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
  padding: 0.65rem 1.85rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--site-index-bg);
  box-shadow: none;
  font-family: var(--heading, inherit);
  font-size: clamp(0.84rem, 1.5vw, 0.9375rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-align: center;
  color: var(--text-h);
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
}
.viva-builder-page__option-pill:hover {
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.viva-builder-page__option-pill--on {
  border-color: color-mix(in srgb, var(--text-h) 42%, var(--border));
  background: color-mix(in srgb, var(--site-index-bg) 88%, var(--text-h) 12%);
}
.viva-builder-page__option-pill--on:hover {
  border-color: color-mix(in srgb, var(--text-h) 48%, var(--border));
  background: color-mix(in srgb, var(--site-index-bg) 82%, var(--text-h) 18%);
}
.viva-builder-page__option-pill:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
.viva-builder-page__grid {
  /* flex-shrink: 0 — if the grid shrinks (was flex: 0 1 auto + min-height: 0), cells still
     paint at full size (overflow visible) and the next sibling (Start viva) overlaps the last row. */
  flex: 0 0 auto;
  min-height: min-content;
  display: grid;
  gap: var(--vb-card-gap);
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  align-content: start;
  /* Natural card height per column; avoid stretching short tiles to the row’s tallest card */
  align-items: start;
}
@media (min-width: 480px) {
  .viva-builder-page__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 900px) {
  .viva-builder-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .viva-builder-page__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
/* ANZCA (3 section blocks): centre the row instead of left-filling a 5-column grid. */
@media (min-width: 900px) {
  .page.viva-builder-page--three-sections .viva-builder-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(100%, 64rem);
    margin-inline: auto;
  }
}
@media (min-width: 480px) and (max-width: 899px) {
  .page.viva-builder-page--three-sections
    .viva-builder-page__grid
    > .viva-builder-page__card-slot:nth-child(3):last-child {
    grid-column: 1 / -1;
    width: calc((100% - var(--vb-card-gap)) / 2);
    max-width: calc((100% - var(--vb-card-gap)) / 2);
    justify-self: center;
  }
}
@media (min-width: 900px) {
  .page.viva-builder-page--three-sections.viva-builder-page--station
    .viva-builder-page__station-cards-row {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
}
/*
 * Station builder (wide + panel open): five tiles live in one full-width inner row so the
 * topic strip stays on the next outer row only (no extra row from grid auto-placement).
 * Flex lets the centred tile animate to two-fifths width (double one slot) after a delay.
 */
/*
 * Station builder: non-selected tiles stay in the flex row (same shares as before) but are
 * fully invisible — the open card keeps its expanded width with empty space on either side.
 */
.page.viva-builder-page--station .viva-builder-page__card--station-peer-hidden.directory-card {
  opacity: 0;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none;
}
.page.viva-builder-page--station
  .viva-builder-page__card--station-peer-hidden
  .viva-builder-page__card-shade {
  opacity: 0 !important;
}
.viva-builder-page__station-cards-row {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: var(--vb-card-gap);
  width: 100%;
  min-width: 0;
}
.viva-builder-page__station-cards-row > .viva-builder-page__card-slot {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
/* 2× flex-grow on centre + 0.75 on sides → 40% / 15%×4 (two single-tile widths for centre) */
.viva-builder-page__station-cards-row--center-expanded
  > .viva-builder-page__card-slot:has(> .viva-builder-page__card--station-center-slot) {
  flex: 2 1 0;
}
.viva-builder-page__station-cards-row--center-expanded
  > .viva-builder-page__card-slot:not(:has(> .viva-builder-page__card--station-center-slot)) {
  flex: 0.75 1 0;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__station-cards-row > .viva-builder-page__card-slot {
    transition:
      flex-grow 0.55s cubic-bezier(0.22, 1, 0.36, 1),
      flex-basis 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  }

  /* Animating flex while hit-testing rects causes unstable insert indices (esp. left → right). */
  .page.viva-builder-page--card-drag-active .viva-builder-page__station-cards-row
    > .viva-builder-page__card-slot {
    transition: none;
  }
}
/* Station builder: subtle motion on the centred tile before width expansion */
@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
  .viva-builder-page--station-center-row
    .viva-builder-page__station-cards-row
    > .viva-builder-page__card-slot
    > .viva-builder-page__card.directory-card {
    transition:
      transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.32s ease;
  }
}
.viva-builder-page__card--station-center-slot.directory-card {
  position: relative;
  z-index: 1;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, var(--border)),
    0 10px 28px color-mix(in srgb, var(--text-h) 12%, transparent);
}
@media (min-width: 1200px) {
  .viva-builder-page__card--station-center-slot.directory-card {
    transform: scale(1.02);
  }

  .viva-builder-page__card--station-center-slot.directory-card:hover {
    transform: translateY(-4px) scale(1.02);
  }

  /* Width expansion is the emphasis; drop scale so the tile doesn’t read oversized */
  .viva-builder-page__station-cards-row--center-expanded
    .viva-builder-page__card--station-center-slot.directory-card {
    transform: none;
  }

  .viva-builder-page__station-cards-row--center-expanded
    .viva-builder-page__card--station-center-slot.directory-card:hover {
    transform: translateY(-4px);
  }
}
@media (min-width: 1200px) and (prefers-reduced-motion: reduce) {
  .viva-builder-page__card--station-center-slot.directory-card,
  .viva-builder-page__card--station-center-slot.directory-card:hover {
    transform: none;
  }
}
/* Wrapper for each main card (grid/flex item); holds in-flow placeholder while dragging. */
.viva-builder-page__card-slot {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
/* Fill slot height so expanded cards can pin body content (e.g. subdomain toggle) to the bottom. */
.viva-builder-page__card-slot > .viva-builder-page__card.directory-card {
  flex: 0 1 auto;
  min-height: 0;
  width: 100%;
}
.viva-builder-page__grid > .viva-builder-page__card-slot {
  min-width: 0;
}
/* Narrow viewports (< 5 grid cols): only the selected block is rendered — span full grid width */
.viva-builder-page__grid > .viva-builder-page__card-slot--solo-narrow {
  grid-column: 1 / -1;
}
.viva-builder-page__card-placeholder {
  flex: 1 1 auto;
  min-height: clamp(
    calc(5.1rem * var(--vb-section-card-vscale, 1)),
    calc(13.5vh * var(--vb-section-card-vscale, 1)),
    calc(9.25rem * var(--vb-section-card-vscale, 1))
  );
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  visibility: hidden;
  pointer-events: none;
}
/*
 * Dragging: match viewport math to getBoundingClientRect() (includes hover translateY / station scale).
 * Strip transforms so fixed left/top aren’t combined with :hover translateY(-4px) or scale(1.02).
 */
.viva-builder-page__card--pointer-lifted.directory-card,
.viva-builder-page__card--pointer-lifted.directory-card:hover {
  position: fixed;
  z-index: 4000;
  margin: 0;
  left: 0;
  top: 0;
  flex: none !important;
  cursor: grabbing;
  touch-action: none;
  transform: none !important;
  transition: none !important;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, var(--border)),
    0 18px 46px color-mix(in srgb, var(--text-h) 18%, transparent);
}
/* Drag clone: static red emphasis (no keyframes; transition is disabled on lifted card) */
.viva-builder-page__card--pointer-lifted.viva-builder-page__card--viva-zero-questions.directory-card,
.viva-builder-page__card--pointer-lifted.viva-builder-page__card--viva-zero-questions.directory-card:hover {
  animation: none;
  border-color: color-mix(in srgb, #c62828 55%, var(--border));
  box-shadow:
    0 0 0 2px color-mix(in srgb, #dc2626 62%, var(--border)),
    0 18px 46px color-mix(in srgb, #dc2626 24%, transparent);
}
[data-theme='dark']
  .viva-builder-page__card--pointer-lifted.viva-builder-page__card--viva-zero-questions.directory-card,
[data-theme='dark']
  .viva-builder-page__card--pointer-lifted.viva-builder-page__card--viva-zero-questions.directory-card:hover {
  border-color: color-mix(in srgb, #f87171 55%, var(--border));
  box-shadow:
    0 0 0 2px color-mix(in srgb, #f87171 45%, var(--border)),
    0 18px 46px color-mix(in srgb, #f87171 20%, transparent);
}
.viva-builder-page__card--pointer-lifted-suck {
  transform-origin: var(--vb-suck-origin-x, 50%) var(--vb-suck-origin-y, 50%);
  overflow: hidden;
  animation: viva-builder-card-suck-whole
    var(--vb-pickup-morph-ms, 2000ms)
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;
}
.viva-builder-page__card--pointer-lifted-suck .viva-builder-page__card-main,
.viva-builder-page__card--pointer-lifted-suck .viva-builder-page__card-more,
.viva-builder-page__card--pointer-lifted-suck .viva-builder-page__card-shade {
  transform-origin: var(--vb-suck-origin-x, 50%) var(--vb-suck-origin-y, 50%);
  animation: viva-builder-card-suck-content
    var(--vb-pickup-morph-ms, 2000ms)
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;
}
.viva-builder-page__card--pointer-lifted-suck::after {
  content: '';
  position: absolute;
  left: var(--vb-suck-origin-x, 50%);
  top: var(--vb-suck-origin-y, 50%);
  z-index: 8;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-h) 88%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--bg) 42%, transparent);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 14%, transparent),
    0 4px 12px color-mix(in srgb, var(--text-h) 22%, transparent);
  transform: translate(-50%, -50%) scale(0.25);
  opacity: 0;
  pointer-events: none;
  animation: viva-builder-card-suck-core
    var(--vb-pickup-morph-ms, 2000ms)
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;
  animation-delay: 55ms;
}
.viva-builder-page__card--pointer-lifted-suck::before {
  content: '';
  position: absolute;
  left: var(--vb-suck-origin-x, 50%);
  top: var(--vb-suck-origin-y, 50%);
  z-index: 7;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--text-h) 70%, var(--bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 18%, transparent);
  transform: translate(-50%, -50%) scale(0.3);
  opacity: 0;
  pointer-events: none;
  animation: viva-builder-card-suck-ring
    var(--vb-pickup-morph-ms, 2000ms)
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;
}
.viva-builder-page__card--drop-emerge {
  transform-origin: var(--vb-emerge-origin-x, 50%) var(--vb-emerge-origin-y, 50%);
  animation: viva-builder-card-emerge-whole
    var(--vb-drop-morph-ms, 500ms)
    cubic-bezier(0.22, 1, 0.36, 1)
    both;
  transition: none !important;
}
.viva-builder-page__drag-cursor-dot {
  position: fixed;
  z-index: 4100;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-h) 88%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--bg) 42%, transparent);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 14%, transparent),
    0 4px 12px color-mix(in srgb, var(--text-h) 22%, transparent);
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.viva-builder-page__drag-cursor-dot--active {
  animation:
    viva-builder-drag-dot-pop 0.5s cubic-bezier(0.22, 1, 0.36, 1) both,
    viva-builder-drag-dot-pulse 1.8s ease-in-out 0.55s infinite;
}
@keyframes viva-builder-card-suck-whole {
  0% {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }

  35% {
    opacity: 0.98;
    transform: scale(0.9);
    filter: blur(0.5px);
  }

  72% {
    opacity: 0.42;
    transform: scale(0.22);
    filter: blur(1.4px);
  }

  100% {
    opacity: 0.08;
    transform: scale(0.06);
    filter: blur(2.3px);
  }
}
@keyframes viva-builder-card-suck-content {
  0% {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }

  45% {
    opacity: 0.9;
    transform: scale(0.92);
    filter: blur(0.3px);
  }

  100% {
    opacity: 0;
    transform: scale(0.14);
    filter: blur(1.9px);
  }
}
@keyframes viva-builder-card-suck-core {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.25);
  }

  42% {
    opacity: 0.18;
    transform: translate(-50%, -50%) scale(0.54);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
@keyframes viva-builder-card-suck-ring {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.3);
  }

  28% {
    opacity: 0.75;
    transform: translate(-50%, -50%) scale(0.95);
  }

  62% {
    opacity: 0.25;
    transform: translate(-50%, -50%) scale(1.45);
  }

  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.7);
  }
}
@keyframes viva-builder-card-emerge-whole {
  from {
    opacity: 0.08;
    transform: scale(0.06);
    filter: blur(2px);
  }

  to {
    opacity: 1;
    transform: translateY(var(--vb-emerge-final-translate-y, 0px)) scale(1);
    filter: blur(0);
  }
}
@keyframes viva-builder-drag-dot-pop {
  from {
    transform: translate(-50%, -50%) scale(0.65);
    opacity: 0.7;
  }

  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}
@keyframes viva-builder-drag-dot-pulse {
  0% {
    transform: translate(-50%, -50%) scale(1);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 14%, transparent),
      0 4px 12px color-mix(in srgb, var(--text-h) 22%, transparent);
  }

  50% {
    transform: translate(-50%, -50%) scale(1.12);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 20%, transparent),
      0 8px 22px color-mix(in srgb, var(--text-h) 32%, transparent);
  }

  100% {
    transform: translate(-50%, -50%) scale(1);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 14%, transparent),
      0 4px 12px color-mix(in srgb, var(--text-h) 22%, transparent);
  }
}
.page.viva-builder-page--card-drag-active:not(.viva-builder-page--embed) {
  cursor: grabbing;
}
/* Hit-testing uses slot rects; freeze in-flow card motion so insert index isn’t mid-transition. */
.page.viva-builder-page--card-drag-active
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card:not(.viva-builder-page__card--pointer-lifted) {
  transition: none !important;
}
/* Building-block tiles — flat (no shadow), same shell as directory links */
.viva-builder-page__card.directory-card {
  container-name: vb-main-card;
  container-type: inline-size;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: auto;
  min-height: clamp(
    calc(5.1rem * var(--vb-section-card-vscale, 1)),
    calc(13.5vh * var(--vb-section-card-vscale, 1)),
    calc(9.25rem * var(--vb-section-card-vscale, 1))
  );
  padding: 0;
  overflow: hidden;
  border-radius: var(--workspace-choice-card-radius, 8px);
  box-shadow: none;
  border: 1px solid var(--border);
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
}
/*
 * Touch: allow vertical page scroll on section tiles until a hold-to-drag arms reorder
 * (`viva-builder-page--card-drag-active`). While dragging, suppress pan so tiles track the finger.
 */
.page.viva-builder-page .viva-builder-page__card-slot > .viva-builder-page__card.directory-card,
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card
  .viva-builder-page__card-main,
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card
  .viva-builder-page__card-more {
  touch-action: pan-y;
}
.page.viva-builder-page--card-drag-active
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card,
.page.viva-builder-page--card-drag-active
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card
  .viva-builder-page__card-main,
.page.viva-builder-page--card-drag-active
  .viva-builder-page__card-slot
  > .viva-builder-page__card.directory-card
  .viva-builder-page__card-more {
  touch-action: none;
}
/* Viva builder: section has 0 questions under current topic/subtopic selection */
@keyframes vb-viva-zero-attention {
  0%,
  100% {
    box-shadow:
      0 0 0 1px color-mix(in srgb, #dc2626 58%, var(--border)),
      0 0 0 0 rgb(220 38 38 / 0%);
  }

  50% {
    box-shadow:
      0 0 0 2px color-mix(in srgb, #ef4444 72%, var(--border)),
      0 0 20px rgb(220 38 38 / 28%);
  }
}
.page.viva-builder-page:not(.viva-builder-page--station)
  .viva-builder-page__card--viva-zero-questions.directory-card {
  border-color: color-mix(in srgb, #c62828 72%, var(--border));
}
@media (prefers-reduced-motion: no-preference) {
  .page.viva-builder-page:not(.viva-builder-page--station)
    .viva-builder-page__card--viva-zero-questions.directory-card {
    animation: vb-viva-zero-attention 2.1s ease-in-out infinite;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page.viva-builder-page:not(.viva-builder-page--station)
    .viva-builder-page__card--viva-zero-questions.directory-card {
    box-shadow: 0 0 0 2px color-mix(in srgb, #c62828 55%, var(--border));
  }
}
[data-theme='dark']
  .page.viva-builder-page:not(.viva-builder-page--station)
  .viva-builder-page__card--viva-zero-questions.directory-card {
  border-color: color-mix(in srgb, #f87171 65%, var(--border));
}
/* Mobile homepage iframe (`hideSessionPills=1`): half the default tile min-height vs full builder */
.page.viva-builder-page--embed-compact .viva-builder-page__card.directory-card {
  min-height: clamp(
    calc(2.55rem * var(--vb-section-card-vscale, 1)),
    calc(6.75vh * var(--vb-section-card-vscale, 1)),
    calc(4.6rem * var(--vb-section-card-vscale, 1))
  );
}
/* Same iframe: topic/subtopic ticks line up with the centred Start viva pill’s right edge */
.page.viva-builder-page--embed-compact .viva-builder-page__sub-tier {
  grid-template-columns: 1fr;
}
/*
 * Mobile home viva iframe: symmetric vertical band around Start viva — distance from the
 * bottom of the grid (e.g. lowest block card) to the pill equals pill to iframe foot.
 * With safe-area: body gap == inset-bottom so (gap + pad-top) == (pad-bottom + page pad).
 */
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station) {
  /* Match card-row rhythm so band above/below pill matches gap between block tiles */
  --vb-embed-start-viva-vert: var(--vb-card-gap);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station)
  .viva-builder-page__body {
  gap: env(safe-area-inset-bottom, 0px);
}
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station)
  .viva-builder-page__done-row {
  margin-top: var(--vb-card-gap);
}
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station)
  .viva-builder-page__body:has(.viva-builder-page__start-viva-band--with-hint) {
  gap: var(--vb-card-gap);
}
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station)
  .viva-builder-page__start-viva-band--with-hint {
  gap: var(--vb-card-gap);
  margin-top: 0;
  padding-top: 0;
  padding-bottom: var(--vb-embed-start-viva-vert);
}
.page.viva-builder-page--embed.viva-builder-page--embed-compact:not(.viva-builder-page--station)
  .viva-builder-page__start-viva-band:not(.viva-builder-page__start-viva-band--with-hint) {
  margin-top: 0;
  padding-block: var(--vb-embed-start-viva-vert);
}
/* Narrow marketing iframe (`embedMobile=1`): fit chrome without internal scroll. */
.page.viva-builder-page--embed.viva-builder-page--embed-mobile {
  --vb-edge-gutter: 4px;
  --vb-card-gap: 0.3rem;
  --vb-start-viva-band-gap: 0.45rem;
  --vb-embed-start-viva-vert: 0.3rem;
  height: 100%;
  overflow: hidden;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.page.viva-builder-page--embed.viva-builder-page--embed-mobile .viva-builder-page__body {
  min-height: 0;
  overflow: hidden;
  gap: 0.3rem;
}
.page.viva-builder-page--embed.viva-builder-page--embed-mobile .viva-builder-page__start-viva-band {
  padding-block: 0.3rem;
}
.viva-builder-page__card-main {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  text-align: left;
  gap: 0;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  cursor: default;
  box-sizing: border-box;
  /* Equal air above/below the hairline between section header and Topic. */
  --vb-card-divider-gap: clamp(
    calc(0.4rem * var(--vb-section-card-vscale, 1)),
    calc(0.85vw * var(--vb-section-card-vscale, 1)),
    calc(0.5rem * var(--vb-section-card-vscale, 1))
  );
}
.viva-builder-page__card.directory-card > .viva-builder-page__card-main {
  gap: 0;
}
.page.viva-builder-page:not(.viva-builder-page--embed) .viva-builder-page__card-main {
  cursor: pointer;
}
.viva-builder-page__card-divider {
  display: block;
  height: 1px;
  flex-shrink: 0;
  margin: 0 clamp(1rem, 2.4vw, 1.5rem);
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
}
/*
 * Wash over non-selected cards while another is selected.
 * Sibling on the shell so `inset: 0` covers padding (avoids a grey ring). Stacked *above*
 * `.viva-builder-page__card-main` so title/labels/skeletons are covered too; `pointer-events:
 * none` keeps clicks reaching the main hit area. Collapse control stays above the wash.
 */
.viva-builder-page__card-shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  background: color-mix(in srgb, var(--bg) 80%, var(--site-index-bg) 20%);
  opacity: 0;
  pointer-events: none;
}
.viva-builder-page__card-shade--active {
  opacity: 1;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__card-shade {
    transition: opacity 0.45s ease;
  }
}
.viva-builder-page__card-head,
.viva-builder-page__card-body {
  position: relative;
  z-index: 0;
}
.viva-builder-page__card.directory-card:not(
    .viva-builder-page__card--viva-zero-questions
  ):hover,
[data-theme='dark']
  .viva-builder-page__card.directory-card:not(
    .viva-builder-page__card--viva-zero-questions
  ):hover {
  box-shadow: none;
}
.viva-builder-page__card-main:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Expanded state is obvious (chevron + sub-row); blue focus ring looked like a stray border */
.viva-builder-page__card-main[aria-expanded='true']:focus-visible {
  outline: none;
}
/* Circular hit area; chevron hints expand/collapse on every section tile */
.viva-builder-page__card-more {
  position: absolute;
  right: clamp(0.2rem, 0.85vw, 0.45rem);
  bottom: clamp(0.2rem, 0.85vw, 0.45rem);
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--text-h);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card
  .viva-builder-page__card-more--hint {
  opacity: 0.5;
  pointer-events: none;
  cursor: default;
}
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card:hover
  .viva-builder-page__card-more--hint {
  opacity: 0.82;
}
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card
  .viva-builder-page__card-more--expanded {
  opacity: 1;
}
.viva-builder-page__card-more--expanded:hover .viva-builder-page__card-more-icon {
  opacity: 0.82;
}
.viva-builder-page__card-more:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.viva-builder-page__card-more-icon {
  display: block;
  flex-shrink: 0;
  opacity: 1;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}
.page.viva-builder-page
  .viva-builder-page__card-slot
  > .viva-builder-page__card
  .viva-builder-page__card-more--expanded
  .viva-builder-page__card-more-icon {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: no-preference) {
  .page.viva-builder-page
    .viva-builder-page__card-slot
    > .viva-builder-page__card
    .viva-builder-page__card-more--expanded {
    opacity: 0;
    transform: translateY(6px);
    animation: viva-builder-card-more-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: 0.08s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page.viva-builder-page
    .viva-builder-page__card-slot
    > .viva-builder-page__card
    .viva-builder-page__card-more--expanded {
    opacity: 1;
    transform: none;
  }
}
@keyframes viva-builder-card-more-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Full-width strip: tier(s) of small tiles below the selected building block */
.viva-builder-page__sub-stack {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: var(--vb-card-gap);
  width: 100%;
  min-width: 0;
  /* Fixed rhythm for topic/subtopic tiles + bulk toggles (no vw-based shrinking) */
  font-size: 0.8125rem;
}
/* Done sits in-flow under topic rows; gap = 2× tile tier spacing (matches card-gap rhythm) */
.viva-builder-page__done-row {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin-top: calc(var(--vb-card-gap) * 2);
}
.viva-builder-page__done-row--station-back {
  position: relative;
  margin-bottom: var(--vb-station-back-reserve);
}
.viva-builder-page__done-row--station-start {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.viva-builder-page__done-row--station-start .viva-builder-page__start-cta-main {
  width: 100%;
}
.page.viva-builder-page--station {
  --vb-station-back-reserve: calc(1.925rem + 0.25rem + 0.75rem + 0.7rem);
}
.page.viva-builder-page--station .viva-builder-page__done-row--station-start {
  --vb-station-back-reserve: calc(1.925rem + 0.25rem + 0.75rem + 0.7rem + 1.1rem);
}
.viva-builder-page__sub-tier {
  display: grid;
  /*
   * auto-fill (not auto-fit) keeps fixed column tracks on partial rows so a lone
   * card does not stretch to full row width — stats hover hitboxes stay per-card.
   */
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
  gap: var(--vb-card-gap);
  width: 100%;
  min-width: 0;
  /* Keep siblings short when one topic expands — only push content below. */
  align-items: start;
  /* Card anchors re-enable hits; empty grid space does not keep stats hover alive. */
  pointer-events: none;
}
/* Only the expanded topic row is rendered while subtopics are open */
.viva-builder-page__sub-tier--solo-expanded-topic {
  grid-template-columns: 1fr;
}
/* Full-width centred bulk toggle: above topic tier (block selected) or above nested subtopic tiles */
.viva-builder-page__sub-nested-bulk-toggle-wrap {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding-block: 0.1rem 0.35rem;
  font-size: 0.8125rem;
  pointer-events: auto;
}
.viva-builder-page__sub-card {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  min-height: 3.35rem;
  /* Room for round tick; extra 5% helps labels wrap before it */
  padding-inline: 0.65rem calc(2rem + 5%);
  border-radius: 6px;
  box-sizing: border-box;
  /* Same fill as home footer `.site-index` (was previously darkened with color-mix) */
  background: var(--site-index-bg);
  border: 1px solid var(--border);
  box-shadow: none;
  user-select: none;
  -webkit-user-select: none;
}
/*
 * Stats hover expand/charge: keep the grid slot at one cell and float the card
 * over neighbours. Spanning two rows used to reflow tiles sideways — aiming at a
 * row-2 card then made the expand collapse and shift the target under the cursor.
 */
.viva-builder-page__sub-card-anchor {
  position: relative;
  min-height: 3.35rem;
  min-width: 0;
  pointer-events: auto;
}
/* Extend hover hitbox into half the grid gap toward neighbouring cards. */
.viva-builder-page__sub-card-anchor::before {
  content: '';
  position: absolute;
  inset: calc(var(--vb-card-gap) / -2);
  pointer-events: auto;
  z-index: 0;
}
/*
 * When any tile is charging or showing stats, stretch every anchor hitbox through
 * the expanded footprint so pointer travel at the stats baseline (and into side
 * gaps at that depth) does not drop the hover session.
 */
.viva-builder-page__sub-tier:has(
    .viva-builder-page__sub-card-anchor--stats-expanded,
    .viva-builder-page__sub-card-anchor--stats-charging
  )
  .viva-builder-page__sub-card-anchor::before {
  bottom: calc(var(--vb-card-gap) / -2 - var(--vb-stats-expanded-extra-height));
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card--stats-expanded > .viva-builder-page__sub-card-stats {
    animation: vb-topic-stats-fade 0.62s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
  }

  .viva-builder-page__sub-tier--stats-warm
    .viva-builder-page__sub-card--stats-expanded
    > .viva-builder-page__sub-card-stats {
    animation: vb-topic-stats-fade-warm 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
}
.viva-builder-page__sub-card-anchor--stats-expanded,
.viva-builder-page__sub-card-anchor--stats-charging {
  z-index: 4;
}
/*
 * Hover charge: overlay grows toward the stats footprint while a progress ring
 * draws — makes the dwell read as “keep hovering to reveal”.
 */
.viva-builder-page__sub-card--stats-charging {
  box-shadow: 0 8px 22px color-mix(in srgb, var(--text-h) 10%, transparent);
}
.viva-builder-page__sub-card-hover-charge {
  position: absolute;
  inset: -1px;
  z-index: 5;
  display: block;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  overflow: visible;
  pointer-events: none;
}
.viva-builder-page__sub-card-hover-charge-path {
  stroke: var(--vb-stats-charge-line);
  stroke-width: 1px;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card-hover-charge-path {
    animation:
      vb-stats-hover-charge-draw
        var(--vb-stats-hover-charge-ms, 2000ms) linear forwards,
      vb-stats-hover-charge-line-fade
        var(--vb-stats-hover-charge-ms, 2000ms) linear forwards;
  }

  .viva-builder-page__sub-card--stats-charging
    .viva-builder-page__sub-card-chevron,
  .viva-builder-page__sub-card--stats-charging:hover
    .viva-builder-page__sub-card-chevron {
    animation: vb-stats-hover-charge-chevron
      var(--vb-stats-hover-charge-ms, 2000ms) cubic-bezier(0.33, 1, 0.36, 1)
      forwards;
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__sub-card-hover-charge-path {
    stroke-dashoffset: 0;
    opacity: 1;
    animation: none;
  }
}
@keyframes vb-stats-hover-charge-draw {
  from {
    stroke-dashoffset: 1;
  }

  to {
    stroke-dashoffset: 0;
  }
}
/* Fully transparent at start; solid by the halfway mark of the dwell. */
@keyframes vb-stats-hover-charge-line-fade {
  0% {
    opacity: 0;
  }

  50%,
  100% {
    opacity: 1;
  }
}
@keyframes vb-stats-hover-charge-grow {
  from {
    min-height: 3.35rem;
  }

  to {
    min-height: calc(3.35rem * 2 + var(--vb-card-gap, 0.5rem));
  }
}
@keyframes vb-stats-hover-charge-glow {
  0% {
    box-shadow: 0 2px 8px color-mix(in srgb, var(--text-h) 4%, transparent);
  }

  100% {
    box-shadow: 0 10px 26px color-mix(in srgb, var(--text-h) 12%, transparent);
  }
}
/* Soft anticipatory tremor that intensifies as the charge completes */
@keyframes vb-stats-hover-charge-chevron {
  0%,
  35% {
    opacity: 0.55;
    transform: translateX(-50%) translateY(0);
  }

  50% {
    opacity: 0.75;
    transform: translateX(-50%) translateY(1px);
  }

  62% {
    transform: translateX(-50%) translateY(-1px);
  }

  74% {
    opacity: 0.9;
    transform: translateX(-50%) translateY(1.5px);
  }

  86% {
    transform: translateX(-50%) translateY(-1.5px);
  }

  100% {
    opacity: 1;
    transform: translateX(-50%) translateY(2px);
  }
}
.viva-builder-page__sub-card-anchor > .viva-builder-page__sub-card {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
}
/* Absolute overlay must win over the in-flow height:100% fill above */
.viva-builder-page__sub-card-anchor--stats-expanded > .viva-builder-page__sub-card,
.viva-builder-page__sub-card-anchor--stats-charging > .viva-builder-page__sub-card {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 4;
  width: 100%;
  height: auto;
  min-height: calc(3.35rem * 2 + var(--vb-card-gap, 0.5rem));
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card-anchor--stats-charging
    > .viva-builder-page__sub-card--stats-charging {
    min-height: 3.35rem;
    animation:
      vb-stats-hover-charge-grow
        var(--vb-stats-hover-charge-ms, 2000ms) cubic-bezier(0.22, 1, 0.36, 1)
        forwards,
      vb-stats-hover-charge-glow
        var(--vb-stats-hover-charge-ms, 2000ms) cubic-bezier(0.22, 1, 0.36, 1)
        forwards;
  }
}
/* Title row — keeps label/stats in flow; tick is positioned on the card shell. */
.viva-builder-page__sub-card-header {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: calc(3.35rem - 2px);
  box-sizing: border-box;
}
.viva-builder-page__sub-card--stats-expanded .viva-builder-page__sub-card-header {
  flex: 0 0 auto;
  width: 100%;
  min-height: 2.4rem;
}
.viva-builder-page__sub-card--stats-expanded {
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: stretch;
  min-height: calc(3.35rem * 2 + var(--vb-card-gap, 0.5rem));
  height: auto;
  padding-block: 0.55rem 0.65rem;
  /* Dark ring sits on the same 1px path as the default border underneath. */
  outline: 1px solid var(--vb-stats-charge-line);
  outline-offset: -1px;
  box-shadow: 0 10px 26px color-mix(in srgb, var(--text-h) 12%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card--stats-expanded {
    animation: vb-stats-expanded-shell-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
}
/* Keep tick on the right edge of the card; when expanded, pin to header band. */
.viva-builder-page__sub-card--stats-expanded > .viva-builder-page__sub-check {
  top: calc(0.55rem + 1.2rem);
}
.viva-builder-page__sub-card-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.28rem 0.75rem;
  flex: 1 1 100%;
  width: 100%;
  margin-top: 0.35rem;
  padding-top: 0.5rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
  box-sizing: border-box;
}
.viva-builder-page__sub-card--stats-expanded .viva-builder-page__sub-card-stats {
  flex: 1 1 100%;
  align-content: center;
  min-height: 0;
}
/* Full-row open topic: stats sit in the header band, no overlay expand. */
.viva-builder-page__sub-card--stats-inline {
  flex-wrap: nowrap;
  align-items: center;
}
.viva-builder-page__sub-card--stats-inline .viva-builder-page__sub-card-header {
  flex: 1 1 auto;
  min-height: calc(3.35rem - 2px);
}
.viva-builder-page__sub-card-stats--inline {
  position: absolute;
  top: 50%;
  right: calc(0.65rem + 10px + 1.2rem + 0.12rem);
  z-index: 2;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem 0.85rem;
  width: auto;
  max-width: calc(100% - 8rem);
  margin: 0;
  padding: 0;
  border-top: none;
  overflow: hidden;
  text-align: right;
  transform: translateY(-50%);
  /* Clicks pass through to the topic hit so the full-row card still collapses. */
  pointer-events: none;
}
.viva-builder-page__sub-card-stats--inline .viva-builder-page__sub-card-stats-row {
  flex: 0 0 auto;
  gap: 0.28rem;
  font-size: 0.7rem;
}
.viva-builder-page__sub-card-stats--inline .viva-builder-page__sub-card-stats-row strong {
  font-size: 0.78rem;
}
.viva-builder-page__sub-card-stats--inline.viva-builder-page__sub-card-stats--compact {
  gap: 0.35rem 0.5rem;
}
.viva-builder-page__sub-card-stats--inline.viva-builder-page__sub-card-stats--compact
  .viva-builder-page__sub-card-stats-row {
  gap: 0.18rem;
  font-size: 0.64rem;
}
.viva-builder-page__sub-card-stats--inline.viva-builder-page__sub-card-stats--compact
  .viva-builder-page__sub-card-stats-row
  strong {
  font-size: 0.72rem;
}
/* Inline stats share the header row with the topic label — truncate long titles. */
.viva-builder-page__sub-card--stats-inline .viva-builder-page__sub-card-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Full-row open topic: hit covers the header (under the stats) for reliable collapse. */
.viva-builder-page__sub-card--stats-inline .viva-builder-page__sub-card-hit {
  position: absolute;
  inset: 0;
  right: calc(2rem + 5%);
  z-index: 1;
  max-width: none;
  flex: none;
  padding-right: 0.35rem;
}
.viva-builder-page__sub-card--stats-inline > .viva-builder-page__sub-check {
  z-index: 5;
}
.viva-builder-page__sub-card-stats-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
  font-size: 0.68rem;
  line-height: 1.2;
  color: color-mix(in srgb, var(--text-h) 72%, transparent);
}
.viva-builder-page__sub-card-stats-row strong {
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text-h);
}
.viva-builder-page__sub-card-stats-row--pass strong {
  color: var(--status-pass);
}
.viva-builder-page__sub-card-stats-row--borderline strong {
  color: var(--status-borderline);
}
.viva-builder-page__sub-card-stats-row--fail strong {
  color: var(--status-fail);
}
@keyframes vb-topic-stats-expand {
  from {
    opacity: 0.92;
    transform: scale(0.98);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes vb-topic-stats-fade {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes vb-topic-stats-fade-warm {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes vb-stats-expanded-shell-in {
  from {
    box-shadow: 0 8px 22px color-mix(in srgb, var(--text-h) 8%, transparent);
  }

  to {
    box-shadow: 0 10px 26px color-mix(in srgb, var(--text-h) 12%, transparent);
  }
}
.viva-builder-page__sub-card--locked {
  opacity: 0.3;
  filter: grayscale(0.9) saturate(0.25);
  border-style: solid;
  border-color: color-mix(in srgb, var(--border) 72%, transparent);
  background: color-mix(in srgb, var(--site-index-bg) 48%, transparent);
  cursor: not-allowed;
}
.viva-builder-page__sub-card--locked .viva-builder-page__sub-card-hit,
.viva-builder-page__sub-card--locked .viva-builder-page__sub-card-label,
.viva-builder-page__sub-card-hit--locked {
  cursor: not-allowed;
}
.viva-builder-page__sub-card--locked .viva-builder-page__sub-card-label {
  color: color-mix(in srgb, var(--text-h) 34%, transparent);
  opacity: 0.78;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card--locked .viva-builder-page__sub-card-label {
    filter: blur(0.45px);
  }
}
.viva-builder-page__sub-card--locked:hover .viva-builder-page__sub-card-chevron {
  opacity: 0;
  transform: translateX(-50%) translateY(4px);
}
/* Wash over non-focused topic tiles (same idea as main building-block cards) */
.viva-builder-page__sub-card-shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  background: color-mix(in srgb, var(--bg) 80%, var(--site-index-bg) 20%);
  opacity: 0;
  pointer-events: none;
}
.viva-builder-page__sub-card-shade--active {
  opacity: 1;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card-shade {
    transition: opacity 0.45s ease;
  }
}
.viva-builder-page__sub-card-hit {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  padding-right: 0.35rem;
  border: none;
  border-radius: 4px;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: default;
}
.page.viva-builder-page:not(.viva-builder-page--embed) .viva-builder-page__sub-card-hit {
  cursor: pointer;
}
.viva-builder-page__sub-card-hit:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.viva-builder-page__sub-card-label {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--text-h);
  overflow-wrap: break-word;
  min-width: 0;
}
/* Bottom-centre chevron — same path as main builder card; hover-only when collapsed */
.viva-builder-page__sub-card-chevron {
  position: absolute;
  left: 50%;
  bottom: 0.35rem;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  color: var(--text-h);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(4px);
}
.viva-builder-page__sub-card-chevron-icon {
  display: block;
  transform-origin: center;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-card-chevron {
    transition:
      opacity 0.24s ease,
      transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .viva-builder-page__sub-card-chevron-icon {
    transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .viva-builder-page__sub-card:hover .viva-builder-page__sub-card-chevron {
    opacity: 0.88;
    transform: translateX(-50%) translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__sub-card:hover .viva-builder-page__sub-card-chevron {
    opacity: 0.88;
    transform: translateX(-50%);
  }
}
/* Expanded topic: chevron stays visible and points up (section-card parity). */
.viva-builder-page__sub-card-chevron--expanded {
  opacity: 0.88;
  transform: translateX(-50%) translateY(0);
}
.viva-builder-page__sub-card-chevron--expanded
  .viva-builder-page__sub-card-chevron-icon {
  transform: rotate(180deg);
}
/* Round topic/subtopic control: unchecked shows question count in the circle; checked shows tick on dark fill */
.viva-builder-page__sub-check {
  position: absolute;
  top: 50%;
  right: calc(0.65rem + 10px);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0;
  padding: 0;
  appearance: none;
  border: 1.25px solid color-mix(in srgb, var(--text-h) 28%, var(--border));
  border-radius: 50%;
  background: color-mix(in srgb, var(--surface) 40%, var(--site-index-bg));
  color: var(--text-h);
  cursor: pointer;
  transform: translateY(-50%);
  box-sizing: border-box;
  font: inherit;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}
.viva-builder-page__sub-check--locked {
  cursor: not-allowed;
  opacity: 0.26;
  border-color: color-mix(in srgb, var(--border) 65%, transparent);
  background: color-mix(in srgb, var(--surface) 22%, transparent);
  color: color-mix(in srgb, var(--text-h) 30%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-check--locked {
    filter: blur(0.3px);
  }
}
.viva-builder-page__sub-check--locked:hover:not(:focus-visible) {
  transform: translateY(-50%);
  box-shadow: none;
}
.viva-builder-page__sub-card--nested .viva-builder-page__sub-check--locked:hover:not(:focus-visible) {
  transform: translateY(-50%);
}
/* Free plan: the single predetermined third-order row is shown on but not toggled here. */
.viva-builder-page__sub-check--free-fixed-readonly {
  cursor: default;
  opacity: 1;
}
.viva-builder-page__sub-check--on {
  border-color: var(--text-h);
  background: var(--text-h);
  color: var(--bg);
}
.viva-builder-page__sub-check-stack {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
/* Count fills the circle; tick is a fixed visual size (do not stretch SVG to 100% — it fills the whole button). */
.viva-builder-page__sub-check-face--q {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.viva-builder-page__sub-check-face--tick {
  grid-area: 1 / 1;
  display: block;
  flex-shrink: 0;
  /* ~12px at 16px root — larger than 9px so the mark reads clearly inside the 1.2rem circle */
  width: 0.75rem;
  height: 0.75rem;
  box-sizing: border-box;
}
.viva-builder-page__sub-check-q {
  font-size: 0.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.viva-builder-page__sub-check:not(.viva-builder-page__sub-check--on)
  .viva-builder-page__sub-check-face--q {
  opacity: 1;
  transform: scale(1);
}
.viva-builder-page__sub-check--on .viva-builder-page__sub-check-face--q {
  opacity: 0;
  transform: scale(0.78);
}
.viva-builder-page__sub-check:not(.viva-builder-page__sub-check--on)
  .viva-builder-page__sub-check-face--tick {
  opacity: 0;
  transform: scale(0.58) rotate(-38deg);
}
.viva-builder-page__sub-check--on .viva-builder-page__sub-check-face--tick {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}
.viva-builder-page__sub-check-face--tick path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.viva-builder-page__sub-check--on .viva-builder-page__sub-check-face--tick path {
  stroke-dashoffset: 0;
}
/* Subject-station start: soft traveling wave via --vb-p / --vb-glow (rAF-driven). */
@property --vb-p {
  syntax: '<number>';
  inherits: false;
  initial-value: 0;
}
@property --vb-glow {
  syntax: '<number>';
  inherits: false;
  initial-value: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-stack--cascade-fill .viva-builder-page__sub-check,
  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check-face--q,
  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check-face--tick,
  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check-face--tick
    path,
  .viva-builder-page__sub-stack--cascade-fill .viva-builder-page__sub-card {
    transition: none !important;
  }

  .viva-builder-page__sub-stack--cascade-fill .viva-builder-page__sub-check {
    border-color: color-mix(
      in srgb,
      var(--text-h) calc(28% + 72% * var(--vb-p, 0)),
      var(--border)
    );
    background: color-mix(
      in srgb,
      var(--text-h) calc(var(--vb-p, 0) * 100%),
      color-mix(in srgb, var(--surface) 40%, var(--site-index-bg))
    );
    color: color-mix(
      in srgb,
      var(--bg) calc(var(--vb-p, 0) * 100%),
      var(--text-h)
    );
    transform: translateY(-50%) scale(calc(0.97 + 0.03 * var(--vb-p, 0)));
    box-shadow: 0 3px 12px
      color-mix(in srgb, var(--text-h) calc(var(--vb-glow, 0) * 24%), transparent);
  }

  /* Suppress instant --on paint while the wave is running. */
  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check--on {
    border-color: color-mix(
      in srgb,
      var(--text-h) calc(28% + 72% * var(--vb-p, 0)),
      var(--border)
    );
    background: color-mix(
      in srgb,
      var(--text-h) calc(var(--vb-p, 0) * 100%),
      color-mix(in srgb, var(--surface) 40%, var(--site-index-bg))
    );
    color: color-mix(
      in srgb,
      var(--bg) calc(var(--vb-p, 0) * 100%),
      var(--text-h)
    );
  }

  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check
    .viva-builder-page__sub-check-face--q {
    opacity: calc(1 - var(--vb-p, 0));
    transform: scale(calc(1 - 0.2 * var(--vb-p, 0)));
  }

  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check
    .viva-builder-page__sub-check-face--tick {
    opacity: var(--vb-p, 0);
    transform: scale(calc(0.58 + 0.42 * var(--vb-p, 0)))
      rotate(calc(-36deg * (1 - var(--vb-p, 0))));
  }

  .viva-builder-page__sub-stack--cascade-fill
    .viva-builder-page__sub-check
    .viva-builder-page__sub-check-face--tick
    path {
    stroke-dashoffset: calc(1 - var(--vb-p, 0));
  }

  .viva-builder-page__sub-stack--cascade-fill .viva-builder-page__sub-card {
    transform: translateY(calc(var(--vb-glow, 0) * -1.5px))
      scale(calc(1 + var(--vb-glow, 0) * 0.012));
  }
}
.viva-builder-page__sub-card--nested .viva-builder-page__sub-check--locked:hover:not(:focus-visible) {
  transform: translateY(-50%);
}
.viva-builder-page__sub-card-header--nested {
  min-width: 0;
  min-height: calc(3.35rem - 2px);
}
.viva-builder-page__sub-card-hit--nested {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: inherit;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: inherit;
}
.page.viva-builder-page:not(.viva-builder-page--embed)
  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked)
  .viva-builder-page__sub-card-hit--nested:not(.viva-builder-page__sub-card-hit--locked) {
  cursor: pointer;
}
.viva-builder-page__sub-card--nested:focus-visible,
.viva-builder-page__sub-card-hit--nested:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.viva-builder-page__sub-card--nested .viva-builder-page__sub-card-nested-label-wrap {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  align-self: stretch;
}
.viva-builder-page__sub-card--nested .viva-builder-page__sub-card-label {
  width: 100%;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-check {
    transition:
      transform 0.28s cubic-bezier(0.34, 1.15, 0.64, 1),
      border-color 0.22s ease,
      background-color 0.22s ease,
      box-shadow 0.22s ease;
  }

  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card
    > .viva-builder-page__sub-check:not(.viva-builder-page__sub-check--locked):hover:not(:focus-visible) {
    transform: translateY(-50%) scale(1.12);
    border-color: color-mix(in srgb, var(--text-h) 55%, var(--border));
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
      0 4px 12px color-mix(in srgb, var(--text-h) 14%, transparent);
  }

  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card
    > .viva-builder-page__sub-check--on:not(.viva-builder-page__sub-check--locked):hover:not(:focus-visible) {
    transform: translateY(-50%) scale(1.12);
    border-color: var(--text-h);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 18%, transparent),
      0 5px 14px color-mix(in srgb, var(--text-h) 20%, transparent);
  }

  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked):hover:not(:focus-visible)
    .viva-builder-page__sub-check--nested:not(.viva-builder-page__sub-check--locked) {
    transform: translateY(-50%) scale(1.12);
    border-color: color-mix(in srgb, var(--text-h) 55%, var(--border));
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
      0 4px 12px color-mix(in srgb, var(--text-h) 14%, transparent);
  }

  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked):hover:not(:focus-visible)
    .viva-builder-page__sub-check--nested.viva-builder-page__sub-check--on:not(.viva-builder-page__sub-check--locked) {
    transform: translateY(-50%) scale(1.12);
    border-color: var(--text-h);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--text-h) 18%, transparent),
      0 5px 14px color-mix(in srgb, var(--text-h) 20%, transparent);
  }

  .viva-builder-page__sub-check-face--q {
    transition:
      opacity 0.2s cubic-bezier(0.33, 1, 0.36, 1),
      transform 0.3s cubic-bezier(0.33, 1.12, 0.4, 1);
  }

  .viva-builder-page__sub-check-face--tick {
    transition:
      opacity 0.22s cubic-bezier(0.33, 1, 0.36, 1),
      transform 0.4s cubic-bezier(0.26, 1.45, 0.36, 1);
  }

  .viva-builder-page__sub-check-face--tick path {
    transition: stroke-dashoffset 0.38s cubic-bezier(0.42, 0.02, 0.18, 1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card
    > .viva-builder-page__sub-check:hover:not(:focus-visible),
  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card
    > .viva-builder-page__sub-check--on:hover:not(:focus-visible) {
    transform: translateY(-50%);
  }

  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked):hover:not(:focus-visible)
    .viva-builder-page__sub-check--nested,
  .viva-builder-page__sub-card--nested:not(.viva-builder-page__sub-card--locked):hover:not(:focus-visible)
    .viva-builder-page__sub-check--nested.viva-builder-page__sub-check--on {
    transform: translateY(-50%);
  }

  .viva-builder-page__sub-check-face--q,
  .viva-builder-page__sub-check-face--tick,
  .viva-builder-page__sub-check-face--tick path {
    transition: none !important;
  }
}
.viva-builder-page__sub-check:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
    animation: viva-builder-sub-card-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: calc(var(--vb-sub-i, 0) * 0.035s);
  }

  .viva-builder-page__sub-tier--nested > .viva-builder-page__sub-card-anchor > .viva-builder-page__sub-card {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
    animation: viva-builder-sub-card-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: calc(var(--vb-nested-i, 0) * 0.035s);
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__sub-tier:not(.viva-builder-page__sub-tier--nested)
    > .viva-builder-page__sub-card-anchor
    > .viva-builder-page__sub-card,
  .viva-builder-page__sub-tier--nested > .viva-builder-page__sub-card-anchor > .viva-builder-page__sub-card {
    opacity: 1;
    transform: none;
  }
}
@keyframes viva-builder-sub-card-in {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.viva-builder-page__card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: clamp(
      calc(0.62rem * var(--vb-section-card-vscale, 1)),
      calc(1.35vw * var(--vb-section-card-vscale, 1)),
      calc(0.85rem * var(--vb-section-card-vscale, 1))
    )
    clamp(1rem, 2.4vw, 1.5rem)
    var(--vb-card-divider-gap, 0.45rem);
}
.viva-builder-page__card-head .directory-card__title {
  flex: 1;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  /* Single-line titles; fluid size from card width so the longest label fits in 5-up layout. */
  font-size: clamp(0.68rem, calc(0.2rem + 5.55cqi), 0.86rem);
  font-weight: 600;
  line-height: calc(1.28 * var(--vb-section-card-vscale, 1));
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.viva-builder-page__ring-loader {
  --viva-ring-cycle: 2.6s;

  position: relative;
  width: 0.625rem;
  height: 0.625rem;
  flex-shrink: 0;
}
.viva-builder-page__ring-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2px;
  height: 2px;
  margin: -1px 0 0 -1px;
  border-radius: 50%;
  background: var(--text);
  box-sizing: border-box;
  transform-origin: center;
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__ring-dot:nth-child(1) {
    animation: viva-ring-d0 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(2) {
    animation: viva-ring-d1 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(3) {
    animation: viva-ring-d2 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(4) {
    animation: viva-ring-d3 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(5) {
    animation: viva-ring-d4 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(6) {
    animation: viva-ring-d5 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(7) {
    animation: viva-ring-d6 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(8) {
    animation: viva-ring-d7 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(9) {
    animation: viva-ring-d8 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(10) {
    animation: viva-ring-d9 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(11) {
    animation: viva-ring-d10 var(--viva-ring-cycle) linear infinite;
  }

  .viva-builder-page__ring-dot:nth-child(12) {
    animation: viva-ring-d11 var(--viva-ring-cycle) linear infinite;
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__ring-dot {
    animation: none;
    opacity: 0.55;
  }

  .viva-builder-page__ring-dot:nth-child(1) {
    transform: rotate(0deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(2) {
    transform: rotate(30deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(3) {
    transform: rotate(60deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(4) {
    transform: rotate(90deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(5) {
    transform: rotate(120deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(6) {
    transform: rotate(150deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(7) {
    transform: rotate(180deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(8) {
    transform: rotate(210deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(9) {
    transform: rotate(240deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(10) {
    transform: rotate(270deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(11) {
    transform: rotate(300deg) translateY(-0.3125rem) scale(1);
  }

  .viva-builder-page__ring-dot:nth-child(12) {
    transform: rotate(330deg) translateY(-0.3125rem) scale(1);
  }
}
.viva-builder-page__card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
  padding: var(--vb-card-divider-gap, 0.45rem) clamp(1rem, 2.4vw, 1.5rem)
    clamp(
      calc(0.35rem * var(--vb-section-card-vscale, 1)),
      calc(0.85vw * var(--vb-section-card-vscale, 1)),
      calc(0.5rem * var(--vb-section-card-vscale, 1))
    );
}
/*
 * Every main tile uses the same vertical rhythm as the open card: two-line topic block,
 * then “Questions” + toggle row pinned to the bottom so initial (collapsed) height matches selected.
 */
.viva-builder-page__card-main .viva-builder-page__card-body {
  flex: 1 1 auto;
  min-height: 0;
}
.page.viva-builder-page p.viva-builder-page__field {
  margin: 0;
  line-height: 1.35;
}
.viva-builder-page__card.directory-card
  .viva-builder-page__card-main
  p.viva-builder-page__field {
  line-height: calc(1.35 * var(--vb-section-card-vscale, 1));
}
.viva-builder-page__field {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  width: 100%;
  font-size: clamp(0.75rem, 1.5vw, 0.8125rem);
  color: var(--text-h);
}
.viva-builder-page__field-label {
  flex: 0 0 auto;
  color: var(--text-h);
}
/*
 * Topic summary: inline flow so continuation lines align with the card edge (under “Topic:”).
 * Outer has a single flex child so -webkit-line-clamp applies to the inner block; max-height
 * caps at exactly two lines. Each topic segment is nowrap so “Topic N (…)” is not broken.
 */
.viva-builder-page__field--topic {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
}
.viva-builder-page__topic-line-outer {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  line-height: calc(1.35 * var(--vb-section-card-vscale, 1));
  max-height: calc(2 * 1.35em * var(--vb-section-card-vscale, 1));
}
/* Always reserve exactly two topic lines so the lower block doesn’t shift when expanding. */
.viva-builder-page__card-main .viva-builder-page__topic-line-outer {
  min-height: calc(2 * 1.35em * var(--vb-section-card-vscale, 1));
}
.viva-builder-page__topic-line-inner {
  display: inline-block;
  width: 100%;
  min-width: 0;
  line-height: calc(1.35 * var(--vb-section-card-vscale, 1));
  vertical-align: top;
}
.viva-builder-page__field--topic .viva-builder-page__field-label {
  white-space: nowrap;
}
.viva-builder-page__topic-segment {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
  color: var(--text-h);
  font-weight: 500;
}
.viva-builder-page__topic-tail-ellipsis {
  display: inline;
  white-space: nowrap;
  color: var(--text-h);
  font-weight: 500;
}
.viva-builder-page__questions-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
  font-size: clamp(0.75rem, 1.5vw, 0.8125rem);
}
.viva-builder-page__card.directory-card .viva-builder-page__questions-stack {
  gap: calc(0.35rem * var(--vb-section-card-vscale, 1));
}
.viva-builder-page__card-main .viva-builder-page__questions-stack {
  /* Keep Questions near Topic; leftover card height sits below, not between them. */
  margin-top: 0;
  align-self: flex-start;
}
/*
 * Subdomain bulk toggle: slightly smaller than `.viva-builder-page__questions-stack` (0.9em) so the
 * pill reads as secondary; em padding/min-width scale with it. Negative margin offsets border +
 * padding so the pill aligns with that row. Label text is centred inside the pill.
 */
.viva-builder-page__subdomains-toggle-all {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  margin-inline-start: calc(-1px - var(--vb-toggle-pad-inline, 0.5em));
  flex: 0 0 auto;
  padding-block: 0.32em;
  padding-inline: 0.65em;
  border: 1px solid transparent;
  border-radius: 9999px;
  background: transparent;
  font-family: inherit;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  min-width: 7.5em;
  width: max-content;
  max-width: 100%;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}
/* Sub-stack bulk toggles (not main card): no Questions-row alignment offset */
.viva-builder-page__subdomains-toggle-all--in-nested {
  margin-inline-start: 0;
}
/* --text-h / --surface follow theme tokens (outline was hardcoded #000 and vanished on dark UI). */
.viva-builder-page__subdomains-toggle-all--fill {
  background: var(--text-h);
  border-color: var(--text-h);
  color: var(--surface);
}
.viva-builder-page__subdomains-toggle-all--fill:hover {
  background: color-mix(in srgb, var(--text-h) 85%, var(--surface));
  border-color: color-mix(in srgb, var(--text-h) 85%, var(--surface));
  color: var(--surface);
}
.viva-builder-page__subdomains-toggle-all--outline {
  background: transparent;
  border-color: color-mix(in srgb, var(--text-h) 92%, var(--border));
  color: var(--text-h);
}
.viva-builder-page__subdomains-toggle-all--outline:hover {
  background: color-mix(in srgb, var(--text-h) 10%, var(--surface));
  border-color: color-mix(in srgb, var(--text-h) 88%, var(--border));
}
.viva-builder-page__subdomains-toggle-all:disabled,
.viva-builder-page__subdomains-toggle-all--locked {
  cursor: not-allowed;
  opacity: 0.42;
  filter: grayscale(0.55);
}
.viva-builder-page__subdomains-toggle-all:disabled:hover,
.viva-builder-page__subdomains-toggle-all--locked:hover {
  background: transparent;
  border-color: color-mix(in srgb, var(--text-h) 92%, var(--border));
  color: var(--text-h);
}
/* Night: same secondary-chip language as `.viva-builder-page__choose-station` so the pill reads clearly on var(--bg). */
[data-theme='dark'] .viva-builder-page__subdomains-toggle-all--outline {
  background: color-mix(in srgb, var(--surface) 72%, var(--text-h) 14%);
  border-color: var(--border);
  color: var(--text-h);
}
[data-theme='dark'] .viva-builder-page__subdomains-toggle-all--outline:hover {
  background: color-mix(in srgb, var(--surface) 62%, var(--text-h) 22%);
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
  color: var(--text-h);
}
[data-theme='dark'] .viva-builder-page__subdomains-toggle-all--fill:hover {
  background: color-mix(in srgb, var(--text-h) 88%, var(--surface));
  border-color: color-mix(in srgb, var(--text-h) 88%, var(--surface));
}
.viva-builder-page__subdomains-toggle-all:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
/* Invisible stand-in when collapsed: keeps row height aligned with the real toggle button. */
.viva-builder-page__subdomains-toggle-all--height-placeholder {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}
.viva-builder-page__field--questions {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0.5rem;
  width: 100%;
  min-width: 0;
  font-size: inherit;
}
/* Skeleton must be inline-block so width/height apply; sits in grid column 2 beside “Questions:” */
.viva-builder-page__field--questions .viva-builder-page__skeleton--questions {
  display: inline-block;
  box-sizing: border-box;
  flex: none;
  width: 2.75rem;
  min-width: 2rem;
  max-width: 100%;
  min-height: 0.75rem;
  vertical-align: middle;
  justify-self: start;
}
.viva-builder-page__field--questions .viva-builder-page__questions-count {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  min-width: 0;
  min-height: 1em;
  font-variant-numeric: tabular-nums;
  color: var(--text-h, #000);
}
.viva-builder-page__field--questions .viva-builder-page__questions-count--viva-zero {
  color: #b71c1c;
  font-weight: 700;
}
[data-theme='dark'] .viva-builder-page__field--questions .viva-builder-page__questions-count--viva-zero {
  color: #fca5a5;
}
.viva-builder-page__skeleton {
  flex: 1 1 4rem;
  min-width: 3rem;
  min-height: 0.7rem;
  border-radius: 4px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--text-h) 7%, var(--site-index-bg)) 0%,
    color-mix(in srgb, var(--text-h) 16%, var(--site-index-bg)) 42%,
    color-mix(in srgb, var(--text-h) 7%, var(--site-index-bg)) 100%
  );
  background-size: 220% 100%;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__skeleton {
    animation: viva-builder-skeleton-shimmer 1.35s ease-in-out infinite;
  }
}
@keyframes viva-builder-skeleton-shimmer {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__card.directory-card {
    transition: transform 0.32s cubic-bezier(0.34, 1.2, 0.64, 1);
  }

  .viva-builder-page__card.directory-card .directory-card__title {
    transform-origin: top left;
  }

  .viva-builder-page__card.directory-card:hover {
    transform: translateY(-4px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__card.directory-card:hover {
    transform: none;
  }
}
@keyframes viva-ring-d0 {
  0%, 0.30% { opacity: 0; transform: rotate(0deg) translateY(-0.3125rem) scale(0.45); }
  0.40%, 41.90% { opacity: 1; transform: rotate(0deg) translateY(-0.3125rem) scale(1); }
  42.00%, 44.00% { opacity: 0; transform: rotate(0deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(0deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d1 {
  0%, 2.50% { opacity: 0; transform: rotate(30deg) translateY(-0.3125rem) scale(0.45); }
  2.60%, 45.10% { opacity: 1; transform: rotate(30deg) translateY(-0.3125rem) scale(1); }
  45.20%, 47.20% { opacity: 0; transform: rotate(30deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(30deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d2 {
  0%, 4.70% { opacity: 0; transform: rotate(60deg) translateY(-0.3125rem) scale(0.45); }
  4.80%, 48.30% { opacity: 1; transform: rotate(60deg) translateY(-0.3125rem) scale(1); }
  48.40%, 50.40% { opacity: 0; transform: rotate(60deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(60deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d3 {
  0%, 6.90% { opacity: 0; transform: rotate(90deg) translateY(-0.3125rem) scale(0.45); }
  7.00%, 51.50% { opacity: 1; transform: rotate(90deg) translateY(-0.3125rem) scale(1); }
  51.60%, 53.60% { opacity: 0; transform: rotate(90deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(90deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d4 {
  0%, 9.10% { opacity: 0; transform: rotate(120deg) translateY(-0.3125rem) scale(0.45); }
  9.20%, 54.70% { opacity: 1; transform: rotate(120deg) translateY(-0.3125rem) scale(1); }
  54.80%, 56.80% { opacity: 0; transform: rotate(120deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(120deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d5 {
  0%, 11.30% { opacity: 0; transform: rotate(150deg) translateY(-0.3125rem) scale(0.45); }
  11.40%, 57.90% { opacity: 1; transform: rotate(150deg) translateY(-0.3125rem) scale(1); }
  58.00%, 60.00% { opacity: 0; transform: rotate(150deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(150deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d6 {
  0%, 13.50% { opacity: 0; transform: rotate(180deg) translateY(-0.3125rem) scale(0.45); }
  13.60%, 61.10% { opacity: 1; transform: rotate(180deg) translateY(-0.3125rem) scale(1); }
  61.20%, 63.20% { opacity: 0; transform: rotate(180deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(180deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d7 {
  0%, 15.70% { opacity: 0; transform: rotate(210deg) translateY(-0.3125rem) scale(0.45); }
  15.80%, 64.30% { opacity: 1; transform: rotate(210deg) translateY(-0.3125rem) scale(1); }
  64.40%, 66.40% { opacity: 0; transform: rotate(210deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(210deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d8 {
  0%, 17.90% { opacity: 0; transform: rotate(240deg) translateY(-0.3125rem) scale(0.45); }
  18.00%, 67.50% { opacity: 1; transform: rotate(240deg) translateY(-0.3125rem) scale(1); }
  67.60%, 69.60% { opacity: 0; transform: rotate(240deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(240deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d9 {
  0%, 20.10% { opacity: 0; transform: rotate(270deg) translateY(-0.3125rem) scale(0.45); }
  20.20%, 70.70% { opacity: 1; transform: rotate(270deg) translateY(-0.3125rem) scale(1); }
  70.80%, 72.80% { opacity: 0; transform: rotate(270deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(270deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d10 {
  0%, 22.30% { opacity: 0; transform: rotate(300deg) translateY(-0.3125rem) scale(0.45); }
  22.40%, 73.90% { opacity: 1; transform: rotate(300deg) translateY(-0.3125rem) scale(1); }
  74.00%, 76.00% { opacity: 0; transform: rotate(300deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(300deg) translateY(-0.3125rem) scale(0.45); }
}
@keyframes viva-ring-d11 {
  0%, 24.50% { opacity: 0; transform: rotate(330deg) translateY(-0.3125rem) scale(0.45); }
  24.60%, 77.10% { opacity: 1; transform: rotate(330deg) translateY(-0.3125rem) scale(1); }
  77.20%, 79.20% { opacity: 0; transform: rotate(330deg) translateY(-0.3125rem) scale(0.45); }
  100% { opacity: 0; transform: rotate(330deg) translateY(-0.3125rem) scale(0.45); }
}
.viva-builder-page__done {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  margin: 0;
  padding: 0.65rem 1.85rem;
  border: none;
  border-radius: 999px;
  font-family: var(--heading, inherit);
  font-size: clamp(0.84rem, 1.5vw, 0.9375rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 8%, transparent),
    0 8px 32px color-mix(in srgb, var(--text-h) 18%, transparent);
  transition:
    background-color 0.24s ease,
    color 0.24s ease,
    border-color 0.24s ease,
    box-shadow 0.24s ease,
    transform 0.24s ease;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
}
.viva-builder-page__done:disabled {
  cursor: default;
}
/* Start Random Station while Voice/Written still needed — keep hand cursor. */
.viva-builder-page__done--awaiting-response:not(:disabled) {
  cursor: pointer;
}
.viva-builder-page__choose-station.viva-builder-page__done--awaiting-response:not(
    :disabled
  ) {
  cursor: pointer;
}
[data-theme='light'] .viva-builder-page__done {
  background: #1a1a1a;
  color: #fff;
}
[data-theme='light'] .viva-builder-page__done:not(:disabled):hover {
  background: #333333;
  color: #fff;
}
[data-theme='dark'] .viva-builder-page__done {
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
}
[data-theme='dark'] .viva-builder-page__done:not(:disabled):hover {
  background: var(--cta-pill-bg-hover);
  color: var(--cta-pill-fg-hover);
}
.viva-builder-page__done:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
/* Station builder hub CTA: grey pill (same family as option pills), not black Start viva */
.viva-builder-page__choose-station.viva-builder-page__done {
  box-shadow: none;
  animation: none;
}
[data-theme='light'] .viva-builder-page__choose-station.viva-builder-page__done {
  background: color-mix(in srgb, var(--site-index-bg) 90%, var(--text-h) 10%);
  color: var(--text-h);
  border: 1px solid var(--border);
}
[data-theme='light'] .viva-builder-page__choose-station.viva-builder-page__done:not(:disabled):hover {
  background: color-mix(in srgb, var(--site-index-bg) 82%, var(--text-h) 18%);
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
  color: var(--text-h);
}
[data-theme='dark'] .viva-builder-page__choose-station.viva-builder-page__done {
  background: color-mix(in srgb, var(--surface) 72%, var(--text-h) 14%);
  color: var(--text-h);
  border: 1px solid var(--border);
}
[data-theme='dark'] .viva-builder-page__choose-station.viva-builder-page__done:not(:disabled):hover {
  background: color-mix(in srgb, var(--surface) 62%, var(--text-h) 22%);
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
  color: var(--text-h);
}
.viva-builder-page__done--blocked {
  cursor: not-allowed;
}
.viva-builder-page__start-viva-warning {
  margin: 0;
  max-width: min(100%, 22rem);
  font-size: 0.875rem;
  line-height: 1.4;
  text-align: center;
  color: color-mix(in srgb, #c53030 82%, var(--text-h));
}
.viva-builder-page__chrome-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  max-width: min(100%, 22rem);
  font-size: 0.875rem;
  line-height: 1.4;
  text-align: center;
  color: var(--text-muted);
}
.viva-builder-page__chrome-notice-icon {
  display: block;
  width: 1.25rem;
  height: auto;
  flex-shrink: 0;
}
.viva-builder-page__start-viva-reorder-hint {
  margin: 0;
  max-width: min(100%, 22rem);
  font-size: 0.875rem;
  line-height: 1.4;
  text-align: center;
  color: var(--text-muted);
}
.viva-builder-page__start-viva-reorder-hint--mobile {
  display: none;
}
@media (max-width: 48rem) {
  .viva-builder-page__sub-card-stats--inline {
    gap: 0.35rem 0.45rem;
    max-width: calc(100% - 6.5rem);
  }

  .viva-builder-page__sub-card--stats-inline .viva-builder-page__sub-card-hit {
    right: calc(1.75rem + 42%);
  }

  /* Start viva / Start Station band: top of page on mobile (DOM stays after grid). */
  .viva-builder-page__start-viva-band {
    order: -1;
    margin-top: 0;
    padding-top: clamp(0.75rem, 2.5vw, 1.25rem);
    padding-bottom: 0;
  }

  .viva-builder-page__start-viva-band--with-hint {
    padding-top: clamp(0.75rem, 2.5vw, 1.25rem);
    padding-bottom: 0;
  }

  .viva-builder-page__start-viva-reorder-hint--desktop {
    display: none;
  }

  .viva-builder-page__start-viva-reorder-hint--mobile {
    display: inline;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__done {
    animation: viva-builder-done-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
  }

}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__done {
    opacity: 1;
    transform: none;
  }
}
@keyframes viva-builder-done-in {
  from {
    opacity: 0;
    transform: scale(0.92);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__done--fade-out {
    animation: viva-builder-station-cta-fade-out 0.5s ease both !important;
  }

  .viva-builder-page__done--fade-in {
    animation: viva-builder-station-cta-fade-in 0.5s ease both !important;
  }
}
.viva-builder-page__done--filling {
  cursor: progress;
  opacity: 0.85;
}
@keyframes viva-builder-station-cta-fade-out {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}
@keyframes viva-builder-station-cta-fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}
/* Full-viewport white fade when starting a viva (covers workspace chrome) */
.viva-builder-page__viva-fade-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #fff;
  pointer-events: auto;
}
[data-theme='dark'] .viva-builder-page__viva-fade-overlay {
  background: #000;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__viva-fade-overlay {
    opacity: 0;
    animation: viva-builder-viva-fade-to-white 3s linear forwards;
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__viva-fade-overlay {
    opacity: 1;
  }
}
@keyframes viva-builder-viva-fade-to-white {
  0% {
    opacity: 0;
  }
  33.333% {
    opacity: 1;
  }
  66.666% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
/* Builder → application: first half of 2s transition (holds at white until navigate). */
.viva-builder-page__application-route-fade-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #fff;
  pointer-events: auto;
}
[data-theme='dark'] .viva-builder-page__application-route-fade-overlay {
  background: #000;
}
@media (prefers-reduced-motion: no-preference) {
  .viva-builder-page__application-route-fade-overlay {
    opacity: 0;
    animation: viva-builder-application-route-fade-in 1s linear forwards;
  }
}
@media (prefers-reduced-motion: reduce) {
  .viva-builder-page__application-route-fade-overlay {
    opacity: 1;
  }
}
@keyframes viva-builder-application-route-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
/* Free-plan locked topic / subdomain (replaces system `alert`) */
.viva-builder-subscription-notice {
  position: fixed;
  inset: 0;
  z-index: 10100;
  box-sizing: border-box;
}
.viva-builder-subscription-notice__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: color-mix(in srgb, var(--text-h) 52%, transparent);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.viva-builder-subscription-notice__frame {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  pointer-events: none;
}
.viva-builder-subscription-notice__panel {
  pointer-events: auto;
  box-sizing: border-box;
  width: min(100%, min(92vw, 26rem));
  padding: 1.15rem 1.2rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
}
.viva-builder-subscription-notice__title {
  margin: 0 0 0.65rem;
  font-family: var(--heading);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--text-h);
}
.viva-builder-subscription-notice__body {
  margin: 0 0 1.1rem;
  font-size: 0.98rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.viva-builder-subscription-notice__actions {
  display: flex;
  justify-content: flex-end;
}
.viva-builder-subscription-notice__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5rem;
  margin: 0;
  padding: 0.5rem 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--surface);
  background: var(--text-h);
  cursor: pointer;
  transition:
    opacity 0.15s ease,
    border-color 0.15s ease,
    background 0.15s ease;
}
.viva-builder-subscription-notice__btn:hover {
  opacity: 0.92;
}
.viva-builder-subscription-notice__btn:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.trial-database-access-dialog__panel .viva-builder-subscription-notice__body {
  margin-bottom: 1.25rem;
}
.trial-database-access-dialog__actions {
  display: flex;
  flex-direction: column-reverse;
  align-items: stretch;
  gap: 0.55rem;
}
.trial-database-access-dialog__btn {
  width: 100%;
  text-align: center;
  text-decoration: none;
}
@media (min-width: 480px) {
  .trial-database-access-dialog__actions {
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
  }

  .trial-database-access-dialog__btn {
    width: auto;
    min-width: 6.5rem;
  }
}
.guest-session-audio-notice__panel {
  text-align: center;
}
.guest-session-audio-notice__icon {
  display: flex;
  justify-content: center;
  margin: 0.15rem 0 0.85rem;
  color: var(--text-h);
}
.guest-session-audio-notice__icon svg {
  width: 1.75rem;
  height: 1.75rem;
}
.guest-session-audio-notice__actions {
  justify-content: center;
}
/* /faq — same tokens as pricing / values tiles; readable column + disclosure rows */
.page.faq-page {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.faq-page__inner {
  width: 100%;
  max-width: min(40rem, 100%);
  margin-inline: auto;
  box-sizing: border-box;
}
.faq-page__title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(2.25rem, 6vw, 3.25rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.12;
  color: var(--text-h);
}
.faq-page__intro {
  margin: clamp(0.85rem, 2vw, 1.15rem) 0 0;
  font-size: clamp(0.95rem, 1.8vw, 1.0625rem);
  line-height: 1.55;
  color: var(--text);
}
.faq-page__list {
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vw, 1rem);
  margin-top: clamp(1.5rem, 4vw, 2.25rem);
}
.faq-page__item {
  border: none;
  border-radius: 14px;
  background: var(--site-index-bg);
  box-sizing: border-box;
  overflow: hidden;
}
.faq-page__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.1rem, 2.5vw, 1.35rem) clamp(1.2rem, 2.5vw, 1.5rem);
  cursor: pointer;
  list-style: none;
  font-family: var(--heading);
  font-size: clamp(1rem, 2vw, 1.125rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: var(--text-h);
}
.faq-page__summary::-webkit-details-marker {
  display: none;
}
.faq-page__question {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
.faq-page__chevron {
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg);
  translate: 0 -0.15rem;
  transition: transform 0.2s ease, border-color 0.15s ease;
}
.faq-page__item[open] .faq-page__chevron {
  transform: rotate(225deg);
  translate: 0 0.1rem;
}
.faq-page__summary:hover .faq-page__chevron {
  border-color: var(--text-h);
}
.faq-page__answer {
  padding: 0 clamp(1.2rem, 2.5vw, 1.5rem) clamp(1.1rem, 2.5vw, 1.35rem);
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.faq-page__answer p {
  margin: clamp(0.75rem, 2vw, 0.95rem) 0 0;
  font-size: 0.9125rem;
  line-height: 1.55;
  color: var(--text);
}
/* Beat `.page p { margin: 0 0 1rem }` — that shorthand was zeroing margin-top here */
.page.faq-page .faq-page__outro {
  margin: clamp(1.375rem, 3.5vw, 2rem) 0 1rem;
  text-align: center;
  font-size: 0.9125rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.page.faq-page .faq-page__outro > p {
  margin: 0.65rem 0 0;
}
.page.faq-page .faq-page__outro > p:first-child {
  margin-top: 0;
}
.faq-page__link {
  color: var(--text-h);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.faq-page__link:hover {
  color: var(--text-interactive-hover);
}
[data-theme='dark'] .faq-page__item {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-panel-raised);
}
[data-theme='dark'] .faq-page__answer {
  border-top-color: var(--border);
}
/* /progress-info — reuse home strip layout */
.progress-info-page .home-article > .home-post-lede-strip-cq:first-of-type {
  margin-top: 2.85rem;
}
/*
 * Full progress dashboard in the marketing iframe: use the shared iframe downscale
 * (138.889% layout × scale(0.72) on narrow viewports in pages-home.css) so text
 * is laid out at readable sizes then scaled — not shrunk with sub-12px fonts.
 * Density inside the iframe comes from `.progress-page--demo-embed-full` + embedMobile padding.
 */
/* /progress/dashboard — analytics dashboard */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.progress-drawer-open {
  overflow: hidden;
}
/* Page shell */
.page.progress-page {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 4vw, 2.5rem) clamp(2.5rem, 6vh, 4rem);
}
.progress-page--demo-embed.page {
  min-height: auto;
  margin: 0;
  padding: clamp(0.65rem, 1.8vw, 1.1rem);
  background: var(--bg);
}
.progress-page--demo-embed .progress-page__inner {
  gap: 0.75rem;
}
.progress-page--demo-embed .progress-readiness {
  padding: clamp(0.85rem, 2.2vw, 1.15rem);
}
.progress-page--demo-embed .progress-readiness__intro {
  gap: 0.35rem;
}
.progress-page--demo-embed .progress-domain-card {
  padding: 0.75rem 0.85rem;
}
/*
 * Marketing progress iframe on narrow viewports (`embedMobile=1` from parent).
 * Parent iframe uses layout downscale (pages-home.css); keep readable typography
 * here — only tighten spacing and allow scroll.
 */
.progress-page--demo-embed.progress-page--demo-embed-mobile.page {
  min-height: 0;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-block: 3px;
  padding-inline: 0;
  -webkit-font-smoothing: subpixel-antialiased;
}
.progress-page--demo-embed-mobile .progress-page__inner {
  gap: 0.45rem;
}
.progress-page--demo-embed-mobile .progress-readiness {
  padding: 0.55rem 0.65rem;
  gap: 0.5rem;
}
.progress-page--demo-embed-mobile .progress-readiness__hero {
  gap: 0.55rem;
}
.progress-page--demo-embed-mobile .progress-readiness__stats {
  gap: 0.4rem;
}
.progress-page--demo-embed-mobile .progress-domain-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
.progress-page--demo-embed-mobile .progress-domain-card {
  padding: 0.55rem 0.6rem;
}
.progress-page--demo-embed-mobile .progress-section {
  padding: 0.55rem 0.65rem;
}
.progress-page--demo-embed-mobile .progress-history__cards {
  gap: 0.5rem;
}
/*
 * Marketing iframe: layout width is inflated by parent scale (125% or 138.889%),
 * so container/viewport breakpoints fire too early. Keep stats stacked and densify
 * the practice timeline for the visible chrome width.
 */
.progress-page--demo-embed .progress-readiness__stats {
  grid-template-columns: 1fr;
}
.progress-page--demo-embed .progress-stat--timeline {
  grid-column: 1;
}
.progress-page--demo-embed .progress-stat-modes {
  gap: 0.55rem;
}
.progress-page--demo-embed .progress-stat-modes__item + .progress-stat-modes__item {
  padding-top: 0.55rem;
}
.progress-page--demo-embed .progress-stat__hint {
  font-size: 0.64rem !important;
}
.progress-page--demo-embed .progress-timeline__dots {
  gap: 0.28rem 0.45rem;
}
.progress-page--demo-embed .progress-timeline__week {
  gap: 0.2rem;
  padding-right: 0.28rem;
}
.progress-page--demo-embed .progress-timeline__dot {
  width: 0.38rem;
  height: 0.38rem;
}
.progress-page--demo-embed .progress-timeline__dot--exam {
  width: 0.46rem;
  height: 0.46rem;
}
.progress-page--demo-embed .progress-timeline__exam-day-label {
  display: none;
}
.progress-page--demo-embed .progress-timeline__legend {
  gap: 0.35rem 0.55rem;
  font-size: 0.58rem;
}
.progress-page--demo-embed .progress-timeline__meta {
  font-size: 0.64rem;
}
.progress-page--demo-embed-mobile .progress-stat-modes {
  gap: 0.45rem;
}
.progress-page--demo-embed-mobile .progress-stat-modes__item + .progress-stat-modes__item {
  padding-top: 0.45rem;
}
.progress-page--demo-embed-mobile .progress-timeline__dot {
  width: 0.34rem;
  height: 0.34rem;
}
.progress-page--demo-embed-mobile .progress-timeline__dot--exam {
  width: 0.42rem;
  height: 0.42rem;
}
/* `/progress-info` iframe: full mock dashboard (history) — denser + scrollable */
.progress-page--demo-embed-full.page {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.progress-page--demo-embed-full .progress-page__inner {
  gap: 0.55rem;
}
.progress-page--demo-embed-full .progress-readiness {
  padding: clamp(0.65rem, 1.6vw, 0.9rem);
  gap: 0.65rem;
}
.progress-page--demo-embed-full .progress-readiness__question {
  font-size: clamp(1.05rem, 2.8vw, 1.35rem);
}
.progress-page--demo-embed-full .progress-readiness__lede {
  font-size: 0.75rem;
  line-height: 1.4;
}
.progress-page--demo-embed-full .progress-readiness__hero {
  gap: 0.75rem;
}
.progress-page--demo-embed-full .progress-readiness__stats {
  gap: 0.45rem;
}
.progress-page--demo-embed-full .progress-section {
  padding: 0.65rem 0.75rem;
}
.progress-page--demo-embed-full .progress-section__header {
  margin-bottom: 0.55rem;
}
.progress-page--demo-embed-full .progress-section__title {
  font-size: 0.95rem;
}
.progress-page--demo-embed-full .progress-section__desc {
  font-size: 0.75rem;
  margin-top: 0.2rem;
}
.progress-page--demo-embed-full .progress-domain-card__main {
  padding: 0.5rem 0.6rem;
}
.progress-page--demo-embed-full .progress-history__table th,
.progress-page--demo-embed-full .progress-history__table td {
  padding: 0.35rem 0.45rem;
  font-size: 0.72rem;
}
.progress-page--demo-embed-full .progress-history__table th {
  font-size: 0.65rem;
}
.progress-page__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 4vw, 2.25rem);
  width: 100%;
  max-width: min(72rem, 100%);
  margin-inline: auto;
}
.progress-page__stack {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.35rem);
}
/* Shared panel primitive — aligned with directory-card */
.progress-panel,
.progress-section,
.progress-readiness,
.progress-empty,
.progress-error {
  background: var(--site-index-bg);
  border: none;
  border-radius: 6px;
  box-shadow: var(--progress-panel-shadow);
}
.progress-panel--interactive {
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.progress-panel--interactive:hover {
  transform: translateY(-2px);
  box-shadow: var(--progress-panel-shadow-hover);
}
.progress-panel--interactive:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
/* Segmented control */
.progress-segmented {
  display: inline-flex;
  padding: 0.2rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-h) 6%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
}
.progress-segmented--compact {
  width: fit-content;
}
.progress-segmented__btn {
  padding: 0.4rem 0.85rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.progress-segmented__btn:hover:not(:disabled) {
  color: var(--text-h);
}
.progress-segmented__btn--active {
  background: var(--surface);
  color: var(--text-h);
  box-shadow: 0 1px 4px color-mix(in srgb, var(--text-h) 12%, transparent);
}
.progress-segmented__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
/* Section panels */
.progress-section {
  padding: clamp(1rem, 3vw, 1.25rem);
}
.progress-section__header {
  margin-bottom: 1rem;
}
.progress-section__title {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-h);
}
.progress-section__desc {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.progress-panel__empty {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
/* Next steps */
.progress-next-steps {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.progress-next-step {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.85rem 1rem;
  border-radius: 6px;
  background: var(--site-index-bg);
  box-shadow: var(--progress-panel-shadow);
}
.progress-next-step h4 {
  margin: 0;
  font-family: var(--heading);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
}
.progress-next-step p {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
  white-space: pre-line;
}
.progress-next-step__cta {
  align-self: flex-start;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-h);
  text-decoration: none;
}
.progress-next-step__cta:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
}
.progress-readiness__projection-disclaimer {
  margin: 0.5rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--text-muted) 88%, var(--text-h));
}
/* Readiness hero */
.progress-readiness {
  container-type: inline-size;
  container-name: progress-readiness;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: clamp(1.15rem, 3vw, 1.5rem);
}
.progress-readiness__intro {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.progress-readiness__eyebrow {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.progress-readiness__question {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.35rem, 3.5vw, 1.85rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--text-h);
}
.progress-readiness__lede {
  margin: 0.35rem 0 0;
  max-width: 38rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--text-muted) 92%, var(--text-h));
}
.progress-readiness__hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
/*
 * Side-by-side: ring row aligns with projection card; metric toggle sits on row 2
 * under the ring only so it does not pull the ring off vertical center vs the card.
 */
@container progress-readiness (min-width: 48rem) {
  .progress-readiness__hero {
    grid-template-columns: minmax(12rem, auto) 1fr;
    grid-template-rows: auto auto;
    column-gap: 1.25rem;
    row-gap: 0.5rem;
    align-items: center;
  }

  .progress-gauge--readiness {
    display: contents;
  }

  .progress-gauge--readiness .progress-gauge__ring {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    align-self: center;
  }

  .progress-gauge--readiness .progress-gauge__metric-toggle {
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
  }

  .progress-readiness__aside {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }
}
.progress-readiness__aside {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}
.progress-readiness__projection-card {
  padding: 0.85rem 1rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--surface) 55%, var(--site-index-bg));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 8%, transparent),
    0 2px 6px color-mix(in srgb, var(--text-h) 6%, transparent);
}
.progress-readiness__projection-title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}
.progress-readiness__projection-value {
  margin: 0.25rem 0 0;
  font-family: var(--heading);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--text-h);
}
.progress-readiness__projection-unit {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-muted);
}
.progress-readiness__projection-note {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.progress-readiness__projection-secondary {
  margin: 0.2rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.progress-readiness__projection-peer {
  margin: 0.45rem 0 0;
  font-size: 0.76rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-muted) 90%, var(--text-h));
}
.progress-readiness__peer-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.75rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--text-muted);
  cursor: pointer;
}
.progress-readiness__peer-toggle input {
  margin-top: 0.15rem;
  flex-shrink: 0;
}
.progress-readiness__stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  align-items: start;
}
@container progress-readiness (min-width: 40rem) {
  .progress-readiness__stats {
    grid-template-columns: minmax(7.5rem, 1fr) minmax(0, 3fr);
    align-items: stretch;
  }

  .progress-stat--modes,
  .progress-stat--timeline {
    height: 100%;
  }

  .progress-stat-modes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 0.65rem;
    align-items: start;
    height: 100%;
  }

  .progress-stat-modes__item + .progress-stat-modes__item {
    padding-top: 0;
    border-top: none;
    padding-left: 0.65rem;
    border-left: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
  }

  .progress-stat--modes .progress-stat-modes__item dt {
    line-height: 1.25;
  }
}
.progress-readiness__how {
  margin-top: 0.5rem;
  padding: 0.75rem 0.85rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--text-h) 3%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--text-muted);
  position: relative;
  z-index: 0;
}
.progress-readiness__how summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--text-h);
}
.progress-readiness__how p {
  margin: 0.5rem 0 0;
}
/* Readiness skeleton */
.progress-readiness--loading {
  gap: 1rem;
}
.progress-readiness--locked {
  gap: 1rem;
}
.progress-readiness__unlock {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface) 55%, var(--site-index-bg));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 8%, transparent),
    0 2px 6px color-mix(in srgb, var(--text-h) 6%, transparent);
}
.progress-readiness__unlock-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
}
.progress-readiness__unlock-count {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text-h);
}
.progress-readiness__unlock-count strong {
  font-family: var(--heading);
  font-size: 1.35rem;
  font-weight: 600;
}
.progress-readiness__unlock-count span {
  color: var(--text-muted);
}
.progress-readiness__unlock-remaining {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted);
}
.progress-readiness__unlock-bar {
  overflow: hidden;
  height: 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-h) 10%, transparent);
}
.progress-readiness__unlock-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--accent, #0d7a5f) 82%, var(--text-h));
  transition: width 0.35s ease;
}
.progress-readiness__unlock-note {
  margin: 0;
  max-width: 38rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--text-muted) 92%, var(--text-h));
}
.progress-readiness__skeleton-intro {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.progress-readiness__skeleton-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 768px) {
  .progress-readiness__skeleton-hero {
    grid-template-columns: minmax(8rem, auto) 1fr;
    align-items: center;
  }
}
.progress-readiness__skeleton-gauge {
  width: clamp(7.5rem, 24vw, 9rem);
  aspect-ratio: 1;
  margin-inline: auto;
  border-radius: 50%;
}
.progress-readiness__skeleton-aside {
  min-height: 5rem;
  border-radius: 6px;
}
/* Gauge */
.progress-gauge {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}
.progress-gauge--readiness {
  width: auto;
  min-height: 0;
  margin-inline: auto;
  gap: 0.5rem;
}
.progress-gauge--readiness .progress-gauge__ring {
  width: clamp(7.5rem, 24vw, 9rem);
  flex-shrink: 0;
}
.progress-gauge__metric-toggle {
  width: fit-content;
  max-width: 100%;
  padding: 0.3rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-h) 6%, var(--surface));
  color: var(--text-h);
  font-size: clamp(0.625rem, 2.2vw, 0.6875rem);
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.progress-gauge__metric-toggle:hover {
  background: color-mix(in srgb, var(--text-h) 10%, var(--surface));
  border-color: color-mix(in srgb, var(--text-h) 18%, transparent);
}
.progress-gauge__ring {
  --gauge-pct: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(7rem, 22vw, 8.5rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    var(--cta-pill-bg) calc(var(--gauge-pct) * 1%),
    color-mix(in srgb, var(--text-h) 10%, transparent) 0
  );
}
.progress-gauge__ring::before {
  content: '';
  position: absolute;
  inset: 12%;
  border-radius: 50%;
  background: var(--site-index-bg);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text-h) 6%, transparent);
}
.progress-gauge__value-row {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  min-width: 4.25rem;
  width: 100%;
  line-height: 1;
  text-align: center;
}
.progress-gauge__value {
  font-family: var(--heading);
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text-h);
}
.progress-gauge__unit {
  margin-left: 0.1rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-muted);
}
.progress-gauge__caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.progress-gauge__status--on_track {
  color: color-mix(in srgb, var(--status-pass-fg) 90%, var(--text-h));
}
.progress-gauge__status--borderline {
  color: color-mix(in srgb, var(--status-borderline-fg) 90%, var(--text-h));
}
.progress-gauge__status--behind {
  color: color-mix(in srgb, var(--status-fail-fg) 85%, var(--text-h));
}
.progress-gauge__sub {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
  text-align: center;
}
/* Stat tiles */
.progress-stat {
  padding: 0.75rem 0.85rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--surface) 50%, var(--site-index-bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 6%, transparent);
}
.progress-stat dt {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.progress-stat dd {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-h);
}
.progress-stat__hint {
  margin: 0.15rem 0 0 !important;
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  line-height: 1.35;
  color: var(--text-muted) !important;
}
.progress-stat--modes {
  grid-column: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.progress-stat-modes {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.progress-stat-modes__item {
  min-width: 0;
}
.progress-stat-modes__item + .progress-stat-modes__item {
  padding-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.progress-stat--timeline {
  grid-column: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
@container progress-readiness (min-width: 40rem) {
  .progress-stat--timeline {
    grid-column: 2;
  }

  .progress-stat__timeline {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .progress-stat--timeline .progress-timeline {
    flex: 1;
    justify-content: space-between;
    min-height: 0;
  }
}
.progress-stat__timeline {
  margin-top: 0.35rem !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  width: 100%;
}
.progress-timeline {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
.progress-timeline__dots {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.4rem 0.7rem;
  line-height: 1;
  padding: 0.15rem 0;
  width: 100%;
}
.progress-timeline__week {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.28rem;
  padding-right: 0.35rem;
  border-right: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
}
.progress-timeline__week:last-child {
  border-right: none;
  padding-right: 0;
}
.progress-timeline__dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  flex-shrink: 0;
}
.progress-timeline__dot--practiced {
  background: var(--status-pass);
}
.progress-timeline__dot--missed {
  background: var(--status-fail);
}
.progress-timeline__dot--future {
  background: color-mix(in srgb, var(--text-h) 14%, transparent);
}
.progress-timeline__dot--exam {
  width: 0.55rem;
  height: 0.55rem;
  background: linear-gradient(145deg, #f4c84b 0%, #c9920a 100%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, #a67c00 35%, transparent),
    0 0 0 2px color-mix(in srgb, #f4c84b 22%, transparent);
}
.progress-timeline__dot--padding {
  visibility: hidden;
}
.progress-timeline__exam-day {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.progress-timeline__exam-day-label {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #a67c00;
  white-space: nowrap;
}
.progress-timeline__legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.45rem 0.85rem;
  width: 100%;
  font-size: 0.62rem;
  font-weight: 500;
  color: var(--text-muted);
}
.progress-timeline__footer {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
}
.progress-timeline__meta {
  margin: 0;
  width: 100%;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--text-muted);
}
.progress-timeline__meta strong {
  font-weight: 700;
  color: var(--text-h);
}
.progress-timeline__meta-sep {
  margin: 0 0.2rem;
}
.progress-timeline__legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.progress-timeline__empty {
  margin: 0;
  font-size: 0.75rem;
  color: var(--text-muted);
}
/* Domain grid */
.progress-domain-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 960px) {
  .progress-domain-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .progress-domain-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 420px) {
  .progress-domain-grid {
    grid-template-columns: 1fr;
  }
}
.progress-domain-grid > li {
  display: flex;
}
.progress-domain-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: var(--site-index-bg);
  box-shadow: var(--progress-panel-shadow);
  text-align: left;
  overflow: hidden;
  box-sizing: border-box;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.progress-domain-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--progress-panel-shadow-hover);
}
.progress-domain-card__main {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  width: 100%;
  height: 100%;
  padding: 0.65rem 0.75rem;
  box-sizing: border-box;
  text-align: left;
  color: inherit;
  cursor: default;
}
.progress-domain-card__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}
.progress-domain-card__header h4 {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--text-h);
}
.progress-domain-card__score {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-h);
}
.progress-domain-card__score-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.progress-domain-card__verdict-bar {
  display: flex;
  width: 100%;
  height: 0.5rem;
  margin: 0.15rem 0 0;
  border-radius: 999px;
  overflow: hidden;
  box-sizing: border-box;
  background: linear-gradient(
    to right,
    color-mix(in srgb, var(--status-pass) 85%, var(--surface)) 0,
    color-mix(in srgb, var(--status-pass) 85%, var(--surface)) var(--verdict-pass, 0%),
    color-mix(in srgb, var(--status-borderline) 85%, var(--surface)) var(--verdict-pass, 0%),
    color-mix(in srgb, var(--status-borderline) 85%, var(--surface))
      calc(var(--verdict-pass, 0%) + var(--verdict-borderline, 0%)),
    color-mix(in srgb, var(--status-fail) 80%, var(--surface))
      calc(var(--verdict-pass, 0%) + var(--verdict-borderline, 0%)),
    color-mix(in srgb, var(--status-fail) 80%, var(--surface)) 100%
  );
}
.progress-domain-card__verdict-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0;
  font-size: 0.68rem;
  color: var(--text-muted);
}
.progress-domain-card__verdict-key::before {
  content: '';
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  margin-right: 0.25rem;
  border-radius: 0.15rem;
  vertical-align: -0.05rem;
}
.progress-domain-card__verdict-key--pass::before {
  background: color-mix(in srgb, var(--status-pass) 85%, var(--surface));
}
.progress-domain-card__verdict-key--borderline::before {
  background: color-mix(in srgb, var(--status-borderline) 85%, var(--surface));
}
.progress-domain-card__verdict-key--fail::before {
  background: color-mix(in srgb, var(--status-fail) 80%, var(--surface));
}
.progress-domain-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
}
.progress-domain-grid .progress-domain-card__meta > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  text-align: center;
}
.progress-domain-card__meta dt {
  margin: 0;
  color: var(--text-muted);
}
.progress-domain-card__meta dd {
  margin: 0;
  font-weight: 600;
  color: var(--text);
}
.progress-domain-card--insufficient {
  opacity: 0.72;
}
.progress-domain-card--insufficient:hover {
  transform: none;
  box-shadow: var(--progress-panel-shadow);
}
.progress-domain-card__score--attempts {
  font-size: 1.125rem;
}
.progress-domain-card__insufficient-msg {
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
/* Evidence links */
.progress-evidence {
  margin-top: 0;
  padding: 0.65rem 0.9rem 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
  width: 100%;
}
.progress-evidence__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.progress-evidence__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 0.3rem 0 0;
  padding: 0;
  list-style: none;
}
.progress-evidence__link {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: underline;
  cursor: pointer;
}
.progress-evidence__link:hover {
  color: var(--accent-hover);
}
.progress-history__empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}
/* Verdict chips */
.progress-verdict {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.progress-verdict--pass {
  color: color-mix(in srgb, var(--status-pass-fg) 90%, var(--text-h));
  background: color-mix(in srgb, var(--status-pass) 14%, var(--surface));
}
.progress-verdict--borderline {
  color: color-mix(in srgb, var(--status-borderline-fg) 90%, var(--text-h));
  background: color-mix(in srgb, var(--status-borderline) 16%, var(--surface));
}
.progress-verdict--fail {
  color: color-mix(in srgb, var(--status-fail-fg) 90%, var(--text-h));
  background: color-mix(in srgb, var(--status-fail) 12%, var(--surface));
}
.progress-verdict--unknown {
  color: var(--text-muted);
  background: color-mix(in srgb, var(--text-h) 6%, var(--surface));
}
/* History */
.progress-history__table-wrap {
  display: none;
  overflow-x: auto;
}
.progress-history__table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.progress-history__table col {
  width: calc(100% / 6);
}
.progress-history__table th,
.progress-history__table td {
  padding: 0.55rem 0.65rem;
  text-align: left;
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.progress-history__table th {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.progress-history__stem {
  max-width: 16rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.progress-history__action-btn {
  box-sizing: border-box;
  width: 100%;
  padding: 0.4rem 0.55rem;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
}
.progress-history__col {
  vertical-align: middle;
  white-space: nowrap;
}
.progress-history__col--review {
  text-align: center;
}
.progress-history__col--retry {
  text-align: center;
}
.progress-history__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-content: end;
  gap: 0.4rem;
  margin-top: 0.65rem;
}
.progress-history__cards {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.progress-history-card {
  padding: 0.85rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--surface) 40%, var(--site-index-bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 8%, transparent);
}
.progress-history-card__header {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-h);
}
.progress-history-card__type {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.progress-history-card__stem {
  margin: 0.35rem 0 0.65rem;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text);
}
.progress-history-card__toggle {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.progress-history-card--expanded {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent),
    0 2px 8px color-mix(in srgb, var(--text-h) 8%, transparent);
}
@media (min-width: 720px) {
  .progress-history__table-wrap {
    display: block;
  }

  .progress-history__cards {
    display: none;
  }
}
.progress-history__mode {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-h);
}
.progress-history__mode--incomplete,
.progress-history-card__type--incomplete {
  color: color-mix(in srgb, var(--text-h) 72%, #d97706 28%);
}
.progress-history__type {
  display: block;
  font-size: 0.72rem;
  color: var(--text-muted);
}
.progress-history__action-btn--guest {
  opacity: 0.72;
  cursor: not-allowed;
}
.progress-history-row--guest {
  cursor: default;
}
.progress-history-row--guest:hover,
.progress-history-row--guest:focus-visible {
  background: transparent;
}
.progress-history-card__toggle--guest {
  cursor: default;
}
.progress-sign-in-prompt__actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.progress-sign-in-prompt__btn {
  text-decoration: none;
}
.progress-history-row {
  cursor: pointer;
  transition: background 0.15s ease;
}
.progress-history-row:hover,
.progress-history-row:focus-visible {
  background: color-mix(in srgb, var(--site-index-bg) 80%, var(--surface));
  outline: none;
}
.progress-history-row--detail {
  cursor: default;
  background: color-mix(in srgb, var(--text-h) 3%, var(--surface));
}
.progress-history-row--detail:hover {
  background: color-mix(in srgb, var(--text-h) 3%, var(--surface));
}
.progress-history-row__date {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.progress-history-row__chevron {
  display: inline-block;
  width: 0.75rem;
  font-size: 0.72rem;
  color: var(--text-muted);
}
.progress-history-expand {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.35rem 0 0.15rem;
  width: 100%;
  min-width: 0;
}
.progress-history-expand.feedback-page {
  --progress-history-feedback-inset: 0;
}
.progress-history-expand.feedback-page .feedback-page__builder-grid {
  width: 100%;
  min-width: 0;
}
.progress-history-expand.feedback-page--viva .feedback-page__builder-strip {
  flex-direction: column;
}
.progress-history-expand.feedback-page .feedback-page__builder-card-slot {
  width: 100%;
  min-width: 0;
}
/* Drawer */
.progress-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  justify-content: flex-end;
}
.progress-drawer__backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: color-mix(in srgb, var(--text-h) 45%, transparent);
  cursor: pointer;
}
.progress-drawer__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(100%, 28rem);
  max-height: 100%;
  background: var(--site-index-bg);
  box-shadow: var(--elevated-photo-shadow);
}
.progress-drawer__header {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.progress-drawer__meta {
  margin: 0;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.progress-drawer__title {
  margin: 0.25rem 0 0;
  font-family: var(--heading);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text-h);
}
.progress-drawer__close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--text-h) 6%, var(--surface));
  color: var(--text-h);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.progress-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
}
.progress-drawer__overall {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.progress-drawer__overall-pct {
  color: var(--text-h);
}
.progress-drawer__overall-band {
  display: inline;
  font-size: 0.8125rem;
  font-weight: 600;
  white-space: nowrap;
}
.progress-drawer__section-title {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.progress-drawer__scores {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0 0 1rem;
}
.progress-drawer__score-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.875rem;
}
.progress-drawer__score-row dt {
  color: var(--text-muted);
}
.progress-drawer__score-row dd {
  margin: 0;
  font-weight: 600;
  color: var(--text-h);
}
.progress-drawer__score-value {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  text-align: right;
}
.progress-drawer__score-band {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}
.progress-drawer__domain-score-note {
  margin: -0.35rem 0 0.75rem;
}
.progress-drawer__audio {
  width: 100%;
  margin-bottom: 1rem;
}
.progress-drawer__transcript,
.progress-drawer__feedback {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text);
  white-space: pre-wrap;
}
.progress-drawer__hint {
  margin: 0.5rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.progress-drawer__suggestions {
  margin: 0 0 1rem;
  padding-left: 1.1rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text);
}
.progress-drawer__suggestions--gaps li {
  color: color-mix(in srgb, var(--status-borderline-fg) 75%, var(--text));
}
.progress-drawer__questions-expand {
  margin-top: 0.5rem;
}
.progress-drawer__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  padding: 0.85rem 1rem 1rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
/* Empty / error / skeleton */
.progress-empty,
.progress-error {
  padding: clamp(1.25rem, 4vw, 2rem);
  text-align: center;
}
.progress-empty__title,
.progress-error__title {
  margin: 0;
  font-family: var(--heading);
  font-size: 1.25rem;
  color: var(--text-h);
}
.progress-empty__message,
.progress-error__message {
  max-width: 28rem;
  margin: 0.65rem auto 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.progress-empty__actions,
.progress-error__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
  margin-top: 1rem;
}
.progress-skeleton {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.progress-skeleton__row {
  height: 3.5rem;
  border-radius: 6px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--text-h) 5%, var(--surface)) 0%,
    color-mix(in srgb, var(--text-h) 10%, var(--surface)) 50%,
    color-mix(in srgb, var(--text-h) 5%, var(--surface)) 100%
  );
  background-size: 200% 100%;
  animation: progress-shimmer 1.2s ease-in-out infinite;
}
.progress-skeleton__row--short {
  height: 0.85rem;
  max-width: 12rem;
}
.progress-skeleton__row--medium {
  height: 1.35rem;
  max-width: 18rem;
}
.progress-skeleton__row--tall {
  height: 6rem;
}
@keyframes progress-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
/* /trial — centered decorative mic icon */
.page.trial-page {
  max-width: none;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
}
.trial-page__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.trial-page__stage {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: min(72vh, calc(100dvh - 12rem));
  padding: 2rem 1rem;
  box-sizing: border-box;
}
/* Stack image + mic in .application-page__main; controls stay in .application-page__actions-dock so they do not shift with the image. */
.application-page .trial-page__stage {
  min-height: max(23rem, calc(100dvh - 12rem));
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
/* Second half of builder → application transition (1s fade out from white). */
@keyframes application-page-builder-white-reveal {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}
.application-page__builder-white-reveal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #fff;
  pointer-events: none;
  animation: application-page-builder-white-reveal 1s linear forwards;
}
[data-theme='dark'] .application-page__builder-white-reveal {
  background: #000;
}
.application-page__main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
}
.application-page__actions-dock {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  /* Reserve full dock height from first paint so the mic does not shift when actions mount. */
  --application-page-dock-pt: clamp(0.75rem, 2vh, 1.25rem);
  --application-page-dock-pb: max(0.35rem, env(safe-area-inset-bottom, 0px));
  --application-page-dock-row-h: 2.45rem;
  padding-top: var(--application-page-dock-pt);
  padding-bottom: var(--application-page-dock-pb);
  min-height: calc(
    var(--application-page-dock-pt) + var(--application-page-dock-row-h) +
      var(--application-page-dock-pb)
  );
  box-sizing: border-box;
}
/*
 * `/application` layout modes (see `getApplicationPageLayout` in src/lib/applicationPageLayout.ts):
 * - .application-page--layout-standard — mic only in .application-page__main
 * - .application-page--layout-with-image — image + mic in .application-page__main
 * Actions always sit in .application-page__actions-dock (same screen position either way).
 */
.application-page__preview-dock {
  position: fixed;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  max-width: min(100vw - 1.5rem, 20rem);
  box-sizing: border-box;
}
.application-page__admin-dock {
  position: fixed;
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  max-width: min(100vw - 1.5rem, 20rem);
  box-sizing: border-box;
}
.application-page__layout-switcher,
.application-page__mic-mode-switcher {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.45rem;
  width: 100%;
  box-sizing: border-box;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: var(--element-bg);
  box-shadow:
    0 4px 18px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 1px 0 color-mix(in srgb, var(--text-h) 5%, transparent);
}
.application-page__layout-switcher__label {
  flex: 1 0 100%;
  margin: 0;
  padding: 0 0.1rem;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 55%, transparent);
}
.application-page__layout-switcher__btn {
  margin: 0;
  padding: 0.32rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  font: inherit;
  font-size: 0.75rem;
  line-height: 1.2;
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 4%, var(--element-bg));
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}
.application-page__layout-switcher__btn:hover {
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
  background: color-mix(in srgb, var(--text-h) 8%, var(--element-bg));
}
.application-page__layout-switcher__btn--active {
  border-color: color-mix(in srgb, var(--text-h) 45%, var(--border));
  background: color-mix(in srgb, var(--text-h) 12%, var(--element-bg));
  font-weight: 600;
}
.application-page__layout-switcher__btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 50%, transparent);
  outline-offset: 2px;
}
.application-page__stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 100%;
}
.application-page__stack--with-image {
  gap: clamp(0.85rem, 2.5vh, 1.35rem);
  padding-top: 0;
  flex: 1 1 auto;
  justify-content: center;
}
.application-page__mic-caption-slot--under-image {
  flex: 0 0 auto;
}
/* Slot centers the mic; anchor shrink-wraps the mic so captions can sit at top:100% without reflow. */
.application-page__mic-caption-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  box-sizing: border-box;
  overflow: visible;
}
.application-page__mic-caption-anchor {
  position: relative;
  display: inline-block;
  max-width: 100%;
  overflow: visible;
}
/*
 * EqualizerRingMic bars extend past the 4rem disc. Keep layout shrink-wrapped to the disc
 * (captions use top: 100% on the anchor) but paint the animation on a larger stage.
 */
.application-page__mic-caption-anchor .trial-mic-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  overflow: visible;
  flex-shrink: 0;
}
.application-page__mic-caption-anchor .trial-reactive-mic__stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(4rem * 2.2);
  height: calc(4rem * 2.2);
  transform: translate(-50%, calc(-50% - 0.65rem));
}
@media (max-width: 480px) {
  .application-page__mic-caption-anchor .trial-reactive-mic__stage {
    transform: translate(-50%, calc(-50% - 0.35rem));
  }
}
.application-page__mic-caption-anchor
  .trial-reactive-mic__animation
  .mic-design__canvas,
.application-page__image-mic-overlay
  .trial-reactive-mic__animation
  .mic-design__canvas {
  max-width: none;
  max-height: none;
}
.application-page__mic-below {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  margin-top: 0.35rem;
  width: min(38rem, calc(100vw - 1.5rem));
  max-width: calc(100vw - 1.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  box-sizing: border-box;
  pointer-events: none;
}
.application-page__mic-caption-slot--under-image .application-page__mic-below {
  position: static;
  transform: none;
  margin-top: 0;
  width: 100%;
  max-width: min(38rem, calc(100vw - 1.5rem));
}
.application-page__mcminns-label {
  margin: 0;
  text-align: center;
  font-size: clamp(0.84rem, 2.2vw, 0.98rem);
  line-height: 1.48;
  color: var(--text-m, var(--text));
}
.application-page__mic-below .application-page__audio-caption-host {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  margin-top: 2lh;
  width: 100%;
}
.application-page__mic-caption-slot--under-image .application-page__audio-caption-host {
  margin-top: 0;
}
.application-page__audio-caption-host {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  margin-top: 1lh;
  width: min(38rem, calc(100vw - 1.5rem));
  max-width: calc(100vw - 1.5rem);
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  padding: 0 0.75rem;
  box-sizing: border-box;
  pointer-events: none;
  font-size: clamp(0.84rem, 2.2vw, 0.98rem);
  line-height: 1.48;
}
.application-page__audio-caption {
  margin: 0;
  text-align: center;
  font-size: inherit;
  line-height: inherit;
  color: color-mix(in srgb, var(--text-h) 90%, transparent);
}
/* Stack two layouts while each mic’s circular ring wipes out / in (see ApplicationPage). */
.application-page__layout-surfaces {
  /* --application-page-mic-ring-ms / --application-page-image-fade-ms set inline on ApplicationPage */
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
}
.application-page__layout-layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  pointer-events: none;
}
.application-page__layout-layer--outgoing {
  z-index: 1;
}
.application-page__layout-layer--incoming {
  z-index: 2;
}
/*
 * Layout transition: circular wipe on the idle disc ring only (SVG stroke-dashoffset).
 * CSS border is hidden so the animated ring is the sole outline; mic fill stays opaque.
 */
.application-page__mic-ring-host {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #000000;
}
[data-theme='dark'] .application-page__mic-ring-host {
  color: var(--text-h);
}
.application-page__mic-ring-host--enter .trial-mic__disc--idle,
.application-page__mic-ring-host--exit .trial-mic__disc--idle {
  border-color: transparent;
}
.application-page__mic-ring-svg {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.application-page__mic-ring-host .trial-mic {
  position: relative;
  z-index: 0;
}
.application-page__mic-ring__stroke {
  stroke-width: 2px;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 100 100;
  /* stroke-dashoffset is driven by JS (inline style) during transitions; fixed CSS values
     override SVG attributes and broke the rAF ring wipe. */
}
/*
 * Fallback when ring circles are missing: both rings use CSS (may drift vs rAF).
 */
.application-page__layout-surfaces.application-page__layout-surfaces--animating
  .application-page__mic-ring-host--exit
  .application-page__mic-ring__stroke {
  stroke-dashoffset: 0;
  animation: application-page-mic-ring-wipe-out var(--application-page-mic-ring-ms, 500ms)
    linear forwards;
}
.application-page__layout-surfaces.application-page__layout-surfaces--animating
  .application-page__mic-ring-host--enter
  .application-page__mic-ring__stroke {
  stroke-dashoffset: 100;
  animation: application-page-mic-ring-wipe-in var(--application-page-mic-ring-ms, 500ms)
    linear forwards;
}
@keyframes application-page-mic-ring-wipe-out {
  from {
    stroke-dashoffset: 0;
  }

  to {
    stroke-dashoffset: 100;
  }
}
@keyframes application-page-mic-ring-wipe-in {
  from {
    stroke-dashoffset: 100;
  }

  to {
    stroke-dashoffset: 0;
  }
}
/* Mic rings finish first; then image fades in (delay = ring duration). */
.application-page__layout-layer--enter-image .application-page__image-panel {
  opacity: 0;
  animation: application-page-image-reveal var(--application-page-image-fade-ms, 225ms)
    cubic-bezier(0.45, 0, 0.2, 1) forwards;
  animation-delay: var(--application-page-mic-ring-ms, 500ms);
}
/* Image fades out completely before mic rings run (delay handled in JS for rings). */
.application-page__layout-layer--exit-image .application-page__image-panel {
  animation: application-page-image-hide var(--application-page-image-fade-ms, 225ms)
    cubic-bezier(0.4, 0, 0.8, 0.2) forwards;
}
@keyframes application-page-image-reveal {
  from {
    opacity: 0;
    transform: translateY(0.35rem) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes application-page-image-hide {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  to {
    opacity: 0;
    transform: translateY(0.25rem) scale(0.99);
  }
}
@media (prefers-reduced-motion: reduce) {
  .application-page__mic-ring-host--enter .application-page__mic-ring__stroke,
  .application-page__mic-ring-host--exit .application-page__mic-ring__stroke {
    animation: none;
  }

  .application-page__mic-ring-host--enter .application-page__mic-ring__stroke {
    stroke-dashoffset: 0;
  }

  .application-page__mic-ring-host--exit .application-page__mic-ring__stroke {
    stroke-dashoffset: 100;
  }

  .application-page__layout-layer--enter-image .application-page__image-panel {
    animation: none;
    animation-delay: 0;
    opacity: 1;
  }

  .application-page__layout-layer--exit-image .application-page__image-panel {
    animation: none;
  }
}
.application-page__layout-switcher__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.application-page__image-panel {
  margin: 0 auto;
  padding: 0;
  width: 100%;
  max-width: min(100%, 42rem);
  border-radius: 0.5rem;
  overflow: visible;
  border: none;
  background: transparent;
  box-sizing: border-box;
}
.application-page__image-panel-inner {
  position: relative;
  overflow: visible;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: var(--element-bg);
}
.application-page__image-mic-overlay {
  /* Half the standard 4rem disc diameter (50% radius reduction from full mic). */
  --application-image-mic-scale: 0.5;
  position: absolute;
  top: 0.65rem;
  left: 0.65rem;
  z-index: 2;
  overflow: visible;
}
@media (min-width: 64rem) {
  .application-page__image-mic-overlay {
    --application-image-mic-scale: 0.52;
  }
}
/*
 * Size the overlay mic in layout (not transform) so the equalizer stage and disc share
 * the same coordinate space as the standard mic.
 */
.application-page__image-mic-overlay {
  --trial-mic-disc: calc(4rem * var(--application-image-mic-scale));
}
/* `.trial-mic` sets `--trial-mic-disc: 4rem` on itself; override so overlay scale applies. */
.application-page__image-mic-overlay .trial-mic {
  --trial-mic-disc: calc(4rem * var(--application-image-mic-scale));
}
.application-page__image-mic-overlay .trial-mic-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
  overflow: visible;
  flex-shrink: 0;
}
.application-page__image-mic-overlay .trial-reactive-mic__stage {
  position: absolute;
  left: 50%;
  top: 50%;
}
.application-page__image-mic-overlay .trial-mic-hero__scale {
  transform: none;
  transform-origin: center center;
}
.application-page__image-mic-overlay .trial-reactive-mic__stage {
  width: calc(var(--trial-mic-disc) * 2.2);
  height: calc(var(--trial-mic-disc) * 2.2);
  transform: translate(
    -50%,
    calc(-50% - 0.65rem * var(--application-image-mic-scale))
  );
}
@media (max-width: 480px) {
  .application-page__image-mic-overlay .trial-reactive-mic__stage {
    transform: translate(
      -50%,
      calc(-50% - 0.35rem * var(--application-image-mic-scale))
    );
  }
}
.application-page__question-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(52vh, 28rem);
  object-fit: contain;
  border-radius: calc(0.5rem - 1px);
}
.application-page__question-image-trigger {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  font: inherit;
  text-align: inherit;
  border-radius: inherit;
  box-sizing: border-box;
  overflow: hidden;
}
.application-page__question-image-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.application-bassett-image {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.application-bassett-image-frame {
  position: relative;
  width: 100%;
  max-width: 100%;
}
.bassett-attribution-popover {
  position: absolute;
  right: 0.35rem;
  bottom: 0.35rem;
  z-index: 3;
}
.bassett-attribution-popover__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--element-bg) 78%, transparent);
  backdrop-filter: blur(8px);
  color: var(--text-muted);
  cursor: pointer;
  box-shadow: 0 1px 3px color-mix(in srgb, #000 10%, transparent);
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.bassett-attribution-popover__trigger:hover,
.bassett-attribution-popover.is-open .bassett-attribution-popover__trigger {
  color: var(--text-h, var(--text));
  border-color: var(--border);
  background: color-mix(in srgb, var(--element-bg) 92%, transparent);
}
.bassett-attribution-popover__icon {
  display: flex;
  width: 0.95rem;
  height: 0.95rem;
}
.bassett-attribution-popover__icon svg {
  width: 100%;
  height: 100%;
}
.bassett-attribution-popover__trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.bassett-attribution-popover__panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.4rem);
  width: min(18rem, calc(100vw - 2rem));
  padding: 0.65rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text) 14%, transparent);
  border-radius: 0.55rem;
  background: var(--surface, #fff);
  color: var(--text);
  box-shadow: 0 8px 24px color-mix(in srgb, #000 14%, transparent);
}
.bassett-attribution-popover__title {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
}
.bassett-attribution-popover__creator,
.bassett-attribution-popover__source,
.bassett-attribution-popover__license,
.bassett-attribution-popover__modified {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.45;
}
.bassett-attribution-popover__creator,
.bassett-attribution-popover__source,
.bassett-attribution-popover__license,
.bassett-attribution-popover__modified {
  margin-top: 0.45rem;
}
.bassett-attribution-popover__label {
  display: block;
  margin-bottom: 0.12rem;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text) 68%, transparent);
}
.bassett-attribution-popover__creator a,
.bassett-attribution-popover__source a,
.bassett-attribution-popover__license a,
.bassett-attribution-popover__modified a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.application-bassett-image--zoom .bassett-attribution-popover {
  right: 0.75rem;
  bottom: 0.75rem;
}
.application-bassett-image .bassett-label-surface {
  margin-inline: auto;
}
.application-page__image-panel-inner:has(.application-bassett-image) {
  overflow: visible;
}
.application-page__question-image-trigger:has(.application-bassett-image) {
  overflow: visible;
}
.application-bassett-image .admin-bassett__label-line {
  stroke: #000;
  fill: none;
  stroke-linecap: round;
}
.application-bassett-image .admin-bassett__label-circle {
  fill: #fff;
  stroke: #000;
}
.application-bassett-image .admin-bassett__diagram-number {
  fill: #000;
  font-weight: 800;
  font-family: system-ui, sans-serif;
  pointer-events: none;
}
.application-bassett-image--zoom .application-page__image-zoom-img {
  max-width: min(96vw, 72rem);
  max-height: 92vh;
}
.application-page__image-zoom-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top, 0px))
    max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px))
    max(1rem, env(safe-area-inset-left, 0px));
  background: color-mix(in srgb, var(--bg) 78%, #000000);
  animation: application-page-image-zoom-backdrop-in 0.2s ease forwards;
}
@keyframes application-page-image-zoom-backdrop-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
.application-page__image-zoom-toggle {
  margin: 0;
  padding: 0;
  max-width: 100%;
  max-height: 100%;
  border: none;
  background: none;
  cursor: zoom-out;
  line-height: 0;
  border-radius: 0.35rem;
}
.application-page__image-zoom-toggle:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.application-page__image-zoom-img {
  display: block;
  max-width: calc(100vw - 2rem);
  max-height: calc(100vh - 2rem);
  max-width: calc(100dvw - 2rem);
  max-height: calc(100dvh - 2rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.35rem;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__image-zoom-backdrop {
    animation: none;
  }
}
.application-page__actions {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.application-page__actions-inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  max-width: 100%;
  box-sizing: border-box;
  will-change: transform;
}
.application-page__actions-inner--settle {
  animation: application-page-dock-reveal 0.62s cubic-bezier(0.18, 1.12, 0.34, 1) both;
}
.application-page__actions-extra {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
@keyframes application-page-dock-reveal {
  from {
    opacity: 0;
    transform: translateX(1.85rem) translateY(0.42rem) scale(0.84);
  }
  52% {
    opacity: 1;
    transform: translateX(-0.14rem) translateY(-0.14rem) scale(1.06);
  }
  76% {
    transform: translateX(0.05rem) translateY(0.06rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .application-page__actions-inner--settle {
    animation: application-page-dock-reveal-reduced 0.22s ease forwards;
  }

  @keyframes application-page-dock-reveal-reduced {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}
/* Hover hints — same motion rules as header/college tooltips (layout.css). */
.application-page__pill-wrap {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
  z-index: 0;
}
.application-page__pill-wrap:hover,
.application-page__pill-wrap:focus-within {
  z-index: 4;
}
.application-page__pill-hint {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  z-index: 5;
  padding: 0.35rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--text-h);
  background: var(--element-bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: var(--elevated-photo-shadow);
  white-space: nowrap;
  max-width: min(16rem, 70vw);
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition:
    opacity 0.15s ease,
    visibility 0.15s ease,
    transform 0.15s ease;
}
.application-page__pill-wrap:not(:has(button:disabled)):hover .application-page__pill-hint,
.application-page__pill-wrap:not(:has(button:disabled)):focus-within .application-page__pill-hint {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
@media (prefers-reduced-motion: reduce) {
  .application-page__pill-hint {
    transform: translate(-50%, 0);
    transition:
      opacity 0.12s ease,
      visibility 0.12s ease;
  }

  .application-page__pill-wrap:not(:has(button:disabled)):hover .application-page__pill-hint,
  .application-page__pill-wrap:not(:has(button:disabled)):focus-within .application-page__pill-hint {
    transform: translate(-50%, 0);
  }
}
.application-page__pill {
  margin: 0;
  padding: 0.28rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  font: inherit;
  font-size: 0.81rem;
  line-height: 1.2;
  color: var(--text-h);
  background: var(--element-bg);
  box-shadow: none;
  min-width: 0;
  width: 100%;
  min-height: 2.05rem;
  box-sizing: border-box;
  text-align: center;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.application-page__pill--icon {
  width: 2.45rem;
  height: 2.45rem;
  min-width: 2.45rem;
  min-height: unset;
  padding: 0;
  border-radius: 50%;
  aspect-ratio: 1;
  cursor: pointer;
  transition:
    transform 0.22s cubic-bezier(0.34, 1.2, 0.64, 1),
    box-shadow 0.22s ease,
    background-color 0.22s ease,
    border-color 0.22s ease,
    color 0.18s ease;
}
.application-page__pill--icon:hover {
  transform: scale(1.08) translateY(-2px);
  border-color: color-mix(in srgb, var(--text-h) 38%, var(--border));
  background-color: color-mix(in srgb, var(--text-h) 6%, var(--element-bg));
  box-shadow:
    0 6px 18px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 1px 0 color-mix(in srgb, var(--text-h) 6%, transparent);
}
.application-page__pill--icon:active {
  transform: scale(0.96) translateY(0);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--text-h) 8%, transparent);
  transition-duration: 0.08s;
}
.application-page__pill--icon:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 55%, transparent);
  outline-offset: 3px;
}
.application-page__pill--icon:disabled {
  cursor: not-allowed;
  opacity: 0.42;
  transform: none;
  box-shadow: none;
}
.application-page__pill--icon:disabled:hover {
  transform: none;
  border-color: var(--border);
  background-color: var(--element-bg);
  box-shadow: none;
}
.application-page__pill--icon:disabled:hover .application-page__pill-icon {
  transform: none;
}
/* Marketing iframe: dock matches the live app but must not steal clicks from the mic demo. */
.application-page__pill--preview-only {
  pointer-events: none;
  cursor: default;
}
.application-page__info-demo-prompt {
  margin: 0.75rem 0 0;
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.35;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__recording-prompt {
  margin: 0.75rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  text-align: center;
  width: 100%;
}
.application-page__recording-prompt-primary {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--text-h, var(--text));
}
.application-page__recording-prompt-hint {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__mic-loading-status {
  margin: 0;
  width: 100%;
  text-align: center;
  pointer-events: none;
}
.application-page__mic-status-lead {
  width: 100%;
  min-height: 0;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.application-page__mic-status-lead--occupied {
  min-height: 1.35rem;
}
.application-page__mic-status-lead--probing {
  min-height: 1.35rem;
  margin-top: calc(4rem * 0.6 - 0.65rem - 0.35rem + 0.3rem);
}
@media (max-width: 480px) {
  .application-page__mic-status-lead--probing {
    margin-top: calc(4rem * 0.6 - 0.35rem - 0.35rem + 0.3rem);
  }
}
.application-page__mic-probing-status {
  margin: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.application-page__mic-probing-status-text {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  margin: 0;
  font-size: 0.76rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--text-h, var(--text)) 55%, transparent);
}
.application-page__mic-probing-status-label {
  flex: 0 0 auto;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.application-page__mic-probing-status-dots {
  display: inline-grid;
  grid-template-columns: repeat(5, 1ch);
  width: 5ch;
  flex: 0 0 5ch;
  text-align: left;
}
@keyframes application-mic-probing-dot-wave {
  0%,
  100% {
    opacity: 0.22;
  }

  40%,
  60% {
    opacity: 1;
  }
}
.application-page__mic-probing-status-dot {
  opacity: 0.22;
  animation: application-mic-probing-dot-wave 1.8s ease-in-out infinite;
}
.application-page__mic-below--probing .application-page__audio-caption-host {
  margin-top: 0.45rem;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__mic-probing-status-dot {
    animation: none;
    opacity: 0.55;
  }
}
.application-page__mic-loading-status-text {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--text-h, var(--text)) 62%, transparent);
}
.application-page__mic-loading-status-cursor {
  display: inline-block;
  margin-left: 0.05em;
  color: var(--trial-mic-accent, #2a6bc9);
  font-weight: 400;
  animation: application-mic-loading-cursor-blink 0.9s step-end infinite;
}
@keyframes application-mic-loading-cursor-blink {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .application-page__mic-loading-status-cursor {
    animation: none;
    opacity: 0.65;
  }
}
.application-page__welcome-proceed-hint {
  margin: 0.65rem 0 0;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__reading-prep {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  max-width: 42rem;
  margin: 0 auto;
  padding: 1.25rem 1rem 0;
  text-align: center;
}
.application-page__reading-prep-heading {
  margin: 0;
  font-size: clamp(1.75rem, 5vw, 2.375rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text-h, var(--text));
}
.application-page__reading-prep-timer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.application-page__reading-prep-timer-value {
  font-variant-numeric: tabular-nums;
  font-size: clamp(1.125rem, 3vw, 1.375rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--text-muted, rgba(255, 255, 255, 0.45));
}
.application-page__reading-prep-timer--active .application-page__reading-prep-timer-value {
  color: var(--text-h, var(--text));
}
.application-page__reading-prep-timer-hint {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--text-muted, rgba(255, 255, 255, 0.55));
}
.application-page__reading-prep-kicker {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__reading-prep-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-h, var(--text));
}
.application-page__reading-prep-hint {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__reading-prep-question {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text-h, var(--text));
  max-width: 36rem;
}
.application-page__reading-prep-question-label {
  font-weight: 700;
}
.application-page__reading-prep-skip {
  margin-top: 0.5rem;
  border: 1px solid var(--trial-mic-accent, #2a6bc9);
  border-radius: 999px;
  background: var(--trial-mic-accent, #2a6bc9);
  color: #fff;
  cursor: pointer;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.65rem 1.35rem;
}
.application-page__reading-prep-hint--small {
  font-size: 0.8125rem;
}
.application-page__reading-prep-hint--warn {
  color: #f5c16c;
}
.application-page__reading-prep-companion {
  width: 100%;
  margin-top: 0.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.application-page__reading-prep-companion--connected {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding-top: 1.25rem;
  padding-bottom: 0.25rem;
}
.application-page__reading-prep-connected-icon {
  display: block;
}
.application-page__reading-prep-companion-connected-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #3dd68c;
}
.application-page__reading-prep-companion-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
}
.application-page__reading-prep-companion-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.application-page__reading-prep-companion-waiting {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__reading-prep-qr-wrap {
  flex: 0 0 auto;
}
.application-page__reading-prep-qr {
  display: block;
  border-radius: 0.5rem;
  background: #fff;
}
.application-page__reading-prep-companion-meta {
  flex: 1 1 12rem;
  text-align: left;
}
.application-page__reading-prep-companion-status {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 500;
}
.application-page__reading-prep-companion-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
}
.application-page__reading-prep-companion-dot--on {
  background: #3dd68c;
}
.application-page__visual-answer-photo {
  margin: 0.75rem auto 0;
  max-width: min(16rem, calc(100vw - 2rem));
  flex-shrink: 0;
}
.application-page__visual-answer-photo-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 0.5rem;
}
.application-page__visual-answer-photo-img {
  display: block;
  width: 100%;
  max-height: min(50dvh, 24rem);
  height: auto;
  object-fit: contain;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.application-page__visual-answer-photo-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 0.85rem;
}
.application-page__visual-answer-photo-retry-btn,
.application-page__visual-answer-photo-submit-btn {
  min-height: 2.75rem;
  padding: 0.65rem 1.15rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.9375rem;
  cursor: pointer;
}
.application-page__visual-answer-photo-retry-btn {
  border: 1px solid color-mix(in srgb, var(--text-h) 35%, transparent);
  background: transparent;
  color: var(--text-h, var(--text));
}
.application-page__visual-answer-photo-submit-btn {
  border: none;
  background: var(--trial-mic-accent, #2a6bc9);
  color: #fff;
}
.application-page__visual-answer-photo-retry-btn:disabled,
.application-page__visual-answer-photo-submit-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.application-page--visual-answer-visible .application-page__main {
  justify-content: flex-start;
  padding-top: clamp(0.35rem, 1.5vh, 0.85rem);
}
.application-page--visual-answer-visible .trial-page__stage {
  overflow-y: auto;
  justify-content: flex-start;
  align-items: stretch;
}
.application-page__visual-answer-photo-caption {
  margin: 0.35rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__visual-capture-hint {
  margin: 2.75rem 0 0;
  padding: 0 1rem;
  font-size: 0.875rem;
  color: #000;
  font-weight: 500;
  text-align: center;
}
.application-page__visual-capture-prompt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 12rem;
  padding: 0 1.25rem;
  text-align: center;
}
.application-page__visual-capture-prompt-primary {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-prompt-secondary {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
}
.application-page__visual-photo-upload-status {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 12rem;
  padding: 0 1.25rem;
  text-align: center;
}
.application-page__visual-photo-upload-status-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 0.15rem;
  color: var(--status-pass, #3dd68c);
}
.application-page__visual-photo-upload-status--complete
  .application-page__visual-photo-upload-status-icon
  .viva-visual-companion-page__complete-icon {
  width: 2.75rem;
  height: 2.75rem;
}
.application-page__visual-photo-upload-status--complete
  .application-page__visual-photo-upload-status-primary {
  color: var(--status-pass, #3dd68c);
}
.application-page__visual-photo-upload-status-icon .viva-visual-companion-page__spinner {
  width: 2.25rem;
  height: 2.25rem;
}
.application-page__visual-photo-upload-status-primary {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-h, var(--text));
}
.application-page__visual-photo-upload-status-secondary {
  margin: 0;
  max-width: 22rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
}
.application-page__visual-photo-upload-status-dots-line {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.15rem;
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
}
.application-page__visual-photo-upload-status-label {
  letter-spacing: 0.02em;
}
.application-page__visual-photo-upload-status-dots {
  display: inline-flex;
  align-items: baseline;
}
.application-page__visual-photo-upload-status-dot {
  animation: application-visual-photo-upload-dot 1.1s ease-in-out infinite;
}
@keyframes application-visual-photo-upload-dot {
  0%,
  20% {
    opacity: 0.2;
  }
  50% {
    opacity: 1;
  }
  80%,
  100% {
    opacity: 0.2;
  }
}
@media (prefers-reduced-motion: reduce) {
  .application-page__visual-photo-upload-status-dot {
    animation: none;
    opacity: 1;
  }
}
.application-page__reading-prep-hint--ready {
  color: #3dd68c;
  font-weight: 500;
}
.application-page__reading-prep--setup-phase {
  justify-content: flex-start;
  align-self: stretch;
  flex: 1 1 auto;
  min-height: 0;
  max-width: none;
  width: 100%;
  padding: 0.35rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
  gap: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.application-page__reading-prep--exiting {
  opacity: 0;
  transform: translateY(-0.35rem);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__reading-prep--exiting {
    transform: none;
    transition: opacity 0.15s ease;
  }
}
.application-page__main:has(.application-page__reading-prep--setup-phase) {
  justify-content: flex-start;
  overflow-y: auto;
  min-height: 0;
}
.application-page .trial-page__stage:has(.application-page__reading-prep--setup-phase) {
  justify-content: flex-start;
  padding-block: clamp(0.5rem, 1.5vh, 1rem);
}
.application-page__visual-capture-setup-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: min(100%, 36rem);
  max-height: min(92dvh, 44rem);
  margin: 0 auto;
  padding: 0 0 0.85rem;
  border: none;
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--site-index-bg);
  box-shadow: var(--progress-panel-shadow);
  text-align: left;
  overflow: hidden;
}
.application-page__visual-capture-setup-card--choose {
  max-height: min(92dvh, 44rem);
}
.application-page__visual-capture-setup-card--phone {
  max-height: none;
  overflow: visible;
  padding-bottom: clamp(0.75rem, 2vw, 1rem);
  gap: 0.5rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-header {
  gap: 0.25rem;
  padding: 0.65rem clamp(0.85rem, 2vw, 1rem) 0;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-timer-note {
  font-size: 0.6875rem;
  line-height: 1.3;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-heading {
  gap: 0.5rem;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-heading-icon {
  width: 1.85rem;
  height: 1.85rem;
  margin-top: 0;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-heading--phone {
  font-size: clamp(1rem, 2.8vw, 1.125rem);
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-connect {
  gap: 0.5rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-scan-panel {
  gap: 0.35rem;
  padding: 0.75rem clamp(0.65rem, 2.5vw, 0.85rem) 0.85rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-qr-frame {
  padding: 0.5rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-qr,
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-qr-skeleton {
  width: min(42vw, 160px);
  height: min(42vw, 160px);
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-status-title {
  font-size: 0.875rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-status-hint {
  font-size: 0.75rem;
  line-height: 1.35;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-stepper {
  padding: 0.05rem clamp(0.25rem, 2vw, 0.5rem) 0;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-phone-footer {
  gap: 0.45rem 0.6rem;
  padding-top: 0.15rem;
}
.application-page__visual-capture-setup-card--phone .application-page__visual-capture-setup-footer-pill {
  font-size: 0.875rem;
  padding: 0.5rem 1.1rem;
}
.application-page__visual-capture-setup-card .workspace-choice-card__accent {
  flex-shrink: 0;
}
.application-page__visual-capture-setup-header {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: clamp(0.85rem, 2vw, 1rem) clamp(0.85rem, 2vw, 1rem) 0;
  background: linear-gradient(
    180deg,
    var(--workspace-choice-card-header-wash, color-mix(in srgb, var(--trial-mic-accent) 5%, transparent)),
    transparent 72%
  );
}
.application-page__visual-capture-setup-header-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}
.application-page__visual-capture-setup-kicker {
  margin: 0;
}
.application-page__visual-capture-setup-count-badge {
  flex-shrink: 0;
}
.application-page__visual-capture-setup-timer-note {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: var(--text-muted);
}
.application-page__visual-capture-setup-heading {
  margin: 0;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
  font-family: var(--heading);
  font-size: clamp(1.125rem, 3.5vw, 1.375rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-subline {
  margin: -0.35rem 0 0;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-muted);
}
.application-page__visual-capture-setup-grid {
  display: grid;
  gap: 0.55rem;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
}
.application-page__visual-capture-setup-grid--cols-1 {
  grid-template-columns: minmax(0, 1fr);
}
.application-page__visual-capture-setup-grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.application-page__visual-capture-setup-grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.application-page__visual-capture-setup-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  min-height: 5.75rem;
  padding: 0.65rem 0.45rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 12%, transparent);
  border-top-width: 3px;
  border-top-color: color-mix(in srgb, var(--text-h) 8%, transparent);
  border-radius: 0.55rem;
  background: color-mix(in srgb, var(--site-index-bg) 96%, var(--text-h) 4%);
  color: inherit;
  cursor: pointer;
  text-align: center;
  box-shadow: var(--shadow-card-soft);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    background 0.18s ease;
}
.application-page__visual-capture-setup-tile:hover {
  border-color: color-mix(in srgb, var(--text-h) 18%, transparent);
  border-top-color: color-mix(in srgb, var(--trial-mic-accent) 40%, transparent);
  background: color-mix(in srgb, var(--site-index-bg) 92%, var(--text-h) 8%);
  box-shadow: var(--progress-panel-shadow-hover);
}
@media (prefers-reduced-motion: no-preference) {
  .application-page__visual-capture-setup-tile:hover {
    transform: translateY(-1px);
  }
}
.application-page__visual-capture-setup-tile:focus-visible {
  outline: var(--focus-ring-width, 2px) var(--focus-ring-style, solid) var(--focus-ring-color);
  outline-offset: 2px;
}
.application-page__visual-capture-setup-tile--selected {
  border-color: color-mix(in srgb, var(--status-pass) 45%, transparent);
  border-top-color: var(--status-pass);
  background: color-mix(in srgb, var(--status-pass) 10%, var(--site-index-bg) 90%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--status-pass) 22%, transparent),
    var(--shadow-card-soft);
}
.application-page__visual-capture-setup-tile-check {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border: 1.5px solid color-mix(in srgb, var(--text-h) 22%, transparent);
  border-radius: 50%;
  color: transparent;
}
.application-page__visual-capture-setup-tile-check--on {
  border-color: var(--status-pass);
  background: var(--status-pass);
  color: var(--on-accent, #fff);
}
.application-page__visual-capture-setup-tile-icon-well {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
  flex-shrink: 0;
}
.application-page__visual-capture-setup-tile--selected .application-page__visual-capture-setup-tile-icon-well {
  background: color-mix(in srgb, var(--status-pass) 16%, transparent);
  color: var(--status-pass-fg, var(--status-pass));
}
.application-page__visual-capture-setup-tile-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-tile-title {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-wrap: balance;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-change-link {
  align-self: flex-start;
  margin-inline: clamp(0.85rem, 2vw, 1rem);
  padding: 0.25rem 0;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.8125rem;
  text-decoration: none;
  cursor: pointer;
}
.application-page__visual-capture-setup-change-link:hover {
  color: var(--text-h, var(--text));
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.application-page__visual-capture-setup-actions {
  position: sticky;
  bottom: 0;
  margin-top: 0.15rem;
  padding: 0.5rem clamp(0.85rem, 2vw, 1rem) 0;
  background: linear-gradient(
    to top,
    var(--site-index-bg) 70%,
    color-mix(in srgb, var(--site-index-bg) 88%, transparent)
  );
}
.application-page__visual-capture-setup-continue {
  width: 100%;
  min-height: 2.75rem;
  border: 1px solid var(--trial-mic-accent);
  border-radius: 999px;
  background: var(--trial-mic-accent);
  color: var(--cta-pill-fg, #fff);
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--shadow-button);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.application-page__visual-capture-setup-continue:hover:not(:disabled) {
  background: color-mix(in srgb, var(--trial-mic-accent) 88%, var(--text-h) 12%);
  border-color: color-mix(in srgb, var(--trial-mic-accent) 88%, var(--text-h) 12%);
}
.application-page__visual-capture-setup-continue:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.application-page__visual-capture-setup-phone-connect {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
}
.application-page__visual-capture-setup-phone-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding-inline: clamp(0.85rem, 2vw, 1rem);
}
.application-page__visual-capture-setup-phone-heading-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  margin-top: 0.1rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--trial-mic-accent) 12%, transparent);
  color: var(--trial-mic-accent);
}
.application-page__visual-capture-setup-phone-heading-copy {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.application-page__visual-capture-setup-heading--phone {
  padding-inline: 0;
}
.application-page__visual-capture-setup-subline--phone {
  margin: 0;
  padding-inline: 0;
  font-size: 0.8125rem;
  line-height: 1.35;
}
.application-page__visual-capture-setup-alert {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border-left: 3px solid var(--status-borderline-fg);
  background: color-mix(in srgb, var(--status-borderline) 12%, var(--site-index-bg) 88%);
  color: var(--status-borderline-fg);
}
.application-page__visual-capture-setup-alert-icon {
  flex-shrink: 0;
  margin-top: 0.05rem;
}
.application-page__visual-capture-setup-alert-text {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.application-page__visual-capture-setup-alert-text code {
  padding: 0.1em 0.35em;
  border-radius: 0.25rem;
  font-size: 0.92em;
  background: var(--code-bg);
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-scan-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  padding: 1.1rem clamp(0.75rem, 3vw, 1rem) 1.15rem;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 10%, transparent);
  background: color-mix(in srgb, var(--text-h) 4%, var(--site-index-bg) 96%);
  text-align: center;
}
.application-page__visual-capture-setup-scan-panel--same-device {
  gap: 0.65rem;
}
.application-page__visual-capture-setup-scan-panel--connected {
  padding-block: 1.25rem;
  background: color-mix(in srgb, var(--status-pass) 10%, var(--site-index-bg) 90%);
  border-color: color-mix(in srgb, var(--status-pass) 28%, transparent);
}
.application-page__visual-capture-setup-qr-frame {
  position: relative;
  padding: 0.75rem;
  border-radius: 0.65rem;
  background: var(--qr-surface);
  box-shadow: var(--shadow-card-soft);
  border: 1px solid color-mix(in srgb, var(--text-h) 8%, transparent);
}
.application-page__visual-capture-setup-qr-frame::before,
.application-page__visual-capture-setup-qr-frame::after {
  content: '';
  position: absolute;
  width: 1.1rem;
  height: 1.1rem;
  border-color: color-mix(in srgb, var(--trial-mic-accent) 55%, transparent);
  border-style: solid;
  pointer-events: none;
}
.application-page__visual-capture-setup-qr-frame::before {
  top: 0.35rem;
  left: 0.35rem;
  border-width: 2px 0 0 2px;
  border-radius: 0.2rem 0 0 0;
}
.application-page__visual-capture-setup-qr-frame::after {
  bottom: 0.35rem;
  right: 0.35rem;
  border-width: 0 2px 2px 0;
  border-radius: 0 0 0.2rem 0;
}
.application-page__visual-capture-setup-qr {
  display: block;
  border-radius: 0.35rem;
  width: min(52vw, 200px);
  height: min(52vw, 200px);
}
.application-page__visual-capture-setup-qr-skeleton {
  width: min(52vw, 200px);
  height: min(52vw, 200px);
  border-radius: 0.35rem;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--text-h) 6%, var(--qr-surface)) 0%,
    color-mix(in srgb, var(--text-h) 12%, var(--qr-surface)) 50%,
    color-mix(in srgb, var(--text-h) 6%, var(--qr-surface)) 100%
  );
  background-size: 200% 100%;
  animation: application-page__visual-capture-setup-qr-skeleton-pulse 1.4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__visual-capture-setup-qr-skeleton {
    animation: none;
    background: color-mix(in srgb, var(--text-h) 8%, var(--qr-surface));
  }
}
@keyframes application-page__visual-capture-setup-qr-skeleton-pulse {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
.application-page__visual-capture-setup-phone-stepper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.15rem clamp(0.25rem, 2vw, 0.5rem) 0.25rem;
  list-style: none;
}
.application-page__visual-capture-setup-phone-stepper-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  line-height: 1.25;
  color: var(--text-muted);
}
.application-page__visual-capture-setup-phone-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--trial-mic-accent);
  background: color-mix(in srgb, var(--trial-mic-accent) 12%, transparent);
}
.application-page__visual-capture-setup-phone-stepper-label {
  font-weight: 600;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-phone-stepper-sep {
  margin-inline: 0.1rem;
  font-size: 0.6875rem;
  color: color-mix(in srgb, var(--text-muted) 80%, transparent);
}
.application-page__visual-capture-setup-phone-status-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h, var(--text));
}
.application-page__visual-capture-setup-phone-status-hint {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--text-muted);
  max-width: 22rem;
}
.application-page__visual-capture-setup-phone-waiting {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-muted);
}
.application-page__visual-capture-setup-phone-status {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  text-align: center;
}
.application-page__visual-capture-setup-phone-status--connected {
  background: transparent;
  border: none;
}
.application-page__visual-capture-setup-connected-icon {
  display: block;
}
.application-page__visual-capture-setup-connected-icon-ring {
  fill: color-mix(in srgb, var(--status-pass) 14%, transparent);
  stroke: var(--status-pass);
  stroke-width: 2;
}
.application-page__visual-capture-setup-connected-icon-check {
  stroke: var(--status-pass);
}
.application-page__visual-capture-setup-open-capture-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  margin-top: 0.25rem;
  padding: 0.65rem 1.25rem;
  border-radius: 999px;
  border: 1px solid var(--trial-mic-accent);
  background: var(--trial-mic-accent);
  color: var(--cta-pill-fg, #fff);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  box-shadow: var(--shadow-button);
}
.application-page__visual-capture-setup-open-capture-btn:hover {
  background: color-mix(in srgb, var(--trial-mic-accent) 88%, var(--text-h) 12%);
  border-color: color-mix(in srgb, var(--trial-mic-accent) 88%, var(--text-h) 12%);
}
.application-page__visual-capture-setup-open-capture-btn:focus-visible {
  outline: var(--focus-ring-width, 2px) var(--focus-ring-style, solid) var(--focus-ring-color);
  outline-offset: 2px;
}
.application-page__visual-capture-setup-phone-footer {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.55rem 0.65rem;
  padding-top: 0.35rem;
  width: 100%;
}
.application-page__visual-capture-setup-footer-pill {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
}
.application-page__visual-capture-setup-footer-pill.btn--primary {
  box-shadow: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.22s ease;
}
.application-page__visual-capture-setup-footer-pill.btn--primary:hover {
  background: color-mix(in srgb, var(--cta-pill-fg) 12%, var(--cta-pill-bg));
  color: var(--cta-pill-fg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 48%, transparent);
  transform: translateY(-1px);
}
[data-theme='dark'] .application-page__visual-capture-setup-footer-pill.btn--primary:hover {
  background: color-mix(in srgb, var(--text-muted) 32%, var(--cta-pill-bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 52%, transparent);
}
.application-page__visual-capture-setup-footer-pill--secondary {
  border-radius: 9999px;
  padding: 0.55rem 1.595rem;
  font-size: 1.00375rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--text-h) 32%, transparent);
  color: var(--text-h);
  background: transparent;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.22s ease;
}
.application-page__visual-capture-setup-footer-pill--secondary:hover {
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
  border-color: color-mix(in srgb, var(--text-h) 48%, transparent);
  transform: translateY(-1px);
}
[data-theme='dark'] .application-page__visual-capture-setup-footer-pill--secondary {
  border-color: color-mix(in srgb, var(--text-h) 38%, transparent);
}
[data-theme='dark'] .application-page__visual-capture-setup-footer-pill--secondary:hover {
  border-color: color-mix(in srgb, var(--text-h) 52%, transparent);
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
}
@media (prefers-reduced-motion: reduce) {
  .application-page__visual-capture-setup-footer-pill.btn--primary:hover,
  .application-page__visual-capture-setup-footer-pill--secondary:hover {
    transform: none;
  }
}
.application-page__visual-capture-setup-change-link:focus-visible {
  outline: var(--focus-ring-width, 2px) var(--focus-ring-style, solid) var(--focus-ring-color);
  outline-offset: 2px;
  border-radius: 0.2rem;
}
@media (max-width: 479px) {
  .application-page__visual-capture-setup-phone-stepper {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
  }

  .application-page__visual-capture-setup-phone-stepper-item {
    justify-content: flex-start;
  }

  .application-page__visual-capture-setup-phone-stepper-sep {
    display: none;
  }
}
[data-theme='dark'] .application-page__visual-capture-setup-card {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px -8px rgba(0, 0, 0, 0.55),
    0 24px 52px -14px rgba(0, 0, 0, 0.5);
}
@media (max-width: 767px) {
  .application-page__visual-capture-setup-grid {
    grid-template-columns: 1fr;
  }

  .application-page__visual-capture-setup-tile {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    min-height: 3.25rem;
    padding: 0.7rem 0.85rem;
    gap: 0.7rem;
    text-align: left;
  }

  .application-page__visual-capture-setup-tile-title {
    flex: 1;
    font-size: 0.875rem;
    text-align: left;
  }

  .application-page__visual-capture-setup-card {
    width: 100%;
    max-height: none;
  }

  .application-page__visual-capture-setup-card--choose {
    max-height: none;
  }
}
.application-page__visual-photo-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right))
    max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  box-sizing: border-box;
  background: color-mix(in srgb, var(--text-h) 38%, transparent);
  animation: application-page-info-dialog-in 0.2s ease forwards;
}
.application-visual-photo-capture {
  display: flex;
  flex-direction: column;
  width: min(calc(100vw - 2rem), 24rem);
  max-width: 100%;
  box-sizing: border-box;
  border-radius: var(--workspace-choice-card-radius, 8px);
  background: var(--site-index-bg);
  box-shadow: var(--progress-panel-shadow);
  color: var(--text-h, var(--text));
  overflow: hidden;
  text-align: left;
}
.application-visual-photo-capture__header {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: clamp(0.85rem, 2vw, 1rem) clamp(0.85rem, 2vw, 1rem) 0;
  background: linear-gradient(
    180deg,
    var(--workspace-choice-card-header-wash, color-mix(in srgb, var(--trial-mic-accent) 5%, transparent)),
    transparent 72%
  );
}
.application-visual-photo-capture__header-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}
.application-visual-photo-capture__kicker {
  margin: 0;
}
.application-visual-photo-capture__badge {
  flex-shrink: 0;
}
.application-visual-photo-capture__title {
  margin: 0;
  font-size: clamp(1.05rem, 2.8vw, 1.2rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--text-h, var(--text));
}
.application-visual-photo-capture__subtitle {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
}
.application-visual-photo-capture__body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 0.85rem clamp(0.85rem, 2vw, 1rem) clamp(1rem, 2.4vw, 1.15rem);
  box-sizing: border-box;
  width: 100%;
  overflow: hidden;
}
.application-visual-photo-capture__icon-well {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  margin: 0.15rem auto 0;
  border-radius: 9999px;
  background: color-mix(in srgb, var(--trial-mic-accent, #2a6bc9) 10%, var(--site-index-bg));
  color: var(--trial-mic-accent, #2a6bc9);
}
.application-visual-photo-capture__actions {
  display: flex;
  gap: 0.65rem;
  width: 100%;
  box-sizing: border-box;
}
.application-visual-photo-capture__actions--column {
  flex-direction: column;
}
.application-visual-photo-capture__action-btn {
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.application-visual-photo-capture__action-btn input {
  display: none;
}
.application-visual-photo-capture__hidden-input {
  display: none;
}
.application-visual-photo-capture__preview-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.application-visual-photo-capture__preview-img {
  display: block;
  width: 100%;
  max-height: min(40dvh, 16rem);
  object-fit: contain;
  border-radius: var(--workspace-choice-card-radius, 8px);
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--site-index-bg) 92%, var(--text-h) 8%);
}
.application-visual-photo-capture__preview-btn--zoomed .application-visual-photo-capture__preview-img {
  max-height: min(55dvh, 24rem);
}
.application-visual-photo-capture__webcam-wrap {
  width: 100%;
  overflow: hidden;
  border-radius: var(--workspace-choice-card-radius, 8px);
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--text-h) 6%, var(--site-index-bg));
}
.application-visual-photo-capture__webcam {
  display: block;
  width: 100%;
  min-height: 12rem;
  max-height: min(42dvh, 18rem);
  object-fit: cover;
  background: #000;
}
.application-visual-photo-capture__error {
  margin: 0;
  font-size: 0.875rem;
  color: #c45a11;
}
.application-visual-photo-capture__switch-btn {
  margin: 0.15rem auto 0;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
  font: inherit;
  font-size: 0.8125rem;
  text-decoration: underline;
  cursor: pointer;
}
.application-visual-photo-capture--inline {
  width: 100%;
  max-width: none;
  box-shadow: none;
  border: 1px solid var(--border);
}
.application-page__visual-local-capture-overlay {
  position: fixed;
  inset: auto 0 0;
  z-index: 30;
  display: flex;
  justify-content: center;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
  pointer-events: none;
}
.application-page__visual-local-capture {
  pointer-events: auto;
  width: min(100%, 28rem);
  padding: 1rem;
  border-radius: 0.85rem 0.85rem 0 0;
  background: rgba(18, 18, 18, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.35);
}
.application-page__visual-local-capture-kicker {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}
.application-page__visual-local-capture-progress {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__visual-local-capture-hint {
  margin: 0.5rem 0 0.85rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
}
.application-page__visual-local-capture-error {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  color: #f5c16c;
}
.application-page__visual-local-capture-camera-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
  border-radius: 999px;
  background: #3dd68c;
  color: #0d1a12;
  font-weight: 600;
  cursor: pointer;
}
.application-page__visual-local-capture-camera-btn input {
  display: none;
}
.application-page__visual-local-capture-hidden-input {
  display: none;
}
.application-page__visual-local-capture-picker-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.application-page__visual-local-capture-picker-actions .application-page__visual-local-capture-camera-btn {
  width: 100%;
}
.application-page__visual-local-capture-gallery-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  color: inherit;
  font-weight: 600;
  cursor: pointer;
}
.application-page__visual-local-capture-preview-btn {
  display: block;
  width: 100%;
  margin-top: 0.5rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.application-page__visual-local-capture-preview {
  display: block;
  width: 100%;
  max-height: 12rem;
  object-fit: contain;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.application-page__visual-local-capture-preview-btn--zoomed .application-page__visual-local-capture-preview {
  max-height: min(50dvh, 24rem);
}
.application-page__visual-local-capture-actions {
  display: flex;
  gap: 0.65rem;
  margin-top: 0.85rem;
}
.application-page__visual-local-capture-retry-btn,
.application-page__visual-local-capture-submit-btn,
.application-page__visual-local-capture-switch-btn {
  flex: 1 1 0;
  min-height: 2.5rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}
.application-page__visual-local-capture-retry-btn {
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  color: inherit;
}
.application-page__visual-local-capture-submit-btn {
  border: none;
  background: #3dd68c;
  color: #0d1a12;
}
.application-page__visual-local-capture-submit-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.application-page__visual-local-capture-switch-btn {
  width: 100%;
  margin-top: 0.75rem;
  border: none;
  background: transparent;
  color: var(--text-muted, rgba(255, 255, 255, 0.72));
  text-decoration: underline;
}
.application-page__visual-drawing-canvas-wrap {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.application-page__visual-drawing-inline-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 8rem;
  padding: 1.25rem;
  border-radius: var(--workspace-choice-card-radius, 8px);
  border: 1px dashed var(--border);
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
  font-size: 0.875rem;
  text-align: center;
}
.application-page__visual-drawing-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 2100;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding:
    max(0.75rem, env(safe-area-inset-top, 0px))
    max(0.75rem, env(safe-area-inset-right, 0px))
    max(0.75rem, env(safe-area-inset-bottom, 0px))
    max(0.75rem, env(safe-area-inset-left, 0px));
  background: color-mix(in srgb, var(--bg, #fff) 82%, #000000);
  color: var(--text-h, var(--text));
  animation: application-page-image-zoom-backdrop-in 0.2s ease forwards;
}
.application-page__visual-drawing-fullscreen-header {
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
  margin-bottom: 0.5rem;
}
.application-page__visual-drawing-fullscreen-close {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.25rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--text-h, #111) 18%, transparent);
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--text-h, #111);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}
.application-page__visual-drawing-fullscreen-close:hover {
  background: #fff;
}
.application-page__visual-drawing-fullscreen-close:focus-visible {
  outline: var(--focus-ring-width, 2px) var(--focus-ring-style, solid) var(--focus-ring-color);
  outline-offset: 2px;
}
.application-page__visual-drawing-fullscreen-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: min(100%, 56rem);
  max-width: 100%;
  margin-inline: auto;
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-canvas-wrap {
  flex: 1;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-canvas-inner {
  height: 100%;
  min-height: 0;
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-canvas {
  height: 100%;
  max-height: none;
  border-color: var(--border);
}
.application-page__visual-drawing-fullscreen .application-page__visual-local-capture-actions {
  flex-shrink: 0;
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-tool {
  border: 1px solid var(--border);
  background: var(--element-bg, rgba(255, 255, 255, 0.94));
  color: var(--text-h, var(--text));
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-tool:hover {
  background: color-mix(in srgb, var(--text-h) 6%, var(--element-bg, #fff));
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.application-page__visual-drawing-fullscreen .application-page__visual-drawing-tool[aria-pressed='true'] {
  border-color: var(--trial-mic-accent, #2a6bc9);
  background: color-mix(in srgb, var(--trial-mic-accent, #2a6bc9) 12%, var(--element-bg, #fff));
  color: var(--trial-mic-accent, #2a6bc9);
}
.application-page__visual-drawing-fullscreen .application-page__visual-local-capture-retry-btn {
  border: 1px solid color-mix(in srgb, var(--text-h) 35%, transparent);
  background: transparent;
  color: var(--text-h, var(--text));
}
.application-page__visual-drawing-fullscreen .application-page__visual-local-capture-submit-btn {
  border: none;
  background: var(--trial-mic-accent, #2a6bc9);
  color: #fff;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__visual-drawing-fullscreen {
    animation: none;
  }
}
.application-page__visual-drawing-size-controls {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 4;
  display: flex;
  gap: 0.35rem;
  pointer-events: none;
}
.application-page__visual-drawing-size-btn {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--text-h, #111) 18%, transparent);
  border-radius: 0.4rem;
  background: rgba(255, 255, 255, 0.94);
  color: var(--text-h, #111);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    opacity 0.15s ease;
}
.application-page__visual-drawing-size-btn:hover:not(:disabled) {
  background: #fff;
  border-color: color-mix(in srgb, var(--text-h, #111) 30%, transparent);
}
.application-page__visual-drawing-size-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.application-page__visual-drawing-size-btn:focus-visible {
  outline: var(--focus-ring-width, 2px) var(--focus-ring-style, solid) var(--focus-ring-color);
  outline-offset: 2px;
}
.application-page__visual-local-capture:not(.application-page__visual-local-capture--inline)
  .application-page__visual-drawing-size-controls {
  top: 0.65rem;
  right: 0.65rem;
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-size-controls {
  top: calc(0.65rem + 0.5rem);
  right: calc(0.65rem + 0.5rem);
}
.application-page__visual-drawing-canvas-inner {
  position: relative;
  width: 100%;
}
.application-page__visual-drawing-toolbar {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.4rem;
  width: 100%;
  margin-bottom: 0.65rem;
}
.application-page__visual-drawing-tool {
  display: inline-flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 0;
  min-height: 2.35rem;
  height: 2.35rem;
  padding: 0 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.08);
  color: inherit;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}
.application-page__visual-drawing-tool:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.35);
}
.application-page__visual-drawing-tool[aria-pressed='true'] {
  border-color: #3dd68c;
  background: rgba(61, 214, 140, 0.18);
  color: #3dd68c;
}
.application-page__visual-drawing-tool-label {
  line-height: 1;
  white-space: nowrap;
}
.application-page__visual-drawing-text-draft {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  width: max-content;
  max-width: calc(100% - 0.5rem);
  transform: translate(0, -0.15rem);
}
.application-page__visual-drawing-text-input {
  width: 11rem;
  min-width: 6rem;
  max-width: 100%;
  min-height: 4.5rem;
  max-height: min(50vh, 16rem);
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--trial-mic-accent, #2a6bc9);
  border-radius: 0.45rem;
  font: inherit;
  font-size: 0.875rem;
  line-height: 1.3;
  color: #111;
  background: #fff;
  resize: both;
  overflow: auto;
  box-sizing: border-box;
}
.application-page__visual-drawing-text-add-btn {
  align-self: flex-end;
  min-height: 2rem;
  padding: 0.35rem 0.65rem;
  border: none;
  border-radius: 999px;
  background: var(--trial-mic-accent, #2a6bc9);
  color: #fff;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
}
.application-page__visual-drawing-canvas {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: none;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: #fff;
  cursor: crosshair;
}
.application-page__visual-drawing-canvas--tool-pen {
  cursor: crosshair;
}
.application-page__visual-drawing-canvas--tool-eraser {
  cursor: none;
}
.application-page__visual-drawing-eraser-preview {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  box-sizing: border-box;
  border: 2px solid rgba(220, 53, 69, 0.9);
  border-radius: 50%;
  background: rgba(220, 53, 69, 0.1);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.85),
    inset 0 0 0 1px rgba(220, 53, 69, 0.35);
  transform: translate(-50%, -50%);
}
.application-page__visual-drawing-canvas--tool-text {
  cursor: text;
}
/* Inline drawing canvas (written station) — theme-aware, in-page layout */
.application-page__visual-local-capture--inline {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.application-page__visual-local-capture--inline .application-page__visual-local-capture-kicker {
  color: var(--text-h, var(--text));
}
.application-page__visual-local-capture--inline .application-page__visual-local-capture-progress,
.application-page__visual-local-capture--inline .application-page__visual-local-capture-hint {
  color: var(--text-muted, rgba(0, 0, 0, 0.65));
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-canvas-wrap {
  box-sizing: border-box;
  overflow: hidden;
  padding: 0.65rem;
  border-radius: var(--workspace-choice-card-radius, 8px);
  border: 1px solid var(--border);
  background: var(--site-index-bg);
  box-shadow: var(--progress-panel-shadow);
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-canvas {
  border-color: var(--border);
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-tool {
  border: 1px solid var(--border);
  background: var(--element-bg);
  color: var(--text-h, var(--text));
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-tool:hover {
  background: color-mix(in srgb, var(--text-h) 6%, var(--element-bg));
  border-color: color-mix(in srgb, var(--text-h) 22%, var(--border));
}
.application-page__visual-local-capture--inline .application-page__visual-drawing-tool[aria-pressed='true'] {
  border-color: var(--trial-mic-accent, #2a6bc9);
  background: color-mix(in srgb, var(--trial-mic-accent, #2a6bc9) 12%, var(--element-bg));
  color: var(--trial-mic-accent, #2a6bc9);
}
.application-page__visual-local-capture--inline .application-page__visual-local-capture-retry-btn {
  border: 1px solid color-mix(in srgb, var(--text-h) 35%, transparent);
  background: transparent;
  color: var(--text-h, var(--text));
}
.application-page__visual-local-capture--inline .application-page__visual-local-capture-submit-btn {
  border: none;
  background: var(--trial-mic-accent, #2a6bc9);
  color: #fff;
}
.application-page__visual-local-capture--inline .application-page__visual-local-capture-error {
  color: var(--status-borderline-fg, #b45309);
}
.application-page__session-audio-error {
  margin: 0.75rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  text-align: center;
  width: 100%;
}
.application-page__session-audio-error-message {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text-h, var(--text));
}
.application-page__session-audio-error-retry {
  border: 1px solid var(--trial-mic-accent, #2a6bc9);
  border-radius: 999px;
  background: transparent;
  color: var(--trial-mic-accent, #2a6bc9);
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.55rem 1.1rem;
}
.application-page__session-audio-error-retry:hover {
  background: color-mix(in srgb, var(--trial-mic-accent, #2a6bc9) 12%, transparent);
}
.application-page__session-audio-error-retry:focus-visible {
  outline: 2px solid var(--trial-mic-accent, #2a6bc9);
  outline-offset: 2px;
}
.application-page__connectivity-notice {
  position: fixed;
  top: calc(var(--site-header-clearance, 2.68rem) + 0.65rem + env(safe-area-inset-top, 0px));
  right: calc(1rem + env(safe-area-inset-right, 0px));
  z-index: 1300;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  width: min(22.5rem, calc(100vw - 2rem));
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: var(--elevated-photo-shadow);
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}
.application-page__connectivity-notice--offline {
  border-color: color-mix(in srgb, #d97706 45%, var(--border));
  background: color-mix(in srgb, #d97706 8%, var(--surface));
}
.application-page__connectivity-notice--offline .application-page__connectivity-notice-icon {
  color: #d97706;
}
.application-page__connectivity-notice--restored {
  border-color: color-mix(in srgb, #16a34a 45%, var(--border));
  background: color-mix(in srgb, #16a34a 8%, var(--surface));
}
.application-page__connectivity-notice--restored .application-page__connectivity-notice-icon {
  color: #16a34a;
}
.application-page__connectivity-notice--fading {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
}
.application-page__connectivity-notice-icon {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.05rem;
}
.application-page__connectivity-notice-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.application-page__connectivity-notice-message {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-h, var(--text));
}
/* Standard layout: clear reactive mic rings when subtitles are off (no caption above). */
.application-page__mic-caption-slot:not(.application-page__mic-caption-slot--under-image)
  .application-page__mic-below
  > .application-page__welcome-proceed-hint:first-child {
  margin-top: 2lh;
}
.application-page__info-demo-loading {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--page-bg, #0f1419) 88%, transparent);
  backdrop-filter: blur(6px);
}
.application-page__info-demo-loading-text {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--text, #f5f5f5);
}
/* `/application?infoDemo=1` in narrow marketing iframes (`embedMobile=1`). */
.application-page--info-demo-embed.application-page--embed-mobile.page {
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.application-page--info-demo-embed.application-page--embed-mobile .trial-page__stage {
  min-height: 0;
  height: 100%;
  overflow: hidden;
  padding-block: 3px;
  padding-inline: 0;
}
.application-page--info-demo-embed.application-page--embed-mobile .application-page__main {
  min-height: 0;
  overflow: hidden;
}
.application-page--info-demo-embed.application-page--embed-mobile
  .application-page__actions-dock {
  --application-page-dock-pt: clamp(0.45rem, 1.4vh, 0.65rem);
  --application-page-dock-pb: max(0.2rem, env(safe-area-inset-bottom, 0px));
}
.application-page__pill-icon {
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  display: block;
  transition: transform 0.22s cubic-bezier(0.34, 1.2, 0.64, 1);
}
.application-page__pill--icon:hover .application-page__pill-icon {
  transform: scale(1.06);
}
@media (prefers-reduced-motion: reduce) {
  .application-page__pill--icon {
    transition: border-color 0.15s ease, background-color 0.15s ease;
  }

  .application-page__pill--icon:hover,
  .application-page__pill--icon:active {
    transform: none;
  }

  .application-page__pill--icon:hover .application-page__pill-icon {
    transform: none;
  }
}
.application-page__pill-icon--stroke {
  overflow: visible;
}
@media (max-width: 26rem) {
  .application-page__actions-inner {
    gap: 0.55rem;
  }
}
.application-page__info-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right))
    max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  box-sizing: border-box;
  background: color-mix(in srgb, var(--text-h) 38%, transparent);
  animation: application-page-info-dialog-in 0.2s ease forwards;
}
@keyframes application-page-info-dialog-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.application-page__info-dialog {
  width: min(100%, 22rem);
  padding: 1.15rem 1.2rem 1.05rem;
  border-radius: 0.65rem;
  border: 1px solid var(--border);
  background: var(--element-bg);
  color: var(--text-h);
  box-shadow:
    0 18px 48px color-mix(in srgb, var(--text-h) 18%, transparent),
    0 1px 0 color-mix(in srgb, var(--text-h) 6%, transparent);
  box-sizing: border-box;
}
.application-page__info-dialog-title {
  margin: 0 0 0.55rem;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
}
.application-page__info-dialog-body {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-h) 88%, transparent);
}
.application-page__info-dialog-close {
  margin: 0;
  padding: 0.4rem 0.85rem;
  border-radius: 0.4rem;
  border: 1px solid var(--border);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 5%, var(--element-bg));
  cursor: pointer;
}
.application-page__info-dialog-close:hover {
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
  background: color-mix(in srgb, var(--text-h) 9%, var(--element-bg));
}
.application-page__info-dialog-close:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 50%, transparent);
  outline-offset: 2px;
}
.application-page__report-dialog {
  width: min(100%, 26.5rem);
}
.application-page__report-intro {
  margin: 0 0 1rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-h) 85%, transparent);
}
.application-page__report-success-body {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-h) 88%, transparent);
}
.application-page__report-fieldset {
  margin: 0 0 0.35rem;
  padding: 0;
  border: none;
  min-inline-size: 0;
}
.application-page__report-legend {
  padding: 0;
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 58%, transparent);
}
.application-page__report-options {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.application-page__report-option-label {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--text-h) 3%, var(--element-bg));
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}
.application-page__report-option-label:hover {
  border-color: color-mix(in srgb, var(--text-h) 28%, var(--border));
  background: color-mix(in srgb, var(--text-h) 6%, var(--element-bg));
}
.application-page__report-option-label:has(:checked) {
  border-color: color-mix(in srgb, var(--text-h) 42%, var(--border));
  background: color-mix(in srgb, var(--text-h) 9%, var(--element-bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--text-h) 18%, transparent);
}
.application-page__report-option-input {
  margin: 0.15rem 0 0;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  accent-color: var(--text-h);
  cursor: pointer;
}
.application-page__report-option-text {
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--text-h);
}
.application-page__report-expand {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.application-page__report-expand--open {
  grid-template-rows: 1fr;
}
.application-page__report-expand-measure {
  overflow: hidden;
  min-height: 0;
}
.application-page__report-expand-panel {
  padding-top: 0.65rem;
  padding-bottom: 0.1rem;
  opacity: 0;
  transform: translateY(-0.4rem);
  transition:
    opacity 0.32s ease 0.06s,
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}
.application-page__report-expand--open .application-page__report-expand-panel {
  opacity: 1;
  transform: translateY(0);
}
.application-page__report-notes-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-h);
}
.application-page__report-optional {
  font-weight: 400;
  color: color-mix(in srgb, var(--text-h) 55%, transparent);
}
.application-page__report-notes {
  width: 100%;
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.4rem;
  border: 1px solid var(--border);
  font: inherit;
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--text-h);
  background: color-mix(in srgb, var(--text-h) 2%, var(--element-bg));
  resize: vertical;
  min-height: 5rem;
  box-sizing: border-box;
}
.application-page__report-notes::placeholder {
  color: color-mix(in srgb, var(--text-h) 48%, transparent);
}
.application-page__report-notes:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 45%, transparent);
  outline-offset: 2px;
}
.application-page__report-primary-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.52rem 1rem;
  border-radius: 0.45rem;
  border: 1px solid var(--text-h);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--element-bg);
  background: var(--text-h);
  cursor: pointer;
  transition:
    filter 0.15s ease,
    opacity 0.15s ease;
}
.application-page__report-primary-btn:hover:not(:disabled) {
  filter: brightness(1.06);
}
.application-page__report-primary-btn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.application-page__report-primary-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 50%, transparent);
  outline-offset: 2px;
}
.application-page__report-cancel {
  display: block;
  margin: 0.85rem 0 0;
  padding: 0.4rem 0.5rem;
  width: 100%;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
  color: color-mix(in srgb, var(--text-h) 62%, transparent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.application-page__report-cancel:hover {
  color: var(--text-h);
}
.application-page__report-cancel:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 45%, transparent);
  outline-offset: 2px;
  border-radius: 0.25rem;
}
.application-page__review-dialog {
  width: min(100%, 34rem);
  max-height: min(85vh, 36rem);
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.application-page__review-intro {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-h) 85%, transparent);
}
.application-page__review-empty {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--text-h) 72%, transparent);
}
.application-page__review-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  margin: 0 0 1rem;
  padding-right: 0.15rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.application-page__review-section {
  margin: 0;
}
.application-page__review-section-heading {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 58%, transparent);
}
.application-page__review-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  list-style: decimal;
}
.application-page__review-list-item {
  margin: 0 0 0.45rem;
  padding: 0;
}
.application-page__review-list-item:last-child {
  margin-bottom: 0;
}
.application-page__review-item-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.35rem 0.45rem 0.35rem 0.15rem;
  border: none;
  border-radius: 0.35rem;
  background: transparent;
  font: inherit;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-h);
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}
.application-page__review-item-btn:hover {
  background: color-mix(in srgb, var(--text-h) 6%, var(--element-bg));
}
.application-page__review-item-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--text-h) 45%, transparent);
  outline-offset: 2px;
}
.application-page__review-item-text {
  display: block;
  overflow-wrap: anywhere;
}
@media (prefers-reduced-motion: reduce) {
  .application-page__report-expand {
    transition: none;
  }

  .application-page__report-expand-panel {
    transition: none;
  }

  .application-page__report-expand--open .application-page__report-expand-panel {
    opacity: 1;
    transform: none;
  }

  .application-page__info-dialog-backdrop {
    animation: none;
  }
}
/* /application-written — step dots, question, textarea, next */
.application-written .trial-page__stage {
  align-items: flex-start;
  padding-top: clamp(2rem, 6vh, 3.5rem);
  padding-bottom: clamp(4.5rem, 24vh, 10rem);
}
.application-written__panel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1.25rem;
  width: 100%;
  max-width: min(100%, 32rem);
  margin-inline: auto;
  transform: none;
}
.application-written__steps {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
}
.application-written__step {
  margin: 0;
  padding: 0;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  border: 1px solid var(--border);
  font: inherit;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1;
  color: var(--text-muted);
  background: var(--element-bg);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease;
}
.application-written__step:hover {
  border-color: var(--text-h);
  color: var(--text-h);
}
.application-written__step:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.application-written__step--active {
  border-color: var(--cta-pill-bg, var(--text-h));
  background: var(--cta-pill-bg);
  color: var(--cta-pill-fg);
}
.application-written__question {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-h);
  text-align: center;
}
.application-written__section {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-muted);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.application-written__session-error {
  margin: 0;
  padding: 0.65rem 0.85rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-h);
  background: color-mix(in srgb, var(--danger, #c62828) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--danger, #c62828) 35%, transparent);
}
.application-written__image-panel {
  width: 100%;
  margin-inline: auto;
}
/* Written station with reference image — vertical stack on mobile, side-by-side on desktop */
.application-written--with-image .application-written__panel--with-image {
  gap: 1.35rem;
}
.application-written__content-row {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  width: 100%;
}
.application-written__answer-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  min-width: 0;
}
.application-written--with-image .application-written__image-panel {
  margin-inline: auto;
}
.application-written--with-image .application-page__question-image {
  max-height: min(44vh, 22rem);
}
.application-written--with-image .application-written__textarea {
  min-height: 9rem;
}
@media (min-width: 48rem) {
  .application-written--with-image .application-written__panel {
    max-width: min(100%, 56rem);
  }

  .application-written__content-row {
    flex-direction: row;
    align-items: flex-start;
    gap: clamp(1.25rem, 3vw, 2rem);
  }

  .application-written--with-image .application-written__image-panel {
    flex: 0 1 min(42%, 26rem);
    margin: 0;
    position: sticky;
    top: clamp(1rem, 4vh, 2rem);
  }

  .application-written__answer-column {
    flex: 1 1 0;
  }

  .application-written--with-image .application-written__question {
    text-align: left;
  }

  .application-written--with-image .application-page__question-image {
    max-height: min(72vh, 34rem);
  }
}
.application-written__field-label {
  display: block;
  width: 100%;
}
.application-written__visual-answer {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  min-width: 0;
}
.application-written__visual-answer--setup {
  flex: 1;
  justify-content: center;
  align-items: center;
  min-height: 0;
}
.application-written__visual-ordinal {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted, #5c6570);
}
.application-written__visual-setup {
  width: 100%;
  max-width: 36rem;
  margin-inline: auto;
}
.application-written--visual-setup .trial-page__stage {
  align-items: stretch;
  justify-content: center;
  min-height: calc(100dvh - 3.5rem);
  padding-top: clamp(1rem, 3vh, 2rem);
  padding-bottom: clamp(3rem, 18vh, 8rem);
  box-sizing: border-box;
}
.application-written--visual-setup .application-written__panel {
  flex: 1;
  max-width: none;
  width: 100%;
  min-height: 0;
  justify-content: center;
  gap: clamp(1rem, 3vh, 1.5rem);
}
.application-written--visual-setup .application-written__actions {
  flex-shrink: 0;
  margin-top: auto;
}
.application-written__visual-setup .application-page__visual-capture-setup-timer-note {
  display: none;
}
.application-written--visual-drawing .application-written__panel {
  gap: 1rem;
}
.application-written--visual-drawing .application-written__visual-answer {
  gap: 0.65rem;
}
.application-written__visual-submitted {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}
.application-written__visual-retry-btn {
  font-size: 0.875rem;
}
.application-written__visual-waiting {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted, #5c6570);
  text-align: center;
}
.application-written__textarea {
  display: block;
  width: 100%;
  min-height: 8rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
  font-size: 0.9125rem;
  line-height: 1.45;
  color: var(--text-h);
  background: var(--element-bg);
  resize: vertical;
  box-sizing: border-box;
}
.application-written__textarea:focus {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}
.application-written__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin-top: 0.25rem;
  margin-bottom: clamp(1.5rem, 6vh, 3rem);
}
/* ~30% smaller than default .btn--primary; Previous / Next / Finish match */
.application-written__actions .application-written__btn-primary.btn--primary,
.application-written__actions .application-written__btn-secondary {
  box-sizing: border-box;
  margin: 0;
  min-width: 7.25rem;
  min-height: 2.05rem;
  padding: 0.385rem 1.12rem;
  font-size: 0.703rem;
  font-weight: 600;
  line-height: 1.25;
  border-radius: 9999px;
  justify-content: center;
}
.application-written__actions .application-written__btn-primary.btn--primary {
  border: 1px solid transparent;
}
.application-written__actions .application-written__btn-secondary {
  border: 1px solid var(--border);
  color: var(--text-h);
  background: transparent;
  cursor: pointer;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}
.application-written__actions .application-written__btn-secondary:hover {
  background: var(--element-bg);
  border-color: var(--text-h);
}
/*
 * Trial mic — `--trial-mic-disc` from `trialMicActiveWaves.layout.discRem` (TrialPlaybackMic)
 */
.trial-mic {
  --trial-mic-disc: 4rem;
  --trial-mic-rec: #b6171e;
  --trial-mic-rec-rgb: 182 23 30;
  --trial-mic-ink-active-rgb: 20 58 132;
  --trial-mic-ink-rec-rgb: 120 12 18;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
[data-theme='dark'] .trial-mic {
  --trial-mic-rec: #f87171;
  --trial-mic-rec-rgb: 248 113 113;
  --trial-mic-ink-active-rgb: 74 154 232;
  --trial-mic-ink-rec-rgb: 224 79 79;
}
.trial-mic__frame {
  --trial-mic-ring-width: 2px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
  overflow: visible;
  transition: none;
}
.trial-mic__disc-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
  overflow: visible;
  z-index: 1;
}
/*
 * Volume-reactive ring pulses (ported from ed-vivas VoiceMicButton).
 */
@-webkit-keyframes trial-mic-ring-1 {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: var(--trial-mic-ring-opacity-start, 0.6);
    box-shadow:
      0 0 var(--trial-mic-ring-glow, 0px) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 1.75) currentColor;
  }
  45% {
    opacity: calc(var(--trial-mic-ring-opacity-start, 0.6) * var(--trial-mic-ring-opacity-mid-mult, 0.32));
    box-shadow:
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.65) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 1.15) currentColor;
  }
  75% {
    opacity: calc(var(--trial-mic-ring-opacity-start, 0.6) * var(--trial-mic-ring-opacity-mid-mult, 0.32) * 0.22);
    box-shadow:
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.18) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.30) currentColor;
  }
  100% {
    -webkit-transform: scale(var(--trial-mic-ring-scale-end, 1.8));
    transform: scale(var(--trial-mic-ring-scale-end, 1.8));
    opacity: 0;
    box-shadow: 0 0 0 transparent, 0 0 0 transparent;
  }
}
@keyframes trial-mic-ring-1 {
  0% {
    transform: scale(1);
    opacity: var(--trial-mic-ring-opacity-start, 0.6);
    box-shadow:
      0 0 var(--trial-mic-ring-glow, 0px) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 1.75) currentColor;
  }
  45% {
    opacity: calc(var(--trial-mic-ring-opacity-start, 0.6) * var(--trial-mic-ring-opacity-mid-mult, 0.32));
    box-shadow:
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.65) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 1.15) currentColor;
  }
  75% {
    opacity: calc(var(--trial-mic-ring-opacity-start, 0.6) * var(--trial-mic-ring-opacity-mid-mult, 0.32) * 0.22);
    box-shadow:
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.18) currentColor,
      0 0 calc(var(--trial-mic-ring-glow, 0px) * 0.30) currentColor;
  }
  100% {
    transform: scale(var(--trial-mic-ring-scale-end, 1.8));
    opacity: 0;
    box-shadow: 0 0 0 transparent, 0 0 0 transparent;
  }
}
.trial-mic__ring {
  position: absolute;
  inset: -4px;
  border-radius: 9999px;
  border: var(--trial-mic-ring-border-width, 3px) solid currentColor;
  pointer-events: none;
  z-index: 1;
  animation-name: trial-mic-ring-1;
  animation-timing-function: ease-out;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  -webkit-animation-name: trial-mic-ring-1;
  -webkit-animation-timing-function: ease-out;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
}
.trial-mic__ring-static {
  position: absolute;
  inset: -4px;
  border-radius: 9999px;
  border: 3px solid currentColor;
  pointer-events: none;
  z-index: 2;
}
.trial-mic__ring-static--recording {
  color: rgb(239, 68, 68);
}
.trial-mic__ring-static--playing {
  color: rgba(96, 165, 250, 0.88);
}
.trial-mic__ring--recording {
  color: rgb(239, 68, 68);
}
.trial-mic__ring--playing {
  color: rgba(96, 165, 250, 0.88);
}
@media (prefers-reduced-motion: reduce) {
  .trial-mic__ring {
    display: none !important;
  }
}
/*
 * Volume-reactive spiral rings — max diameter = 2× fixed mic ring.
 * SVG sits behind the disc; segments are drawn imperatively in TrialMicSpiralRings.
 */
.trial-mic__spiral-rings {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 0;
  width: calc(var(--trial-mic-disc) * var(--trial-mic-spiral-max-scale, 2));
  height: calc(var(--trial-mic-disc) * var(--trial-mic-spiral-max-scale, 2));
  transform: translate(-50%, -50%);
  overflow: visible;
  pointer-events: none;
}
.trial-mic__spiral-rings line {
  fill: none;
  stroke-linejoin: round;
}
.trial-mic__spiral-rings--active line {
  stroke: var(--trial-mic-accent);
}
.trial-mic__spiral-rings--recording line {
  stroke: var(--trial-mic-rec);
}
/*
 * Neutral: masked ray stack behind the mic.
 */
.trial-mic__glow-outer {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 0;
  width: calc(var(--trial-mic-disc) * 1.728);
  height: calc(var(--trial-mic-disc) * 1.728);
  transform: translate(-50%, -50%);
  pointer-events: none;
  overflow: visible;
}
.trial-mic__glow-stack {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 0;
  width: calc(var(--trial-mic-disc) * 1.728);
  height: calc(var(--trial-mic-disc) * 1.728);
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
  pointer-events: none;
  overflow: visible;
  filter: blur(calc(var(--trial-mic-disc) * 0.08));
}
/*
 * Neutral idle: mask on outer only — `mask` + `filter: blur` on the same node often composites to nothing (Chrome/WebKit).
 * Inner .trial-mic__glow-stack stays blurred; outer clips the painted result to the mic silhouette.
 */
.trial-mic__glow-outer.trial-mic__glow-outer--neutral-mic-window {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z'/%3E%3C/svg%3E");
  -webkit-mask-mode: alpha;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: calc(100% * 0.52 / 1.728);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z'/%3E%3C/svg%3E");
  mask-mode: alpha;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: calc(100% * 0.52 / 1.728);
}
.trial-mic__glow-layer {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  pointer-events: none;
}
.trial-mic__glow-layer--accent {
  z-index: 0;
}
.trial-mic__glow-layer--ink {
  z-index: 1;
}
.trial-mic__glow-ray {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  pointer-events: none;
}
/*
 * Bottom = hub centre (overlaps button). Opaque through ~disc edge, then fade; tip (furthest out) is
 * always 0% opacity.
 */
.trial-mic__glow-ray__blade {
  position: absolute;
  left: 50%;
  bottom: 50%;
  width: 11%;
  height: 56%;
  transform-origin: bottom center;
  transition: none;
  border-radius: 55% 55% 0 0 / 28% 28% 0 0;
}
.trial-mic__glow-layer--ink .trial-mic__glow-ray__blade {
  background: linear-gradient(
    to top,
    rgb(0 0 0 / 0.96) 0%,
    rgb(0 0 0 / 0.96) 32%,
    rgb(0 0 0 / 0.88) 40%,
    rgb(0 0 0 / 0.42) 58%,
    rgb(0 0 0 / 0.12) 82%,
    rgb(0 0 0 / 0) 100%
  );
}
/* Accent — blue (neutral/active) or red (recording) via state overrides below */
.trial-mic__glow-layer--accent .trial-mic__glow-ray__blade {
  background: linear-gradient(
    to top,
    rgb(var(--trial-mic-accent-rgb) / 0.96) 0%,
    rgb(var(--trial-mic-accent-rgb) / 0.96) 32%,
    rgb(var(--trial-mic-accent-rgb) / 0.88) 40%,
    rgb(var(--trial-mic-accent-rgb) / 0.42) 58%,
    rgb(var(--trial-mic-accent-rgb) / 0.12) 82%,
    rgb(var(--trial-mic-accent-rgb) / 0) 100%
  );
}
.trial-mic--active .trial-mic__glow-layer--ink .trial-mic__glow-ray__blade {
  background: linear-gradient(
    to top,
    rgb(var(--trial-mic-ink-active-rgb) / 0.96) 0%,
    rgb(var(--trial-mic-ink-active-rgb) / 0.96) 32%,
    rgb(var(--trial-mic-ink-active-rgb) / 0.88) 40%,
    rgb(var(--trial-mic-ink-active-rgb) / 0.42) 58%,
    rgb(var(--trial-mic-ink-active-rgb) / 0.12) 82%,
    rgb(var(--trial-mic-ink-active-rgb) / 0) 100%
  );
}
.trial-mic--recording .trial-mic__glow-layer--accent .trial-mic__glow-ray__blade {
  background: linear-gradient(
    to top,
    rgb(var(--trial-mic-rec-rgb) / 0.96) 0%,
    rgb(var(--trial-mic-rec-rgb) / 0.96) 32%,
    rgb(var(--trial-mic-rec-rgb) / 0.88) 40%,
    rgb(var(--trial-mic-rec-rgb) / 0.42) 58%,
    rgb(var(--trial-mic-rec-rgb) / 0.12) 82%,
    rgb(var(--trial-mic-rec-rgb) / 0) 100%
  );
}
.trial-mic--recording .trial-mic__glow-layer--ink .trial-mic__glow-ray__blade {
  background: linear-gradient(
    to top,
    rgb(var(--trial-mic-ink-rec-rgb) / 0.96) 0%,
    rgb(var(--trial-mic-ink-rec-rgb) / 0.96) 32%,
    rgb(var(--trial-mic-ink-rec-rgb) / 0.88) 40%,
    rgb(var(--trial-mic-ink-rec-rgb) / 0.42) 58%,
    rgb(var(--trial-mic-ink-rec-rgb) / 0.12) 82%,
    rgb(var(--trial-mic-ink-rec-rgb) / 0) 100%
  );
}
.trial-mic--active .trial-mic__disc,
.trial-mic--recording .trial-mic__disc {
  z-index: 1;
  transition: none;
}
.trial-mic:hover .trial-mic__frame {
  transform: scale(1.08) translateY(-2px);
}
.trial-mic:active .trial-mic__frame {
  transform: scale(0.96) translateY(0);
}
.trial-mic__disc {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
  flex-shrink: 0;
  border-radius: 50%;
  box-sizing: border-box;
  transition: none;
  z-index: 3;
}
button.trial-mic__disc--clickable {
  cursor: pointer;
  appearance: none;
  padding: 0;
  font: inherit;
  outline-offset: 4px;
}
.application-page .trial-mic:has(button.trial-mic__disc--clickable) {
  cursor: pointer;
}
.trial-mic:hover .trial-mic__disc {
  box-shadow:
    0 6px 18px color-mix(in srgb, var(--text-h) 12%, transparent),
    0 1px 0 color-mix(in srgb, var(--text-h) 6%, transparent);
}
/* Neutral / loading — outlined circle; active / recording — solid coloured ring. */
.trial-mic__disc--idle {
  border: var(--trial-mic-ring-width) solid #000000;
  background: var(--bg);
  color: #000000;
}
[data-theme='dark'] .trial-mic__disc--idle {
  border-color: var(--text-h);
  color: var(--text-h);
}
/* Loading — same disc + icon as neutral; ring track + spinning arc via pseudo-elements. */
.trial-mic__disc--idle.trial-mic__disc--loading {
  border-color: transparent;
  overflow: visible;
}
.trial-mic__disc--idle.trial-mic__disc--loading::before,
.trial-mic__disc--idle.trial-mic__disc--loading::after {
  content: '';
  box-sizing: border-box;
  position: absolute;
  inset: calc(var(--trial-mic-ring-width) * -0.5);
  border-radius: 50%;
  pointer-events: none;
}
.trial-mic__disc--idle.trial-mic__disc--loading::before {
  border: var(--trial-mic-ring-width) solid color-mix(in srgb, currentColor 22%, transparent);
}
.trial-mic__disc--idle.trial-mic__disc--loading::after {
  border: var(--trial-mic-ring-width) solid transparent;
  border-top-color: currentColor;
  border-right-color: currentColor;
  animation: trial-mic-loading-spin 0.9s linear infinite;
}
@keyframes trial-mic-loading-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Ring-only spinner (header timer, etc.) — reuses loading disc pseudo-elements. */
.trial-mic-loading-ring {
  --trial-mic-ring-width: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--text);
}
.trial-mic-loading-ring__frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.trial-mic-loading-ring__disc {
  position: relative;
  box-sizing: border-box;
  border-radius: 50%;
}
.trial-mic-loading-ring--md {
  --trial-mic-disc: 1.5rem;
}
.trial-mic-loading-ring--md .trial-mic-loading-ring__disc {
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
}
.trial-mic-loading-ring--sm {
  --trial-mic-disc: 1.125rem;
}
.trial-mic-loading-ring--sm .trial-mic-loading-ring__disc {
  width: var(--trial-mic-disc);
  height: var(--trial-mic-disc);
}
.trial-mic__disc--active {
  border: var(--trial-mic-ring-width) solid var(--trial-mic-accent);
  background: transparent;
  color: var(--trial-mic-accent);
}
.trial-mic__disc--rec {
  border: var(--trial-mic-ring-width) solid var(--trial-mic-rec);
  background: transparent;
  color: var(--trial-mic-rec);
}
.trial-mic__icon-svg {
  display: block;
  width: 52%;
  height: 52%;
  transition: none;
}
.trial-mic:hover .trial-mic__icon-svg {
  transform: scale(1.06);
}
@media (prefers-reduced-motion: reduce) {
  .trial-mic:hover .trial-mic__frame,
  .trial-mic:active .trial-mic__frame {
    transform: none;
  }

  .trial-mic:hover .trial-mic__icon-svg {
    transform: none;
  }

  .trial-mic__disc--idle.trial-mic__disc--loading {
    border-color: currentColor;
  }

  .trial-mic__disc--idle.trial-mic__disc--loading::before,
  .trial-mic__disc--idle.trial-mic__disc--loading::after {
    content: none;
  }

  .trial-mic-loading-ring__disc.trial-mic__disc--loading {
    border-color: currentColor;
  }

  .trial-mic-loading-ring__disc.trial-mic__disc--loading::before,
  .trial-mic-loading-ring__disc.trial-mic__disc--loading::after {
    content: none;
  }
}
/* TrialReactiveMic — equalizer ring behind TrialPlaybackMic */
.trial-reactive-mic {
  display: contents;
}
.trial-reactive-mic__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  isolation: isolate;
}
.trial-reactive-mic__animation {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 0;
}
.trial-reactive-mic__mic {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.trial-reactive-mic__animation .mic-design__canvas {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
}
.trial-reactive-mic__stage .trial-mic__disc--active,
.trial-reactive-mic__stage .trial-mic__disc--rec {
  background: var(--bg);
}
.trial-reactive-mic__stage .trial-mic__icon-svg {
  position: relative;
  z-index: 1;
}
.values-page__mic-artwork .trial-reactive-mic__stage .trial-mic__disc--active {
  background: var(--site-index-bg);
}
/* Fill the hero square; flex centering on the stage would shrink to mic content only. */
.home-text-hero__mic-stage .trial-reactive-mic__stage {
  position: absolute;
  inset: 0;
}
.home-text-hero__mic-stage .trial-reactive-mic__animation .mic-design__canvas {
  max-width: none;
  max-height: none;
}
/* Homepage hero mic is decorative — keep equalizer animation, skip hover lift. */
.home-text-hero__mic-stage .trial-mic:hover .trial-mic__frame,
.home-text-hero__mic-stage .trial-mic:active .trial-mic__frame {
  transform: none;
}
.home-text-hero__mic-stage .trial-mic:hover .trial-mic__disc {
  box-shadow: none;
}
.home-text-hero__mic-stage .trial-mic:hover .trial-mic__icon-svg {
  transform: none;
}
/* /feedback — scope toggle in workspace header; narrow: single row with ellipsis (`layout.css`) */
/*
 * Post-session feedback (/feedback after viva or station).
 * Scroll on `.site-main` (same contract as directory) so expanded marks and
 * session actions are reachable on phones; avoid application-page viewport min-height traps.
 */
.layout:has(
    .page.feedback-page:not(.feedback-page--demo-embed):not(
        .feedback-page--demo-embed-mobile
      ):not(.feedback-page--info-demo-embed-mobile)
  )
  .site-main {
  overflow-x: clip;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.layout
  .site-main
  > .page.feedback-page:not(.feedback-page--demo-embed):not(
    .feedback-page--demo-embed-mobile
  ):not(.feedback-page--info-demo-embed-mobile) {
  flex: 0 1 auto;
  align-self: stretch;
  max-width: none;
  width: 100%;
  margin-inline: 0;
  overflow: visible;
}
.page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
    .feedback-page--info-demo-embed-mobile
  ) {
  box-sizing: border-box;
  min-height: calc(
    100dvh - 2rem - var(--site-header-clearance) - env(safe-area-inset-top, 0px)
  );
}
.page.feedback-page.application-page .trial-page__stage {
  flex: 0 1 auto;
  min-height: 0;
  height: auto;
  overflow: visible;
  justify-content: flex-start;
}
.page.feedback-page.application-page .application-page__main,
.page.feedback-page.application-page .feedback-page__panels,
.page.feedback-page.application-page .feedback-page__panels-main {
  flex: 0 1 auto;
  overflow: visible;
  justify-content: flex-start;
}
.page.feedback-page .feedback-page__builder-card .viva-builder-page__card-main[role='button'],
.page.feedback-page .feedback-page__question-trigger {
  touch-action: pan-y;
}
@media (max-width: 639px) {
  /* Cancel generic `.page { padding-inline: 1rem }` — use one gutter via stage only */
  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    ) {
    padding-inline: 0;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .trial-page__stage {
    padding: 0.65rem var(--page-inline, 1rem) 1.35rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__session-actions {
    width: 100%;
    max-width: none;
    margin-top: 1.75rem;
    margin-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__repeat-button {
    min-height: 2.75rem;
    font-size: 0.875rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__question-trigger {
    padding: 0.62rem 0.65rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__question-detail,
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__mark-tier
    .feedback-page__detail-body {
    max-height: none;
    overflow: visible;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__pass-criteria-panel {
    padding: 0.65rem 0.7rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__pass-criteria-panel.feedback-page__pass-criteria-panel--flush {
    padding: 0.35rem 0 0;
  }
}
.feedback-page.feedback-page--viva .trial-page__stage,
.feedback-page.feedback-page--station .trial-page__stage {
  align-items: stretch;
  max-width: 100%;
}
/* Viva: full-width strip of builder-style section cards (matches viva-builder grid) */
.feedback-page--viva .application-page__main {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  align-self: stretch;
  justify-content: flex-start;
}
.feedback-page--viva .feedback-page__panels {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}
.feedback-page--demo-embed.page {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
  padding: clamp(0.65rem, 1.8vw, 1.1rem);
  background: var(--bg);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.feedback-page--demo-embed .trial-page__stage {
  min-height: calc(100vh - clamp(1.3rem, 3.6vw, 2.2rem));
  padding: 0;
}
.feedback-page--demo-embed .feedback-page__panels {
  gap: 0.75rem;
}
.feedback-page--demo-embed .feedback-page__question-detail {
  max-height: none;
  overflow: visible;
}
.feedback-page--demo-embed .feedback-page__mark-tier .feedback-page__detail-body {
  max-height: none;
  overflow: visible;
}
.feedback-page--demo-embed .feedback-page__pass-criteria-panel {
  margin-top: 1.35rem;
}
/*
 * Marketing feedback iframe on narrow viewports (`embedMobile=1` from parent).
 * Parent iframe uses layout downscale (pages-home.css); keep readable typography
 * here — only tighten spacing and allow scroll (matches progress embed).
 */
.feedback-page--demo-embed.feedback-page--demo-embed-mobile.page,
.feedback-page--info-demo-embed.feedback-page--info-demo-embed-mobile.page {
  min-height: 0;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-block: 3px;
  padding-inline: 0;
}
.feedback-page--demo-embed-mobile .trial-page__stage,
.feedback-page--info-demo-embed-mobile .trial-page__stage {
  min-height: 0;
  height: auto;
  overflow: visible;
  padding: 0;
}
.feedback-page--demo-embed-mobile .application-page__main,
.feedback-page--demo-embed-mobile .feedback-page__panels,
.feedback-page--demo-embed-mobile .feedback-page__panels-main,
.feedback-page--info-demo-embed-mobile .application-page__main,
.feedback-page--info-demo-embed-mobile .feedback-page__panels,
.feedback-page--info-demo-embed-mobile .feedback-page__panels-main {
  min-height: 0;
  overflow: visible;
}
html:has(.feedback-page--demo-embed-mobile.page),
html:has(.feedback-page--info-demo-embed-mobile.page) {
  height: 100%;
}
html:has(.feedback-page--demo-embed-mobile.page) body,
html:has(.feedback-page--info-demo-embed-mobile.page) body {
  height: 100%;
  margin: 0;
}
html:has(.feedback-page--demo-embed-mobile.page) .layout,
html:has(.feedback-page--info-demo-embed-mobile.page) .layout {
  min-height: 0;
  height: 100%;
}
html:has(.feedback-page--demo-embed-mobile.page) .site-main,
html:has(.feedback-page--info-demo-embed-mobile.page) .site-main {
  flex: 1 1 auto;
  min-height: 0;
  padding-top: calc(var(--site-header-chrome-h) + env(safe-area-inset-top, 0px));
  padding-inline: 0;
  padding-bottom: 0;
}
html:has(.feedback-page--demo-embed-mobile.page) .site-main > .page,
html:has(.feedback-page--info-demo-embed-mobile.page) .site-main > .page {
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: 0;
}
.feedback-page--demo-embed-mobile.feedback-page--viva .feedback-page__builder-grid,
.feedback-page--info-demo-embed-mobile.feedback-page--viva .feedback-page__builder-grid {
  grid-template-columns: 1fr;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.feedback-page--demo-embed-mobile.feedback-page--viva .feedback-page__builder-strip,
.feedback-page--info-demo-embed-mobile.feedback-page--viva .feedback-page__builder-strip {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  width: 100%;
  max-width: 100%;
}
.feedback-page--demo-embed-mobile.feedback-page--viva
  .feedback-page__builder-strip
  > .viva-builder-page__card-slot,
.feedback-page--info-demo-embed-mobile.feedback-page--viva
  .feedback-page__builder-strip
  > .viva-builder-page__card-slot {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.feedback-page--demo-embed-mobile .directory-card,
.feedback-page--demo-embed-mobile .viva-builder-page__card,
.feedback-page--info-demo-embed-mobile .directory-card,
.feedback-page--info-demo-embed-mobile .viva-builder-page__card {
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.75rem; /* tighter for mobile phones */
}
@media (max-width: 390px) {
  .feedback-page--demo-embed-mobile .feedback-page__question-detail,
  .feedback-page--info-demo-embed-mobile .feedback-page__question-detail {
    font-size: 0.9rem;
    padding: 0.65rem;
  }
}
.feedback-page--demo-embed-mobile .feedback-page__question-detail,
.feedback-page--demo-embed-mobile
  .feedback-page__mark-tier
  .feedback-page__detail-body,
.feedback-page--info-demo-embed-mobile .feedback-page__question-detail,
.feedback-page--info-demo-embed-mobile
  .feedback-page__mark-tier
  .feedback-page__detail-body {
  max-height: none;
  overflow: visible;
}
.feedback-page--info-demo-embed .trial-page__stage {
  position: relative;
}
.feedback-page--info-demo-embed .feedback-page__panels {
  gap: 0.75rem;
}
.feedback-page--info-demo-embed .feedback-page__question-detail {
  max-height: none;
  overflow: visible;
}
.feedback-page__question-trigger--skeleton {
  cursor: default;
  pointer-events: none;
}
.feedback-page__question-update-badge--centered {
  justify-content: center;
  margin: 0.35rem auto 1rem;
}
.feedback-page__pass-criteria-panel--skeleton {
  display: grid;
  gap: 0.55rem;
}
.feedback-page__skeleton-line {
  display: block;
  width: 100%;
  min-height: 0.72rem;
  border-radius: 0.35rem;
  background: color-mix(in srgb, var(--text-h) 10%, var(--site-index-bg) 90%);
}
.feedback-page__skeleton-line--short {
  width: 42%;
}
.feedback-page__skeleton-line--medium {
  width: 72%;
}
.feedback-page__skeleton-line--score {
  width: 48%;
  min-height: 0.62rem;
}
.feedback-history-card__score--pending {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  flex-wrap: wrap;
}
.feedback-page__section-score-skeleton {
  display: inline-block;
  width: 1.75rem;
  min-width: 1.75rem;
  vertical-align: middle;
}
.feedback-page__skeleton-line--prompt {
  width: 88%;
  min-height: 0.85rem;
}
.feedback-page__skeleton-line--tall {
  min-height: 3.2rem;
}
@media (prefers-reduced-motion: no-preference) {
  .feedback-page__skeleton-line {
    animation: feedback-skeleton-shimmer 1.35s ease-in-out infinite;
  }
}
@keyframes feedback-skeleton-shimmer {
  0%,
  100% {
    opacity: 0.45;
  }
  50% {
    opacity: 0.95;
  }
}
.feedback-page__session-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  width: min(100%, 13.5rem);
  margin-left: auto;
  margin-right: auto;
  margin-top: 3.4rem;
  margin-bottom: 0.75rem;
}
.feedback-page__repeat-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.4rem;
  padding: 0.5rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--text-h) 18%, var(--border));
  border-radius: 999px;
  background: #fff;
  color: #000;
  font: inherit;
  font-size: clamp(0.74rem, 1.25vw, 0.84rem);
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 0.45rem 1.2rem color-mix(in srgb, #000 8%, transparent);
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}
.feedback-page__repeat-button:hover:not(:disabled) {
  border-color: color-mix(in srgb, #000 34%, var(--border));
  background: color-mix(in srgb, #000 5%, #fff);
  box-shadow: 0 0.6rem 1.45rem color-mix(in srgb, #000 12%, transparent);
  transform: translateY(-1px);
}
.feedback-page__repeat-button--home {
  border-color: color-mix(in srgb, #000 52%, var(--border));
  background: linear-gradient(135deg, #000 0%, #2f2f2f 100%);
  color: #fff;
  box-shadow: 0 0.65rem 1.55rem color-mix(in srgb, #000 22%, transparent);
}
.feedback-page__repeat-button--home:hover:not(:disabled) {
  border-color: color-mix(in srgb, #000 72%, var(--border));
  background: linear-gradient(135deg, #111 0%, #3a3a3a 100%);
  box-shadow: 0 0.8rem 1.75rem color-mix(in srgb, #000 28%, transparent);
}
[data-theme='dark'] .feedback-page__repeat-button:not(.feedback-page__repeat-button--home) {
  border-color: color-mix(in srgb, #fff 20%, var(--border));
  background: linear-gradient(135deg, #070707 0%, #202020 100%);
  color: #fff;
  box-shadow: 0 0.65rem 1.55rem color-mix(in srgb, #000 32%, transparent);
}
[data-theme='dark'] .feedback-page__repeat-button:not(.feedback-page__repeat-button--home):hover:not(:disabled) {
  border-color: color-mix(in srgb, #fff 34%, var(--border));
  background: linear-gradient(135deg, #111 0%, #2b2b2b 100%);
  box-shadow: 0 0.8rem 1.75rem color-mix(in srgb, #000 38%, transparent);
}
[data-theme='dark'] .feedback-page__repeat-button--home {
  border-color: color-mix(in srgb, #fff 70%, var(--border));
  background: linear-gradient(135deg, #fff 0%, #e8e8e8 100%);
  color: #000;
  box-shadow: 0 0.65rem 1.55rem color-mix(in srgb, #000 34%, transparent);
}
[data-theme='dark'] .feedback-page__repeat-button--home:hover:not(:disabled) {
  border-color: color-mix(in srgb, #fff 86%, var(--border));
  background: linear-gradient(135deg, #f7f7f7 0%, #dcdcdc 100%);
  box-shadow: 0 0.8rem 1.75rem color-mix(in srgb, #000 42%, transparent);
}
.feedback-page__repeat-button:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
.feedback-page__repeat-button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}
/*
 * Single-column accordion: section cards stack vertically at all breakpoints.
 */
.feedback-page--viva .feedback-page__builder-grid {
  --vb-card-gap: clamp(0.5rem, 1.2vw, 0.85rem);
  width: 100%;
  min-width: 0;
  display: grid;
  gap: var(--vb-card-gap);
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  align-content: start;
  align-items: start;
}
.feedback-page--viva .feedback-page__builder-strip {
  display: flex;
  flex-direction: column;
  gap: var(--vb-card-gap);
  width: 100%;
  min-width: 0;
}
.feedback-page--viva .feedback-page__builder-strip > .viva-builder-page__card-slot {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.feedback-page--viva .feedback-page__builder-card-slot.viva-builder-page__card-slot {
  min-width: 0;
}
/* Primary tile: station centre-slot emphasis (width growth is main cue; no scale) */
.feedback-page--viva .feedback-page__builder-card--primary.directory-card {
  position: relative;
  z-index: 1;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--text-h) 10%, var(--border)),
    0 10px 28px color-mix(in srgb, var(--text-h) 12%, transparent);
}
@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
  .feedback-page--viva .feedback-page__builder-card--primary.directory-card {
    transition:
      transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.32s ease;
  }

  .feedback-page--viva .feedback-page__builder-card--primary.directory-card:hover {
    transform: translateY(-4px);
  }
}
@media (min-width: 1200px) and (prefers-reduced-motion: reduce) {
  .feedback-page--viva .feedback-page__builder-card--primary.directory-card,
  .feedback-page--viva .feedback-page__builder-card--primary.directory-card:hover {
    transform: none;
  }
}
.feedback-page--viva .feedback-page__builder-card .viva-builder-page__card-main[role='button'] {
  cursor: pointer;
  width: 100%;
  touch-action: manipulation;
}
.feedback-page--viva
  .feedback-page__builder-card
  .viva-builder-page__card-main[role='button']:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}
.feedback-page--viva
  .feedback-page__builder-card
  .viva-builder-page__card-main[role='button'][aria-expanded='true']:focus-visible {
  outline: none;
}
/*
 * Section header chevron — always visible accordion affordance (viva + station).
 */
.feedback-page .feedback-page__section-chevron {
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
  opacity: 0.62;
  color: color-mix(in srgb, var(--text-h) 58%, var(--site-index-bg) 42%);
  transition:
    opacity 0.15s ease,
    transform 0.2s ease;
}
.feedback-page
  .viva-builder-page__card-main[role='button']:hover
  .feedback-page__section-chevron,
.feedback-page
  .viva-builder-page__card-main[role='button'][aria-expanded='true']
  .feedback-page__section-chevron,
.feedback-page .feedback-page__section-chevron--open {
  opacity: 0.9;
}
.feedback-page .feedback-page__section-chevron--open {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: no-preference) {
  .feedback-page
    .viva-builder-page__card-main[role='button']:not([aria-expanded='true'])
    .feedback-page__section-chevron.feedback-page__section-chevron--discover {
    animation: feedback-question-chevron-pulse 1.6s ease-in-out infinite;
    transform-origin: center;
  }
}
/*
 * Legacy bottom chevron (builder parity) — section tiles now use header chevron.
 * Kept for any embed/skeleton paths that still reference card-more.
 */
@keyframes feedback-card-more-in {
  from {
    opacity: 0;
    transform: translate(-50%, 6px);
  }

  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
.feedback-page--viva
  .feedback-page__builder-card
  .viva-builder-page__card-more.feedback-page__card-more {
  left: 50%;
  right: auto;
  /* Builder uses ~0.2–0.45rem; tuck chevron nearer the bottom edge on feedback tiles */
  bottom: clamp(0, 0.2vw, 0.08rem);
}
/*
 * Chevron on every tile (muted); after centre + FLIP the active tile gets reveal
 * (`feedback-page__card-more--visible`).
 */
@media (prefers-reduced-motion: no-preference) {
  .feedback-page--viva
    .feedback-page__builder-card
    .viva-builder-page__card-more.feedback-page__card-more:not(.feedback-page__card-more--visible) {
    opacity: 0.32 !important;
    visibility: visible !important;
    pointer-events: none;
    animation: none !important;
    animation-delay: 0s !important;
    transform: translate(-50%, 5px) !important;
  }

  .feedback-page--viva
    .feedback-page__builder-card
    .viva-builder-page__card-more.feedback-page__card-more--visible {
    visibility: visible !important;
    pointer-events: auto;
    animation: feedback-card-more-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    animation-delay: 0.08s !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .feedback-page--viva
    .feedback-page__builder-card
    .viva-builder-page__card-more.feedback-page__card-more:not(.feedback-page__card-more--visible) {
    opacity: 0.32 !important;
    visibility: visible !important;
    pointer-events: none;
    animation: none !important;
    transform: translate(-50%, 4px) !important;
  }

  .feedback-page--viva
    .feedback-page__builder-card
    .viva-builder-page__card-more.feedback-page__card-more--visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
    animation: none !important;
    transform: translate(-50%, 0) !important;
  }
}
.feedback-page__facet-steps {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  margin-top: 0.8rem;
  padding-bottom: 0.15rem;
  box-sizing: border-box;
}
.feedback-page__facet-step {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text-h);
  font-size: clamp(0.68rem, 1.35vw, 0.78rem);
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}
.feedback-page__facet-step:hover {
  border-color: color-mix(in srgb, var(--text-h) 35%, var(--border));
}
.feedback-page__facet-step:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.feedback-page__facet-step--selected {
  background: #111;
  color: #fff;
  border-color: #111;
}
/*
 * Feedback strip: shorter tiles (≈ half builder min-height), no ring / Questions row.
 * Topic summary uses one line so overall card height stays compact.
 */
.feedback-page--viva .feedback-page__builder-card.viva-builder-page__card.directory-card {
  min-height: clamp(3.2rem, 8.8vh, 6rem);
  padding-block: clamp(0.25rem, 0.65vw, 0.4rem);
  padding-inline: clamp(0.65rem, 1.6vw, 1rem);
}
.feedback-page--viva .feedback-page__builder-card .viva-builder-page__card-main {
  gap: 0.22rem;
}
/* Reserve three summary lines (hint + band + score) so every section tile matches. */
.feedback-page
  .feedback-page__builder-card:not(.feedback-page__overall-grade)
  .viva-builder-page__card-body {
  min-height: calc(3 * 1.25 * clamp(0.7rem, 1.35vw, 0.78rem));
}
.feedback-page--viva .feedback-page__builder-card p.viva-builder-page__field {
  margin: 0;
  line-height: 1.25;
  font-size: clamp(0.7rem, 1.35vw, 0.78rem);
}
.feedback-page--viva .feedback-page__builder-card .viva-builder-page__topic-line-outer {
  -webkit-line-clamp: 1;
  line-clamp: 1;
  max-height: calc(1 * 1.25em);
  min-height: calc(1 * 1.25em);
  line-height: 1.25;
}
.feedback-page--viva .feedback-page__builder-card .viva-builder-page__topic-line-inner {
  line-height: 1.25;
}
/* Station: wide split — mirrors multi-station / circuit feel */
.feedback-page--station .application-page__main {
  max-width: min(72rem, 100%);
  width: 100%;
  margin-inline: auto;
  align-self: stretch;
}
.feedback-page--station .feedback-page__panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
  width: 100%;
  align-items: start;
}
@media (max-width: 640px) {
  .feedback-page--station .feedback-page__panels {
    grid-template-columns: 1fr;
  }
}
.feedback-page--station .feedback-page__panels-main {
  grid-column: 1 / -1;
  min-width: 0;
}
.feedback-history-card__hint {
  margin: 0;
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
  font-size: clamp(0.68rem, 1.25vw, 0.76rem);
  line-height: 1.25;
}
.feedback-history-card__score {
  margin: 0;
  color: color-mix(in srgb, var(--text-h) 78%, var(--site-index-bg) 22%);
  font-size: clamp(0.68rem, 1.25vw, 0.76rem);
  font-weight: 700;
  line-height: 1.25;
}
.feedback-page__question-panel {
  width: 100%;
  min-width: 0;
  margin-top: 0.55rem;
  padding: 0.55rem 0.5rem 0.65rem;
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--site-index-bg) 88%, var(--text-h) 12%);
  border: 1px solid color-mix(in srgb, var(--text-h) 12%, var(--border));
  box-sizing: border-box;
}
.feedback-page__question-panel-intro {
  margin: 0 0 0.45rem;
  font-size: clamp(0.62rem, 1.1vw, 0.7rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 55%, var(--site-index-bg) 45%);
}
.feedback-page__question-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.feedback-page__question-item {
  margin: 0;
  border-radius: 0.35rem;
  background: color-mix(in srgb, var(--surface) 94%, var(--text-h) 6%);
  border: 1px solid color-mix(in srgb, var(--text-h) 8%, var(--border));
  overflow: visible;
}
.feedback-page__question-trigger {
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--text-h);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease;
}
.feedback-page__question-trigger:hover {
  background: color-mix(in srgb, var(--text-h) 6%, transparent);
}
.feedback-page__question-trigger:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 2px;
}
.feedback-page__question-trigger--open {
  background: color-mix(in srgb, var(--text-h) 8%, transparent);
}
.feedback-page__question-prompt {
  flex: 1;
  min-width: 0;
  font-size: clamp(0.72rem, 1.28vw, 0.82rem);
  line-height: 1.35;
}
.feedback-page__question-cache-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 45%;
  padding: 0.18rem 0.42rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, #059669 28%, var(--border));
  background: color-mix(in srgb, #059669 12%, var(--surface) 88%);
  color: #047857;
  font-size: clamp(0.58rem, 1vw, 0.66rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.1;
  text-transform: uppercase;
  white-space: nowrap;
}
.feedback-page__question-detail {
  position: relative;
  padding: 0 0.55rem 0.55rem;
  border-top: 1px solid color-mix(in srgb, var(--text-h) 10%, var(--border));
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  max-height: none;
  overflow: visible;
}
.feedback-page__question-curated {
  padding: 0;
  border-top: 0;
  gap: 0.25rem;
}
.feedback-page__detail-card {
  min-width: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 0.7rem;
  background: var(--surface);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent);
}
.feedback-page__detail-card--question {
  padding: 0;
}
.feedback-page__detail-card--question + .feedback-page__detail-card--marking,
.feedback-page__detail-card--question + .feedback-page__detail-card--feedback {
  padding-top: 0.35rem;
}
.feedback-page__detail-card--marking {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.feedback-page__detail-card--marking .feedback-page__pass-criteria-primary {
  padding-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
}
.feedback-page__detail-stack {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.feedback-page__question-lead {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0.65rem 0.85rem;
  box-sizing: border-box;
}
/* Beat global `.page p` margin/line-height from layout.css */
.page.feedback-page .feedback-page__question-lead-text {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1rem, 2.2vw, 1.12rem);
  font-weight: 650;
  line-height: 1.2;
  color: var(--text-h);
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.page.feedback-page .feedback-page__question-lead-text--clamped {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.28;
}
.feedback-page__question-lead-toggle {
  align-self: flex-start;
  margin: 0;
  padding: 0.28rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 80%, var(--bg));
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
}
.feedback-page__question-lead-toggle:hover {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--border));
  color: var(--text-h);
}
.feedback-page__mark-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.65rem;
}
.feedback-page__mark-hero .feedback-page__mark-summary {
  margin: 0;
  font-size: 1.02em;
}
.feedback-page__mark-hero .feedback-page__mark-summary-fraction {
  font-size: 1.15em;
}
.feedback-page__mark-hero-threshold {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--border) 85%, var(--text-muted));
  background: color-mix(in srgb, var(--bg) 55%, var(--surface));
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.3;
}
.feedback-page__feedback-prose {
  min-width: 0;
}
.feedback-page__pass-criteria-primary {
  min-width: 0;
}
.feedback-page__pass-criteria-primary .feedback-page__pass-criteria-panel {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.feedback-page__reveal-body .feedback-page__mark-tier {
  margin-top: 0;
}
.feedback-page__feedback-prose .feedback-page__mark-tier {
  margin-top: 0;
}
.feedback-page__detail-stack {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.feedback-page__reveal {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 0.7rem;
  background: var(--surface);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent);
  overflow: hidden;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}
.feedback-page__reveal--open {
  border-color: color-mix(in srgb, var(--accent) 22%, var(--border));
  box-shadow: 0 2px 6px color-mix(in srgb, var(--text) 6%, transparent);
}
.feedback-page__reveal-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.feedback-page__reveal-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  width: 100%;
  margin: 0;
  padding: 0.62rem 0.85rem;
  border: 0;
  background: transparent;
  color: var(--text-h);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.feedback-page__reveal-toggle-label {
  min-width: 0;
  line-height: 1.3;
}
.feedback-page__reveal-chevron {
  flex-shrink: 0;
  color: var(--text-muted);
  transition: transform 0.18s ease;
  transform: rotate(-90deg);
}
.feedback-page__reveal-chevron--open {
  transform: rotate(0deg);
  color: var(--text-h);
}
.feedback-page__reveal-toggle:hover {
  color: var(--accent);
}
.feedback-page__reveal-toggle:hover .feedback-page__reveal-chevron {
  color: var(--accent);
}
.feedback-page__reveal-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.feedback-page__reveal-toggle:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.feedback-page__reveal-toggle-end {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}
.feedback-page__reveal-status {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
}
.feedback-page__reveal-body {
  padding: 0.65rem 0.85rem 0.85rem;
  min-width: 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
}
.feedback-page__reveal--follow-up .feedback-page__reveal-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding-top: 0.65rem;
}
.feedback-page__optional-action.feedback-page__reveal-toggle {
  display: inline;
  width: auto;
  padding: 0.2rem 0;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--text-h) 28%, transparent);
  text-underline-offset: 0.18em;
}
.feedback-page__question-detail--updating {
  padding-top: 0.45rem;
}
.feedback-page__style-format-panel {
  padding-top: 0.55rem;
}
.feedback-page__question-update-badge {
  position: absolute;
  top: 0.4rem;
  right: 0.55rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: calc(100% - 1.1rem);
  padding: 0.22rem 0.45rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--text-h) 12%, var(--border));
  background: color-mix(in srgb, var(--surface) 94%, var(--text-h) 6%);
  color: color-mix(in srgb, var(--text-h) 68%, var(--site-index-bg) 32%);
  font-size: clamp(0.58rem, 1vw, 0.66rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 0.35rem 1rem color-mix(in srgb, var(--text-h) 8%, transparent);
}
@keyframes feedback-question-update-spin {
  to {
    transform: rotate(360deg);
  }
}
.feedback-page__question-update-spinner {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--text-h) 18%, transparent);
  border-top-color: color-mix(in srgb, var(--text-h) 70%, var(--site-index-bg) 30%);
  animation: feedback-question-update-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .feedback-page__question-update-spinner {
    animation: none;
  }
}
.feedback-page__style-format-body {
  white-space: pre-wrap;
}
.feedback-page__style-format-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.feedback-page__style-format-summary {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
  color: var(--text);
}
.feedback-page__style-format-section {
  margin: 0;
}
.feedback-page__style-format-heading {
  margin: 0 0 0.4rem;
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--text-h);
}
.feedback-page__style-format-list {
  margin: 0;
  padding-left: 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  font-size: 0.94rem;
  line-height: 1.55;
  color: var(--text);
}
.feedback-page__style-format-list li {
  padding-left: 0.15rem;
}
.feedback-page__style-format-list li strong {
  font-weight: 700;
  color: var(--text-h);
}
.feedback-page__style-format-phrasing {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
  color: var(--text);
}
.feedback-page__style-format-section--phrasing {
  padding-top: 0.15rem;
}
.feedback-page__inline-delivery {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.08));
}
.feedback-page__inline-delivery-heading {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-h);
}
.feedback-page__detail-block {
  min-width: 0;
}
.feedback-page__detail-heading {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-h);
}
.feedback-page__detail-heading--toggle {
  margin: 0;
}
.feedback-page__detail-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.feedback-page__detail-toggle--static {
  cursor: default;
}
.feedback-page__detail-block--mark .feedback-page__mark-summary {
  margin: 0;
}
.feedback-page__pass-criteria-heading-row--toggle {
  margin-bottom: 0;
}
.feedback-page__detail-block:has(.feedback-page__pass-criteria-heading-row--toggle)
  > .feedback-page__detail-heading-row {
  margin-bottom: 0;
}
.feedback-page__detail-block:has(.feedback-page__pass-criteria-panel--flush)
  > .feedback-page__detail-collapse-body {
  padding-top: 0;
  margin-top: 0;
}
.feedback-page__detail-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 0.25rem;
}
.feedback-page__detail-toggle-arrow {
  flex-shrink: 0;
  color: var(--text-h);
  transition: transform 0.15s ease;
}
.feedback-page__detail-toggle-arrow--open {
  transform: rotate(0deg);
}
.feedback-page__detail-toggle-arrow:not(.feedback-page__detail-toggle-arrow--open) {
  transform: rotate(-90deg);
}
.feedback-page__detail-collapse-body {
  min-width: 0;
}
.feedback-page__detail-body {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
  color: var(--text);
}
.feedback-page__detail-audio {
  width: 100%;
}
/* Station scope uses the same tiles; align metrics with viva strip */
.feedback-page--station .feedback-page__builder-card.viva-builder-page__card.directory-card {
  min-height: clamp(3.2rem, 8.8vh, 6rem);
  padding-block: clamp(0.25rem, 0.65vw, 0.4rem);
  padding-inline: clamp(0.65rem, 1.6vw, 1rem);
}
.feedback-page--station .feedback-page__builder-card .viva-builder-page__card-main {
  gap: 0.22rem;
}
.feedback-page--station .feedback-page__builder-card p.viva-builder-page__field {
  margin: 0;
  line-height: 1.25;
  font-size: clamp(0.7rem, 1.35vw, 0.78rem);
}
.feedback-page__detail-heading-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.28rem;
}
.feedback-page__detail-heading-row .feedback-page__detail-heading {
  margin: 0;
}
.feedback-page__detail-status {
  font-size: clamp(0.62rem, 1.05vw, 0.68rem);
  font-weight: 600;
  color: color-mix(in srgb, var(--text-h) 50%, var(--site-index-bg) 50%);
}
.feedback-page__detail-body--pending {
  font-style: italic;
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
}
.feedback-page__detail-body--error {
  color: color-mix(in srgb, #b42318 78%, var(--text-h) 22%);
}
.feedback-page__session-poll-hint,
.feedback-page__question-panel-intro--error {
  margin: 0 0 0.75rem;
  font-size: clamp(0.72rem, 1.2vw, 0.82rem);
  color: color-mix(in srgb, var(--text-h) 58%, var(--site-index-bg) 42%);
}
.feedback-page__pass-criteria-panel {
  margin-top: 1.1rem;
  padding: 0.7rem 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--border);
}
/* Must follow the base panel rule — same specificity otherwise loses the cascade. */
.feedback-page__reveal-body .feedback-page__pass-criteria-panel.feedback-page__pass-criteria-panel--flush {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.feedback-page--demo-embed
  .feedback-page__pass-criteria-panel.feedback-page__pass-criteria-panel--flush {
  margin-top: 0.25rem;
}
.feedback-page__mark-description {
  margin: 0.55rem 0 0;
  color: var(--text);
  font-size: 0.94rem;
  line-height: 1.55;
  white-space: pre-wrap;
}
.feedback-page__mark-tier .feedback-page__pass-criteria-panel {
  margin-top: 1.35rem;
}
.feedback-page__pass-criteria-heading-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.4rem 0.55rem;
  margin-bottom: 0.28rem;
}
.feedback-page__pass-criteria-heading {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-h);
}
.feedback-page__pass-criteria-summary {
  margin: 0;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  color: color-mix(in srgb, var(--text-h) 68%, var(--site-index-bg) 32%);
}
.feedback-page__pass-criteria .feedback-page__pass-criteria-summary {
  margin: 0 0 0.28rem;
}
.feedback-page__pass-criteria-empty {
  margin: 0;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  font-style: italic;
  color: color-mix(in srgb, var(--text-h) 52%, var(--site-index-bg) 48%);
}
.feedback-page__pass-criteria-group {
  margin-top: 0.65rem;
}
.feedback-page__pass-criteria-group:first-child {
  margin-top: 0;
}
.feedback-page__pass-criteria-group-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}
.feedback-page__pass-criteria-group-name {
  font-size: clamp(0.62rem, 1.05vw, 0.68rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
}
.feedback-page__pass-criteria-group-meta {
  font-size: clamp(0.62rem, 1.05vw, 0.68rem);
  color: color-mix(in srgb, var(--text-h) 50%, var(--site-index-bg) 50%);
}
.feedback-page__pass-criteria-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.2rem 0.75rem;
}
@media (min-width: 640px) {
  .feedback-page__pass-criteria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.feedback-page__pass-criteria-item {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: 0;
}
.feedback-page__pass-criteria-icon {
  flex-shrink: 0;
  width: 0.85rem;
  height: 0.85rem;
  margin-top: 0.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  color: color-mix(in srgb, var(--text-h) 42%, var(--site-index-bg) 58%);
}
.feedback-page__pass-criteria-icon--hit {
  color: #059669;
}
.feedback-page__pass-criteria-text {
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  line-height: 1.35;
  word-break: break-word;
  color: color-mix(in srgb, var(--text-h) 92%, var(--site-index-bg) 8%);
}
.feedback-page__pass-criteria-mandatory {
  font-weight: 600;
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
}
.feedback-page__pass-criteria-probed {
  font-weight: 600;
  color: color-mix(in srgb, var(--accent, #5b7cfa) 72%, var(--text-h) 28%);
}
.feedback-page__pass-criteria-item--probed {
  background: color-mix(in srgb, var(--accent, #5b7cfa) 6%, var(--bg) 94%);
  border-radius: 0.35rem;
}
.feedback-page__mandatory-follow-up {
  margin-top: 0;
}
.feedback-page__mandatory-follow-up-target {
  margin: 0 0 0.65rem;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  color: color-mix(in srgb, var(--text-h) 68%, var(--site-index-bg) 32%);
}
.feedback-page__mandatory-follow-up-outcome {
  margin: 0 0 0.65rem;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
}
.feedback-page__mandatory-follow-up-section + .feedback-page__mandatory-follow-up-section {
  margin-top: 0.65rem;
}
.feedback-page__mandatory-follow-up-heading {
  margin: 0 0 0.25rem;
  font-size: clamp(0.66rem, 1.05vw, 0.72rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-h);
}
.feedback-page__mandatory-follow-up-target em {
  font-size: 0.92em;
  font-weight: 600;
  font-style: normal;
  color: color-mix(in srgb, var(--text-h) 55%, #b45309 45%);
}
.feedback-page__mark-tier {
  margin-top: 0.35rem;
}
.feedback-page__mark-tier:first-child {
  margin-top: 0;
}
.feedback-page__mark-tier-heading {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-h);
}
.feedback-page__mark-summary {
  --mark-summary-accent: color-mix(in srgb, var(--text-h) 34%, var(--border));

  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.45rem;
  margin: 0 0 0.15rem;
}
.feedback-page__mark-summary.feedback-page__grade-tone--outstanding {
  --mark-summary-accent: #6366f1;
}
.feedback-page__mark-summary.feedback-page__grade-tone--well-above {
  --mark-summary-accent: #2563eb;
}
.feedback-page__mark-summary.feedback-page__grade-tone--above {
  --mark-summary-accent: #0d9488;
}
.feedback-page__mark-summary.feedback-page__grade-tone--at-standard {
  --mark-summary-accent: #059669;
}
.feedback-page__mark-summary.feedback-page__grade-tone--borderline {
  --mark-summary-accent: #d97706;
}
.feedback-page__mark-summary.feedback-page__grade-tone--fail {
  --mark-summary-accent: #dc2626;
}
.feedback-page__mark-summary-marks {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
}
.feedback-page__mark-summary-fraction {
  display: inline-flex;
  align-items: baseline;
  gap: 0.12rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  font-family: var(--heading);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text-h);
}
.feedback-page__mark-summary-awarded,
.feedback-page__mark-summary-slash,
.feedback-page__mark-summary-total {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  transform: none;
}
.feedback-page__mark-summary-marks-value {
  font-family: var(--heading);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text-h);
}
.feedback-page__mark-summary-marks-unit {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.feedback-page__mark-summary-sep {
  color: var(--text-muted);
  opacity: 0.55;
  font-size: 0.85rem;
}
.feedback-page__mark-summary-band {
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--mark-summary-accent);
}
.feedback-page__mark-score {
  /* legacy class kept for any residual markup */
  display: none;
}
.feedback-page__mark-source-label {
  margin: 0 0 0.45rem;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  font-weight: 600;
  color: color-mix(in srgb, var(--text-h) 72%, var(--site-index-bg) 28%);
}
.feedback-page__cache-hit-note {
  margin: 0 0 0.45rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  font-weight: 600;
  color: #047857;
  background: color-mix(in srgb, #059669 10%, var(--bg) 90%);
  border: 1px solid color-mix(in srgb, #059669 22%, var(--border));
}
.feedback-page__detail-body--secondary {
  margin-top: 0.45rem;
  font-size: clamp(0.68rem, 1.1vw, 0.76rem);
  color: color-mix(in srgb, var(--text-h) 62%, var(--site-index-bg) 38%);
}
.feedback-page__detail-inline-label {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.92em;
}
.feedback-page__visual-answer-link {
  display: inline-block;
  margin-top: 0.65rem;
  padding: 0;
  border: none;
  background: none;
  color: var(--trial-mic-accent, #2a6bc9);
  font: inherit;
  font-size: clamp(0.84rem, 1.35vw, 0.95rem);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}
.feedback-page__visual-answer-link:hover {
  color: color-mix(in srgb, var(--trial-mic-accent, #2a6bc9) 82%, var(--text-h) 18%);
}
.feedback-page__visual-answer-link:disabled {
  opacity: 0.65;
  cursor: wait;
}
/* --- Overall grade + session style control (compact strip) --- */
.feedback-page__overall-grade {
  --overall-grade-accent: color-mix(in srgb, var(--text-h) 34%, var(--border));

  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.85rem 1.25rem;
  width: 100%;
  margin: 0 0 1.1rem;
  padding: 0 0 1.1rem;
  box-sizing: border-box;
  border-bottom: 1px solid var(--border);
}
.feedback-page__overall-grade.feedback-page__grade-tone--outstanding {
  --overall-grade-accent: #6366f1;
}
.feedback-page__overall-grade.feedback-page__grade-tone--well-above {
  --overall-grade-accent: #2563eb;
}
.feedback-page__overall-grade.feedback-page__grade-tone--above {
  --overall-grade-accent: #0d9488;
}
.feedback-page__overall-grade.feedback-page__grade-tone--at-standard {
  --overall-grade-accent: #059669;
}
.feedback-page__overall-grade.feedback-page__grade-tone--borderline {
  --overall-grade-accent: #d97706;
}
.feedback-page__overall-grade.feedback-page__grade-tone--fail {
  --overall-grade-accent: #dc2626;
}
.feedback-page__overall-grade.feedback-page__overall-grade--pending,
.feedback-page__overall-grade.feedback-page__grade-tone--pending,
.feedback-page__overall-grade.feedback-page__grade-tone--default {
  --overall-grade-accent: color-mix(in srgb, var(--text-h) 34%, var(--border));
}
.feedback-page__overall-grade-main {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
  flex: 1 1 auto;
}
.feedback-page__overall-grade-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.feedback-page__overall-grade-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
}
.feedback-page__overall-grade-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.45rem;
  min-width: 0;
}
.feedback-page__overall-grade-band {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.2rem, 2.6vw, 1.45rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--overall-grade-accent);
}
.feedback-page__overall-grade-marks,
.feedback-page__overall-grade-meta {
  margin: 0;
  font-size: 0.86rem;
  color: var(--text-muted);
}
.feedback-page__overall-grade-sep {
  color: var(--text-muted);
  opacity: 0.7;
}
.feedback-page__overall-grade-status {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-h);
}
.feedback-page__overall-grade-spinner {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--text-h) 18%, transparent);
  border-top-color: color-mix(in srgb, var(--text-h) 70%, var(--bg) 30%);
  animation: feedback-question-update-spin 0.8s linear infinite;
  flex-shrink: 0;
}
.feedback-page__overall-grade-sr-full {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 560px) {
  .feedback-page__overall-grade {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: reduce) {
  .feedback-page__overall-grade-spinner {
    animation: none;
  }
}
/* --- ACEM band tone colors --- */
.feedback-page__grade-tone--outstanding {
  color: #6366f1;
}
.feedback-page__grade-tone--well-above {
  color: #2563eb;
}
.feedback-page__grade-tone--above {
  color: #0d9488;
}
.feedback-page__grade-tone--at-standard {
  color: #059669;
}
.feedback-page__grade-tone--borderline {
  color: #d97706;
}
.feedback-page__grade-tone--fail {
  color: #dc2626;
}
.feedback-page__grade-tone--pending,
.feedback-page__grade-tone--default {
  color: color-mix(in srgb, var(--text-h) 55%, var(--site-index-bg) 45%);
}
/* --- Section card emoji + band --- */
.feedback-page__section-emoji {
  margin-right: 0.28rem;
  font-size: 1.05em;
  line-height: 1;
}
.feedback-history-card__band {
  margin: 0;
  font-size: clamp(0.68rem, 1.25vw, 0.76rem);
  font-weight: 800;
  line-height: 1.25;
}
/* --- Click-to-explore discovery hints --- */
.feedback-page__discover-hint {
  margin: 0 0 0.55rem;
  text-align: center;
  font-size: clamp(0.72rem, 1.3vw, 0.82rem);
  font-weight: 600;
  line-height: 1.35;
  color: color-mix(in srgb, var(--text-h) 68%, var(--site-index-bg) 32%);
}
.feedback-page__discover-hint--panel {
  margin-bottom: 0.45rem;
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  font-size: clamp(0.68rem, 1.15vw, 0.76rem);
}
.feedback-page__discover-hint--below {
  margin: 0;
  padding-top: 0.75rem;
}
.feedback-page__hub > .feedback-page__discover-hint--below {
  margin: 0;
  padding-top: 0.75rem;
}
@keyframes feedback-discover-pulse {
  0%,
  100% {
    opacity: 0.45;
    transform: translate(-50%, 5px);
  }

  50% {
    opacity: 0.92;
    transform: translate(-50%, 0);
  }
}
@media (prefers-reduced-motion: no-preference) {
  .feedback-page--viva
    .feedback-page__builder-card
    .viva-builder-page__card-more.feedback-page__card-more--discover:not(.feedback-page__card-more--visible) {
    opacity: 0.72 !important;
    animation: feedback-discover-pulse 1.6s ease-in-out infinite !important;
  }
}
/* --- Question row chevron --- */
.feedback-page__question-chevron {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.12rem;
  opacity: 0.62;
  color: color-mix(in srgb, var(--text-h) 55%, var(--site-index-bg) 45%);
  transition:
    opacity 0.15s ease,
    transform 0.2s ease;
}
.feedback-page__question-trigger:hover .feedback-page__question-chevron,
.feedback-page__question-trigger--discover .feedback-page__question-chevron,
.feedback-page__question-trigger--open .feedback-page__question-chevron,
.feedback-page__question-chevron--open {
  opacity: 0.9;
}
.feedback-page__question-chevron--open {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: no-preference) {
  .feedback-page__question-trigger--discover .feedback-page__question-chevron {
    animation: feedback-question-chevron-pulse 1.6s ease-in-out infinite;
    transform-origin: center;
  }
}
@keyframes feedback-question-chevron-pulse {
  0%,
  100% {
    opacity: 0.45;
  }

  50% {
    opacity: 0.95;
  }
}
@media (prefers-reduced-motion: reduce) {
  .feedback-page__question-trigger--discover .feedback-page__question-chevron {
    opacity: 0.88;
  }
}
/* Domain hub + space navigation */
.feedback-page__hub {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
}
.feedback-page__hub-intro {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.95rem;
}
.feedback-page__hub-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.65rem, 1.5vw, 0.85rem);
  width: 100%;
}
/* Post-session feedback: full-width domain tiles on tablet+ (not marketing embeds). */
@media (min-width: 640px) {
  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      'title icon'
      'meta footer';
    align-items: center;
    gap: 0.2rem 1rem;
    min-height: clamp(5.5rem, 9vh, 7rem);
    padding: 1rem 1.2rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-top {
    display: contents;
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-title {
    grid-area: title;
    font-size: clamp(1.1rem, 2vw, 1.28rem);
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-icon {
    grid-area: icon;
    justify-self: end;
    width: clamp(2rem, 3.5vw, 2.5rem);
    height: clamp(2rem, 3.5vw, 2.5rem);
    margin-top: 0;
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-meta {
    grid-area: meta;
    font-size: clamp(0.82rem, 1.4vw, 0.92rem);
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-footer {
    grid-area: footer;
    justify-self: end;
    margin-top: 0;
    padding-top: 0;
    gap: 0.4rem 0.65rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-band,
  .page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed
    ):not(.feedback-page--info-demo-embed-mobile)
    .feedback-page__hub-tile-score {
    font-size: clamp(0.82rem, 1.4vw, 0.92rem);
  }
}
.feedback-page__hub-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  min-height: 6.75rem;
  padding: 0.8rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--surface);
  box-shadow: var(--shadow-panel-raised);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    transform 0.15s ease,
    box-shadow 0.15s ease;
}
.feedback-page__hub-tile:hover {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  transform: translateY(-1px);
}
.feedback-page__hub-tile:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.feedback-page__hub-tile--skeleton {
  pointer-events: none;
}
.feedback-page__hub-tile-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
}
.feedback-page__hub-tile-icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.85rem;
  height: 1.85rem;
  margin-top: -0.2rem;
  color: var(--text-h);
}
.feedback-page__hub-tile-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.feedback-page__hub-tile-title {
  font-family: var(--heading);
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.2;
  min-width: 0;
  text-align: left;
}
.feedback-page__hub-tile-meta {
  color: var(--text-muted);
  font-size: 0.8rem;
}
.feedback-page__hub-tile-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  width: 100%;
  margin-top: auto;
  padding-top: 0.15rem;
}
.feedback-page__hub-tile-band,
.feedback-page__hub-tile-score {
  font-size: 0.8rem;
  font-weight: 600;
}
.feedback-page__hub-tile-score--pending {
  color: var(--text-muted);
}
.feedback-page__hub-tile--style-format:disabled {
  cursor: default;
  opacity: 0.88;
}
.feedback-page__hub-tile--style-format.feedback-page__hub-tile--error {
  border-color: color-mix(in srgb, #dc2626 22%, var(--border));
}
.feedback-page__space-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1250;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  box-sizing: border-box;
}
.feedback-page__space-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: var(--bg);
  cursor: pointer;
}
.feedback-page__space-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  border: 0;
  border-radius: 0;
  background: var(--bg);
  box-shadow: none;
  overflow: hidden;
}
.feedback-page__space-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.feedback-page__space-back {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}
.feedback-page__space-back:hover {
  color: var(--text-h);
}
.feedback-page__space-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}
.feedback-page__space-icon {
  display: inline-flex;
  width: 1.55rem;
  height: 1.55rem;
  color: var(--text-h);
  flex-shrink: 0;
}
.feedback-page__space-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.feedback-page__space-title {
  margin: 0;
  font-family: var(--heading);
  font-size: clamp(1.1rem, 2.4vw, 1.35rem);
}
.feedback-page__space-layout {
  display: grid;
  grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
  min-height: 0;
  flex: 1 1 auto;
}
.feedback-page__space-nav {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  border-right: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 88%, var(--bg));
  overflow: auto;
}
.feedback-page__space-nav-chips {
  display: none;
  flex-wrap: nowrap;
  gap: 0.35rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.15rem;
  scrollbar-width: thin;
}
.feedback-page__space-nav-chip {
  flex-shrink: 0;
  min-width: 2.35rem;
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  cursor: pointer;
}
.feedback-page__space-nav-chip--active {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  color: var(--text-h);
}
.feedback-page__space-nav-chip:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.feedback-page__space-nav-label {
  margin: 0;
  color: var(--text-h);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.feedback-page__space-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.feedback-page__space-nav-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  width: 100%;
  padding: 0.55rem 0.6rem;
  border: 1px solid transparent;
  border-radius: 0.65rem;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.feedback-page__space-nav-item:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.feedback-page__space-nav-item--active {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
}
.feedback-page__space-nav-index {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
}
.feedback-page__space-nav-prompt {
  font-size: 0.8rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.feedback-page__space-nav-arrows {
  display: flex;
  gap: 0.4rem;
  margin-top: auto;
}
.feedback-page__space-nav-arrow {
  flex: 1;
  min-width: 0;
  padding-inline: 0.45rem;
  font-size: 0.78rem;
}
.feedback-page__space-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 1rem 1.1rem 1.25rem;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.feedback-page__space-body--style {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.feedback-page__space-intro {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}
.feedback-page__on-demand-panel {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-top: 0.35rem;
  padding: 0.65rem 0;
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  border-radius: 0;
  background: transparent;
}
.feedback-page__on-demand-panel--inline .feedback-page__on-demand-title {
  font-size: 0.94rem;
  font-weight: 650;
}
.feedback-page__on-demand-panel--inline .feedback-page__on-demand-description {
  font-size: 0.84rem;
}
.feedback-page__on-demand-copy {
  min-width: 0;
}
.feedback-page__on-demand-generate {
  flex-shrink: 0;
  white-space: nowrap;
}
.feedback-page__on-demand-pending {
  position: static;
  max-width: none;
  align-self: flex-start;
}
.feedback-page__on-demand-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.feedback-page__on-demand-title {
  margin: 0;
  font-size: 1rem;
}
.feedback-page__on-demand-description {
  margin: 0.25rem 0 0;
  color: var(--text-muted);
  font-size: 0.88rem;
}
.feedback-page__on-demand-button {
  flex-shrink: 0;
  white-space: nowrap;
}
.feedback-page__optional-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-top: 0.15rem;
}
.feedback-page__optional-action {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  color: var(--text-h);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}
.feedback-page__optional-action:hover {
  color: var(--accent);
}
.feedback-page__optional-action:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.feedback-page__model-answer {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.feedback-page__model-answer-summary {
  margin: 0;
  color: var(--text);
}
.feedback-page__model-answer-points {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.feedback-page__model-answer-point {
  padding: 0.65rem 0.7rem;
  border-radius: 0.65rem;
  border: 1px solid var(--border);
  background: var(--surface);
}
.feedback-page__model-answer-point--covered {
  border-color: color-mix(in srgb, var(--text) 22%, var(--border));
  background: color-mix(in srgb, var(--surface) 92%, var(--text));
}
.feedback-page__model-answer-point--missing {
  border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
}
.feedback-page__model-answer-point-head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.35rem;
}
.feedback-page__model-answer-point-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}
.feedback-page__model-answer-point-icon--covered {
  background: color-mix(in srgb, var(--text) 10%, transparent);
  color: var(--text-h);
}
.feedback-page__model-answer-point-icon--missing {
  background: color-mix(in srgb, var(--accent) 15%, transparent);
  color: var(--accent);
}
.feedback-page__model-answer-point-status {
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--text-muted);
}
.feedback-page__model-answer-point-text {
  margin: 0;
  font-weight: 600;
}
.feedback-page__model-answer-point-coaching {
  margin: 0.35rem 0 0;
  color: var(--text-muted);
  font-size: 0.88rem;
}
.feedback-page__model-answer-rewrite {
  padding-top: 0.35rem;
  border-top: 1px solid var(--border);
}
.feedback-page__model-answer-rewrite-heading {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
}
.feedback-page__model-answer-rewrite-body {
  margin: 0;
  line-height: 1.5;
}
.feedback-page__skeleton-line--hub-emoji {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
}
.feedback-page__skeleton-line--hub-title {
  width: 70%;
  height: 0.95rem;
}
.feedback-page__skeleton-line--hub-meta {
  width: 45%;
  height: 0.75rem;
}
.feedback-page--demo-embed .feedback-page__hub-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}
.feedback-page--demo-embed .feedback-page__hub-tile {
  min-height: 6.5rem;
  padding: 0.65rem;
}
.feedback-page--demo-embed .feedback-page__hub-tile-title {
  font-size: 0.82rem;
}
.feedback-page--demo-embed .feedback-page__hub-tile-meta,
.feedback-page--demo-embed .feedback-page__hub-tile-band,
.feedback-page--demo-embed .feedback-page__hub-tile-score {
  font-size: 0.72rem;
}
.feedback-page--demo-embed-mobile .feedback-page__hub-grid {
  grid-template-columns: 1fr;
  gap: 0.45rem;
}
.feedback-page--demo-embed-mobile .feedback-page__overall-grade {
  margin-bottom: 0.65rem;
  padding: 0 0 0.65rem;
}
.feedback-page--demo-embed-mobile .feedback-page__hub-tile {
  min-height: 0;
  padding: 0.55rem 0.6rem;
}
/*
 * Marketing preview iframe — mobile: domain space fills the iframe chrome.
 */
.layout:has(.site-header--marketing-iframe-embed) .site-main:has(> .feedback-page--demo-embed),
.layout:has(.site-header--marketing-iframe-embed)
  .site-main:has(> .feedback-page--info-demo-embed) {
  padding-top: calc(var(--site-header-chrome-h) + env(safe-area-inset-top, 0px));
}
.layout:has(.site-header--marketing-iframe-embed) .feedback-page__space-overlay {
  z-index: 1250;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-overlay {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-backdrop {
  background: var(--bg);
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-panel {
  flex: 1 1 auto;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-header {
  flex-shrink: 0;
  padding: 0.5rem 0.65rem;
  gap: 0.45rem;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-title {
  font-size: 1rem;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-layout {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  grid-template-rows: none;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-nav {
  flex-shrink: 0;
  border-right: 0;
  border-bottom: 1px solid var(--border);
  padding: 0.4rem 0.65rem;
  gap: 0.3rem;
  max-height: none;
  overflow: visible;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-nav-chips {
  display: flex;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-nav-label,
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-nav-list {
  display: none;
}
.layout:has(.site-header--marketing-iframe-embed).layout--marketing-embed-mobile
  .feedback-page__space-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.55rem 0.65rem max(0.65rem, env(safe-area-inset-bottom, 0px));
}
body.feedback-space-open .page.feedback-page--demo-embed,
body.feedback-space-open .page.feedback-page--info-demo-embed {
  overflow: visible;
}
body.feedback-space-open
  .layout:has(.page.feedback-page:not(.feedback-page--demo-embed):not(.feedback-page--demo-embed-mobile):not(.feedback-page--info-demo-embed-mobile))
  .site-main {
  overflow: hidden;
}
/*
 * Marketing iframe layout is wider than the visible chrome (parent downscale), so
 * `@media (max-width: 639px)` phone rules may not run. Tighten demo embed anyway.
 */
@media (max-width: 48rem) {
  html:has(.feedback-page--demo-embed.page) .site-main {
    padding-top: calc(var(--site-header-chrome-h) + env(safe-area-inset-top, 0px));
    padding-inline: 4px;
    padding-bottom: 0;
  }

  .page.feedback-page--demo-embed:not(.feedback-page--demo-embed-mobile) {
    min-height: 0;
    padding-block: 3px;
    padding-inline: 0;
  }

  .feedback-page--demo-embed:not(.feedback-page--demo-embed-mobile) .trial-page__stage {
    min-height: 0;
    height: auto;
  }

  .feedback-page--demo-embed:not(.feedback-page--demo-embed-mobile) .feedback-page__hub-grid {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  /* Full-bleed domain space when the iframe layout is narrow (inflated viewport fallback). */
  .layout:has(.site-header--marketing-iframe-embed) .feedback-page__space-overlay {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
  }

  .layout:has(.site-header--marketing-iframe-embed) .feedback-page__space-panel {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .layout:has(.site-header--marketing-iframe-embed) .feedback-page__space-layout {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .layout:has(.site-header--marketing-iframe-embed) .feedback-page__space-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (max-width: 720px) {
  .feedback-page__space-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
  }

  .feedback-page__space-nav {
    flex-direction: column;
    gap: 0.45rem;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    max-height: none;
    overflow: visible;
    padding: 0.65rem 0.75rem;
  }

  .feedback-page__space-nav-chips {
    display: flex;
  }

  .feedback-page__space-nav-label,
  .feedback-page__space-nav-list {
    display: none;
  }

  .feedback-page__space-nav-arrows {
    margin-top: 0;
  }

  .feedback-page__space-body {
    padding: 0.85rem 0.9rem 1rem;
  }

  .feedback-page__on-demand-head {
    flex-direction: column;
  }
}
/* --- Phone layout (360×647 target) — desktop / iPad (≥640px) unchanged --- */
@media (max-width: 639px) {
  /* Overall grade — centered summary card matching domain tiles */
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__overall-grade {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-bottom: 0.85rem;
    padding: 0.85rem;
    border: 1px solid var(--border);
    border-radius: 0.85rem;
    background: var(--surface);
    box-shadow: var(--shadow-panel-raised);
    overflow: hidden;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__overall-grade-main {
    align-items: center;
    text-align: center;
    padding-bottom: 0.15rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__overall-grade-hero {
    justify-content: center;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__overall-grade-status {
    justify-content: center;
  }

  /* Domain hub — single-column compact rows */
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      'title icon'
      'meta footer';
    align-items: center;
    gap: 0.15rem 0.65rem;
    min-height: 3.35rem;
    padding: 0.75rem 0.85rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-top {
    display: contents;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-title {
    grid-area: title;
    font-size: 0.92rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-icon {
    grid-area: icon;
    justify-self: end;
    width: 1.45rem;
    height: 1.45rem;
    margin-top: 0;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-meta {
    grid-area: meta;
    font-size: 0.75rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-footer {
    grid-area: footer;
    justify-self: end;
    margin-top: 0;
    padding-top: 0;
    gap: 0.3rem 0.45rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-band,
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__hub-tile-score {
    font-size: 0.75rem;
  }

  /* Space overlay — full-bleed, denser chrome */
  .feedback-page__space-overlay {
    padding: 0;
  }

  .feedback-page__space-panel {
    width: 100%;
    max-height: 100%;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .feedback-page__space-header {
    padding: 0.5rem 0.7rem;
    gap: 0.45rem;
  }

  .feedback-page__space-title {
    font-size: 1rem;
  }

  .feedback-page__space-layout {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .feedback-page__space-nav {
    flex-shrink: 0;
    padding: 0.4rem 0.65rem;
    gap: 0.3rem;
  }

  .feedback-page__space-nav-chip {
    min-width: 2.1rem;
    padding: 0.32rem 0.55rem;
    font-size: 0.78rem;
  }

  .feedback-page__space-nav-arrows {
    gap: 0.3rem;
  }

  .feedback-page__space-nav-arrow {
    font-size: 0.74rem;
    padding-inline: 0.35rem;
    min-height: 2.25rem;
  }

  .feedback-page__space-body {
    flex: 1;
    min-height: 0;
    padding: 0.65rem var(--page-inline, 0.75rem) max(0.85rem, env(safe-area-inset-bottom, 0px));
  }

  /* Question detail density */
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__question-detail {
    padding: 0 0 0.4rem;
    gap: 0.25rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__detail-card {
    padding: 0.6rem 0.7rem;
    border-radius: 0.6rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__detail-card--question {
    padding: 0;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__question-lead {
    padding: 0.58rem 0.7rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__detail-card--question + .feedback-page__detail-card--marking,
  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__detail-card--question + .feedback-page__detail-card--feedback {
    padding-top: 0.28rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__detail-card--marking {
    gap: 0.55rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__mark-hero {
    gap: 0.35rem 0.5rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__reveal-toggle {
    padding: 0.55rem 0.7rem;
    font-size: 0.86rem;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__reveal-toggle-end {
    flex-shrink: 1;
    min-width: 0;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__reveal-status {
    white-space: normal;
    text-align: right;
    line-height: 1.25;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__reveal-body {
    padding: 0.55rem 0.7rem 0.75rem;
  }

  .feedback-page__on-demand-head {
    flex-direction: column;
    gap: 0.5rem;
  }

  .feedback-page__on-demand-generate,
  .feedback-page__on-demand-button {
    white-space: normal;
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  .page.feedback-page:not(.feedback-page--demo-embed-mobile):not(
      .feedback-page--info-demo-embed-mobile
    )
    .feedback-page__session-actions {
    margin-top: 1.35rem;
    gap: 0.45rem;
  }
}
/* /auth — sign in, sign up, forgot password */
.page.auth-page {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-height: 0;
  max-width: 22rem;
  margin-inline: auto;
}
.page.auth-page.auth-page--signup {
  max-width: 28rem;
}
.page.auth-page.auth-page--contact {
  width: min(70vw, 100%);
  max-width: min(70vw, 100%);
}
/* Tighter band below the site header; centre in `.site-main` flex column */
.site-main > .page.auth-page.auth-page--contact {
  padding-top: 1rem;
  align-self: center;
}
.page.auth-page.auth-page--contact .auth-page__core {
  padding-top: clamp(1.25rem, 7vh, 3.5rem);
}
.page.auth-page.auth-page--contact .auth-page__foot {
  margin-top: 1rem;
  gap: 0.75rem;
}
/* Centre the form block in the viewport band below the header (see .site-main > :first-child) */
.site-main > .page.auth-page {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.auth-page__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}
.auth-page__card--status-only {
  flex: 1 1 auto;
  min-height: 0;
}
.auth-page__card--status-only .auth-page__core {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.auth-page__card--status-only .auth-page__foot {
  margin-top: 0;
}
.auth-page__status-band {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}
/* Title + fields + CTA: stable block so /auth ↔ /auth/sign-up does not re-center inputs */
.auth-page__core {
  flex-shrink: 0;
  padding-top: clamp(2rem, 12vh, 6rem);
}
.auth-page__foot {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 2.5rem;
}
.auth-page__title {
  margin: 0;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--heading);
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: -0.024em;
  line-height: 1.25;
  color: var(--text-h);
  text-align: center;
}
.auth-page__form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.auth-page__form--signup-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem 0.8rem;
}
.auth-page__field--span-2 {
  grid-column: 1 / -1;
}
.auth-page__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.auth-page__field--hidden {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.auth-page__field--with-sr-username {
  position: relative;
}
.auth-page__label {
  font-size: 0.83125rem;
  font-weight: 500;
  color: var(--text);
}
.auth-page__optional {
  font-weight: 400;
  color: var(--text-muted);
}
.auth-page__input {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
  font-size: 0.9125rem;
  color: var(--text-h);
  background: var(--surface);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}
.auth-page__input::placeholder {
  color: var(--text-muted);
  opacity: 1;
}
.auth-page__input:hover {
  border-color: color-mix(in srgb, var(--border) 65%, var(--text-muted));
}
.auth-page__input:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
/* Same treatment for :focus and :focus-visible: text fields always match
   :focus-visible on click, which was swapping the accent glow for the global
   dashed ring. Keep the softer ring here; keyboard users still get a clear cue. */
.auth-page__input:focus,
.auth-page__input:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}
textarea.auth-page__input.auth-page__input--multiline {
  min-height: 6.5rem;
  resize: vertical;
  line-height: 1.45;
}
.auth-page__link {
  font-size: 0.83125rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
}
.auth-page__link:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-page__link:focus {
  outline: none;
}
.auth-page__link:focus-visible {
  outline: none;
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* Primary submit — match form fields (no global dashed :focus-visible on pills). */
.page.auth-page .btn.btn--primary:focus {
  outline: none;
}
.page.auth-page .btn.btn--primary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 26%, transparent);
}
/* Primary submit in auth/contact forms — full width + spacing after fields */
.page.auth-page .auth-page__form button.btn--primary {
  width: 100%;
  margin-top: 0.25rem;
}
.page.auth-page .auth-page__form--signup-grid button.btn--primary {
  margin-top: 0;
}
.auth-page__status {
  margin: 0;
  padding: 0.7rem 0.75rem;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.45;
}
.auth-page__status--success {
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  color: var(--text-h);
  background: color-mix(in srgb, var(--accent) 9%, transparent);
}
.auth-page__status--error {
  border: 1px solid color-mix(in srgb, #b91c1c 36%, var(--border));
  color: #7f1d1d;
  background: color-mix(in srgb, #b91c1c 8%, transparent);
}
.auth-page__footer {
  margin: 0;
  font-size: 0.9125rem;
  line-height: 1.5;
  color: var(--text);
  text-align: center;
}
.auth-page__footer .auth-page__link {
  font-size: inherit;
  font-weight: 600;
  color: var(--text-h);
}
.auth-page__footer .auth-page__link:hover,
.auth-page__footer .auth-page__link:focus-visible {
  color: var(--text-h);
}
.auth-page__home {
  font-size: 0.83125rem;
  text-align: center;
}
.auth-page__home .auth-page__link {
  font-weight: 500;
}
.auth-page__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.auth-page__identifier-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: -0.15rem;
  font-size: 0.9125rem;
  line-height: 1.45;
  color: var(--text);
  text-align: center;
}
.auth-page__identifier-email {
  font-weight: 600;
  color: var(--text-h);
  max-width: min(100%, 16rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
button.auth-page__change-account {
  margin: 0;
  padding: 0;
  border: none;
  font: inherit;
  font-weight: 600;
  background: none;
  cursor: pointer;
}
button.auth-page__change-account:focus {
  outline: none;
}
button.auth-page__change-account:focus-visible {
  outline: none;
  color: var(--text-interactive-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-page__oauth-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0.65rem 0 0.15rem;
}
.auth-page__oauth-divider-line {
  flex: 1 1 auto;
  height: 1px;
  background: var(--border);
}
.auth-page__oauth-divider-text {
  flex: 0 0 auto;
  font-size: 0.775rem;
  color: var(--text-muted);
  text-transform: lowercase;
}
.page.auth-page .auth-page__oauth-btn {
  width: 100%;
  margin-top: 0.15rem;
  gap: 0.5rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-h);
  font-weight: 600;
}
.auth-page__oauth-btn-icon {
  flex: 0 0 auto;
  width: 1.125rem;
  height: 1.125rem;
  object-fit: contain;
}
.page.auth-page .auth-page__oauth-btn:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--border) 65%, var(--text-muted));
}
.page.auth-page .auth-page__oauth-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 26%, transparent);
}
@media (max-width: 420px) {
  .auth-page__form--signup-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .auth-page__field--span-2 {
    grid-column: auto;
  }
}
/* /admin/components — internal UI gallery */
.page.admin-components-page {
  box-sizing: border-box;
  width: 100%;
  max-width: min(56rem, 100%);
  margin-inline: auto;
  padding-bottom: 2.5rem;
  /* Allow flex/grid parents to shrink this column so hero/post-lede don’t overflow-x */
  min-width: 0;
}
.admin-components-page__crumb {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-components-page__crumb a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.admin-components-page__crumb a:hover {
  color: var(--text-interactive-hover);
}
.admin-components-page__head {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.admin-components-page__head h1 {
  margin-bottom: 0.45rem;
}
.admin-components-page__intro {
  margin: 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-muted);
}
.admin-components__section {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}
.admin-components__section:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.admin-components__section h2 {
  margin: 0 0 1rem;
  font-family: var(--heading);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-components__block {
  margin-top: 1.25rem;
}
.admin-components__block:first-of-type {
  margin-top: 0;
}
.admin-components__h3 {
  margin: 0 0 0.35rem;
  font-family: var(--heading);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-components__hint {
  margin: 0 0 0.6rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted);
  max-width: 42rem;
}
.admin-components__legal-embed {
  margin-top: 0.35rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  overflow: hidden;
}
.admin-components__mock-header {
  overflow-x: auto;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-panel-raised, none);
}
.admin-components__mock-header--compact {
  display: flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
}
.admin-components__site-index-shell {
  padding: 1rem 1.1rem;
  border-radius: 8px;
  background: var(--site-index-bg);
}
.admin-components__grid--footers {
  margin-top: 0.25rem;
}
.admin-components__home-sandbox {
  margin-top: 0.35rem;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  /* Band heights: same :root tokens as `/` (pages-home.css). */
}
.admin-components__home-sandbox .home-hero-figure {
  margin: 0;
  min-width: 0;
  max-width: 100%;
}
.admin-components__home-sandbox .home-hero-figure--desktop .home-hero-figure__frame {
  min-width: 0;
  max-width: 100%;
  aspect-ratio: unset;
  height: var(--home-marketing-hero-h);
  min-height: var(--home-marketing-hero-h);
  max-height: var(--home-marketing-hero-h);
}
.admin-components__home-sandbox .home-post-lede-strip-cq:last-of-type {
  margin-bottom: 0;
  padding-bottom: 0;
}
.admin-components__grid {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 36rem) {
  .admin-components__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1.5rem;
    align-items: start;
  }

  .admin-components__grid--buttons {
    align-items: stretch;
  }

  .admin-components__cell--wide {
    grid-column: 1 / -1;
  }
}
/* Label + control: bottom-align controls in a row when labels differ in height */
.admin-components__grid--buttons .admin-components__cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.admin-components__grid--buttons .admin-components__cell > :last-child {
  margin-top: auto;
}
.admin-components__cell {
  min-width: 0;
}
.admin-components__label {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.4;
}
.admin-components__label code {
  font-size: 0.78em;
}
.admin-components__playback-mic-states {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.25rem;
  overflow: visible;
}
.admin-components__playback-mic-state .admin-components__label {
  margin-bottom: 0.35rem;
}
.admin-components__mic-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-width: 9rem;
  min-height: 9.5rem;
  margin-inline: auto;
  padding: 1.35rem;
  color: var(--text-h);
  overflow: visible;
}
.admin-components__playback-mic-state {
  min-width: min-content;
  overflow: visible;
}
/* Match application-page equalizer stage sizing for reactive mic previews. */
.admin-components__mic-reactive-anchor {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.admin-components__mic-reactive-anchor .trial-mic-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  overflow: visible;
  flex-shrink: 0;
}
.admin-components__mic-reactive-anchor .trial-reactive-mic__stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(4rem * 2.2);
  height: calc(4rem * 2.2);
  transform: translate(-50%, calc(-50% - 0.65rem));
}
.admin-components__mic-reactive-anchor .trial-reactive-mic__animation .mic-design__canvas {
  max-width: none;
  max-height: none;
}
.admin-components__spiral-tuning-layout {
  display: grid;
  grid-template-columns: minmax(10rem, 12rem) minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}
.admin-components__mic-stage--spiral-lab {
  min-height: 10rem;
}
.admin-components__spiral-tuning-panel {
  min-width: 0;
}
.admin-components__spiral-tuning-sliders {
  display: grid;
  gap: 0.85rem;
}
.admin-components__spiral-slider {
  display: grid;
  gap: 0.35rem;
  cursor: pointer;
}
.admin-components__spiral-slider-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-components__spiral-slider-value {
  font-variant-numeric: tabular-nums;
  color: var(--text-h);
}
.admin-components__spiral-slider input[type='range'] {
  width: 100%;
  accent-color: var(--trial-mic-accent, #2a6bc9);
}
.admin-components__spiral-tuning-reset {
  margin-top: 1rem;
}
@media (max-width: 640px) {
  .admin-components__spiral-tuning-layout {
    grid-template-columns: 1fr;
  }
}
.admin-components__mic-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 8rem;
  padding: 1.25rem;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-panel-raised, none);
}
.admin-components__header-strip {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
}
.admin-components__header-strip--spread {
  justify-content: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}
.admin-components__label--after-cta {
  margin-top: 1.25rem;
}
/* Mini auth form so full-width submit rule matches production selector */
.admin-components__form-surface.page.auth-page {
  box-sizing: border-box;
  display: block;
  flex: 0 0 auto;
  width: 100%;
  max-width: 22rem;
  margin-top: 1rem;
  margin-inline: 0;
  min-height: 0;
  padding: 1rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
}
.admin-components__form-surface .auth-page__form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* /admin/mic-design — audio-reactive microphone animation lab */
.page.admin-mic-design-page {
  box-sizing: border-box;
  width: 100%;
  max-width: min(64rem, 100%);
  margin-inline: auto;
  padding-bottom: 2.5rem;
  min-width: 0;
}
.admin-mic-design-page__crumb {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-mic-design-page__crumb a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.admin-mic-design-page__crumb a:hover {
  color: var(--text-interactive-hover);
}
.admin-mic-design-page__head {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.admin-mic-design-page__head h1 {
  margin-bottom: 0.45rem;
}
.admin-mic-design-page__intro {
  margin: 0;
  max-width: 44rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-muted);
}
.mic-design__controls {
  margin-bottom: 1.75rem;
  padding: 1.1rem 1.15rem;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-panel-raised, none);
}
.mic-design__controls-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.mic-design__palette-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mic-design__palette-btn--selected {
  box-shadow: inset 0 0 0 2px var(--text);
}
.mic-design__slider {
  display: block;
  margin-bottom: 0.75rem;
}
.mic-design__slider-label {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
  color: var(--text-h);
}
.mic-design__slider-value {
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
}
.mic-design__slider input[type='range'] {
  width: 100%;
}
.mic-design__slider-hint,
.mic-design__signal-status,
.mic-design__reduced-motion-note {
  margin: 0.35rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.mic-design__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: 1rem;
}
.mic-design__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-panel-raised, none);
  overflow: hidden;
}
.mic-design__card-head {
  padding: 0.85rem 1rem 0.65rem;
  border-bottom: 1px solid var(--border);
}
.mic-design__card-title {
  margin: 0 0 0.25rem;
  font-family: var(--heading);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
}
.mic-design__card-desc {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.mic-design__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 14rem;
  padding: 1.5rem;
  overflow: visible;
  isolation: isolate;
}
.mic-design__stage--animation-behind-mic .mic-design__animation-layer {
  z-index: 0;
}
.mic-design__stage--animation-behind-mic .mic-design__mic {
  z-index: 1;
}
/* Opaque disc hides animation behind the mic (incl. on hover scale). */
.mic-design__stage .trial-mic__disc--active,
.mic-design__stage .trial-mic__disc--rec {
  background: var(--surface);
}
.mic-design__stage .trial-mic__icon-svg {
  position: relative;
  z-index: 1;
}
.mic-design__animation-layer {
  position: absolute;
  inset: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 0;
}
.mic-design__mic {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mic-design__canvas,
.mic-design__svg {
  width: 100%;
  height: 100%;
  max-width: 12rem;
  max-height: 12rem;
}
.mic-design__svg--blob {
  overflow: visible;
}
.mic-design__blob-path {
  vector-effect: non-scaling-stroke;
}
.mic-design__aurora {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 12rem;
  max-height: 12rem;
  transform: rotate(var(--mic-design-aurora-rotate, 0deg)) scale(var(--mic-design-aurora-scale, 1));
  opacity: var(--mic-design-aurora-opacity, 0.45);
  filter: blur(var(--mic-design-aurora-blur, 12px));
  transition: opacity 0.12s linear;
}
.mic-design__aurora-layer {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
}
.mic-design__aurora-layer--a {
  background: radial-gradient(circle at 35% 40%, var(--mic-design-aurora-color), transparent 68%);
  transform: scale(1.05);
}
.mic-design__aurora-layer--b {
  background: radial-gradient(circle at 62% 58%, var(--mic-design-aurora-soft), transparent 72%);
  transform: scale(0.92) rotate(28deg);
}
.mic-design__aurora-layer--c {
  background: radial-gradient(circle at 50% 50%, var(--mic-design-aurora-color), transparent 78%);
  transform: scale(1.18) rotate(-18deg);
  opacity: 0.65;
}
@media (prefers-reduced-motion: reduce) {
  .mic-design__aurora {
    transition: none;
  }
}
/* /admin/test-marking — internal test harness for written responses */
.page.admin-test-marking {
  box-sizing: border-box;
  width: 100%;
  max-width: min(40rem, 100%);
  margin-inline: auto;
  padding-bottom: 2.5rem;
  min-width: 0;
  overflow-x: clip;
}
.admin-test-marking__crumb {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-test-marking__crumb a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.admin-test-marking__crumb a:hover {
  color: var(--text-interactive-hover);
}
.admin-test-marking__head {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.admin-test-marking__head h1 {
  margin-bottom: 0.45rem;
}
.admin-test-marking__head > p:not(.admin-test-marking__meta) {
  margin: 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-muted);
}
.admin-test-marking__meta {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__preload-hint {
  margin-top: 0.5rem;
  max-width: 52rem;
  line-height: 1.5;
  font-weight: 400;
  color: var(--text-muted);
}
.admin-test-marking__preload-hint code {
  font-size: 0.75rem;
  word-break: break-all;
}
.admin-test-marking__embedding-status {
  max-width: 52rem;
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-weight: 400;
  line-height: 1.5;
}
.admin-test-marking__embedding-status--ok {
  border-color: color-mix(in srgb, var(--success, #2d8a4e) 45%, var(--border));
  background: color-mix(in srgb, var(--success, #2d8a4e) 8%, var(--surface));
}
.admin-test-marking__embedding-status--error {
  border-color: color-mix(in srgb, var(--danger, #c53030) 45%, var(--border));
  background: color-mix(in srgb, var(--danger, #c53030) 8%, var(--surface));
}
.admin-test-marking__embedding-status-api {
  margin: 0 0 0.4rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-test-marking__embedding-status-api code {
  font-size: 0.75rem;
  word-break: break-all;
}
.admin-test-marking__embedding-status-line {
  margin: 0;
}
.admin-test-marking__embedding-status-line code {
  font-size: 0.8125rem;
  word-break: break-all;
}
.admin-test-marking__embedding-status-hint {
  margin: 0.35rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-test-marking__embedding-refresh {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--link, var(--accent));
  cursor: pointer;
  text-decoration: underline;
}
.admin-test-marking__embedding-refresh:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.admin-test-marking__mode-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.25rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
}
.admin-test-marking__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.85rem 1rem;
  margin-top: 1rem;
}
.admin-test-marking__model-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: min(100%, 18rem);
}
.admin-test-marking__model-label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.admin-test-marking__model-select {
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.875rem;
  color: var(--text-h);
  background: var(--element-bg);
}
.admin-test-marking__model-select:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.admin-test-marking__mode-btn {
  padding: 0.4rem 0.75rem;
  border: none;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted);
  background: transparent;
  cursor: pointer;
}
.admin-test-marking__mode-btn:hover {
  color: var(--text-h);
  background: color-mix(in srgb, var(--border) 40%, transparent);
}
.admin-test-marking__mode-btn--active {
  color: var(--text-h);
  background: var(--element-bg);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
}
.admin-test-marking__timing-compare {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--border) 25%, var(--surface));
}
.admin-test-marking__timing-compare--session {
  margin-top: 0;
  margin-bottom: 1.25rem;
}
.admin-test-marking__timing-compare-note {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.admin-test-marking__timing-compare--session .admin-test-marking__timing-compare-heading {
  margin-bottom: 0.25rem;
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: normal;
  color: var(--text-h);
}
.admin-test-marking__timing-row--active {
  background: color-mix(in srgb, var(--border) 35%, transparent);
}
.admin-test-marking__timing-compare-heading {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.admin-test-marking__timing-table-wrap {
  overflow-x: auto;
  margin: 0 -0.15rem;
  padding: 0 0.15rem;
}
.admin-test-marking__timing-table {
  width: 100%;
  min-width: 72rem;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.admin-test-marking__timing-table th,
.admin-test-marking__timing-table td {
  padding: 0.35rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.admin-test-marking__timing-table thead th {
  font-weight: 600;
  color: var(--text-muted);
  white-space: nowrap;
}
.admin-test-marking__timing-cell-model {
  max-width: 9rem;
  line-height: 1.35;
}
.admin-test-marking__timing-cell-cache {
  max-width: 10rem;
  line-height: 1.35;
  font-weight: 600;
}
.admin-test-marking__timing-cell-answer {
  max-width: 14rem;
  line-height: 1.35;
  color: var(--text-muted);
  word-break: break-word;
}
.admin-test-marking__timing-compare-deltas {
  margin: 0.65rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.admin-test-marking__timing-compare-deltas li + li {
  margin-top: 0.2rem;
}
.admin-test-marking__timing-key {
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--border) 18%, var(--surface));
}
.admin-test-marking__timing-key-heading {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__timing-key-intro {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.admin-test-marking__timing-key-list {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 0.55rem 1.25rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.admin-test-marking__timing-key-list dt {
  margin: 0;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__timing-key-list dd {
  margin: 0.1rem 0 0;
  color: var(--text-muted);
}
.admin-test-marking__timing-key-list code {
  font-size: 0.75rem;
}
.admin-test-marking__timing-row--fastest {
  background: color-mix(in srgb, var(--success-border, #2d8a4e) 10%, transparent);
}
.admin-test-marking__timing-speedup {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--success-text, #1a6b38);
}
.admin-test-marking__question-meta {
  margin: -0.5rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--text-muted);
  text-align: center;
}
.admin-test-marking__answer-mode {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0.75rem 0 0.5rem;
}
.admin-test-marking__answer-mode-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted);
}
.admin-test-marking__answer-mode-toggle {
  flex: 1 1 auto;
}
.admin-test-marking__voice-panel {
  margin: 0.5rem 0 0.75rem;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--border) 18%, var(--surface));
}
.admin-test-marking__voice-hint {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.admin-test-marking__voice-hint code {
  font-size: 0.75rem;
}
.admin-test-marking__voice-status {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__live-transcript {
  margin: 0 0 0.65rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-h);
  background: var(--element-bg);
  max-height: 6rem;
  overflow-y: auto;
}
.admin-test-marking__file-stt-provider {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0.65rem 0 0.5rem;
}
.admin-test-marking__file-stt-toggle {
  flex: 1 1 auto;
}
.admin-test-marking__voice-status--warn {
  color: var(--error-text, #b42318);
}
.admin-test-marking__voice-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.admin-test-marking__voice-error {
  text-align: left;
  margin-bottom: 0.5rem;
}
.admin-test-marking__step--submitted:not(.application-written__step--active) {
  border-color: var(--warning-border, #c9a227);
  background: color-mix(in srgb, var(--warning-border, #c9a227) 12%, var(--element-bg));
}
.admin-test-marking__step--marked:not(.application-written__step--active) {
  border-color: var(--success-border, #2d8a4e);
  background: color-mix(in srgb, var(--success-border, #2d8a4e) 12%, var(--element-bg));
  color: var(--success-text, #1a6b38);
}
.admin-test-marking__marking {
  margin: 0.5rem 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
  text-align: center;
}
.admin-test-marking__timer {
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
}
.admin-test-marking__error {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--error-text, #b42318);
  text-align: center;
}
.admin-test-marking__results {
  margin-top: 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
}
.admin-test-marking__results-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
}
.admin-test-marking__band {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-test-marking__band--clear-fail {
  background: #fde8e8;
  color: #9b1c1c;
}
.admin-test-marking__band--borderline-fail {
  background: #fef3e2;
  color: #9a3412;
}
.admin-test-marking__band--borderline-pass {
  background: #fef9c3;
  color: #854d0e;
}
.admin-test-marking__band--at-standard {
  background: #e0f2fe;
  color: #0369a1;
}
.admin-test-marking__band--above-standard {
  background: #dcfce7;
  color: #166534;
}
.admin-test-marking__band--well-above-standard {
  background: #d1fae5;
  color: #065f46;
}
.admin-test-marking__marks {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__verdict {
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-test-marking__marking-time {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-test-marking__cache-warning {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--warning-border, #c9a227) 55%, var(--border));
  background: color-mix(in srgb, var(--warning-border, #c9a227) 12%, var(--surface));
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--text-h);
}
.admin-test-marking__cache-warning strong {
  font-weight: 600;
}
.admin-test-marking__why-mark {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--text-h);
}
.admin-test-marking__marking-key {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.admin-test-marking__marking-key strong {
  color: var(--text-h);
}
.admin-test-marking__checklist-wrap {
  margin-top: 0.5rem;
}
.admin-test-marking__checklist-heading {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.admin-test-marking__checklist--grouped {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.admin-test-marking__checklist-group-title {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-test-marking__checklist-group-req {
  font-weight: 500;
  color: var(--text-muted);
}
.admin-test-marking__checklist-items {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem 0.75rem;
}
@media (min-width: 36rem) {
  .admin-test-marking__checklist-items {
    grid-template-columns: 1fr 1fr;
  }
}
.admin-test-marking__checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.admin-test-marking__checklist-item span[aria-hidden] {
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
  font-weight: 700;
}
.admin-test-marking__checklist-item--hit {
  color: var(--success-text, #1a6b38);
}
.admin-test-marking__checklist-item--hit span[aria-hidden] {
  color: var(--success-border, #2d8a4e);
}
.admin-test-marking__checklist-item--miss {
  color: var(--text-muted);
}
.admin-test-marking__checklist-item--miss span[aria-hidden] {
  color: var(--text-muted);
  opacity: 0.7;
}
.admin-test-marking__fast-match {
  margin: 1.25rem 0 1.5rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface) 92%, var(--accent) 8%);
  min-width: 0;
  max-width: 100%;
}
.admin-test-marking__fast-match-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
}
.admin-test-marking__fast-match-intro {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.admin-test-marking__fast-match-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-end;
  margin-bottom: 0.75rem;
}
.admin-test-marking__fast-match-hint,
.admin-test-marking__fast-match-key,
.admin-test-marking__fast-match-fastest {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-test-marking__fast-match-error {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  color: var(--danger-text, #b42318);
}
.admin-test-marking__fast-match-retry {
  margin-left: 0.35rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent, #2563eb);
  font: inherit;
  font-size: 0.8125rem;
  text-decoration: underline;
  cursor: pointer;
}
.admin-test-marking__fast-match-retry:hover {
  opacity: 0.85;
}
.admin-test-marking__fast-match-table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  margin: 0 -0.15rem;
  padding: 0 0.15rem;
}
.admin-test-marking__fast-match-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.75rem;
}
.admin-test-marking__fast-match-col-model {
  width: 30%;
}
.admin-test-marking__fast-match-col-route {
  width: 12%;
}
.admin-test-marking__fast-match-col-num {
  width: 11%;
}
.admin-test-marking__fast-match-col-indices {
  width: 22%;
}
.admin-test-marking__fast-match-table th,
.admin-test-marking__fast-match-table td {
  padding: 0.35rem 0.4rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.admin-test-marking__fast-match-table th {
  font-weight: 600;
  color: var(--text-muted);
  white-space: nowrap;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.admin-test-marking__fast-match-model,
.admin-test-marking__fast-match-indices {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 0;
}
.admin-test-marking__fast-match-indices {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.admin-test-marking__vector-match {
  margin-top: 1rem;
}
.admin-test-marking__vector-fresh-embed {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  cursor: pointer;
}
.admin-test-marking__vector-match-results {
  margin-top: 0.75rem;
}
.admin-test-marking__model-field--checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}
.admin-test-marking__section-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
}
.admin-live-question-test__preview-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.admin-live-question-test__preview-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.08));
  border-radius: 0.5rem;
}
.admin-live-question-test__preview-item--missing {
  border-color: rgba(200, 80, 60, 0.35);
  background: rgba(200, 80, 60, 0.04);
}
.admin-live-question-test__preview-id {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.admin-live-question-test__preview-section {
  color: var(--text-muted);
  font-size: 0.8125rem;
}
.admin-live-question-test__preview-text {
  grid-column: 1 / -1;
  font-size: 0.9375rem;
  line-height: 1.45;
}
.admin-live-question-test__preview-badge {
  justify-self: start;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.admin-application {
  max-width: 52rem;
}
.admin-application__breadcrumb {
  font-size: 0.875rem;
  margin-bottom: 1rem;
  color: var(--color-text-muted, #666);
}
.admin-application__breadcrumb a {
  color: inherit;
}
.admin-application__header h1 {
  margin-bottom: 0.5rem;
}
.admin-application__intro {
  color: var(--color-text-muted, #555);
  margin-bottom: 0.5rem;
}
.admin-application__links {
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
}
.admin-application__panel {
  border: 1px solid var(--color-border, #ddd);
  border-radius: 0.5rem;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
  background: var(--color-surface, #fff);
}
.admin-application__panel h2 {
  font-size: 1.125rem;
  margin: 0 0 0.75rem;
}
.admin-application__question {
  font-size: 1.125rem;
  line-height: 1.45;
  margin: 0 0 0.75rem;
}
.admin-application__marking-key {
  font-size: 0.875rem;
  color: var(--color-text-muted, #555);
  margin: 0 0 1rem;
}
.admin-application__question-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.admin-application__mic-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.admin-application__mic-btn {
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  border-radius: 50%;
}
.admin-application__mic-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.admin-application__mic-hint {
  font-size: 0.875rem;
  color: var(--color-text-muted, #555);
  text-align: center;
  margin: 0;
}
.admin-application__select {
  width: 100%;
  max-width: 28rem;
  font: inherit;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--color-border, #ccc);
  border-radius: 0.375rem;
  margin-bottom: 0.5rem;
}
.admin-application__select--inline {
  max-width: 16rem;
}
.admin-application__qwen-threshold {
  margin-top: 0.5rem;
}
.admin-application__qwen-result {
  margin-top: 0.25rem;
}
.admin-application__qwen-status {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.375rem;
  border: 1px solid var(--color-border, #ccc);
}
.admin-application__qwen-status--ok {
  border-color: #b7e4c7;
  background: #f1faf4;
}
.admin-application__qwen-status--error {
  border-color: #f5c2c7;
  background: #fff5f5;
}
.admin-application__qwen-env-example {
  margin: 0.5rem 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.8rem;
  line-height: 1.4;
  white-space: pre-wrap;
  background: rgba(0, 0, 0, 0.04);
  border-radius: 0.25rem;
  overflow-x: auto;
}
.admin-application__qwen-seed {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border, #e5e5e5);
}
.admin-application__run-row--error {
  background: #fff5f5;
}
.admin-application__run-status {
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-application__mode-toggle {
  margin-bottom: 0.75rem;
}
.admin-application__mode-toggle--nested {
  margin-top: -0.25rem;
  margin-bottom: 1rem;
}
.admin-application__mode-label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text-muted, #555);
  margin-bottom: 0.35rem;
}
.admin-application__mode-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.admin-application__mode-btn {
  appearance: none;
  font: inherit;
  font-size: 0.8125rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--color-border, #ccc);
  border-radius: 0.375rem;
  background: var(--color-surface, #fff);
  cursor: pointer;
}
.admin-application__mode-btn--active {
  border-color: var(--color-link, #06c);
  background: #eef4ff;
  font-weight: 600;
}
.admin-application__mode-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.admin-application__scribe-keyterms {
  margin: 0.75rem 0 0.25rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--color-border, #2a2f3a);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
}
.admin-application__scribe-keyterms-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  cursor: pointer;
}
.admin-application__scribe-keyterms-toggle input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--color-accent, #6ea8fe);
}
.admin-application__scribe-keyterms-list {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--color-muted, #9aa3b2);
  word-break: break-word;
}
.admin-application__pipeline-headline {
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
}
.admin-application__pipeline-detail {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--color-text-muted, #666);
  margin-top: 0.15rem;
}
.admin-application__pipeline-label {
  display: block;
}
.admin-application__pipeline-title {
  font-size: 0.9375rem;
  margin: 0 0 0.5rem;
}
.admin-application__pipeline-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  margin-top: 0.5rem;
}
.admin-application__pipeline-table th,
.admin-application__pipeline-table td {
  text-align: left;
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid var(--color-border, #e8e8e8);
  vertical-align: middle;
}
.admin-application__pipeline-label--indent {
  padding-left: 1.25rem;
  color: var(--color-text-muted, #666);
}
.admin-application__pipeline-ms {
  width: 4.5rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.admin-application__pipeline-bar-cell {
  width: 40%;
}
.admin-application__pipeline-bar {
  display: block;
  height: 0.5rem;
  border-radius: 0.25rem;
  background: #4a7fd7;
  max-width: 100%;
}
.admin-application__pipeline-row--total td {
  font-weight: 700;
  border-top: 2px solid var(--color-border, #ccc);
}
.admin-application__field-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.admin-application__textarea {
  width: 100%;
  font: inherit;
  line-height: 1.45;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--color-border, #ccc);
  border-radius: 0.375rem;
  resize: vertical;
  margin-bottom: 0.75rem;
}
.admin-application__segment-viewer {
  width: 100%;
  min-height: 7.5rem;
  max-height: 16rem;
  overflow-y: auto;
  font: inherit;
  line-height: 1.5;
  padding: 0.5rem;
  border: 1px solid var(--color-border, #ccc);
  border-radius: 0.375rem;
  margin-bottom: 0.75rem;
  background: var(--color-surface-muted, #fafafa);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.admin-application__segment {
  display: block;
  padding: 0.5rem 0.625rem 0.5rem 2rem;
  border: 1px solid var(--color-border, #d0d0d0);
  border-radius: 0.375rem;
  background: var(--color-surface, #fff);
  position: relative;
}
.admin-application__segment:nth-child(even) {
  background: var(--color-surface-alt, #f3f6f9);
}
.admin-application__segment--partial {
  border-style: dashed;
  border-color: var(--color-accent, #4a7fd7);
  background: transparent;
  font-style: italic;
  color: var(--color-text-muted, #555);
}
.admin-application__segment--refined {
  border-color: var(--color-success, #2e7d32);
  background: rgba(46, 125, 50, 0.06);
}
.admin-application__segment--batch-pending {
  border-color: var(--color-warning, #b8860b);
  opacity: 0.92;
}
.admin-application__segment--flash {
  animation: admin-application-segment-flash 0.45s ease-out;
}
@keyframes admin-application-segment-flash {
  0% {
    background-color: rgba(74, 127, 215, 0.22);
  }
  100% {
    background-color: inherit;
  }
}
.admin-application__segment-index {
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-muted, #888);
  line-height: 1;
}
.admin-application__vad-controls {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding: 0.75rem;
  border: 1px dashed var(--color-border, #ccc);
  border-radius: 0.375rem;
  background: var(--color-surface-muted, #fafafa);
}
.admin-application__vad-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}
.admin-application__vad-row label {
  font-size: 0.875rem;
  min-width: 10rem;
}
.admin-application__vad-row select {
  font-size: 0.875rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  border: 1px solid var(--color-border, #ccc);
}
.admin-application__actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.admin-application__gemini-embed {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border, #e8e8e8);
}
.admin-application__error-inline {
  color: var(--color-danger, #b42318);
}
.admin-application__error {
  color: var(--color-danger, #b00020);
  margin-top: 0.75rem;
}
.admin-application__hint {
  font-size: 0.875rem;
  color: var(--color-text-muted, #666);
}
.admin-application__link-btn {
  appearance: none;
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  color: var(--color-link, #06c);
  cursor: pointer;
  text-decoration: underline;
}
.admin-application__verdict-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1rem;
}
.admin-application__verdict {
  display: inline-block;
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 0.25rem;
  font-size: 0.9375rem;
}
.admin-application__verdict--pass {
  background: #e6f4ea;
  color: #137333;
}
.admin-application__verdict--fail {
  background: #fce8e6;
  color: #c5221f;
}
.admin-application__coverage {
  font-size: 0.875rem;
  color: var(--color-text-muted, #555);
}
.admin-application__rubric {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}
.admin-application__rubric-item {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  padding: 0.4rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.9375rem;
  margin-bottom: 0.25rem;
  background: var(--color-surface-muted, #f5f5f5);
}
.admin-application__rubric-item--hit {
  background: #e6f4ea;
}
.admin-application__rubric-index {
  flex-shrink: 0;
  font-weight: 600;
  color: var(--color-text-muted, #666);
  min-width: 1.25rem;
}
.admin-application__timing {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin: 0 0 1rem;
  font-size: 0.875rem;
}
.admin-application__timing div {
  display: flex;
  gap: 0.35rem;
}
.admin-application__timing dt {
  color: var(--color-text-muted, #666);
  font-weight: 500;
}
.admin-application__timing dd {
  margin: 0;
  font-weight: 600;
}
.admin-application__debug pre {
  font-size: 0.75rem;
  overflow-x: auto;
  padding: 0.75rem;
  background: #f4f4f4;
  border-radius: 0.25rem;
  white-space: pre-wrap;
  word-break: break-word;
}
.admin-application__run-table-wrap {
  overflow-x: auto;
  margin-bottom: 0.75rem;
}
.admin-application__run-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.admin-application__run-table th,
.admin-application__run-table td {
  text-align: left;
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--color-border, #e0e0e0);
}
.admin-application__run-transcript {
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-application__capture-link-body {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: flex-start;
}
.admin-application__capture-link-qr-wrap {
  flex: 0 0 auto;
  padding: 0.5rem;
  border: 1px solid var(--color-border, #ddd);
  border-radius: 0.5rem;
  background: #fff;
}
.admin-application__capture-link-qr {
  display: block;
}
.admin-application__capture-link-meta {
  flex: 1 1 14rem;
  min-width: 12rem;
}
.admin-application__capture-link-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
}
.admin-application__capture-link-dot {
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #c62828;
  flex: 0 0 auto;
}
.admin-application__capture-link-dot--on {
  background: #2e7d32;
}
.admin-application__capture-link-actions {
  margin: 0.75rem 0;
}
.admin-application__capture-link-url {
  font-size: 0.8125rem;
  margin: 0;
  word-break: break-all;
}
.admin-application__phone-photo {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border, #ddd);
}
.admin-application__phone-photo-img {
  display: block;
  width: 100%;
  max-width: 28rem;
  max-height: 20rem;
  object-fit: contain;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border, #ddd);
  background: #f8f8f8;
}
.admin-application__cost-breakdown {
  margin: 0.75rem 0 1rem;
}
.admin-application__cost-lines {
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
}
.admin-application__cost-lines li {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.5rem;
  padding: 0.35rem 0;
  border-top: 1px solid var(--color-border, #e8e8e8);
}
.admin-application__cost-line-label {
  font-size: 0.9rem;
  color: var(--color-text-muted, #666);
}
.admin-application__cost-line-value {
  font-size: 0.9rem;
}
.admin-application__cost-note {
  margin-top: 0.35rem;
  font-size: 0.85rem;
}
/* /admin/anaesthetics/visual-marking-keys */
.page.admin-visual-marking-keys {
  box-sizing: border-box;
  width: 100%;
  max-width: min(72rem, 100%);
  margin-inline: auto;
  padding-bottom: 2.5rem;
  min-width: 0;
}
.admin-visual-marking-keys__crumb {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-visual-marking-keys__crumb a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.admin-visual-marking-keys__head {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.admin-visual-marking-keys__head h1 {
  margin-bottom: 0.45rem;
}
.admin-visual-marking-keys__head > p {
  margin: 0;
  max-width: 48rem;
  color: var(--text-muted);
  line-height: 1.55;
}
.admin-visual-marking-keys__meta {
  margin: 0.75rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-h);
}
.admin-visual-marking-keys__filters {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.admin-visual-marking-keys__filter {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.875rem;
  cursor: pointer;
}
.admin-visual-marking-keys__filter--active {
  border-color: var(--text);
  font-weight: 600;
}
.admin-visual-marking-keys__layout {
  display: grid;
  grid-template-columns: minmax(14rem, 22rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
@media (max-width: 56rem) {
  .admin-visual-marking-keys__layout {
    grid-template-columns: 1fr;
  }
}
.admin-visual-marking-keys__sidebar {
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  max-height: calc(100vh - 12rem);
  overflow: auto;
}
.admin-visual-marking-keys__question-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.admin-visual-marking-keys__question-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  padding: 0.75rem;
  cursor: pointer;
}
.admin-visual-marking-keys__question-item--active {
  background: color-mix(in srgb, var(--text) 6%, transparent);
}
.admin-visual-marking-keys__question-item--done .admin-visual-marking-keys__question-id::before {
  content: '● ';
  color: #1a7f37;
}
.admin-visual-marking-keys__question-id {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted);
}
.admin-visual-marking-keys__question-text {
  font-size: 0.875rem;
  line-height: 1.4;
}
.admin-visual-marking-keys__editor {
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  padding: 1rem;
  min-width: 0;
}
.admin-visual-marking-keys__question-header h2 {
  margin: 0 0 0.35rem;
}
.admin-visual-marking-keys__question-header p {
  margin: 0;
}
.admin-visual-marking-keys__muted {
  color: var(--text-muted);
  font-size: 0.875rem;
}
.admin-visual-marking-keys__status-badge {
  display: inline-block;
  margin: 0 0 0.5rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-visual-marking-keys__status-badge--done {
  background: color-mix(in srgb, #1a7f37 14%, transparent);
  color: #1a7f37;
}
.admin-visual-marking-keys__status-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}
.admin-visual-marking-keys__status-badges .admin-visual-marking-keys__status-badge {
  margin: 0;
}
.admin-visual-marking-keys__status-badge--verified {
  background: color-mix(in srgb, #0969da 14%, transparent);
  color: #0969da;
}
.admin-visual-marking-keys__question-tag {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  vertical-align: middle;
}
.admin-visual-marking-keys__question-tag--verified {
  background: color-mix(in srgb, #0969da 14%, transparent);
  color: #0969da;
}
.admin-visual-marking-keys__reference,
.admin-visual-marking-keys__pass-rule,
.admin-visual-marking-keys__criteria,
.admin-visual-marking-keys__marking-key,
.admin-visual-marking-keys__archetype {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.admin-visual-marking-keys__reference h3,
.admin-visual-marking-keys__pass-rule h3,
.admin-visual-marking-keys__criteria h3,
.admin-visual-marking-keys__marking-key h3 {
  margin: 0 0 0.75rem;
}
.admin-visual-marking-keys__reference h4 {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.admin-visual-marking-keys__criteria-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.admin-visual-marking-keys__criteria-head h3 {
  margin: 0;
}
.admin-visual-marking-keys__criteria-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.admin-visual-marking-keys__table-wrap {
  overflow-x: auto;
}
.admin-visual-marking-keys__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.admin-visual-marking-keys__table th,
.admin-visual-marking-keys__table td {
  border: 1px solid var(--border);
  padding: 0.5rem;
  vertical-align: top;
}
.admin-visual-marking-keys__table th {
  text-align: left;
  background: color-mix(in srgb, var(--text) 4%, transparent);
}
.admin-visual-marking-keys__table input[type='text'] {
  width: 100%;
  min-width: 8rem;
  box-sizing: border-box;
}
.admin-visual-marking-keys__extraction-key {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 11rem;
}
.admin-visual-marking-keys__extraction-key-select,
.admin-visual-marking-keys__extraction-key-suffix,
.admin-visual-marking-keys__extraction-key-custom {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
}
.admin-visual-marking-keys__extraction-key-suffix,
.admin-visual-marking-keys__extraction-key-custom {
  font-size: 0.8125rem;
}
.admin-visual-marking-keys__mandatory-cell {
  text-align: center;
  width: 5rem;
}
.admin-visual-marking-keys__marking-key textarea {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.45;
}
.admin-visual-marking-keys__inline-field {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-right: 0.75rem;
}
.admin-visual-marking-keys__inline-field input,
.admin-visual-marking-keys__inline-field select {
  font: inherit;
}
.admin-visual-marking-keys__footer {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}
.admin-visual-marking-keys__schema-ref {
  margin-bottom: 1rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  padding: 0.65rem 0.85rem;
  background: color-mix(in srgb, var(--text) 3%, transparent);
}
.admin-visual-marking-keys__schema-ref summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
}
.admin-visual-marking-keys__schema-ref-body {
  margin: 0.75rem 0 0;
  padding: 0.75rem;
  border-radius: 0.35rem;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 0.75rem;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-x: auto;
  max-height: 24rem;
}
.admin-visual-marking-keys__match-mode {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.admin-visual-marking-keys__constraints-row td {
  background: color-mix(in srgb, var(--text) 2%, transparent);
}
.admin-visual-marking-keys__point-constraints {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.admin-visual-marking-keys__point-constraints-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(5rem, 1fr));
  gap: 0.5rem;
}
.admin-visual-marking-keys__point-constraints-grid label,
.admin-visual-marking-keys__point-constraints-flags label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.admin-visual-marking-keys__point-constraints-grid input[type='number'] {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
}
.admin-visual-marking-keys__point-constraints-flags {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: 0.8125rem;
}
.admin-visual-marking-keys__point-constraints-flags label {
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  color: var(--text);
}
.admin-visual-marking-keys__enrich-summary {
  color: var(--text-muted);
  font-size: 0.875rem;
  line-height: 1.45;
  margin: 0.5rem 0 0;
}
.admin-visual-marking-keys__error {
  color: #b42318;
}
.admin-visual-marking-keys__warning {
  color: #9a6700;
  font-size: 0.875rem;
}
.admin-visual-marking-keys__trial {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border-subtle, #e5e7eb);
}
.admin-visual-marking-keys__trial h3,
.admin-visual-marking-keys__trial h4 {
  margin: 0 0 0.5rem;
}
.admin-visual-marking-keys__trial-body {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: flex-start;
  margin-top: 0.75rem;
}
.admin-visual-marking-keys__trial-qr-wrap {
  flex: 0 0 auto;
  padding: 0.5rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--border-subtle, #e5e7eb);
}
.admin-visual-marking-keys__trial-qr {
  display: block;
}
.admin-visual-marking-keys__trial-meta {
  flex: 1 1 220px;
  min-width: 200px;
}
.admin-visual-marking-keys__trial-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
}
.admin-visual-marking-keys__trial-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #9ca3af;
  flex-shrink: 0;
}
.admin-visual-marking-keys__trial-dot--on {
  background: #16a34a;
}
.admin-visual-marking-keys__trial-actions {
  margin-bottom: 0.5rem;
}
.admin-visual-marking-keys__trial-photo {
  margin-top: 1rem;
}
.admin-visual-marking-keys__trial-photo img {
  display: block;
  max-width: min(100%, 420px);
  max-height: 320px;
  object-fit: contain;
  border-radius: 8px;
  border: 1px solid var(--border-subtle, #e5e7eb);
  margin-top: 0.5rem;
}
.admin-visual-marking-keys__trial-result {
  margin-top: 1rem;
}
.admin-visual-marking-keys__trial-table code {
  font-size: 0.8rem;
}
/* /admin/bassett */
.page.admin-bassett {
  box-sizing: border-box;
  width: 100%;
  max-width: min(88rem, 100%);
  margin-inline: auto;
  padding-bottom: 2.5rem;
  min-width: 0;
}
.admin-bassett__crumb {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-bassett__crumb a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.admin-bassett__head {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.admin-bassett__head h1 {
  margin-bottom: 0.45rem;
}
.admin-bassett__head > p {
  margin: 0;
  max-width: 52rem;
  color: var(--text-muted);
  line-height: 1.55;
}
.admin-bassett__layout {
  display: grid;
  grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.admin-bassett__sidebar {
  position: sticky;
  top: 1rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  padding: 0.85rem;
  max-height: calc(100vh - 2rem);
  overflow: auto;
}
.admin-bassett__sidebar h2 {
  margin: 0 0 0.75rem;
  font-size: 1rem;
}
.admin-bassett__sidebar-filters {
  display: grid;
  gap: 0.55rem;
  margin-bottom: 0.65rem;
}
.admin-bassett__filter-field {
  display: grid;
  gap: 0.3rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett__filter-field select {
  width: 100%;
}
.admin-bassett__sidebar-count {
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.admin-bassett__specimen-item.is-inappropriate {
  opacity: 0.72;
}
.admin-bassett__meta-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.65rem 1rem;
  margin-bottom: 0.35rem;
}
.admin-bassett__review-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.admin-bassett__specimen-item.is-unsure {
  border-color: #d97706;
}
.admin-bassett__review-button.is-unsure {
  border-color: #d97706;
  color: #b45309;
}
.admin-bassett__meta-head h2 {
  margin: 0;
}
.admin-bassett__specimen-heading {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.admin-bassett__review-button.is-inappropriate {
  border-color: #b91c1c;
  color: #b91c1c;
}
.admin-bassett__specimen-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.admin-bassett__specimen-item {
  width: 100%;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: var(--bg);
  padding: 0.55rem 0.65rem;
  cursor: pointer;
}
.admin-bassett__specimen-item.is-active {
  border-color: var(--accent, #2563eb);
  box-shadow: inset 0 0 0 1px var(--accent, #2563eb);
}
.admin-bassett__specimen-id {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted);
}
.admin-bassett__specimen-title {
  display: block;
  font-size: 0.875rem;
  line-height: 1.35;
}
.admin-bassett__specimen-meta {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.admin-bassett__main {
  min-width: 0;
}
.admin-bassett__meta h2 {
  margin-bottom: 0.35rem;
}
.admin-bassett__meta h2 span {
  font-weight: 500;
  color: var(--text-muted);
}
.admin-bassett__workspace {
  margin: 1rem 0;
}
.admin-bassett__workspace-main {
  position: relative;
  isolation: isolate;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--surface);
}
.admin-bassett__workspace-toolbar {
  position: relative;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem 1rem;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.admin-bassett__workspace-toolbar h3 {
  margin: 0;
  font-size: 0.9375rem;
}
.admin-bassett__line-color-control {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.admin-bassett__line-color-label {
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett__line-color-option {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg);
  padding: 0.2rem 0.65rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.admin-bassett__line-color-option.is-active {
  border-color: var(--accent, #2563eb);
  box-shadow: inset 0 0 0 1px var(--accent, #2563eb);
}
.admin-bassett__line-color-option--white.is-active {
  background: #f8fafc;
}
.admin-bassett__line-color-option--grey.is-active {
  background: #f3f4f6;
}
.admin-bassett__baked-preview {
  margin-top: 1rem;
  padding: 0.75rem;
  border-top: 1px solid var(--border);
}
.admin-bassett__baked-preview h4 {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.admin-bassett__baked-preview img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid rgb(0 0 0 / 12%);
}
.admin-bassett__overlay-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  cursor: pointer;
  user-select: none;
}
.admin-bassett__overlay-toggle input {
  margin: 0;
}
.admin-bassett__label-canvas {
  position: relative;
  z-index: 0;
  background: var(--surface);
}
.admin-bassett__overlay-tools {
  position: relative;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.admin-bassett__overlay-reset {
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: var(--bg);
  padding: 0.2rem 0.55rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.admin-bassett__overlay-reset:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.admin-bassett__opacity-control {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  min-width: min(100%, 14rem);
}
.admin-bassett__opacity-control input[type='range'] {
  flex: 1;
  min-width: 5rem;
  margin: 0;
}
.admin-bassett__opacity-value {
  min-width: 2.5rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.admin-bassett__photo-stack {
  position: relative;
  z-index: 0;
  width: 100%;
  line-height: 0;
  background: #f3f4f6;
  padding: clamp(0.5rem, 2%, 1rem);
  box-sizing: border-box;
}
.admin-bassett__photo-stack.is-labeling {
  background-color: #eceff3;
  background-image: repeating-linear-gradient(
    -45deg,
    rgb(0 0 0 / 4%) 0,
    rgb(0 0 0 / 4%) 1px,
    transparent 1px,
    transparent 10px
  );
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  min-height: min(80vh, calc(100vh - 9rem));
  padding: 12px;
  box-sizing: border-box;
}
.admin-bassett__photo-stack.is-labeling::before {
  content: 'Non-clickable margin';
  position: absolute;
  top: 0.45rem;
  left: 0.65rem;
  z-index: 1;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: rgb(0 0 0 / 42%);
  line-height: 1.2;
  pointer-events: none;
}
.admin-bassett__diagram-workspace {
  position: relative;
  overflow: visible;
  width: 100%;
}
.admin-bassett__photo-stack.is-labeling .admin-bassett__diagram-workspace {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
}
.admin-bassett__photo-slot {
  position: relative;
  width: 100%;
  overflow: visible;
  background: #fff;
  box-shadow: 0 0 0 1px rgb(0 0 0 / 12%);
}
.admin-bassett__photo-slot.is-labeling {
  width: auto;
  max-width: 100%;
  background: transparent;
  box-shadow: none;
}
.admin-bassett__image-debug {
  margin-top: 0.75rem;
  border: 1px solid rgb(0 0 0 / 12%);
  border-radius: 0.5rem;
  background: #0f172a;
  color: #e2e8f0;
}
.admin-bassett__image-debug summary {
  cursor: pointer;
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
}
.admin-bassett__image-debug-hint {
  margin: 0;
  padding: 0 0.75rem 0.5rem;
  font-size: 0.75rem;
  color: #94a3b8;
}
.admin-bassett__image-debug-log {
  margin: 0;
  padding: 0.75rem;
  max-height: 16rem;
  overflow: auto;
  font-size: 0.6875rem;
  line-height: 1.35;
  white-space: pre-wrap;
  word-break: break-word;
  border-top: 1px solid rgb(255 255 255 / 8%);
}
.admin-bassett__label-surface {
  position: relative;
  box-sizing: border-box;
}
.bassett-label-surface {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.bassett-label-surface__inner {
  position: relative;
}
.bassett-label-surface__photo-frame {
  position: absolute;
  line-height: 0;
  overflow: visible;
}
.bassett-label-surface__photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
}
.bassett-label-surface svg {
  position: absolute;
  left: 0;
  top: 0;
  overflow: visible;
}
.admin-bassett__natural-label-surface {
  position: relative;
}
.admin-bassett__photo-stack.is-labeling .admin-bassett__natural-label-surface {
  background: #f8fafc;
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: -2px;
  box-shadow:
    0 0 0 1px rgb(37 99 235 / 18%),
    0 0 0 4px rgb(37 99 235 / 10%);
}
.admin-bassett__photo-stack.is-labeling .admin-bassett__natural-label-surface::after {
  content: 'Clickable label area';
  position: absolute;
  top: 0.35rem;
  right: 0.45rem;
  z-index: 4;
  padding: 0.12rem 0.4rem;
  border-radius: 0.3rem;
  background: rgb(37 99 235 / 92%);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.2;
  pointer-events: none;
}
.admin-bassett__photo-slot .admin-bassett__photo-base {
  width: 100%;
  height: auto;
  max-height: min(72vh, 56rem);
  object-fit: contain;
  margin-inline: auto;
}
.admin-bassett__photo-slot .bassett-label-surface__photo-frame .admin-bassett__photo-base {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
}
.admin-bassett__photo-slot.is-labeling .bassett-label-surface__photo-frame {
  outline: 1px dashed rgb(0 0 0 / 18%);
  outline-offset: 0;
}
.admin-bassett__photo-stack.is-labeling .admin-bassett__photo-slot {
  outline: none;
  box-shadow: none;
}
.admin-bassett__photo-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: crosshair;
  z-index: 3;
  overflow: visible;
  pointer-events: auto;
}
.admin-bassett__photo-overlay.is-inactive {
  pointer-events: none;
  cursor: default;
  z-index: 1;
}
.admin-bassett__photo-frame {
  position: relative;
  width: 100%;
  line-height: 0;
}
.admin-bassett__photo-base {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(72vh, 56rem);
  object-fit: contain;
  margin-inline: auto;
}
.admin-bassett__diagram-overlay-layer {
  position: absolute;
  z-index: 1;
  box-sizing: border-box;
  pointer-events: none;
}
.admin-bassett__diagram-overlay-layer.is-adjustable {
  pointer-events: none;
  z-index: 2;
  outline: 1px dashed rgb(0 0 0 / 35%);
  outline-offset: 2px;
}
.admin-bassett__photo-diagram-overlay {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
}
.admin-bassett__diagram-overlay-layer.is-adjustable .admin-bassett__photo-diagram-overlay {
  pointer-events: auto;
  cursor: grab;
}
.admin-bassett__diagram-overlay-layer.is-adjustable .admin-bassett__photo-diagram-overlay:active {
  cursor: grabbing;
}
.admin-bassett__diagram-resize-handle {
  position: absolute;
  z-index: 3;
  padding: 0;
  border: 2px solid #111;
  background: #fff;
  pointer-events: auto;
  touch-action: none;
}
.admin-bassett__diagram-resize-handle--n,
.admin-bassett__diagram-resize-handle--s {
  left: 50%;
  width: 1.35rem;
  height: 0.65rem;
  margin-left: -0.675rem;
  cursor: ns-resize;
}
.admin-bassett__diagram-resize-handle--e,
.admin-bassett__diagram-resize-handle--w {
  top: 50%;
  width: 0.65rem;
  height: 1.35rem;
  margin-top: -0.675rem;
  cursor: ew-resize;
}
.admin-bassett__diagram-resize-handle--n {
  top: -0.45rem;
  border-radius: 0.2rem 0.2rem 0.1rem 0.1rem;
}
.admin-bassett__diagram-resize-handle--s {
  bottom: -0.45rem;
  border-radius: 0.1rem 0.1rem 0.2rem 0.2rem;
}
.admin-bassett__diagram-resize-handle--e {
  right: -0.45rem;
  border-radius: 0.1rem 0.2rem 0.2rem 0.1rem;
}
.admin-bassett__diagram-resize-handle--w {
  left: -0.45rem;
  border-radius: 0.2rem 0.1rem 0.1rem 0.2rem;
}
.admin-bassett__diagram-resize-handle--nw,
.admin-bassett__diagram-resize-handle--ne,
.admin-bassett__diagram-resize-handle--sw,
.admin-bassett__diagram-resize-handle--se {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 0.15rem;
}
.admin-bassett__diagram-resize-handle--nw {
  top: -0.45rem;
  left: -0.45rem;
  cursor: nwse-resize;
}
.admin-bassett__diagram-resize-handle--ne {
  top: -0.45rem;
  right: -0.45rem;
  cursor: nesw-resize;
}
.admin-bassett__diagram-resize-handle--sw {
  bottom: -0.45rem;
  left: -0.45rem;
  cursor: nesw-resize;
}
.admin-bassett__diagram-resize-handle--se {
  right: -0.45rem;
  bottom: -0.45rem;
  cursor: nwse-resize;
}
.admin-bassett__media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 1rem 0;
}
.admin-bassett__media-card {
  margin: 0;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--surface);
}
.admin-bassett__media-card figcaption {
  padding: 0.45rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  border-bottom: 1px solid var(--border);
}
.admin-bassett__media-card img {
  display: block;
  width: 100%;
  height: auto;
}
.admin-bassett__media-card--diagram {
  grid-column: span 1;
}
.admin-bassett__diagram-wrap {
  position: relative;
  background: #fff;
}
.admin-bassett__diagram-image {
  display: block;
  width: 100%;
  height: auto;
}
.admin-bassett__diagram-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: crosshair;
}
.admin-bassett__label-line {
  stroke: #000;
  fill: none;
  stroke-linecap: round;
}
.admin-bassett__label-circle {
  fill: #fff;
  stroke: #000;
}
.admin-bassett__diagram-number {
  fill: #000;
  font-weight: 700;
  font-family: system-ui, sans-serif;
  pointer-events: none;
}
g.is-selected .admin-bassett__label-line,
g.is-selected .admin-bassett__label-circle {
  stroke: #000;
}
g.is-selected .admin-bassett__label-circle {
  fill: #fff;
}
.admin-bassett__label-draft .admin-bassett__label-circle {
  fill: #fff;
  opacity: 0.85;
}
.admin-bassett__diagram-hint {
  position: relative;
  z-index: 20;
  padding: 0.55rem 0.65rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
  background: var(--surface);
}
.admin-bassett__diagram-actions {
  position: relative;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.55rem 0.65rem 0.75rem;
  background: var(--surface);
}
.admin-bassett__chip {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg);
  padding: 0.15rem 0.55rem;
  font-size: 0.75rem;
}
.admin-bassett__chip.is-active {
  border-color: var(--accent, #2563eb);
}
.admin-bassett__labels-panel,
.admin-bassett__question-panel,
.admin-bassett__tags-panel,
.admin-bassett__marking-key-panel {
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  padding: 0.85rem;
  margin-bottom: 0.85rem;
}
.admin-bassett__labels-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  margin-bottom: 0.65rem;
}
.admin-bassett__labels-head h3,
.admin-bassett__question-panel h3,
.admin-bassett__tags-panel h3 {
  margin: 0;
}
.admin-bassett__tags-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 0.65rem;
}
.admin-bassett__tag-fields {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0.75rem;
}
@media (min-width: 960px) {
  .admin-bassett__tag-fields {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.admin-bassett__tag-field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.8125rem;
  min-width: 0;
}
.admin-bassett__tag-field span {
  color: var(--text-muted);
}
.admin-bassett__tag-field select,
.admin-bassett__tag-field input,
.admin-bassett__tag-field textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: var(--bg);
  padding: 0.45rem 0.55rem;
}
.admin-bassett__tag-reason,
.admin-bassett__tag-note {
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett__tags-actions {
  margin-top: 0.75rem;
}
.admin-bassett__muted {
  color: var(--text-muted);
  font-size: 0.8125rem;
}
.admin-bassett__marking-key-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 0.65rem;
}
.admin-bassett__marking-key-head h3 {
  margin: 0;
}
.admin-bassett__pass-rule {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.25rem;
  margin: 0.75rem 0;
}
.admin-bassett__pass-rule-field {
  flex: 0 0 auto;
  width: 7rem;
  max-width: 7rem;
}
.admin-bassett__pass-rule-helper {
  margin: 0;
  padding-bottom: 0.45rem;
  color: var(--text-muted);
  font-size: 0.8125rem;
}
.admin-bassett__marking-key-table-wrap {
  overflow: auto;
  margin-top: 0.75rem;
}
.admin-bassett__marking-key-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.admin-bassett__marking-key-table th:nth-child(1),
.admin-bassett__marking-key-table td:nth-child(1) {
  width: 3rem;
}
.admin-bassett__marking-key-table th:nth-child(4),
.admin-bassett__marking-key-table td:nth-child(4) {
  width: 6.75rem;
}
.admin-bassett__marking-key-table th,
.admin-bassett__marking-key-table td {
  border: 1px solid var(--border);
  padding: 0.45rem 0.55rem;
  vertical-align: top;
}
.admin-bassett__marking-key-table input[type='text'] {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  background: var(--bg);
  padding: 0.35rem 0.45rem;
}
.admin-bassett__marking-key-mandatory label {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
  white-space: nowrap;
}
.admin-bassett__marking-key-prose {
  margin-top: 0.75rem;
}
.admin-bassett__marking-key-prose textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: var(--bg);
  padding: 0.45rem 0.55rem;
  resize: vertical;
}
.admin-bassett__labels-head p {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett__label-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
  max-height: 18rem;
  overflow: auto;
}
.admin-bassett__label-list li {
  display: flex;
  gap: 0.45rem;
  align-items: center;
}
.admin-bassett__label-list li.is-active .admin-bassett__label-button {
  border-color: var(--accent, #2563eb);
  background: color-mix(in srgb, var(--accent, #2563eb) 8%, transparent);
}
.admin-bassett__label-button {
  flex: 1;
  display: flex;
  gap: 0.45rem;
  align-items: center;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 0.55rem;
  background: var(--bg);
  padding: 0.45rem 0.55rem;
  cursor: pointer;
}
.admin-bassett__label-number {
  font-weight: 700;
  min-width: 1.5rem;
}
.admin-bassett__label-badge {
  margin-left: auto;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #16a34a;
}
.admin-bassett__clear-arrow {
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.75rem;
  text-decoration: underline;
  cursor: pointer;
}
.admin-bassett__question-panel h3 {
  margin: 0;
}
.admin-bassett__question-hint {
  margin: 0.35rem 0 0.75rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.45;
}
.admin-bassett__question-field {
  display: grid;
  gap: 0.35rem;
}
.admin-bassett__question-field select {
  width: 100%;
}
.admin-bassett__linked {
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett__footer {
  border-top: 1px solid var(--border);
  padding-top: 0.85rem;
}
.admin-bassett__footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.admin-bassett__error {
  color: #b91c1c;
}
.admin-bassett__success {
  color: #15803d;
}
.admin-bassett__status-banner {
  margin-bottom: 0.85rem;
}
.admin-bassett__status-banner:empty {
  display: none;
}
.admin-bassett__filter-notice {
  margin: 0.35rem 0 0;
  padding: 0.55rem 0.7rem;
  border-radius: 0.55rem;
  border: 1px solid #f59e0b;
  background: rgb(245 158 11 / 10%);
  color: #b45309;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.admin-bassett-preview__empty {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.admin-bassett__footer-hint {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.admin-bassett-preview {
  position: fixed;
  inset: 0;
  z-index: 10100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.admin-bassett-preview__backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  border: none;
  background: rgb(15 23 42 / 55%);
  cursor: pointer;
}
.admin-bassett-preview__frame {
  position: relative;
  z-index: 1;
  width: min(48rem, 100%);
  max-height: min(90vh, 48rem);
}
.admin-bassett-preview__panel {
  width: 100%;
  max-height: min(90vh, 48rem);
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--surface);
  padding: 1rem 1.1rem;
  box-shadow: 0 18px 48px rgb(15 23 42 / 18%);
}
.admin-bassett-preview__panel h2 {
  margin: 0 0 0.35rem;
}
.admin-bassett-preview__intro {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  color: var(--text-muted);
  line-height: 1.45;
}
.admin-bassett-preview__warnings {
  margin: 0 0 0.85rem;
  padding-left: 1.1rem;
  color: #b45309;
  font-size: 0.8125rem;
}
.admin-bassett-preview__section + .admin-bassett-preview__section {
  margin-top: 0.85rem;
}
.admin-bassett-preview__section h3 {
  margin: 0 0 0.45rem;
  font-size: 0.875rem;
}
.admin-bassett-preview__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 0.85rem;
  margin: 0;
}
.admin-bassett-preview__meta dt {
  margin: 0;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.admin-bassett-preview__meta dd {
  margin: 0;
  font-size: 0.875rem;
}
.admin-bassett-preview__json {
  margin: 0;
  padding: 0.75rem;
  border-radius: 0.55rem;
  background: var(--bg);
  border: 1px solid var(--border);
  font-size: 0.75rem;
  line-height: 1.45;
  overflow: auto;
  max-height: 18rem;
  white-space: pre-wrap;
  word-break: break-word;
}
.admin-bassett-preview__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.55rem;
  margin-top: 1rem;
}
@media (max-width: 960px) {
  .admin-bassett__layout {
    grid-template-columns: 1fr;
  }

  .admin-bassett__sidebar {
    position: static;
    max-height: none;
  }

  .admin-bassett__media-grid {
    grid-template-columns: 1fr;
  }
}
/* Home footer sitemap band */
.home .site-index {
  flex-shrink: 0;
}
.site-index {
  display: flex;
  flex-direction: column;
  margin-left: calc(-1 * (var(--page-inline) + env(safe-area-inset-left, 0px)));
  margin-right: calc(-1 * (var(--page-inline) + env(safe-area-inset-right, 0px)));
  padding: 2.25rem calc(var(--page-inline) + env(safe-area-inset-right, 0px)) 2.25rem
    calc(var(--page-inline) + env(safe-area-inset-left, 0px));
  background: var(--site-index-bg);
  color: var(--text);
}
.site-index__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  column-gap: 5.25rem;
  row-gap: 3rem;
}
@media (min-width: 641px) {
  .site-index__inner {
    column-gap: 6rem;
  }
}
@media (max-width: 640px) {
  .site-index__inner {
    flex-direction: column;
    row-gap: 3.75rem;
  }
}
.site-index__heading {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
}
.site-index__list {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.site-index__list--emphasis li {
  color: var(--text-h);
  font-size: 0.85625rem;
  font-weight: 400;
  line-height: 1.45;
}
.site-index__link {
  color: inherit;
  text-decoration: none;
}
.site-index__link:hover {
  color: var(--text-interactive-hover);
  text-decoration: underline;
}
/* Suppress dashed “fenestrated” focus outlines on every control (global + per-component rules). */
:focus,
:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
}
