/* Page compositions
   Shared controls and reusable surfaces live in components.css. This file gives
   each product area its own hierarchy, rhythm, and data-story composition. */

:is(.home-page, .markets-page, .detail-page, .portfolio-page, .activity-page, .learn-page) {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr);
  gap: var(--layout-section-gap);
  min-inline-size: var(--space-0);
}


:is(.home-page, .markets-page, .detail-page, .portfolio-page, .activity-page, .learn-page) > * {
  min-inline-size: var(--space-0);
}

:is(.home-page, .markets-page, .detail-page, .portfolio-page, .activity-page, .learn-page)
  :is(.section-heading, .markets-results__header) {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-6);
}


:is(.home-page, .markets-page, .detail-page, .portfolio-page, .activity-page, .learn-page)
  :is(.section-kicker, .home-hero__eyebrow, .markets-feature__eyebrow) {
  color: var(--color-accent);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  line-height: var(--leading-normal);
  text-transform: uppercase;
}

:is(.section-heading, .page-header) > div {
  display: grid;
  gap: var(--space-3);
}

.section-heading h2 {
  max-inline-size: 15ch;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 4.5vw, 4.5rem);
  line-height: 1;
}

.section-heading > div > p:last-child {
  max-inline-size: 62ch;
  color: var(--color-text-muted);
  font-size: var(--text-md);
}

:is(.page-header, .markets-intro, .learn-hero) h1 {
  max-inline-size: 22ch;
  font-size: clamp(2.25rem, 3.4vw, 3.5rem);
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: 0.96;
}
:is(.portfolio-page, .activity-page) .page-disclosure {
  max-inline-size: var(--layout-readable-max);
  padding-block-start: var(--space-5);
  border-block-start: var(--border-subtle);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-relaxed);
}


/* Home — an editorial opening followed by progressively deeper detail. */

.home-page {
  overflow: clip;
}

/*
 * Both hero columns stretch to a shared height. The copy column anchors its pitch
 * to the top and its live fundamentals rail to the bottom; the market card absorbs
 * any residual slack across its own rows. Neither side can trail off into a void.
 */
.home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1.12fr) minmax(var(--space-0), 0.88fr);
  align-items: stretch;
  gap: var(--space-14);
  padding-block: var(--space-10);
  border-block: var(--border-subtle);
}


.home-hero__copy {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: var(--space-10);
  max-inline-size: 48rem;
}

.home-hero__intro {
  display: grid;
  justify-items: start;
  gap: var(--space-7);
}

/* Break at the separator, not mid-phrase: "... CHAIN · NOT / YET TRADABLE". */
.home-hero__eyebrow {
  text-wrap: balance;
}

.home-hero__title {
  max-inline-size: 16ch;
  margin: var(--space-0);
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: var(--text-display);
  font-weight: var(--weight-semibold);
  letter-spacing: -0.045em;
  line-height: 0.92;
  text-wrap: balance;
}

.home-hero__lede {
  max-inline-size: 58ch;
  margin: var(--space-0);
  color: var(--color-text-secondary);
  font-size: clamp(var(--text-lg), 1.55vw, var(--text-xl));
  line-height: 1.65;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  padding-block-start: var(--space-2);
}

/* Real, source-backed fundamentals, pinned to the foot of the copy column. */
.home-hero__facts {
  display: grid;
  align-self: end;
  gap: var(--space-3);
}

.home-hero__facts-label {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: var(--space-0);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.home-hero__facts-ticker {
  padding: var(--space-1) var(--space-2);
  border: var(--border-default);
  border-radius: var(--radius-xs);
  color: var(--color-text);
}

/* Hero scale for the shared primitive: these are the page's headline evidence. */
.home-hero__facts .asset-fundamentals {
  gap: var(--space-2) var(--space-8);
  padding-block: var(--space-5);
}

.home-hero__facts .asset-fundamentals__value {
  font-size: clamp(var(--text-2xl), 2.4vw, var(--text-4xl));
  letter-spacing: var(--tracking-tight);
}

.home-hero__visual {
  position: relative;
  display: grid;
  min-inline-size: var(--space-0);
}


.hero-market-card {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--space-7);
  align-content: space-between;
  inline-size: 100%;
  padding: var(--space-8);
  overflow: clip;
  border: var(--border-strong);
  border-color: var(--color-border-strong);
  border-radius: var(--radius-xl);
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow-lg);
  transition: var(--transition-colors);
}


.hero-market-card__header,
.hero-choice-row__header,
.hero-market-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.hero-market-card__header {
  padding-block-end: var(--space-1);
}


.hero-market-card__yield {
  display: grid;
  gap: var(--space-5);
}

/*
 * The two return paths read as a list, not as cards nested inside a card. Only
 * the live quote keeps a frame, because it is the one fact that moves.
 */
.hero-choice-row {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr) auto;
  gap: var(--space-2) var(--space-5);
}

.hero-choice-row--reference {
  gap: var(--space-3) var(--space-5);
  padding: var(--space-5);
  border: var(--border-default);
  border-color: var(--color-border-strong);
  border-radius: var(--radius-lg);
  background: var(--color-surface-high);
}


