.workflows-lede {
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--ink-soft);
  margin-top: 1.5rem;
  max-width: 640px;
}

.workflows :focus-visible,
.method :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.cast { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-bottom: 2.25rem; }
.cast__summary { cursor: pointer; padding: 0.85rem 0; font: 600 0.85rem/1.3 var(--font-body); letter-spacing: 0.01em; color: var(--ink-soft); }
.cast__summary:hover { color: var(--ink); }
.cast__note { font-size: 0.85rem; color: var(--ink-soft); max-width: 640px; margin-bottom: 1rem; }
.cast__list { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem 2rem; padding-bottom: 1.25rem; }
.cast__name { font-family: var(--font-display); font-size: 1.02rem; color: var(--ink); }
.cast__sector { font-size: 0.85rem; letter-spacing: 0.01em; color: var(--ink-soft); margin-top: 0.1rem; }
.cast__line { font-size: 0.82rem; color: var(--ink-soft); margin-top: 0.3rem; }
.cast__tracks { font-size: 0.78rem; margin-top: 0.3rem; }
.cast__tracks a { color: var(--accent); text-decoration: none; border-bottom: 1px solid var(--rule); }
.cast__tracks a:hover { border-bottom-color: var(--accent); }

.tabs {
  display: flex;
  flex-wrap: wrap;
  column-gap: 2.75rem;
  row-gap: 1rem;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 2.5rem;
}
.tabs[hidden] { display: none; }
.tabs__group { display: flex; flex-direction: column; }
.tabs__label {
  font: 600 0.85rem/1 var(--font-body);
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  padding-top: 0.6rem;
  border-top: 1px solid var(--ink);
}
.tabs__row { display: flex; flex-wrap: wrap; column-gap: 1.75rem; }
.tabs__tab {
  font: 500 0.85rem/1 var(--font-body);
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 0.9rem 0;
  margin-bottom: -1px;
  cursor: pointer;
}
.tabs__tab:hover { color: var(--ink); }
.tabs__tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }

.track + .track { margin-top: 5rem; }
.has-js .track + .track { margin-top: 0; }
.track__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  letter-spacing: -0.015em;
}
.has-js .track__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.grid-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.has-js .track__group { display: none; }
.track__group {
  font: 600 0.85rem/1.2 var(--font-body);
  letter-spacing: 0.01em;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.track__intro {
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0.75rem 0 2rem;
}
.has-js .track__intro { margin-top: 0; }

.rail {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr));
  margin-bottom: 2.5rem;
  position: relative;
}
.rail::before {
  content: '';
  position: absolute;
  left: calc(100% / (2 * var(--n, 6)));
  right: calc(100% / (2 * var(--n, 6)));
  top: 6px;
  height: 1px;
  background: var(--rule);
}
.rail__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  position: relative;
  text-align: center;
}
.rail__dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1.5px solid var(--ink-mute);
  background: var(--paper);
  transition: background 0.3s ease, border-color 0.3s ease;
}
.rail__label {
  font-size: 0.85rem;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
}
.rail__node.is-active .rail__dot { background: var(--accent); border-color: var(--accent); }
.rail__node.is-active .rail__label { color: var(--accent); font-weight: 600; }

