/* Search-first landing — the same flat "Quiet" design system (spec 225) as
   the rest of the app, with a more spacious hero and restrained motion. */

.landing-app {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--color-text);
}

/* ── The landing page as the same sheet (247 world, item 247 follow-up) ──
   Same certificate ornament system pool-detail/the grid already carry —
   see style.css's "ORNAMENT SYSTEM" banner for the shared primitives,
   keyframes and tokens (--ui-accent-margin/-watermark/-soft/-border) this
   reuses. Page-margin strands + a watermark rosette bleeding off the right
   edge, gated to the same ≥1080px width and ambient drift. `position:
   absolute` (not `fixed`, unlike pool-detail/the grid) because `.landing-
   app` already establishes its own positioning + clipping context
   (`position: relative; overflow: hidden` above) for the existing
   `.landing-backdrop` orbit decoration — reusing that same context keeps
   the strands/watermark scrolling WITH the page instead of fighting
   `.landing-app`'s own overflow:hidden over a `position:fixed` layer's
   containing-block rules. z-index -1 paints them below `.landing-header`/
   `.landing-main`/`.landing-footer` (explicitly z-index:1 below) without
   needing a second `isolation: isolate` — `.landing-app`'s own `position:
   relative` is already the nearest positioned ancestor for both. */
.landing-app::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  pointer-events: none;
  background-color: var(--ui-accent-margin);
  -webkit-mask-image: url('./assets/guilloche-strand.svg'), url('./assets/guilloche-strand.svg');
  mask-image: url('./assets/guilloche-strand.svg'), url('./assets/guilloche-strand.svg');
  -webkit-mask-size: 20px 50px, 20px 50px;
  mask-size: 20px 50px, 20px 50px;
  -webkit-mask-repeat: repeat-y, repeat-y;
  mask-repeat: repeat-y, repeat-y;
  -webkit-mask-position: calc(50% - 478px) 0, calc(50% + 478px) 0;
  mask-position: calc(50% - 478px) 0, calc(50% + 478px) 0;
}

.landing-app::after {
  content: '';
  position: absolute;
  top: calc(50% - 270px);
  right: -186px;
  width: 540px;
  height: 540px;
  z-index: -1;
  opacity: 0;
  pointer-events: none;
  background-color: var(--ui-accent-watermark);
  -webkit-mask-image: url('./assets/guilloche-rosette.svg');
  mask-image: url('./assets/guilloche-rosette.svg');
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transform-origin: 50% 50%;
}

@media (min-width: 1080px) {
  .landing-app::before,
  .landing-app::after {
    opacity: 1;
  }

  .landing-app::before {
    animation: ornDrift 117s ease-in-out infinite alternate;
  }

  .landing-app::after {
    animation: ornTurn 123s ease-in-out infinite alternate,
               ornBreathe 96s ease-in-out infinite alternate;
  }
}

/* Backlog 220: `landing.js:356` renders the shared `e('footer', { className:
   'app-footer' }, ...)` inside `.landing-app`, so the landing route gets the
   OPAQUE, `position: fixed; bottom: 0; z-index: 100` footer from
   `style.css:2513-2524`. That footer's clearance (`.app { padding-bottom:
   80px }`, style.css:849-853, "Space for footer") is class-scoped to `.app`
   — `.landing-app` never carried it (`grep -n "\.landing-app" style.css`
   returns zero matches before this rule), so this route never had ANY
   protection from the footer, on any scroll position. This is item 179's
   class, still live per 219's own BACKLOG row: fixed once on bare `/`
   (179), never ported, then paid for again on pool-detail 20 days later
   (217/218).

   Measured this run at 768x780, unmodified: AT REST (`scrollY=0`) the
   "Live DefiLlama data" trust-rail text sits at rect{x:449.7,y:760.5,
   w:110.9,h:18} while the footer paints rect{x:0,y:722,w:768,h:58} — fully
   covered, `elementFromPoint` at the text's lower band resolves to
   `<footer class="app-footer">`. At TRUE bottom of scroll (scrollTop 100 +
   innerHeight 780 = 880 = scrollHeight, confirmed reached) the hero-body
   paragraph at rect{x:24,y:704,w:254.3,h:36} is half-covered by the same
   footer rect and also hit-tests to it. Both match spec 220's quoted
   findings and 219-notes.md §2(c) exactly.

   Clearance alone cannot fix this: finding (1) is a MID-DOCUMENT overlap at
   scroll 0, not an end-of-document one — a `padding-bottom` only lengthens
   the document, it cannot move content already sitting inside the footer's
   fixed band at rest. This is the exact argument `pool-detail-styles.css:
   1080-1112` already records for item 218's `garden_cta` CTA, so this reuses
   218's shipped, verifier-passed pattern rather than inventing a new one:
   take the footer out of the fixed layer on this view. `.landing-app` is
   ALREADY `display: flex; flex-direction: column; min-height: 100vh`
   (immediately above), so `margin-top: auto` on the now-in-flow footer is
   the same flex sticky-footer idiom 218 used — no new layout mode, no new
   token, no new value, no new class. On a short viewport the footer still
   sits at the bottom edge; on a page whose content exceeds the viewport it
   sits after the content instead of over it, at every scroll position.

   Scoped to `.landing-app .app-footer` only — `style.css`'s `.app-footer`
   block and `.app`'s own `padding-bottom: 80px` are untouched, so the fixed
   footer stays correct for the analytics grid and every other view. */