.hero-choice-row__header {
  grid-column: 1 / -1;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

.hero-choice-row__value {
  display: grid;
  align-self: center;
  gap: var(--space-1);
  color: var(--color-text);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  line-height: var(--leading-none);
}

.hero-choice-row__value strong {
  font-size: var(--text-2xl);
  font-weight: var(--weight-medium);
}

.hero-choice-row__value small {
  color: var(--color-text-muted);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  line-height: var(--leading-snug);
}


.hero-choice-row__copy {
  grid-column: 1 / -1;
  max-inline-size: 46ch;
  margin: var(--space-0);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-normal);
  text-align: start;
  text-wrap: pretty;
}


.hero-market-card__footer {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}


.market-spotlight,
.strategy-explainer,
.explainer {
  display: grid;
  gap: var(--space-8);
}

.spotlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  align-items: stretch;
  gap: var(--layout-card-gap);
}

.spotlight-grid .spotlight-card {
  block-size: 100%;
  align-content: space-between;
}

.strategy-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
  align-items: stretch;
  gap: var(--space-0);
  overflow: hidden;
  border: var(--border-strong);
  border-radius: var(--radius-card);
}

/*
 * The two cards are stretched to a shared height, so whichever has less to say
 * used to trail off into dead space \u2014 321px of it once the PT card's disclosure
 * grew. Both cards are header / title / description / facts / footnote, so the
 * facts row takes the slack and the "May fit when" footnotes land flush with
 * each other at the foot of both columns.
 */
.strategy-choice-grid .strategy-choice-card {
  grid-template-rows: auto auto auto 1fr auto;
  border: var(--space-0);
  border-radius: var(--space-0);
  box-shadow: none;
}

/*
 * The facts list takes the slack row, so it must pack its own rows at the top:
 * left to stretch it pulls every dt away from its dd. The gap belongs in one
 * place, between the last fact and the footnote.
 */
.strategy-choice-grid .strategy-choice-card__facts {
  align-content: start;
}

.strategy-choice-grid .strategy-choice-card__example {
  align-self: end;
}

.strategy-choice-grid .strategy-choice-card + .strategy-choice-card {
  border-inline-start: var(--border-default);
}

.strategy-choice-card--dividend {
  margin-block-start: var(--space-0);
}

/*
 * A sidenote layout. The intro is short and the step list is long, so the intro
 * rides the scroll rather than leaving a one-sided hole under itself; it is
 * centred against the list at rest so the band never reads as half-empty.
 */
.explainer {
  grid-template-columns: minmax(var(--space-0), 4fr) minmax(var(--space-0), 8fr);
  align-items: center;
  padding-block: var(--space-16);
  border-block: var(--border-strong);
}

.explainer__intro {
  position: sticky;
  top: var(--layout-sticky-offset);
  display: grid;
  gap: var(--space-4);
  max-inline-size: 34ch;
}

.explainer__steps {
  display: grid;
}

.explainer-step {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(var(--space-0), 1fr) auto;
  align-items: start;
  gap: var(--space-6);
  padding-block: var(--space-8);
  border-block-start: var(--border-subtle);
}

.explainer-step:last-child {
  border-block-end: var(--border-subtle);
}

.explainer-step__number {
  display: grid;
  place-items: center;
  inline-size: var(--size-control-lg);
  block-size: var(--size-control-lg);
  border: var(--border-width) solid #ffffff;
  border-radius: var(--radius-pill);
  background: #ffffff;
  color: #000000;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  box-shadow: 0 10px 30px rgb(255 255 255 / 0.08);
}

.explainer-step__content {
  display: grid;
  gap: var(--space-2);
  max-inline-size: 54ch;
}

.explainer-step__content :is(h3, p) {
  margin: var(--space-0);
}

.explainer-step__content p {
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

.explainer-step__visual {
  display: grid;
  place-items: center;
  min-inline-size: calc(var(--space-16) * 2);
  min-block-size: var(--size-control-lg);
  border-inline: var(--border-subtle);
  color: var(--color-accent);
}




.trust-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  border-block: var(--border-subtle);
}

.trust-strip__item {
  display: flex;
  flex: 1 1 var(--layout-sidebar-width);
  align-items: center;
  gap: var(--space-3);
  min-block-size: var(--size-control-lg);
  padding: var(--space-4) var(--space-5);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}
.trust-strip__item > div {
  display: grid;
  gap: var(--space-1);
}

.trust-strip__item > div > span {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}


.trust-strip__item:not(:last-child) {
  border-inline-end: var(--border-subtle);
}

.home-page .eligibility-note {
  max-inline-size: var(--layout-readable-max);
  margin-inline: auto;
}

/* Markets — strong feature narrative above a deliberately dense catalog. */

.markets-page {
  gap: var(--space-12);
}

.markets-intro {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 4fr) minmax(var(--space-0), 5fr);
  align-items: end;
  gap: var(--space-10);
  padding-block-end: var(--space-6);
  border-block-end: var(--border-subtle);
}

.markets-intro > p {
  max-inline-size: 58ch;
  color: var(--color-text-secondary);
}