.reel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.reel {
  background: var(--paper);
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.reel.is-open { grid-column: 1 / -1; scroll-margin-top: 1.5rem; }
.reel__head { display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.reel__stage {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--accent);
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.reel__num {
  font-family: var(--font-display);
  font-size: 0.95rem;
  letter-spacing: 0;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
}
.reel__title {
  font-family: var(--font-display);
  font-weight: 450;
  font-size: 1.3rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.reel__problem { color: var(--ink-soft); font-size: 0.95rem; line-height: 1.55; }
.reel__open {
  align-self: flex-start;
  margin-top: 1rem;
  font: 600 0.85rem/1 var(--font-body);
  letter-spacing: 0.01em;
  color: var(--accent);
  background: none;
  border: 1px solid var(--accent);
  padding: 0.65rem 1.1rem;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.reel__open:hover { background: var(--accent); color: var(--paper); }
.reel.is-open .reel__open { color: var(--ink-soft); border-color: var(--rule); }

.transcript { margin-top: 1rem; font-size: 0.9rem; }
.transcript summary {
  cursor: pointer;
  color: var(--ink-soft);
  font-size: 0.85rem;
  letter-spacing: 0.01em;
}
.transcript summary:hover { color: var(--ink); }
.transcript__list { margin: 0.9rem 0 0 1.1rem; color: var(--ink-soft); line-height: 1.55; }
.transcript__list li + li { margin-top: 0.6rem; }
.transcript__list strong { color: var(--ink); font-weight: 600; }
.transcript__evidence { display: block; color: var(--ink-soft); font-size: 0.85rem; margin-top: 0.25rem; }

.reel__player { margin-top: 1.5rem; }
.player { border-top: 1px solid var(--rule); padding-top: 1.25rem; }
.player__steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}
.player__step {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: none;
  border: 0;
  border-top: 2px solid var(--rule);
  padding: 0.6rem 0 0;
  font: 500 0.78rem/1.3 var(--font-body);
  color: var(--ink-soft);
  text-align: left;
  cursor: pointer;
}
.player__step-n { font-variant-numeric: tabular-nums; }
.player__step.is-done { border-top-color: var(--ink-soft); color: var(--ink-soft); }
.player__step.is-current { border-top-color: var(--accent); color: var(--ink); font-weight: 600; }

.player__body {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1.75rem;
  align-items: start;
  min-height: 360px;
}
.player__screen { min-width: 0; }
.player__screen.is-in { animation: screen-in 0.45s ease-out; }
@keyframes screen-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.cap__label {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--accent);
  margin-bottom: 0.6rem;
}
.cap__text { font-size: 1rem; line-height: 1.6; color: var(--ink); }
.cap__evidence { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1rem; }

.player__controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
}
.ctl {
  font: 600 0.85rem/1 var(--font-body);
  letter-spacing: 0.01em;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 0.6rem 0.9rem;
  cursor: pointer;
}
.ctl:hover:not(:disabled) { border-color: var(--ink); }
.ctl:disabled { color: var(--ink-soft); cursor: default; opacity: 0.6; }
.ctl--play { border-color: var(--accent); color: var(--accent); min-width: 5.5rem; }
.ctl--close { margin-left: auto; }
.player__count { font-size: 0.8rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.player__progress { flex: 1 1 80px; height: 2px; background: var(--rule); position: relative; min-width: 60px; }
.player__bar { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--accent); }
.is-reduced .player__progress { display: none; }

.anim { animation: fill-in 0.5s ease-out both; animation-delay: calc(var(--i, 0) * 90ms + 150ms); }
@keyframes fill-in { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }

.mock { border: 1px solid var(--rule); background: var(--paper); }
.mock__bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--rule);
  background: var(--paper-cool);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
.mock__title { font-weight: 600; color: var(--ink); }
.mock__tab { color: var(--ink-soft); }
.mock__tab::before { content: '/'; margin-right: 0.75rem; color: var(--rule); }
.mock__body { padding: 0.9rem; font-size: 0.8rem; }

.grid-wrap { overflow-x: auto; max-width: 100%; position: relative; }
.sheet {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  font-size: 0.78rem;
  line-height: 1.35;
}
.sheet th, .sheet td { padding: 0.38rem 0.5rem; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.sheet thead th { font-weight: 600; color: var(--ink-soft); font-size: 0.85rem; letter-spacing: 0.01em; white-space: nowrap; }
.sheet--grid thead th { text-transform: none; }
.sheet + .mini-head, .grid-wrap + .mini-head, .grid-wrap + .grid-wrap, .checks + .mini-head { margin-top: 1rem; }
.rules { margin-bottom: 0.9rem; }
.rules ul { columns: 2; column-gap: 1.5rem; }
.sheet tbody th { font-weight: 500; color: var(--ink-soft); white-space: nowrap; }
.sheet .num { text-align: right; white-space: nowrap; }
.sheet tbody th.wrap { white-space: normal; min-width: 11rem; }
.sheet th .sub { display: block; margin-top: 0.15rem; font-weight: 400; font-size: 0.7rem; color: var(--ink-soft); }
.sheet .note { color: var(--ink-soft); min-width: 12rem; }
.sheet .note .status, .sheet .note .flag { display: inline-block; margin-top: 0.25rem; }
.sheet .fmt { color: var(--ink-soft); white-space: nowrap; }
.cell--ai { color: var(--accent); }
.cell--ok { color: var(--ink); }
.sheet .cell--ai.note { color: var(--accent); }
.check-row th, .check-row td { border-top: 1px solid var(--ink-mute); font-weight: 600; }
.check-row .cell--ai { color: var(--accent); }
.check-row.is-signed td { color: var(--ink); }
.sheet .is-picked th, .sheet .is-picked td { font-weight: 600; color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.sheet .is-flagged th { box-shadow: inset 2px 0 0 var(--accent); }
.sheet .is-struck th, .sheet .is-struck td { text-decoration: line-through; color: var(--ink-soft); }
.sheet .total th, .sheet .total td { font-weight: 600; border-top: 1px solid var(--ink-mute); }
.sheet--grid td, .sheet--grid th { text-align: right; }
.heat { background: color-mix(in srgb, var(--accent) calc(var(--o) * 100%), transparent); }
.heat.is-base { outline: 1.5px solid var(--ink); outline-offset: -1.5px; font-weight: 600; }
.sheet--diff .is-add th, .sheet--diff .is-add td { color: var(--accent); font-weight: 600; }
.sheet--diff .is-drop th, .sheet--diff .is-drop td { color: var(--ink-soft); text-decoration: line-through; }

.cite {
  display: inline-block;
  font-size: 0.7rem;
  line-height: 1.3;
  color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  padding: 0.15rem 0.45rem;
  white-space: nowrap;
}
.cap__evidence .cite { white-space: normal; }
.cite-cell { width: 1%; }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1rem; align-items: start; }
.split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.split--radar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }

