:root {
  --paper: #f6f1e8;
  --paper-deep: #ebe2d4;
  --card: #fffdf8;
  --ink: #171918;
  --muted: #62655f;
  --line: #d0c6b8;
  --orange: #d65a2a;
  --orange-dark: #9d351e;
  --green: #1d5a47;
  --blue: #2f668e;
  --gold: #d3a642;
  --rust: #a7472e;
  --display: Georgia, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.5; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; }

.section-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.research-nav { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; width: min(1320px, calc(100% - 48px)); min-height: 72px; margin-inline: auto; border-bottom: 1px solid var(--ink); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 800; letter-spacing: -0.04em; text-decoration: none; }
.brand img { width: 34px; height: 34px; object-fit: contain; border: 1px solid var(--orange); border-radius: 7px; }
.nav-links { display: flex; justify-content: center; gap: 24px; }
.nav-links a, .nav-meta { color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.07em; text-decoration: none; text-transform: uppercase; }
.nav-links a:hover, .nav-meta a:hover { color: var(--orange-dark); }
.nav-meta { display: flex; align-items: center; gap: 16px; }
.nav-meta a { color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 2px; }

.hero { display: grid; grid-template-columns: minmax(0, 1.07fr) minmax(410px, 0.93fr); gap: clamp(40px, 7vw, 96px); align-items: center; min-height: 660px; padding: 66px 0 78px; }
.eyebrow { margin: 0 0 17px; color: var(--orange-dark); font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 500; letter-spacing: -0.045em; }
h1 { max-width: 700px; margin-bottom: 24px; font-size: clamp(42px, 4.5vw, 56px); line-height: 1.02; }
h1 em { color: var(--orange-dark); font-style: normal; }
.hero-deck { max-width: 550px; margin-bottom: 30px; color: #41443e; font-size: clamp(17px, 2vw, 20px); line-height: 1.42; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 9px; padding: 0 17px; border: 1px solid var(--ink); font-size: 13px; font-weight: 750; text-decoration: none; transition: transform 150ms ease, background 150ms ease, color 150ms ease; }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(1px); }
.button-primary { background: var(--orange); color: #fffaf2; box-shadow: 3px 3px 0 var(--ink); }
.button-primary:hover { background: var(--orange-dark); }
.button-quiet:hover { background: var(--card); }
.hero-note { display: flex; align-items: center; gap: 10px; margin-top: 38px; color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; }
.note-mark { display: inline-grid; width: 25px; height: 25px; place-items: center; border: 1px solid var(--ink); border-radius: 50%; color: var(--orange-dark); font-size: 9px; }

.decision-board { padding: 25px 27px 22px; background: var(--ink); color: var(--paper); box-shadow: 8px 8px 0 var(--orange); }
.board-top, .board-foot, .card-topline, .mini-stats { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.board-top, .board-foot, .board-city, .board-detail { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.board-status { color: #f5cf75; }
.board-kicker { margin: 32px 0 17px; color: #d6d5ce; font-size: 13px; }
.board-prices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #4e504b; }
.board-price { min-height: 140px; padding: 17px; background: #242724; }
.board-city { display: block; min-height: 29px; color: #b5b8b1; line-height: 1.35; }
.board-price strong { display: block; margin: 12px 0 2px; color: #fffdf8; font-family: var(--display); font-size: clamp(29px, 4vw, 43px); font-weight: 500; letter-spacing: -0.05em; line-height: 1; }
.board-detail { color: #b5b8b1; letter-spacing: 0.04em; }
.board-rule { height: 1px; margin: 22px 0 15px; background: #50534d; }
.board-verdict { display: grid; grid-template-columns: 51px 1fr; gap: 14px; align-items: start; padding: 12px 0; border-bottom: 1px solid #3d403b; }
.board-verdict:last-of-type { border-bottom: 0; }
.verdict-mark { display: inline-grid; min-height: 24px; place-items: center; background: var(--green); color: #f5f1e9; font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; }
.hold-verdict .verdict-mark { background: var(--orange); }
.board-verdict p { margin: 0; color: #b5b8b1; font-size: 13px; line-height: 1.4; }
.board-verdict b { color: var(--paper); font-weight: 700; }
.board-foot { margin-top: 18px; color: #b5b8b1; }
.board-foot strong { color: #f5cf75; font-family: var(--display); font-size: 22px; font-weight: 500; letter-spacing: -0.04em; }
.board-specimen { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; margin-top: 20px; padding-top: 16px; border-top: 1px solid #3d403b; }
.board-specimen img { width: 56px; height: 70px; object-fit: cover; object-position: top; border: 1px solid #777b72; }
.board-specimen span { color: #f5cf75; font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }
.board-specimen p { margin: 4px 0 0; color: #aeb1a9; font-family: var(--mono); font-size: 9px; line-height: 1.35; }

.signal-rail { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper-deep); }
.signal-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.signal-item { display: grid; gap: 6px; min-height: 112px; align-content: center; padding: 17px clamp(16px, 3vw, 35px); border-right: 1px solid var(--line); }
.signal-item:last-child { border-right: 0; }
.signal-value { font-family: var(--display); font-size: clamp(27px, 3vw, 37px); letter-spacing: -0.05em; line-height: 1; }
.signal-label { color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase; }

.section-block { padding: 96px 0; }
.section-index { margin: 0 0 14px; color: var(--orange-dark); font-family: var(--mono); font-size: 10px; letter-spacing: 0.03em; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 380px); gap: 56px; align-items: end; margin-bottom: 38px; }
.section-heading h2 { max-width: 680px; margin-bottom: 0; font-size: clamp(42px, 5.2vw, 68px); line-height: 0.96; }
.section-intro { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.market-toggle { display: flex; width: max-content; margin-bottom: 18px; border: 1px solid var(--ink); }
.market-tab { appearance: none; border: 0; border-right: 1px solid var(--ink); padding: 11px 15px; background: transparent; color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; }
.market-tab:last-child { border-right: 0; }
.market-tab.is-active { background: var(--ink); color: var(--paper); }

.economics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.economics-card { padding: 25px; border: 1px solid var(--ink); background: var(--card); box-shadow: 5px 5px 0 var(--ink); transition: opacity 180ms ease, transform 180ms ease; }
.economics-card.is-muted { opacity: 0.5; transform: scale(0.985); }
.card-topline { margin-bottom: 28px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.07em; text-transform: uppercase; }
.city-code { color: var(--muted); }
.tag { padding: 5px 7px; font-size: 8px; letter-spacing: 0.05em; }
.tag-observed { background: #dce8df; color: var(--green); }
.tag-modeled { background: #f2e4b9; color: #775a0d; }
.economics-main h3 { margin-bottom: 4px; font-size: clamp(47px, 5.5vw, 72px); line-height: 0.9; }
.economics-main p { margin-bottom: 22px; color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; }
.mini-stats { justify-content: flex-start; margin-bottom: 22px; color: var(--muted); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.mini-stats span + span { margin-left: auto; text-align: right; }
.mini-stats b { display: block; color: var(--ink); font-family: var(--display); font-size: 19px; font-weight: 500; letter-spacing: -0.04em; text-transform: none; }
.stacked-bar { display: flex; height: 17px; overflow: hidden; border: 1px solid var(--ink); }
.stacked-bar span { min-width: 2px; }
.stack-print { background: var(--orange); }
.stack-creative { background: var(--gold); }
.stack-ops { background: var(--blue); }
.stack-reserve { background: #9b8c74; }
.stack-fee { background: #bfc4bd; }
.stack-contribution { background: var(--green); }
.stack-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin-top: 14px; color: var(--muted); font-family: var(--mono); font-size: 9px; line-height: 1.25; }
.stack-legend span { display: flex; align-items: center; gap: 6px; }
.swatch { display: inline-block; width: 8px; height: 8px; flex: 0 0 8px; }
.swatch.print { background: var(--orange); }
.swatch.creative { background: var(--gold); }
.swatch.ops { background: var(--blue); }
.swatch.reserve { background: #9b8c74; }
.swatch.fee { background: #bfc4bd; border: 1px solid #a0a69f; }
.swatch.contribution { background: var(--green); }
.source-link, .provider-row a, .source-card a { display: inline-flex; align-items: center; gap: 7px; color: var(--orange-dark); font-family: var(--mono); font-size: 10px; letter-spacing: 0.03em; text-decoration: none; }
.source-link { margin-top: 25px; border-bottom: 1px solid var(--orange-dark); padding-bottom: 3px; }
.formula-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 30px; padding: 18px 20px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper-deep); color: var(--muted); font-family: var(--mono); font-size: 10px; }
.formula-strip b { color: var(--ink); }
.formula-label { color: var(--orange-dark); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.section-footnote { margin: 15px 0 0; color: var(--muted); font-size: 12px; }

.providers-block { border-top: 1px solid var(--line); }
.provider-table { border-top: 1px solid var(--ink); }
.provider-row { display: grid; grid-template-columns: 1.1fr 1.15fr 2.6fr 0.8fr; gap: 18px; align-items: center; min-height: 76px; padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.provider-row strong { font-family: var(--display); font-size: 23px; font-weight: 500; letter-spacing: -0.04em; }
.provider-row > span:nth-child(3) { color: var(--muted); line-height: 1.45; }
.provider-header { min-height: 42px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }
.provider-header span { color: var(--muted); }
.state { display: inline-block; padding: 5px 7px; font-family: var(--mono); font-size: 8px; font-style: normal; letter-spacing: 0.05em; text-transform: uppercase; }
.state-ready { background: #dce8df; color: var(--green); }
.state-route { background: #dbe7f0; color: var(--blue); }
.state-hold { background: #f3d8ce; color: var(--orange-dark); }

.sources-block { border-top: 1px solid var(--line); }
.source-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.source-card { min-height: 254px; padding: 20px; border: 1px solid var(--line); background: var(--card); }
.source-card h3 { margin: 41px 0 12px; font-size: 28px; line-height: 0.98; }
.source-card p { min-height: 77px; margin-bottom: 18px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.source-type { display: inline-block; padding: 5px 7px; background: var(--paper-deep); color: var(--orange-dark); font-family: var(--mono); font-size: 8px; letter-spacing: 0.08em; text-transform: uppercase; }
.source-observed { border-color: var(--orange); }
.source-observed .source-type { background: var(--orange); color: #fffaf2; }
.source-hold { background: var(--ink); color: var(--paper); }
.source-hold .source-type { background: var(--orange); color: #fffaf2; }
.source-hold p { color: #b7b9b1; }
.source-hold a { color: #f5cf75; }

.launch-block { padding-top: 0; }
.launch-board { display: grid; grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr); gap: 48px; padding: 42px; background: var(--green); color: var(--paper); }
.launch-board .eyebrow { color: #f5cf75; }
.launch-board h2 { max-width: 440px; margin-bottom: 20px; font-size: clamp(42px, 5vw, 62px); line-height: 0.95; }
.launch-board p { max-width: 440px; margin-bottom: 0; color: #d2ded6; font-size: 14px; line-height: 1.55; }
.gate-steps { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto; align-items: center; align-self: center; gap: 9px; }
.gate-step { display: grid; gap: 5px; min-width: 68px; }
.gate-step b { display: inline-grid; width: 31px; height: 31px; place-items: center; border: 1px solid #7da08d; border-radius: 50%; color: #d2ded6; font-family: var(--mono); font-size: 9px; font-weight: 500; }
.gate-step span { color: var(--paper); font-family: var(--display); font-size: 20px; line-height: 1; }
.gate-step small { color: #aec6b8; font-family: var(--mono); font-size: 8px; line-height: 1.25; text-transform: uppercase; }
.gate-step.is-done b { border-color: #f5cf75; background: #f5cf75; color: var(--ink); }
.gate-connector { height: 1px; background: #7da08d; }

.research-footer { border-top: 1px solid var(--ink); }
.footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; min-height: 74px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase; }
.footer-inner a { color: var(--ink); text-decoration: none; }

a:focus-visible, button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

@media (max-width: 980px) {
  .research-nav { grid-template-columns: auto auto; justify-content: space-between; }
  .nav-links { display: none; }
  .hero { grid-template-columns: 1fr; gap: 42px; min-height: auto; padding: 62px 0 72px; }
  .decision-board { max-width: 700px; }
  .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .launch-board { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .section-shell, .research-nav { width: min(100% - 32px, 1180px); }
  .research-nav { min-height: 64px; }
  .nav-meta span { display: none; }
  .nav-meta { font-size: 9px; }
  h1 { font-size: clamp(48px, 14vw, 70px); }
  .hero { padding: 49px 0 58px; }
  .decision-board { padding: 21px; box-shadow: 5px 5px 0 var(--orange); }
  .board-price { min-height: 126px; padding: 13px; }
  .board-price strong { font-size: 31px; }
  .signal-grid { grid-template-columns: repeat(2, 1fr); }
  .signal-item:nth-child(2) { border-right: 0; }
  .signal-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .section-block { padding: 70px 0; }
  .section-heading h2 { font-size: clamp(39px, 12vw, 56px); }
  .economics-grid { grid-template-columns: 1fr; }
  .economics-card.is-muted { opacity: 1; transform: none; }
  .formula-strip { display: grid; gap: 11px; }
  .provider-row { grid-template-columns: 1fr 1fr; gap: 9px 15px; padding: 18px 0; }
  .provider-header { display: none; }
  .provider-row > span:nth-child(3) { grid-column: 1 / -1; }
  .provider-row > a { justify-self: end; }
  .source-grid { grid-template-columns: 1fr; }
  .source-card { min-height: 0; }
  .source-card h3 { margin-top: 32px; }
  .source-card p { min-height: 0; }
  .launch-board { gap: 36px; padding: 28px 22px; }
  .gate-steps { grid-template-columns: repeat(5, 1fr); align-items: start; gap: 5px; }
  .gate-connector { display: none; }
  .gate-step { min-width: 0; }
  .gate-step span { font-size: 16px; }
  .gate-step small { font-size: 7px; word-break: break-word; }
  .footer-inner { align-items: flex-start; flex-direction: column; padding: 22px 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .economics-card { transition: none; }
}