.markets-intro :is(h1, p) {
  margin: var(--space-0);
}


.markets-toolbar {
  position: sticky;
  z-index: var(--z-sticky);
  top: var(--layout-sticky-offset);
  display: grid;
  gap: var(--space-5);
  padding: var(--space-5);
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-glass);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(var(--blur-glass)) saturate(120%);
}

.markets-toolbar__primary {
  display: grid;
  min-inline-size: var(--space-0);
}

.markets-filter-toggle {
  display: none;
}

.markets-filter-toggle__icon {
  display: inline-grid;
  inline-size: var(--size-icon-sm);
  block-size: var(--size-icon-sm);
  place-items: center;
  transition: var(--transition-transform);
}

.markets-filter-toggle[aria-expanded="true"] .markets-filter-toggle__icon {
  transform: rotate(45deg);
}


.markets-search {
  min-inline-size: var(--space-0);
  inline-size: 100%;
}

.markets-filters,
.markets-filter-group,
.markets-filter-group__options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.markets-filters {
  gap: var(--space-4) var(--space-8);
}

.markets-filter-group {
  gap: var(--space-3);
}

.markets-filter-group__label {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.markets-filter-group__options {
  gap: var(--space-2);
}

.markets-sort {
  margin-inline-start: auto;
}

.markets-results {
  display: grid;
  gap: var(--space-5);
}

.markets-results__header {
  min-block-size: var(--size-touch-min);
}

.markets-results__count {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}
.markets-results__hint {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}



.markets-table {
  min-inline-size: calc(var(--space-16) * 15);
}


.markets-table :is(th, td):first-child {
  inline-size: 30%;
}

.markets-table__asset {
  min-inline-size: var(--layout-grid-min);
}


.markets-cards {
  display: none;
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
  gap: var(--layout-card-gap);
}

.markets-cards .market-card {
  min-inline-size: var(--space-0);
}

.markets-empty {
  display: grid;
  place-items: center;
  min-block-size: calc(var(--space-16) * 5);
  padding: var(--space-12);
  border-block: var(--border-subtle);
}

/* Market detail — one compact exchange surface directly under the shell. */

.page-content:has(> .detail-page[data-market-id]) {
  display: flex;
  max-inline-size: none;
  padding: var(--space-0);
  margin-inline: var(--space-0);
}

.detail-page[data-market-id] {
  flex: 1 1 auto;
  grid-template-rows: minmax(var(--space-0), 1fr);
  min-block-size: var(--space-0);
  block-size: calc(100dvh - var(--layout-header-height));
  gap: var(--space-0);
  overflow: hidden;
}

.detail-layout {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr) clamp(21rem, 24vw, 26rem);
  align-items: stretch;
  min-block-size: var(--space-0);
  block-size: 100%;
  gap: var(--space-0);
}

.detail-main {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr);
  grid-template-rows: minmax(var(--space-0), 1fr);
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
}

.detail-page[data-market-id] .lighter-chart-terminal {
  min-block-size: var(--space-0);
  block-size: 100%;
  margin-block-end: var(--space-0);
  border: var(--space-0);
  border-inline-end: var(--border-default);
  border-radius: var(--radius-none);
  box-shadow: none;
}

.detail-page[data-market-id] .terminal-embed-wrap {
  flex: 1 1 auto;
  min-block-size: var(--space-0);
  block-size: auto;
}

.detail-page[data-market-id] .terminal-embed-wrap iframe {
  border-radius: var(--radius-none);
}

.detail-trade-rail {
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
}

.detail-trade-rail .trade-panel {
  block-size: 100%;
  max-block-size: none;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  border: var(--space-0);
  border-radius: var(--radius-none);
  box-shadow: none;
}

.detail-trade-rail [data-trade-mode-panel="trade"] > .trade-balance {
  display: grid;
  grid-template-columns: max-content minmax(var(--space-0), 1fr);
  align-items: start;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-5) var(--space-0);
}

.detail-trade-rail [data-trade-mode-panel="trade"] > .trade-balance > :last-child {
  min-inline-size: var(--space-0);
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  text-align: end;
}
.detail-trade-rail [data-trade-mode-panel="yield"] > .trade-side-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
}


.detail-trade-rail .amount-field {
  grid-template-columns: minmax(var(--space-0), 1fr) max-content;
}

.detail-trade-rail .amount-currency {
  flex: none;
  min-inline-size: max-content;
  inline-size: max-content;
  justify-self: end;
  white-space: nowrap;
}

.chart-hud-status {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-block-end: var(--space-1);
}

.hud-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #00f2fe;
}

.hud-feed-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(0, 242, 254, 0.08);
  border: 1px solid rgba(0, 242, 254, 0.2);
  color: #00f2fe;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
}

.pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00f2fe;
  box-shadow: 0 0 8px #00f2fe;
  animation: pulse-hud 1.8s infinite ease-in-out;
}

.chart-stats-hud {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4) var(--space-6);
  padding: var(--space-2) var(--space-4);
  margin-block: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.hud-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hud-label {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.45);
}