.source { border-left: 2px solid var(--accent); padding: 0.25rem 0 0.25rem 0.75rem; }
.source__cite { font-size: 0.85rem; letter-spacing: 0.01em; color: var(--ink-soft); margin-bottom: 0.35rem; }
.source__text { font-family: var(--font-display); font-size: 0.95rem; line-height: 1.5; color: var(--ink-soft); }
.source__text mark { background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); padding: 0 0.1rem; }

.log { margin-top: 0.75rem; font-size: 0.78rem; color: var(--ink-soft); }
.log__tag { font-weight: 600; color: var(--ink); margin-right: 0.35rem; }
.mini-head { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.01em; color: var(--ink-soft); margin: 0.25rem 0 0.5rem; }
.legend { display: flex; gap: 1.25rem; margin-top: 0.6rem; font-size: 0.72rem; }
.legend span::before { content: ''; display: inline-block; width: 10px; height: 2px; margin-right: 0.4rem; vertical-align: middle; }
.legend__ai { color: var(--accent); }
.legend__ai::before { background: var(--accent); }
.legend__ok { color: var(--ink); }
.legend__ok::before { background: var(--ink); }

.checkpoint {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  margin-top: 0.75rem;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--ink);
  font-size: 0.8rem;
}
.checkpoint__mark {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--pop);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pop) 25%, transparent);
  animation: fill-in 0.5s ease-out 0.4s both;
}
.checkpoint__role { font-weight: 600; }
.checkpoint__note { color: var(--ink-soft); }

.tabs-mock { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 0.75rem; }
.tabs-mock li { font-size: 0.7rem; padding: 0.25rem 0.5rem; border: 1px solid var(--rule); color: var(--ink-soft); }
.tabs-mock li.is-on { color: var(--ink); border-color: var(--ink); }

.links-map { list-style: none; margin-bottom: 0.9rem; font-size: 0.76rem; }
.links-map__row { display: grid; grid-template-columns: 11rem 2rem 1fr; align-items: center; padding: 0.2rem 0; color: var(--accent); }
.links-map__arrow { height: 1px; background: var(--accent); position: relative; }
.links-map__arrow::after { content: ''; position: absolute; right: 0; top: -3px; border: 3.5px solid transparent; border-left-color: var(--accent); border-right: 0; }

.bars { list-style: none; }
.bars__row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 3.5rem; gap: 0.5rem; align-items: center; padding: 0.3rem 0; font-size: 0.76rem; }
.bars__label em { font-style: normal; color: var(--ink-soft); }
.bars__track { height: 6px; background: var(--paper-cool); }
.bars__fill { display: block; height: 100%; background: var(--accent); }
.bars__val { text-align: right; color: var(--accent); font-variant-numeric: tabular-nums; }

.kpis { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-bottom: 0.75rem; }
.kpis p { display: flex; flex-direction: column; }
.kpis__v { font-family: var(--font-display); font-size: 1.6rem; font-variant-numeric: tabular-nums; color: var(--ink); }
.kpis__l { font-size: 0.85rem; letter-spacing: 0.01em; color: var(--ink-soft); }

.checks { list-style: none; }
.checks__row { display: flex; gap: 0.6rem; padding: 0.35rem 0; border-bottom: 1px solid var(--rule); font-size: 0.78rem; }
.checks__res { font-weight: 600; color: var(--ink); min-width: 2.5rem; }

.flag { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; color: var(--accent); white-space: nowrap; }
.status { font-size: 0.7rem; font-weight: 600; color: var(--ink); white-space: nowrap; }

.meter { display: inline-block; width: 48px; height: 5px; background: var(--paper-cool); margin-right: 0.45rem; vertical-align: middle; }
.meter__fill { display: block; height: 100%; background: currentColor; }
.meter__fill--ink { background: var(--ink); }