.landing-app .app-footer {
  position: static;
  margin-top: auto;
}

.landing-backdrop {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: .8;
}

.landing-backdrop-orbit {
  position: absolute;
  border: 1px solid var(--ui-accent-border);
  border-radius: 50%;
  transform: rotate(-18deg);
  opacity: .45;
}

.landing-backdrop-orbit-one {
  width: 720px;
  height: 360px;
  top: 88px;
  right: -210px;
  animation: landing-drift-one 18s ease-in-out infinite;
}

.landing-backdrop-orbit-two {
  width: 520px;
  height: 260px;
  top: 140px;
  right: -105px;
  border-color: var(--ui-accent-margin);
  animation: landing-drift-two 22s ease-in-out infinite;
}


.landing-header,
.landing-main,
.landing-footer {
  position: relative;
  z-index: 1;
}

.landing-header {
  /* height/padding/border-radius owned by the shared header-row rule, style.css end */
  position: sticky;
  top: 0;
  z-index: 100;
  width: min(1200px, calc(100% - 48px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

/* Full-bleed band: the header row above stays inset to the shared content
   width, but its background/border-bottom need to span the whole viewport
   like the grid/pool `.app-header-sticky` band (style.css) does — this
   pseudo carries that, positioned off the header's own `position: relative`
   (above) so it never disturbs the row's own centered flex layout. */
.landing-header::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: var(--ui-surface);
  border-bottom: 1px solid var(--ui-border);
  z-index: -1;
  pointer-events: none;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.landing-header.is-scrolled::before {
  box-shadow: var(--ui-shadow-overlay);
  border-bottom-color: var(--ui-border-strong);
}

.landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-text);
  font-size: 18px;
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.landing-brand:hover { color: var(--color-text); }

.landing-brand-mark,
.landing-seed-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--color-primary);
  border-radius: 2px;
  border: 1px solid var(--ui-border);
}

.landing-brand-mark { width: 38px; height: 38px; }
.landing-leaf-mark { width: 24px; height: 24px; }

.landing-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 38px);
  margin-left: auto;
}