.hud-stat strong {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-text);
}

.price-chart-svg .chart-line {
  stroke: #00f2fe;
  stroke-width: 2.5px;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.price-chart-svg.is-negative .chart-line {
  stroke: #ff3b69;
}

.price-chart-svg .chart-pulse-dot {
  color: #00f2fe;
}

.price-chart-svg.is-negative .chart-pulse-dot {
  color: #ff3b69;
}

.price-chart-svg .chart-pulse-ring {
  color: #00f2fe;
  animation: pulse-chart-ring 2s infinite ease-out;
  transform-origin: center;
}

.price-chart-svg.is-negative .chart-pulse-ring {
  color: #ff3b69;
}

@keyframes pulse-hud {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(0.8); }
}

@keyframes pulse-chart-ring {
  0% { r: 4px; opacity: 0.8; }
  100% { r: 18px; opacity: 0; }
}

.chart-range {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.chart-source {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3) var(--space-5);
  padding-block-start: var(--space-4);
  border-block-start: var(--border-subtle);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.chart-source-link {
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  text-decoration: none;
}

@media (hover: hover) {
  .chart-source-link:hover {
    color: var(--color-accent);
  }
}

.chart-data-state {
  place-items: center;
  min-block-size: calc(var(--space-16) * 3);
  border-block-end: var(--border-subtle);
}

.chart-data-state > div {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  max-inline-size: 42ch;
  gap: var(--space-2);
  padding: var(--space-6);
  color: var(--color-text-muted);
  text-align: center;
}

.chart-data-state strong {
  color: var(--color-text);
}

.chart-data-state.is-loading {
  background:
    linear-gradient(105deg, transparent 35%, var(--color-highlight) 50%, transparent 65%)
      0 0 / 200% 100%,
    var(--color-surface-elevated);
  animation: chart-loading-sweep 2.4s var(--ease-in-out) infinite;
}

.chart-data-state.is-unavailable {
  background: var(--color-surface-elevated);
}

.chart-retry {
  margin-block-start: var(--space-3);
}

@keyframes chart-loading-sweep {
  to {
    background-position: -200% 0;
  }
}


.price-chart {
  position: relative;
  display: grid;
  align-items: stretch;
  min-inline-size: var(--space-0);
  aspect-ratio: 16 / 7;
  overflow: hidden;
  border-block-end: var(--border-subtle);
  background:
    linear-gradient(var(--color-border-subtle) var(--border-width), transparent var(--border-width)) 0 25% / 100% 25%,
    linear-gradient(90deg, var(--color-border-subtle) var(--border-width), transparent var(--border-width)) 25% 0 / 25% 100%;
}

.price-chart-svg {
  inline-size: 100%;
  block-size: 100%;
  overflow: visible;
}

.chart-grid {
  color: var(--color-border-subtle);
  stroke: currentColor;
}

.chart-area {
  fill: var(--color-accent-soft);
}

.chart-line {
  fill: none;
  stroke: var(--color-accent);
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.strategy-metric-legend {
  max-inline-size: var(--layout-readable-max);
  padding: var(--space-4);
  border-inline-start: var(--border-accent);
  background: var(--color-accent-softer);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}


.contract-link {
  display: inline-flex;
  min-block-size: var(--size-touch-min);
  align-items: center;
  gap: var(--space-2);
  margin-block-start: var(--space-2);
  color: var(--color-accent);
  font-size: var(--text-sm);
  overflow-wrap: anywhere;
}



/* Portfolio — one dominant value, then allocation and holdings evidence. */

.portfolio-page {
  gap: var(--space-12);
}

.portfolio-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(var(--space-0), 7fr) minmax(var(--space-0), 5fr);
  align-items: end;
  gap: var(--space-8);
  margin-block-end: var(--space-0);
  padding: var(--space-10);
  overflow: clip;
  border-block: var(--border-strong);
  background:
    radial-gradient(circle at 86% 30%, var(--color-accent-soft), transparent 32%),
    linear-gradient(120deg, var(--color-highlight), transparent 38%);
}

.portfolio-hero > * {
  position: relative;
  z-index: 1;
}

.portfolio-hero > div {
  max-inline-size: var(--layout-readable-max);
}
.portfolio-hero > .button {
  justify-self: end;
}



.portfolio-hero::after {
  position: absolute;
  inset: calc(var(--space-16) * -1) calc(var(--space-16) * -1) auto auto;
  inline-size: calc(var(--space-16) * 4);
  aspect-ratio: 1;
  border: var(--space-2) solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  box-shadow:
    0 0 0 var(--space-4) var(--color-border-subtle),
    0 0 0 var(--space-9) var(--color-border-subtle);
  content: "";
  pointer-events: none;
}

.portfolio-value {
  position: relative;
  display: grid;
  grid-template-columns: minmax(var(--space-0), 7fr) minmax(var(--space-0), 5fr);
  align-items: center;
  gap: var(--space-8);
  padding: var(--space-8);
  overflow: clip;
  border-color: var(--color-border-strong);
  background:
    radial-gradient(circle at 8% 8%, var(--color-accent-soft), transparent 34%),
    var(--gradient-surface);
  box-shadow: var(--shadow-md);
}

.portfolio-value::after {
  position: absolute;
  inset: auto calc(var(--space-16) * -1) calc(var(--space-16) * -1) auto;
  inline-size: calc(var(--space-16) * 3);
  aspect-ratio: 1;
  border: var(--border-subtle);
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, var(--color-highlight), transparent 66%);
  content: "";
  pointer-events: none;
}