.rules { border: 1px solid var(--rule); padding: 0.75rem; }
.rules__tag { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.01em; color: var(--ink); margin-bottom: 0.5rem; }
.rules ul { margin-left: 1rem; font-size: 0.76rem; line-height: 1.6; }
.rules__note { margin-top: 0.6rem; font-size: 0.74rem; color: var(--ink-soft); }
.excl { list-style: none; font-size: 0.74rem; color: var(--ink-soft); }
.excl li { padding: 0.2rem 0; border-bottom: 1px solid var(--rule); }

.doc__title { font-family: var(--font-display); font-size: 1.2rem; margin-bottom: 0.4rem; }
.doc__split { font-size: 0.78rem; color: var(--ink-soft); margin-bottom: 0.75rem; }
.doc__list { list-style: none; margin-bottom: 0.75rem; }
.doc__item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 0.75rem; padding: 0.3rem 0; border-bottom: 1px solid var(--rule); font-size: 0.78rem; }
.doc__item.is-ai { color: var(--accent); }
.doc__item.is-ok { color: var(--ink); }
.doc__item.is-pruned { color: var(--ink-soft); text-decoration: line-through; }
.doc__rules ul { margin: 0 0 0.6rem 1rem; font-size: 0.78rem; }

.docs { list-style: none; display: grid; gap: 0.6rem; }
.docs__item { display: flex; align-items: center; gap: 0.75rem; padding: 0.8rem 0.9rem; border: 1px solid var(--rule); background: var(--paper); font-size: 0.9rem; }
.docs__icon { width: 18px; height: 22px; flex: none; fill: none; stroke: var(--ink-mute); stroke-width: 1.25; }

.recap { display: grid; gap: 0; border-top: 1px solid var(--rule); }
.recap__row { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--rule); font-size: 0.9rem; }
.recap dt { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.01em; color: var(--ink-soft); padding-top: 0.15rem; }
.recap dd { color: var(--ink); }
@media (max-width: 640px) { .recap__row { grid-template-columns: minmax(0, 1fr); gap: 0.2rem; } }
.why { font-family: var(--font-display); font-size: clamp(1.25rem, 2.6vw, 1.6rem); line-height: 1.35; font-style: italic; border-left: 2px solid var(--accent); padding-left: 1rem; }
.why__meta { margin-top: 1rem; font-size: 0.8rem; color: var(--ink-soft); }

.sheet .is-best { font-weight: 600; }
.sheet .is-out { text-decoration: line-through; color: var(--ink-soft); }
.plan { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
.plan__dim { border: 1px solid var(--rule); padding: 0.7rem; }
.plan__name { font-weight: 600; font-size: 0.8rem; margin-bottom: 0.35rem; }
.plan__subs { margin-left: 1rem; font-size: 0.78rem; line-height: 1.5; }
.plan__subs .is-ai { color: var(--accent); }
.plan__subs .is-ok { color: var(--ink); }
.plan__src { margin-top: 0.4rem; font-size: 0.72rem; color: var(--ink-soft); }
.chat { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.9rem; }
.chat__msg { max-width: 85%; padding: 0.5rem 0.7rem; font-size: 0.8rem; line-height: 1.45; border: 1px solid var(--rule); }
.chat__msg--user { align-self: flex-end; background: var(--paper-cool); color: var(--ink); }
.chat__msg--agent { align-self: flex-start; color: var(--accent); }
.layers { list-style: none; margin-bottom: 0.8rem; }
.layers__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; padding: 0.35rem 0; border-bottom: 1px solid var(--rule); }
.layers__n { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.01em; color: var(--ink-soft); min-width: 4.5rem; }
.layers__task, .sheet code { font-size: 0.72rem; color: var(--accent); }
.layers__task { border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); padding: 0.1rem 0.35rem; }
.code { background: var(--paper-cool); padding: 0.6rem 0.75rem; font-size: 0.72rem; line-height: 1.5; overflow-x: auto; margin-bottom: 0.8rem; color: var(--ink); }
.chart .s-dot { fill: color-mix(in srgb, var(--accent) 10%, transparent); stroke: var(--accent); stroke-width: 1; }
.chart .s-fit { stroke: var(--ink); stroke-width: 1.75; }
.chart .c-key { font-size: 13px; }
@media (max-width: 640px) { .plan { grid-template-columns: minmax(0, 1fr); } .chat__msg { max-width: 100%; } }