.landing-nav a,
.landing-mobile-nav a {
  color: var(--color-text-secondary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  transition: color var(--duration-fast) var(--ease-standard);
}

.landing-nav a:hover,
.landing-mobile-nav a:hover { color: var(--color-primary); }

.landing-header-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

.landing-icon-button,
.landing-menu-button {
  width: var(--ui-control-h, 40px);
  height: var(--ui-control-h, 40px);
  min-width: var(--ui-control-h, 40px);
  min-height: var(--ui-control-h, 40px);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-border);
  background: var(--color-background);
  color: var(--color-text-secondary);
  cursor: pointer;
  font-family: var(--font-family-base);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: .02em;
  border-radius: var(--ui-radius-sm, 8px);
  transition: color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    background var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.landing-theme-button { font-size: 18px; font-weight: var(--font-weight-normal); line-height: 1; }

.landing-icon-button:hover,
.landing-menu-button:hover { color: var(--color-primary); border-color: var(--ui-border-strong); }
.landing-icon-button:active,
.landing-menu-button:active { background: var(--ui-surface-muted); transform: translateY(1px); }

.landing-menu-button { display: none; font-size: 20px; }

/* Floating mobile navigation overlay (Zero CLS) */
.landing-mobile-nav {
  position: absolute;
  top: 56px;
  left: 16px;
  right: 16px;
  z-index: 1000;
  width: auto;
  box-sizing: border-box;
  max-height: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  background: var(--ui-surface);
  border: 1px solid var(--ui-border-strong);
  border-radius: 2px;
  box-shadow: var(--ui-shadow-overlay);
  transition: max-height 0.25s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.2s ease,
    padding 0.25s ease,
    transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translateY(-8px);
}

.landing-mobile-nav.is-open {
  max-height: 280px;
  padding: 14px 16px;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.landing-mobile-nav a {
  color: var(--color-text);
  font-size: 0.94rem;
  font-weight: 600;
  padding: 10px 14px;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
  background: var(--ui-surface-muted);
}

.landing-mobile-nav a:hover,
.landing-mobile-nav a:active {
  background: rgba(var(--color-teal-500-rgb), 0.16);
  color: var(--color-primary);
}

/* SOTA Unified 100vh Landing Page Architecture */
.landing-app {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  position: relative;
  background: radial-gradient(circle at 72% 40%, rgba(124, 201, 160, 0.08) 0%, transparent 55%),
              radial-gradient(circle at 18% 65%, rgba(124, 201, 160, 0.04) 0%, transparent 50%);
}

[data-theme="light"] .landing-app {
  background: radial-gradient(circle at 72% 40%, rgba(124, 201, 160, 0.12) 0%, transparent 55%),
              radial-gradient(circle at 18% 65%, rgba(124, 201, 160, 0.06) 0%, transparent 50%);
}

.landing-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 0;
}

.landing-spotlight-title {
  max-width: 640px;
  margin: 0 0 12px;
  color: var(--color-text);
  font-family: var(--font-family-display);
  font-size: clamp(40px, 4.8vw, 62px);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.landing-title-accent { color: var(--color-primary); }

.landing-spotlight-subhead {
  max-width: 540px;
  margin: 0 0 16px;
  color: var(--color-text-secondary);
  font-size: clamp(14px, 1.5vw, 16px);
  line-height: 1.5;
}

.landing-garden-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 420px;
  min-height: 46px;
  padding: 0 20px;
  background: var(--ui-accent, #7CC9A0) !important;
  color: #08140f !important;
  border: 1px solid var(--ui-accent, #7CC9A0) !important;
  font-family: var(--font-family-base, 'Public Sans', system-ui, sans-serif);
  font-weight: 700 !important;
  font-size: 0.92rem;
  text-decoration: none;
  box-sizing: border-box;
  cursor: pointer;
  border-radius: 2px !important;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.landing-garden-link:hover {
  background: var(--ui-accent-hover, #93D6B2) !important;
  color: #08140f !important;
  border-color: var(--ui-accent-hover, #93D6B2) !important;
}

.landing-garden-link:active {
  background: var(--ui-accent-active, #66B78D) !important;
  color: #08140f !important;
  transform: translateY(1px);
}

.landing-card-hint {
  font-family: var(--font-family-base);
  font-size: 0.70rem;
  color: var(--color-text-secondary);
  margin-top: 8px;
  text-align: center;
  line-height: 1.3;
}

/* Four nav links need ~960px on one line; below that use the menu. */
@media (max-width: 960px) {
  .landing-nav { display: none; }
  .landing-menu-button { display: inline-flex; }
}

@media (max-width: 760px) {
  .landing-header { width: min(100% - 32px, 600px); }

  .landing-spotlight-title {
    font-size: clamp(32px, 9vw, 42px);
    line-height: 1.08;
    margin-bottom: 10px;
  }
  .landing-spotlight-subhead {
    font-size: 15px;
    line-height: 1.5;
    margin-bottom: 12px;
  }
  .landing-garden-link {
    max-width: none;
  }
}

[data-theme="light"] .landing-garden-link {
  background: #2d8a5e !important;
  color: #ffffff !important;
  border-color: #2d8a5e !important;
}

[data-theme="light"] .landing-garden-link:hover {
  background: #236c49 !important;
  border-color: #236c49 !important;
  color: #ffffff !important;
}

[data-theme="light"] .landing-garden-link:active {
  background: #1c573b !important;
  color: #ffffff !important;
}
@media (max-width: 440px) {
  .landing-header { width: calc(100% - 24px); }

  .landing-brand { font-size: 16px; }
  .landing-brand-mark { width: 34px; height: 34px; }
  .landing-brand-mark .landing-leaf-mark { width: 21px; height: 21px; }
  .landing-header-actions { gap: 6px; }
}

/* ═══ PREDICTIVE UNDERWRITING HERO ═══════════════════════════════════════ */
.landing-hero-underwriting {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  align-items: center;
  gap: clamp(24px, 3.5vw, 48px);
  padding: 0;
  box-sizing: border-box;
}

.landing-uw-copy {
  min-width: 0;
}

.landing-uw-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-family: var(--font-family-base);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ui-text-secondary);
}
.landing-uw-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ui-accent);
  flex: 0 0 auto;
}

.landing-uw-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 24px 0;
}

.landing-uw-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  background: var(--ui-surface-muted, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 2px;
  font-family: var(--font-family-mono, monospace);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  letter-spacing: 0.02em;
}

.landing-uw-badge.highlight {
  color: var(--cert-green, #7cc9a0);
  border-color: rgba(124, 201, 160, 0.35);
  background: rgba(124, 201, 160, 0.08);
}

.landing-uw-cta-row {
  margin-top: 24px;
}

.landing-uw-cta-row .landing-garden-link {
  border-radius: 2px;
}

/* ── Certificate Terminal Showcase Card (Straight Edge) ────────────────── */
.landing-uw-terminal-card {
  background: var(--cert-vellum, var(--ui-surface));
  border: 1px solid var(--cert-rule-strong, var(--ui-border));
  border-radius: 2px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  box-shadow: none;
  box-sizing: border-box;
}

.landing-uw-terminal-card::before {
  content: '';
  position: absolute;
  inset: 4px;
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 1px;
  pointer-events: none;
}

[data-theme="dark"] .landing-uw-terminal-card {
  background: #0d1712;
  border-color: rgba(124, 201, 160, 0.25);
  box-shadow: none;
}

.landing-uw-card-header {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--cert-rule, var(--ui-border));
  padding-bottom: 10px;
}

.landing-uw-header-tag {
  font-family: var(--font-family-mono, monospace);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cert-green, #7cc9a0);
}

.landing-uw-score-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-family-mono, monospace);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 2px;
  background: rgba(124, 201, 160, 0.12);
  border: 1px solid rgba(124, 201, 160, 0.35);
  color: var(--cert-green, #7cc9a0);
}

.landing-uw-pool-tabs {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 4px;
  background: var(--cert-paper-deep, rgba(0, 0, 0, 0.06));
  padding: 3px;
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 2px;
}

.landing-uw-pool-tab {
  flex: 1;
  padding: 5px 8px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 1px;
  font-family: var(--font-family-mono, monospace);
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}

.landing-uw-pool-tab:hover {
  color: var(--color-text);
}

.landing-uw-pool-tab.is-active {
  background: var(--cert-green, #7cc9a0);
  color: #08140f;
  font-weight: 700;
}

.landing-uw-yield-box {
  position: relative;
  z-index: 1;
  background: var(--ui-surface-sunken);
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 2px;
  padding: 12px 14px;
  text-align: center;
}

.landing-uw-pool-title {
  font-family: var(--font-family-base, sans-serif);
  font-size: 0.80rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  margin-bottom: 2px;
}

.landing-uw-yield-val {
  font-family: var(--cert-serif, var(--font-family-display));
  font-size: clamp(30px, 3.2vw, 40px);
  font-weight: 700;
  color: var(--cert-green, #7cc9a0);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.landing-uw-forecast-text {
  font-family: var(--font-family-base, sans-serif);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  margin-top: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.landing-uw-downside-badge {
  color: var(--cert-green, #7cc9a0);
  font-weight: 600;
  font-size: 0.72rem;
}

.landing-uw-forecast-text { flex-wrap: wrap; text-align: center; }

.landing-uw-source {
  margin-top: 6px;
  font-family: var(--font-family-mono, monospace);
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  color: var(--ui-text-muted);
  text-align: center;
}
.landing-uw-source[data-source="snapshot"] { color: var(--ui-text-secondary); }

/* One-click move from the hero to the rates section (desktop snap layout). */
.landing-next-section {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 14px;
  background: var(--ui-surface);
  border: 1px solid var(--ui-border);
  border-radius: 2px;
  color: var(--ui-text-secondary);
  font-family: var(--font-family-base);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.landing-next-section:hover { color: var(--ui-text); border-color: var(--ui-border-strong); }
.landing-next-section:active { background: var(--ui-surface-muted); transform: translateX(-50%) translateY(1px); }
.landing-next-section:focus-visible { outline: none; box-shadow: var(--ui-focus-ring); }
@media (prefers-reduced-motion: reduce) {
  .landing-next-section:active { transform: translateX(-50%); }
}

/* Reserves the card's footprint while landing-pools.json loads (no CLS). */
.landing-uw-skeleton {
  min-height: 440px;
  background: var(--ui-surface-muted);
}

.landing-uw-pillars-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.landing-uw-pillar {
  padding: 7px 10px;
  background: var(--ui-surface-muted, rgba(255, 255, 255, 0.04));
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 2px;
}

.landing-uw-pillar-name {
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-secondary);
  margin-bottom: 2px;
}

.landing-uw-pillar-val {
  font-family: var(--font-family-mono, monospace);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.landing-uw-capacity-row {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 8px 12px;
  background: var(--ui-surface-sunken);
  border: 1px solid var(--cert-rule, var(--ui-border));
  border-radius: 2px;
}

.landing-uw-capacity-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.landing-uw-cap-lbl {
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-secondary);
}

.landing-uw-cap-val {
  font-family: var(--font-family-mono, monospace);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--color-text);
}

.landing-uw-terminal-footer {
  position: relative;
  z-index: 1;
  text-align: center;
  padding-top: 2px;
}

.landing-uw-terminal-jump {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--cert-green, #7cc9a0);
  text-decoration: none;
}
.landing-uw-terminal-jump:hover { text-decoration: underline; }

@media (max-width: 768px) {
  /* Mobile order: status -> headline -> the full card (in the first screen)
     -> subhead -> badges -> CTA. The copy column dissolves so its children
     can interleave with the card. */
  .landing-hero-underwriting {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-top: 0;
  }
  .landing-hero-underwriting .landing-uw-copy { display: contents; }
  .landing-hero-underwriting .landing-uw-status { order: 1; margin-bottom: 8px; }
  .landing-hero-underwriting .landing-spotlight-title { order: 2; }
  .landing-hero-underwriting .landing-uw-terminal-card { order: 3; margin: 8px 0 20px; }
  .landing-hero-underwriting .landing-spotlight-subhead { order: 4; }
  .landing-hero-underwriting .landing-uw-badges { order: 5; margin: 4px 0 16px; }
  .landing-hero-underwriting .landing-uw-cta-row { order: 6; margin-top: 0; }
  .landing-hero-underwriting .landing-card-hint { order: 7; }
  .landing-uw-terminal-card {
    padding: 16px;
  }
}



@media (prefers-reduced-motion: reduce) {
  .landing-app *,
  .landing-app *::before,
  .landing-app *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .landing-reveal { opacity: 1; transform: none; }

  /* Item 247 follow-up: the blanket rule above only compresses DURATION
     (`animation-duration: .01ms` + `iteration-count: 1`) — measured, this
     leaves `getComputedStyle().animationName` still reporting the real
     keyframe name (e.g. "ornBreathe"), just playing once, near-instantly.
     That is a materially weaker guarantee than pool-detail/the grid's own
     switch (style.css), which sets a real `animation: none` — same
     mechanism required here for the same reason (an infinite alternating
     loop that only had its duration shortened is still, technically,
     running). Covers both `.landing-app::before/::after` (pseudo-elements
     of `.landing-app` itself — NOT reached by the blanket rule above,
     which only matches descendant `*::before/::after`) and the
     `.landing-trust-section` divider/closing bands (which ARE reached by
     the blanket rule, but only for duration — this still needs to name
     them to get `animation-name: none`). */
  .landing-app::before,
  .landing-app::after,
  .landing-trust-section::before,
  .landing-trust-section::after {
    animation: none !important;
  }
}

/* ── Quiet Straight-Edge Unification ──────────────────────────────────── */
.landing-app .landing-garden-link,
.landing-app .btn,
.landing-app .seo-cta,
.landing-app a.seo-cta,
.landing-app [data-testid="landing-underwriting-cta"],
.landing-app .seo-chip {
  border-radius: 2px !important;
}