.portfolio-value__primary,
.portfolio-value__meta {
  position: relative;
  z-index: 1;
}

.portfolio-value__primary {
  display: grid;
  justify-items: start;
  gap: var(--space-3);
}


.portfolio-value__label {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.portfolio-value__amount {
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: var(--text-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-none);
}

.portfolio-value__change {
  display: inline-flex;
  align-items: center;
  min-block-size: var(--size-control-sm);
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
}


.portfolio-value__meta {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr);
  max-inline-size: none;
  margin: var(--space-0);
  padding-inline-start: var(--space-8);
  border-inline-start: var(--border-subtle);
}

.portfolio-value__meta .stat-card {
  padding-block: var(--space-4);
  border-block-start: var(--border-subtle);
}

.portfolio-value__meta .stat-card:last-child {
  border-block-end: var(--border-subtle);
}


.portfolio-layout {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 7fr) minmax(var(--space-0), 5fr);
  align-items: start;
  gap: var(--space-8);
}

.allocation-card {
  position: relative;
  display: grid;
  gap: var(--space-6);
  padding: var(--space-6);
  overflow: clip;
}



.allocation-card::before {
  position: absolute;
  inset: calc(var(--space-16) * -1) calc(var(--space-16) * -1) auto auto;
  inline-size: calc(var(--space-16) * 3);
  aspect-ratio: 1;
  border: var(--border-subtle);
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, var(--color-highlight), transparent 64%);
  content: "";
  pointer-events: none;
}

.allocation-card > * {
  position: relative;
  z-index: 1;
}
.portfolio-note {
  position: sticky;
  top: var(--layout-sticky-offset);
  display: grid;
  gap: var(--space-4);
  border-block-start-color: var(--color-border-accent);
  background:
    linear-gradient(135deg, var(--color-accent-softer), transparent 42%),
    var(--gradient-surface);
}

.portfolio-note p {
  color: var(--color-text-secondary);
}

.portfolio-note a {
  justify-self: start;
  color: var(--color-accent);
  font-weight: var(--weight-semibold);
}



.allocation-list {
  display: grid;
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
}

.allocation-item {
  display: grid;
  gap: var(--space-3);
  padding-block: var(--space-4);
  border-block-start: var(--border-subtle);
}

.allocation-item__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.allocation-item__header > div,
.allocation-item__value {
  display: grid;
  gap: var(--space-1);
}

.allocation-item__header span {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.allocation-item__value {
  flex: none;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  text-align: end;
}


.allocation-bar {
  grid-column: 1 / -1;
  block-size: var(--space-2);
  overflow: hidden;
  border-radius: var(--radius-pill);
  background: var(--color-surface-active);
  box-shadow: var(--shadow-inset);
}

.allocation-bar__fill {
  block-size: 100%;
  min-inline-size: var(--space-1);
  border-radius: inherit;
  background: var(--gradient-accent);
  box-shadow: var(--shadow-accent);
}

.holdings-section {
  display: grid;
  min-inline-size: var(--space-0);
  gap: var(--space-5);
}

.holdings-table {
  min-inline-size: 100%;
  font-variant-numeric: tabular-nums;
}

.holdings-table__head,
.holding-card {
  display: grid;
  grid-template-columns:
    minmax(var(--space-0), 3fr)
    minmax(var(--space-0), 2fr)
    minmax(var(--space-0), 2fr)
    minmax(var(--space-0), 1fr)
    minmax(var(--space-0), 2fr)
    minmax(calc(var(--space-16) * 2), auto);
  align-items: center;
  gap: var(--space-3);
}

.holding-card {
  min-inline-size: var(--space-0);
  min-block-size: calc(var(--size-touch-min) + var(--space-6));
  padding: var(--space-4);
}

.holding-cell {
  display: grid;
  gap: var(--space-1);
  min-inline-size: var(--space-0);
}

.holding-cell--asset {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.holding-cell--asset > span:last-child {
  display: grid;
  gap: var(--space-1);
  min-inline-size: var(--space-0);
}

.holding-symbol {
  display: grid;
  flex: none;
  place-items: center;
  inline-size: var(--size-touch-min);
  aspect-ratio: 1;
  border: var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--gradient-metal);
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.holding-card__action {
  justify-self: end;
}

.holding-cell--action {
  justify-items: end;
}


/* Activity — chronological continuity rather than disconnected status cards. */

.activity-page {
  gap: var(--space-10);
}

.activity-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(var(--space-0), 1fr));
  border-block: var(--border-subtle);
}

.activity-summary > * {
  min-inline-size: var(--space-0);
  padding: var(--space-6);
}

.activity-summary > *:not(:first-child) {
  border-inline-start: var(--border-subtle);
}