.lowconf { display: inline-block; margin-left: 0.3rem; font-size: 0.62rem; color: var(--ink-soft); border-bottom: 1px dotted var(--accent); }
.sheet .is-low { box-shadow: inset 0 -1px 0 var(--accent); }
.status--small { display: inline-block; margin-left: 0.3rem; font-size: 0.62rem; }
.gate { margin-top: 0.9rem; border: 1px dashed var(--ink-soft); padding: 0.6rem 0.75rem; }
.gate__text { font-weight: 600; font-size: 0.8rem; }
.gate__note { font-size: 0.74rem; color: var(--ink-soft); }

.chart { width: 100%; height: auto; display: block; margin: 0.25rem 0 0.5rem; }
.chart text { font-family: var(--font-display); font-style: italic; font-size: 13px; fill: var(--ink-soft); }
.chart .axis { stroke: var(--ink-mute); stroke-width: 1; }
.chart .b-base { fill: color-mix(in srgb, var(--ink) 8%, transparent); stroke: var(--ink); stroke-width: 1.25; }
.chart .b-up { fill: color-mix(in srgb, var(--accent) 10%, transparent); stroke: var(--accent); stroke-width: 1.25; }
.chart .b-down { fill: none; stroke: var(--ink-mute); stroke-width: 1.25; stroke-dasharray: 3 3; }
.chart .b-val { text-anchor: middle; fill: var(--ink); font-style: normal; font-family: var(--font-body); font-variant-numeric: tabular-nums; }
.chart .b-lab, .chart .c-lab { text-anchor: middle; }
.chart .c-case { fill: none; stroke: var(--ink-mute); stroke-width: 1.25; stroke-dasharray: 4 4; }
.chart .c-act { fill: none; stroke: var(--ink); stroke-width: 1.75; }
.chart--radar .r-ring { fill: none; stroke: var(--rule); stroke-width: 1; }
.chart--radar .r-lab { text-anchor: middle; fill: var(--ink-soft); }
.chart--radar .r-dot { fill: var(--paper); stroke: var(--accent); stroke-width: 1.5; }
.chart--radar .r-dot--fade { stroke: var(--ink-mute); stroke-dasharray: 2 2; }
.chart--radar .r-dot.is-picked { fill: var(--ink); stroke: var(--ink); }
.chart--radar .r-name { font-size: 13px; fill: var(--ink-soft); }
.spark { width: 80px; height: 24px; }
.spark .spark__recent { stroke: var(--ink); stroke-width: 2.25; }
.chain__rel { font-style: italic; color: var(--ink-soft); }
.chain__rel::before { content: "\2192  "; font-style: normal; }
.checks__row.is-fail .checks__res { color: var(--accent); }
.checks__row { flex-wrap: wrap; }
.checks__note { flex-basis: 100%; padding-left: 3.1rem; color: var(--ink-soft); }
.spark path { fill: none; stroke: currentColor; stroke-width: 1.25; }

.method__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  letter-spacing: -0.015em;
  margin-bottom: 2rem;
}
.method__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.method__cols h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; margin-bottom: 0.6rem; }
.method__cols p { font-size: 0.95rem; color: var(--ink-soft); line-height: 1.6; }
.key { font-weight: 600; }
.key--ai { color: var(--accent); }
.key--ok { color: var(--ink); }
.method__contact { margin-top: 2.5rem; font-size: 1rem; }
.method__contact a { color: var(--ink); text-decoration-color: var(--accent); text-underline-offset: 3px; }
.disclaimer { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--rule); font-size: 0.8rem; color: var(--ink-soft); max-width: 720px; }

@media (max-width: 860px) {
  .cast__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player__body { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .player__cap { order: -1; }
  .method__cols { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .split, .split--even, .split--radar { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .rules ul { columns: 1; }
  .reel-grid { grid-template-columns: minmax(0, 1fr); }
  .reel { padding: 1.25rem 1rem; }
  .rail__label { font-size: 0.6rem; letter-spacing: 0.02em; }
  .player__steps { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.3rem; }
  .player__step-l { display: none; }
  .player__step.is-current .player__step-l { display: none; }
  .links-map__row { grid-template-columns: minmax(0, 1fr) 1.25rem minmax(0, 1fr); gap: 0.4rem; }
  .kpis { gap: 1.25rem; }
  .ctl--close { margin-left: 0; }
  .cast__list { grid-template-columns: minmax(0, 1fr); }
  .tabs { display: block; padding-bottom: 0.25rem; }
  .tabs__group + .tabs__group { margin-top: 0.9rem; }
  .tabs__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
  .tabs__tab { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .anim, .player__screen.is-in, .checkpoint__mark { animation: none; }
  .rail__dot, .reel__open { transition: none; }
}