.activity-page > section[aria-labelledby="activity-list-title"] {
  display: grid;
  gap: var(--space-5);
}

.activity-filters {
  position: sticky;
  z-index: var(--z-sticky);
  top: var(--layout-sticky-offset);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-glass);
  backdrop-filter: blur(var(--blur-glass));
}


.activity-timeline {
  position: relative;
  display: grid;
}

.activity-pagination {
  display: flex;
  justify-content: center;
  padding-block: var(--space-4);
}


.activity-timeline::before {
  position: absolute;
  inset: var(--space-3) auto var(--space-3) calc(var(--space-3) / 2);
  inline-size: var(--border-width);
  background: linear-gradient(var(--color-border-accent), var(--color-border-subtle));
  content: "";
}

.activity-row {
  position: relative;
  display: grid;
  grid-template-columns: var(--space-3) minmax(var(--space-0), 1fr) auto auto;
  align-items: center;
  gap: var(--space-6);
  min-block-size: calc(var(--size-touch-min) + var(--space-8));
  padding-block: var(--space-5);
  border-block-end: var(--border-subtle);
}

.activity-row__marker {
  position: relative;
  z-index: 1;
  display: grid;
  grid-column: 1;
  place-items: center;
  inline-size: var(--space-3);
  aspect-ratio: 1;
  border: var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--color-surface-elevated);
  color: var(--color-accent);
  font-size: var(--text-xs);
}


.activity-row:first-child .activity-row__marker {
  border-color: var(--color-border-accent);
  background: var(--color-accent);
  box-shadow: var(--shadow-accent);
}

.activity-row__main {
  display: grid;
  gap: var(--space-2);
  min-inline-size: var(--space-0);
}

.activity-row__main :is(strong, p) {
  margin: var(--space-0);
}
.activity-row__title,
.activity-row__reference {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
}

.activity-row__reference {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.activity-row__reference small {
  flex-basis: 100%;
}


.activity-row__main p,
.activity-row__meta {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.activity-row__meta {
  display: grid;
  gap: var(--space-1);
  text-align: end;
}

.activity-row__amount {
  display: grid;
  justify-items: end;
  gap: var(--space-1);
  min-inline-size: 11ch;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  text-align: end;
}

.activity-row__amount span {
  color: var(--color-text-muted);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
}


/* Learn — calm editorial education with reference material and sober risk. */

.learn-page {
  gap: var(--space-14);
}

.learn-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(var(--space-0), 7fr) minmax(var(--space-0), 5fr);
  align-items: end;
  gap: var(--space-12);
  min-block-size: calc(var(--space-16) * 5);
  padding: var(--space-10);
  overflow: clip;
  border-block: var(--border-strong);
  background:
    linear-gradient(118deg, var(--color-highlight), transparent 38%),
    radial-gradient(circle at 84% 28%, var(--color-accent-soft), transparent 34%);
}

.learn-hero::before {
  position: absolute;
  inset: calc(var(--space-16) * -1) calc(var(--space-16) * -1) auto auto;
  inline-size: calc(var(--space-16) * 5);
  aspect-ratio: 1;
  border: var(--border-default);
  border-radius: var(--radius-pill);
  background:
    radial-gradient(circle, transparent 47%, var(--color-border-strong) 48%, transparent 49%),
    radial-gradient(circle, var(--color-highlight), transparent 68%);
  box-shadow:
    0 0 0 var(--space-8) var(--color-border-subtle),
    inset 0 0 var(--space-16) var(--color-surface);
  content: "";
  pointer-events: none;
}

.learn-hero > * {
  position: relative;
  z-index: 1;
}

.learn-hero :is(h1, p) {
  margin: var(--space-0);
}

.learn-hero h1 {
  max-inline-size: 13ch;
  font-size: var(--text-display);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-none);
  text-wrap: balance;
}

.learn-hero__copy > p:not(.eyebrow) {
  max-inline-size: 52ch;
  color: var(--color-text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
}

.learn-hero__copy {
  display: grid;
  justify-items: start;
  gap: var(--space-5);
}

.learn-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-5);
}

.learn-hero__actions > span {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.learn-hero__note {
  display: grid;
  align-content: start;
  gap: var(--space-4);
  border-block-start-color: var(--color-warning-border);
  background:
    linear-gradient(145deg, var(--color-warning-soft), transparent 36%),
    var(--gradient-surface);
}

.learn-hero__note h2 {
  font-size: var(--text-2xl);
}

.learn-hero__note p {
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

.learn-topic-nav {
  position: sticky;
  z-index: var(--z-sticky);
  top: var(--layout-sticky-offset);
  display: flex;
  gap: var(--space-2);
  max-inline-size: 100%;
  padding: var(--space-2);
  overflow-x: auto;
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-glass);
  backdrop-filter: blur(var(--blur-glass));
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.learn-topic-nav button {
  flex: 0 0 auto;
  min-block-size: var(--size-touch-min);
}

.learn-section,
.architecture-section,
.routing-section,
.official-sources,
.faq-section,
.eligibility-section {
  display: grid;
  gap: var(--space-8);
}

:is(
  #plain-language,
  #maturity,
  #risks,
  #eligibility,
  #architecture,
  #routing,
  #faq
) {
  scroll-margin-block-start: calc(var(--layout-sticky-offset) + var(--size-control-lg) + var(--space-6));
}


.learn-grid {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 7fr) minmax(var(--space-0), 5fr);
  align-items: stretch;
  gap: var(--layout-card-gap);
}

.lesson-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: var(--space-4);
  min-block-size: calc(var(--space-16) * 3);
  padding: var(--space-6);
  overflow: clip;
  transition: var(--transition-colors), var(--transition-transform);
}


.lesson-card::before {
  position: absolute;
  inset: var(--space-0) var(--space-0) auto;
  block-size: var(--border-width);
  background: linear-gradient(90deg, var(--color-border-strong), transparent 70%);
  content: "";
}

a.lesson-card:hover,
a.lesson-card:focus-visible {
  border-color: var(--color-border-strong);
  background-color: var(--color-surface-hover);
  transform: translateY(calc(var(--space-1) * -1));
}


.lesson-card :is(h2, h3, p) {
  position: relative;
  z-index: 1;
  margin: var(--space-0);
}

.lesson-card p {
  max-inline-size: 64ch;
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

.lesson-card--example {
  grid-template-columns: minmax(var(--space-0), 3fr) minmax(var(--space-0), 9fr);
  align-items: start;
  min-block-size: var(--space-0);
  background:
    radial-gradient(circle at 100% 0%, var(--color-accent-soft), transparent 34%),
    var(--gradient-surface);
}

.lesson-card--example .lesson-card__fineprint {
  grid-column: 1 / -1;
  padding-block-start: var(--space-4);
  border-block-start: var(--border-subtle);
  font-size: var(--text-xs);
}

.example-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
  gap: var(--space-6);
}

.example-comparison > div {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding-block-start: var(--space-4);
  border-block-start: var(--border-accent);
}

.example-comparison > div:last-child {
  border-block-start-color: var(--color-info-border);
}

.glossary-section,
.risk-section {
  display: grid;
  gap: var(--space-8);
  padding-block: var(--space-8);
  border-block: var(--border-subtle);
}
.learn-page .section-heading--centered {
  justify-content: center;
  text-align: center;
}

.learn-page .section-heading--centered > div {
  display: grid;
  justify-items: center;
  gap: var(--space-2);
  max-inline-size: var(--layout-readable-max);
}


.glossary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
  gap: var(--space-5);
}

.glossary-term {
  position: relative;
  display: grid;
  align-content: start;
  gap: var(--space-5);
  min-inline-size: var(--space-0);
  padding: var(--space-6);
  overflow: clip;
}

.glossary-term--principal {
  border-color: var(--color-border-accent);
  background:
    radial-gradient(circle at 100% 0%, var(--color-accent-soft), transparent 38%),
    var(--gradient-surface);
}

.glossary-term--yield {
  border-color: var(--color-info-border);
  background:
    linear-gradient(145deg, var(--color-highlight), transparent 36%),
    var(--gradient-surface);
}

.glossary-term__number {
  position: absolute;
  inset: var(--space-5) var(--space-5) auto auto;
  color: var(--color-border-strong);
  font-family: var(--font-mono);
  font-size: var(--text-3xl);
  line-height: var(--leading-none);
}

.glossary-term > :not(.glossary-term__number) {
  position: relative;
  z-index: 1;
}

.glossary-term > h3 {
  max-inline-size: 25ch;
}

.glossary-term > p:not(.eyebrow) {
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

.glossary-term dl {
  display: grid;
  margin: var(--space-0);
  border-block-start: var(--border-subtle);
}

.glossary-term dl > div {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 2fr) minmax(var(--space-0), 3fr);
  gap: var(--space-4);
  padding-block: var(--space-3);
  border-block-end: var(--border-subtle);
}

.glossary-term :is(dt, dd) {
  margin: var(--space-0);
  font-size: var(--text-xs);
  line-height: var(--leading-normal);
}

.glossary-term dt {
  color: var(--color-text-muted);
}

.glossary-term dd {
  color: var(--color-text-secondary);
  text-align: end;
}

.maturity-walkthrough {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(var(--space-0), 1fr));
  gap: var(--layout-card-gap);
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
}

.maturity-walkthrough .lesson-card {
  min-block-size: calc(var(--space-16) * 4);
}

.maturity-walkthrough .lesson-card > span {
  color: var(--color-accent);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}


.risk-section {
  position: relative;
  grid-template-columns: minmax(var(--space-0), 4fr) minmax(var(--space-0), 8fr);
  padding: var(--space-8);
  overflow: clip;
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, var(--color-warning-soft), transparent 24%),
    var(--color-surface);
}

.risk-section::after {
  position: absolute;
  inset: auto calc(var(--space-16) * -1) calc(var(--space-16) * -1) auto;
  inline-size: calc(var(--space-16) * 3);
  aspect-ratio: 1;
  border: var(--border-warning);
  border-radius: var(--radius-pill);
  content: "";
  opacity: var(--opacity-muted);
  pointer-events: none;
}

.risk-section > * {
  position: relative;
  z-index: 1;
}

.risk-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
  gap: var(--space-6);
}

.risk-section .risk-item {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding-block-start: var(--space-4);
  border-block-start: var(--border-warning);
}

.risk-section .risk-item :is(h3, p) {
  margin: var(--space-0);
}

.risk-section .risk-item p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.architecture-flow {
  display: grid;
  margin: var(--space-0);
  padding: var(--space-0);
  border-block: var(--border-subtle);
  list-style: none;
}

.architecture-flow > li {
  display: grid;
  grid-template-columns: auto minmax(var(--space-0), 1fr);
  gap: var(--space-5);
  padding-block: var(--space-5);
  border-block-end: var(--border-subtle);
}

.architecture-flow > li:last-child {
  border-block-end: var(--space-0);
}

.architecture-flow > li > span {
  display: grid;
  place-items: center;
  inline-size: var(--size-touch-min);
  aspect-ratio: 1;
  border: var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--gradient-metal);
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.architecture-flow > li > div {
  display: grid;
  gap: var(--space-2);
  max-inline-size: var(--layout-readable-max);
}

.architecture-flow p,
.official-sources > p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.routing-status {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.routing-status > span {
  display: grid;
  inline-size: var(--size-control-lg);
  aspect-ratio: 1;
  place-items: center;
  border-radius: var(--radius-pill);
  background: #ffffff;
  color: #000000;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
}

.routing-status > div {
  display: grid;
  gap: var(--space-1);
}

.routing-status small {
  color: var(--color-text-muted);
}

.contract-registry {
  display: grid;
  margin: var(--space-2) var(--space-0);
  padding: var(--space-0);
  border-block: var(--border-subtle);
  list-style: none;
}

.contract-registry li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-4);
  min-block-size: var(--size-touch-min);
  padding-block: var(--space-3);
  border-block-end: var(--border-subtle);
}

.contract-registry li:last-child {
  border-block-end: var(--space-0);
}

.contract-registry span {
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

.contract-registry a {
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.readiness-gate {
  border-color: #ffffff;
  background: #ffffff;
  color: #000000;
}

.readiness-gate :is(h3, strong) {
  color: #000000;
}

.readiness-gate :is(p, li) {
  color: #262626;
}

.readiness-gate .eyebrow {
  color: #525252;
}

.readiness-gate ul {
  display: grid;
  gap: var(--space-3);
  padding-inline-start: var(--space-5);
}

.external-resource {
  min-block-size: calc(var(--space-16) * 2);
  color: inherit;
  text-decoration: none;
}

.external-resource span,
.external-resource small {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.external-resource strong {
  font-size: var(--text-lg);
}

.lesson-card--checklist ul {
  display: grid;
  gap: var(--space-3);
  margin: var(--space-0);
  padding-inline-start: var(--space-5);
  color: var(--color-text-secondary);
}

.learn-footer {
  position: relative;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-8);
  overflow: clip;
  border-color: var(--color-border-accent);
  background:
    radial-gradient(circle at 90% 10%, var(--color-accent-soft), transparent 38%),
    var(--gradient-surface);
}

.learn-footer > div {
  display: grid;
  gap: var(--space-2);
}

.faq-list {
  display: grid;
  border-block-start: var(--border-subtle);
}

.faq-list details {
  border-block-end: var(--border-subtle);
}

.faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-block-size: var(--size-control-lg);
  padding-block: var(--space-4);
  color: var(--color-text);
  font-weight: var(--weight-medium);
  cursor: pointer;
  list-style: none;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  color: var(--color-accent);
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  content: "+";
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details > :not(summary) {
  max-inline-size: var(--layout-readable-max);
  margin: var(--space-0);
  padding-block: var(--space-0) var(--space-5);
  color: var(--color-text-muted);
  line-height: var(--leading-relaxed);
}

/* Page-level interaction remains quiet, with keyboard focus always explicit. */

.hero-market-card:focus-within,
a.lesson-card:focus-visible {
  outline: var(--border-accent);
  outline-offset: var(--space-1);
  box-shadow: var(--shadow-focus);
}


@media (prefers-reduced-motion: reduce) {
  :is(.hero-market-card, a.lesson-card) {
    transition-duration: var(--duration-instant);
  }

  :is(.hero-market-card, a.lesson-card):hover,
  .hero-market-card:focus-within,
  a.lesson-card:focus-visible {
    transform: none;
  }

  .chart-data-state.is-loading {
    animation: none;
    background-position: 100% 0;
  }

}


@media (max-width: 35rem) {

  /*
   * Two ~171px columns orphan the last word of every note here ("payments",
   * "reinvested", "RETURN"). One column per fact fits each on a single line.
   */
  .home-hero__facts .asset-fundamentals {
    grid-template-columns: minmax(var(--space-0), 1fr);
    gap: var(--space-5);
  }

  .home-hero__facts .asset-fundamentals__item {
    grid-template-rows: auto;
    grid-row: auto;
  }
}
