:root {
  --ink: #321f3c;
  --muted: #725f7b;
  --rose: #b83280;
  --rose-dark: #8d1f60;
  --lavender: #7c5bb6;
  --gold: #b7791f;
  --cream: #fffaf5;
  --panel: rgba(255,255,255,.88);
  --panel-strong: #ffffff;
  --line: rgba(76, 45, 91, .14);
  --shadow: 0 22px 70px rgba(82, 44, 103, .14);
  --radius: 28px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 7%, rgba(255, 211, 232, .86), transparent 27%),
    radial-gradient(circle at 88% 14%, rgba(224, 213, 255, .85), transparent 29%),
    radial-gradient(circle at 76% 88%, rgba(255, 238, 184, .68), transparent 30%),
    linear-gradient(135deg, #fff8f3, #fdf5ff 52%, #fffaf0);
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(255,255,255,.92) 0 1.5px, transparent 2px), radial-gradient(circle, rgba(184,50,128,.18) 0 1px, transparent 2px);
  background-size: 84px 84px, 132px 132px;
  opacity: .65;
  animation: drift 30s linear infinite;
}
@keyframes drift { to { transform: translateY(-132px); } }
a { color: inherit; }
button, input { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; }
.site-shell { width: min(1180px, calc(100% - 30px)); margin: 0 auto; padding: 20px 0 42px; position: relative; z-index: 1; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 100; background: #fff; color: var(--ink); padding: 12px 18px; border-radius: 12px; box-shadow: var(--shadow); }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hero, .page-hero, .panel, .related-panel {
  background: var(--panel);
  border: 1px solid rgba(255,255,255,.84);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}
.hero, .page-hero { border-radius: 36px; text-align: center; padding: clamp(28px, 5vw, 62px); overflow: hidden; position: relative; }
.page-hero { padding-bottom: 36px; }
.hero::after, .page-hero::after { content: ""; position: absolute; width: 260px; height: 260px; border-radius: 50%; background: rgba(255,255,255,.42); right: -100px; top: -115px; }
.hero__sparkles { color: var(--gold); letter-spacing: .55em; margin-bottom: 12px; font-size: 1.2rem; }
.eyebrow { margin: 0 0 9px; color: var(--rose-dark); font-size: .75rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.35rem, 6vw, 5.25rem); line-height: .98; letter-spacing: -.045em; margin: 14px auto 16px; max-width: 900px; }
.page-hero h1 { font-size: clamp(2.35rem, 5vw, 4.4rem); }
h2, h3 { color: var(--ink); }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.55rem, 2.8vw, 2.45rem); line-height: 1.08; margin: 0; }
h3 { font-size: 1.05rem; margin: 10px 0 7px; }
.hero__subtitle { max-width: 760px; margin: 0 auto; color: var(--muted); font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.65; }
.site-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 24px auto 0; }
.site-nav a { text-decoration: none; font-size: .9rem; font-weight: 760; padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.62); transition: transform .18s ease, background .18s ease; }
.site-nav a:hover, .site-nav a:focus-visible { transform: translateY(-2px); background: #fff; outline: none; }
.counter-card { max-width: 900px; margin: 30px auto 0; padding: clamp(18px, 3vw, 30px); border-radius: 28px; background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,244,251,.86)); border: 1px solid rgba(184,50,128,.14); box-shadow: inset 0 1px rgba(255,255,255,.9), 0 15px 40px rgba(141,31,96,.09); }
.counter-card__topline { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: center; }
.pill, .date-chip { display: inline-flex; align-items: center; padding: 7px 11px; border-radius: 999px; font-size: .78rem; font-weight: 760; color: var(--rose-dark); background: rgba(184,50,128,.09); }
.pill--soft { color: var(--muted); background: rgba(124,91,182,.08); }
.time-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; margin-top: 18px; }
.time-box { padding: clamp(16px, 3vw, 25px) 8px; border-radius: 20px; background: #fff; border: 1px solid var(--line); }
.time-box strong { display: block; font-size: clamp(1.75rem, 5vw, 3.9rem); line-height: 1; font-variant-numeric: tabular-nums; }
.time-box span { display: block; margin-top: 8px; color: var(--muted); font-size: .78rem; font-weight: 780; letter-spacing: .09em; text-transform: uppercase; }
.headline-moment { display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--muted); margin-top: 17px; }
.headline-moment p { margin: 0; }
.character { font-size: 1.5rem; }
.share-row, .button-row { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 18px; }
.share-button, .share-link, .primary-link, .secondary-link, .site-search button { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; padding: 12px 18px; font-weight: 820; text-decoration: none; }
.share-button, .primary-link, .site-search button { color: #fff; background: linear-gradient(135deg, var(--rose), var(--lavender)); box-shadow: 0 12px 24px rgba(141,31,96,.18); }
.share-link, .secondary-link { background: rgba(255,255,255,.76); border: 1px solid var(--line); color: var(--ink); }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; align-items: start; margin-top: 18px; }
.main-column { display: grid; gap: 18px; }
.sidebar { display: grid; gap: 18px; position: sticky; top: 14px; }
.panel { border-radius: var(--radius); padding: clamp(21px, 3.5vw, 34px); }
.section-heading { margin-bottom: 16px; }
.split-heading, .facts-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.lead { color: var(--muted); font-size: 1.04rem; line-height: 1.7; }
.progress-wrap { margin-top: 22px; }
.progress-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .84rem; font-weight: 760; }
.progress-bar, .meter { height: 10px; border-radius: 999px; overflow: hidden; background: rgba(50,31,60,.08); margin-top: 9px; }
.progress-bar span, .meter span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--rose), #d977b4, var(--lavender)); border-radius: inherit; transition: width .6s ease; }
.anniversary-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.anniversary-strip > div { background: rgba(124,91,182,.07); border: 1px solid var(--line); border-radius: 18px; padding: 15px; }
.anniversary-strip span { display: block; color: var(--muted); font-size: .78rem; }
.anniversary-strip strong { display: block; margin-top: 4px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.stat-card { padding: 18px 12px; text-align: center; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.65); }
.stat-card span { color: var(--muted); font-size: .77rem; }
.stat-card strong { display: block; margin-top: 6px; font-size: 1.35rem; }
.text-link { color: var(--rose-dark); font-weight: 800; text-decoration: none; white-space: nowrap; }
.fact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.fact-card { padding: 20px; border-radius: 21px; border: 1px solid var(--line); background: rgba(255,255,255,.64); }
.fact-card p { color: var(--muted); line-height: 1.55; }
.fact-card a, .source-line a, .prose-panel a { color: var(--rose-dark); font-weight: 760; }
.fact-icon { font-size: 1.55rem; }
.mini-timeline { display: grid; gap: 12px; }
.mini-event { position: relative; padding: 16px 18px 16px 96px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.6); }
.mini-event > span { position: absolute; left: 18px; top: 17px; color: var(--rose-dark); font-weight: 850; }
.mini-event strong { display: block; }
.mini-event p { color: var(--muted); margin: 6px 0 0; line-height: 1.5; }
.accordion-list { display: grid; gap: 10px; }
details { border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.63); padding: 15px 17px; }
summary { cursor: pointer; font-weight: 790; }
details p { color: var(--muted); line-height: 1.55; }
.store-banner { display: grid; grid-template-columns: 170px minmax(0,1fr); gap: 25px; align-items: center; background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,235,247,.92)); }
.store-art { min-height: 160px; display: grid; place-items: center; position: relative; border-radius: 24px; background: linear-gradient(145deg, #f6d8e8, #e7ddfa); font-size: 3.8rem; }
.store-art span:nth-child(2) { position: absolute; right: 23px; top: 18px; font-size: 1.55rem; }
.store-art span:nth-child(3) { position: absolute; left: 22px; bottom: 18px; font-size: 1.45rem; }
.store-banner .button-row { justify-content: flex-start; }
.site-search { display: flex; gap: 9px; }
.site-search input { flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 999px; padding: 13px 17px; background: rgba(255,255,255,.82); color: var(--ink); }
.site-search input:focus { outline: 3px solid rgba(184,50,128,.15); border-color: rgba(184,50,128,.35); }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin-top: 18px; }
.related-grid a { text-decoration: none; padding: 17px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.62); transition: transform .18s ease; }
.related-grid a:hover { transform: translateY(-3px); }
.related-grid span { font-size: 1.25rem; display: block; margin-bottom: 8px; }
.related-grid strong, .related-grid small { display: block; }
.related-grid small { color: var(--muted); margin-top: 5px; line-height: 1.4; }
.side-panel h2 { font-size: 1.6rem; }
.milestone-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.milestone-list li { border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: rgba(255,255,255,.61); }
.milestone-list li.is-current { border-color: rgba(184,50,128,.36); background: rgba(255,237,247,.86); }
.milestone-list li.is-done { opacity: .72; }
.milestone-top { display: flex; justify-content: space-between; gap: 10px; }
.milestone-top strong { font-size: .9rem; }
.milestone-top span { font-size: .75rem; color: var(--muted); }
.milestone-list p { margin: 6px 0 0; color: var(--muted); font-size: .8rem; line-height: 1.4; }
.quick-links { display: grid; }
.quick-links a { text-decoration: none; display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); font-weight: 730; }
.quick-links a:last-child { border-bottom: 0; }
.footer { padding: 28px 16px 0; color: rgba(50,31,60,.67); text-align: center; font-size: .84rem; line-height: 1.55; }
.footer-links a { font-weight: 720; }
.toast { position: fixed; right: 18px; bottom: 18px; z-index: 20; max-width: min(360px, calc(100vw - 36px)); display: flex; align-items: center; gap: 9px; padding: 14px 17px; border-radius: 18px; background: #fff; box-shadow: var(--shadow); transform: translateY(180%); transition: transform .35s ease; }
.toast.show { transform: translateY(0); }
.content-page { width: min(910px, 100%); margin: 18px auto 0; display: grid; gap: 18px; }
.prose-panel { line-height: 1.75; }
.prose-panel h2 { margin: 30px 0 8px; font-size: 1.75rem; }
.prose-panel h2:first-of-type { margin-top: 18px; }
.prose-panel p { color: var(--muted); }
.faq-item { padding: 18px 0; border-bottom: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 0; }
.faq-item h2 { margin: 0 0 7px; font-size: 1.4rem; }
.faq-item p { margin: 0; }
.related-panel { border-radius: var(--radius); padding: 24px; }
.related-panel h2 { font-size: 1.65rem; }
.vertical-timeline { position: relative; display: grid; gap: 14px; margin-top: 28px; }
.vertical-timeline::before { content: ""; position: absolute; left: 116px; top: 9px; bottom: 9px; width: 2px; background: linear-gradient(var(--rose), var(--lavender)); opacity: .35; }
.vertical-timeline section { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 34px; position: relative; }
.vertical-timeline section::before { content: ""; position: absolute; left: 109px; top: 9px; width: 14px; height: 14px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 5px rgba(184,50,128,.12); }
.timeline-date { text-align: right; color: var(--rose-dark); font-weight: 850; font-size: .83rem; padding-top: 4px; }
.timeline-copy { border: 1px solid var(--line); border-radius: 20px; padding: 18px; background: rgba(255,255,255,.62); }
.timeline-copy h2 { margin: 0; font-size: 1.4rem; }
.timeline-copy p { margin-bottom: 0; }
.timeline-highlight .timeline-copy { background: linear-gradient(135deg, rgba(255,241,248,.88), rgba(239,234,255,.84)); }
.updates-list { display: grid; gap: 14px; }
.update-card h2 { font-size: 1.75rem; }
.update-card p { color: var(--muted); line-height: 1.65; }
.update-meta { display: flex; justify-content: space-between; color: var(--rose-dark); font-size: .78rem; font-weight: 830; text-transform: uppercase; letter-spacing: .08em; }
.correction-box { background: rgba(255,249,232,.88); }
.store-hero-panel { text-align: center; padding: clamp(30px, 6vw, 64px); }
.store-hero-panel h2 { font-size: clamp(1.7rem, 4vw, 3rem); word-break: break-word; }
.store-coming-mark { font-size: 4rem; margin-bottom: 12px; }
.product-placeholder-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 20px 0; }
.product-placeholder-grid > div { padding: 20px; border-radius: 20px; border: 1px solid var(--line); background: rgba(255,255,255,.62); }
.product-placeholder-grid span { font-size: 1.8rem; }
.product-placeholder-grid strong { display: block; margin-top: 8px; }
.product-placeholder-grid p { font-size: .9rem; margin-bottom: 0; }
.site-search-large { display: block; }
.site-search-large > label { display: block; font-weight: 820; margin-bottom: 10px; }
.site-search-large > div { display: flex; gap: 9px; }
.search-summary { color: var(--muted); margin: 22px 0 10px; }
.search-results { display: grid; gap: 10px; }
.search-result { display: block; text-decoration: none; padding: 18px; border: 1px solid var(--line); border-radius: 19px; background: rgba(255,255,255,.64); }
.search-result strong { display: block; font-size: 1.08rem; }
.search-result span { display: block; margin-top: 5px; color: var(--muted); line-height: 1.5; }
.search-empty { padding: 22px; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); }
.center-panel { text-align: center; }
.not-found-icon { font-size: 4rem; }
@media (max-width: 940px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sidebar .side-panel:first-child { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .site-shell { width: min(100% - 20px, 1180px); padding-top: 10px; }
  .hero, .page-hero { border-radius: 26px; padding: 26px 15px; }
  .counter-card { padding: 15px; }
  .time-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-grid, .fact-grid, .related-grid, .product-placeholder-grid { grid-template-columns: 1fr 1fr; }
  .store-banner { grid-template-columns: 1fr; }
  .store-art { min-height: 130px; }
  .split-heading, .facts-heading { display: block; }
  .facts-heading .text-link { display: inline-block; margin-top: 10px; }
  .vertical-timeline::before { left: 7px; }
  .vertical-timeline section { grid-template-columns: 1fr; gap: 7px; padding-left: 26px; }
  .vertical-timeline section::before { left: 0; }
  .timeline-date { text-align: left; }
}
@media (max-width: 520px) {
  h1 { font-size: 2.55rem; }
  .panel { border-radius: 23px; padding: 20px 16px; }
  .sidebar { grid-template-columns: 1fr; }
  .sidebar .side-panel:first-child { grid-column: auto; }
  .stats-grid, .fact-grid, .related-grid, .product-placeholder-grid { grid-template-columns: 1fr; }
  .anniversary-strip { grid-template-columns: 1fr; }
  .site-search, .site-search-large > div { flex-direction: column; }
  .share-row, .button-row { flex-direction: column; align-items: stretch; }
  .share-button, .share-link, .primary-link, .secondary-link { width: 100%; }
  .mini-event { padding-left: 18px; padding-top: 48px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }

/* Happily Ever After? forecast page */
.forecast-page-hero {
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 207, 230, .9), transparent 28%),
    radial-gradient(circle at 86% 22%, rgba(223, 211, 255, .86), transparent 29%),
    var(--panel);
}
.forecast-content { width: min(1080px, 100%); }
.forecast-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.forecast-live-dot { display: inline-flex; align-items: center; gap: 8px; color: var(--rose-dark); font-size: .78rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.forecast-live-dot i { width: 9px; height: 9px; border-radius: 50%; background: #f5b841; box-shadow: 0 0 0 5px rgba(245,184,65,.14); animation: forecast-pulse 1.8s ease-in-out infinite; }
@keyframes forecast-pulse { 50% { box-shadow: 0 0 0 9px rgba(245,184,65,0); } }
.forecast-board { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(235px, .7fr); border-radius: 26px; overflow: hidden; background: linear-gradient(135deg, #25132f, #3c1b49 56%, #271533); color: #fff; box-shadow: 0 24px 52px rgba(40,20,50,.24); }
.forecast-board__main { padding: clamp(24px, 5vw, 48px); position: relative; overflow: hidden; }
.forecast-board__main::after { content: ""; position: absolute; width: 240px; height: 240px; border-radius: 50%; right: -110px; bottom: -145px; background: radial-gradient(circle, rgba(255,211,232,.34), transparent 66%); }
.board-label { margin: 0; color: rgba(255,255,255,.68); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.forecast-board h2 { margin-top: 7px; color: #fff; font-size: clamp(1.7rem, 4vw, 3.1rem); }
.board-number-row { display: flex; align-items: flex-end; gap: 16px; margin-top: 20px; }
.board-number-row strong { font-family: Georgia, "Times New Roman", serif; font-size: clamp(4rem, 11vw, 7.5rem); line-height: .78; letter-spacing: -.06em; color: #fff; font-variant-numeric: tabular-nums; }
.board-number-row span { display: inline-flex; align-items: center; justify-content: center; min-width: 86px; padding: 9px 13px; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); color: #ffd36c; font-weight: 900; font-size: 1.08rem; font-variant-numeric: tabular-nums; }
.market-call { margin: 22px 0 0; color: rgba(255,255,255,.74); line-height: 1.5; }
.market-call span { color: #ffd36c; font-weight: 900; }
.market-call strong { color: #fff; }
.forecast-board__aside { padding: 30px 26px; display: flex; flex-direction: column; justify-content: center; background: rgba(255,255,255,.065); border-left: 1px solid rgba(255,255,255,.11); }
.forecast-board__aside span { color: rgba(255,255,255,.62); font-size: .76rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.forecast-board__aside strong { margin-top: 8px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.7rem, 6vw, 4.4rem); line-height: .95; color: #fff; }
.forecast-board__aside small { margin-top: 15px; color: rgba(255,255,255,.68); line-height: 1.55; }
.horizon-selector { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 16px; }
.horizon-button { border: 1px solid var(--line); border-radius: 15px; padding: 12px 8px; color: var(--muted); background: rgba(255,255,255,.72); font-weight: 820; transition: transform .18s ease, background .18s ease, color .18s ease; }
.horizon-button:hover, .horizon-button:focus-visible { transform: translateY(-2px); outline: none; }
.horizon-button.is-active { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--rose), var(--lavender)); box-shadow: 0 10px 22px rgba(141,31,96,.17); }
.forecast-fine-print { margin: 14px 2px 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.forecast-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.forecast-stat-card { padding: 22px; box-shadow: 0 15px 42px rgba(82,44,103,.09); }
.forecast-stat-label { color: var(--rose-dark); font-size: .72rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.forecast-stat-card strong { display: block; margin-top: 8px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1; }
.forecast-stat-card p { margin: 9px 0 0; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.model-tag { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: rgba(124,91,182,.1); color: var(--lavender); font-size: .75rem; font-weight: 850; white-space: nowrap; }
.survival-chart { display: grid; gap: 12px; margin-top: 24px; }
.survival-row { display: grid; grid-template-columns: 80px minmax(0,1fr) 50px 58px; gap: 12px; align-items: center; }
.survival-row > span { font-weight: 830; font-size: .86rem; }
.survival-row > strong { text-align: right; font-variant-numeric: tabular-nums; }
.survival-row > em { text-align: right; color: var(--rose-dark); font-size: .78rem; font-style: normal; font-weight: 900; font-variant-numeric: tabular-nums; }
.survival-track { height: 18px; border-radius: 999px; overflow: hidden; background: rgba(50,31,60,.08); border: 1px solid rgba(50,31,60,.04); }
.survival-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rose), #d66fad, var(--lavender)); }
.survival-row--projected { opacity: .78; }
.survival-row--projected .survival-track i { background: repeating-linear-gradient(135deg, var(--rose), var(--rose) 8px, var(--lavender) 8px, var(--lavender) 16px); }
.method-steps { display: grid; gap: 14px; margin-top: 20px; }
.method-steps section { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 15px; align-items: start; padding: 17px; border-radius: 20px; border: 1px solid var(--line); background: rgba(255,255,255,.62); }
.method-steps section > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--rose), var(--lavender)); font-weight: 900; }
.method-steps h3 { margin: 1px 0 5px; }
.method-steps p { margin: 0; color: var(--muted); line-height: 1.6; }
.method-warning { margin-top: 18px; padding: 17px 18px; border-radius: 18px; border: 1px solid rgba(183,121,31,.22); background: rgba(255,247,222,.72); color: #6d5529; line-height: 1.6; }
.signal-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 20px; }
.signal-card { padding: 20px; border: 1px solid var(--line); border-radius: 21px; background: rgba(255,255,255,.64); }
.signal-card--current { background: linear-gradient(135deg, rgba(255,238,247,.9), rgba(240,235,255,.82)); }
.signal-card--excluded { border-style: dashed; }
.signal-kicker { display: block; color: var(--rose-dark); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.signal-card strong { display: block; margin-top: 8px; font-size: 1.28rem; }
.signal-card p { color: var(--muted); line-height: 1.55; }
.signal-card a { color: var(--rose-dark); font-weight: 800; }
.comparison-table-wrap { margin-top: 20px; border: 1px solid var(--line); border-radius: 20px; overflow-x: auto; background: rgba(255,255,255,.58); }
.comparison-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.comparison-table th, .comparison-table td { padding: 15px 16px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.comparison-table th { color: var(--rose-dark); background: rgba(184,50,128,.055); font-size: .73rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.comparison-table td { color: var(--muted); font-size: .89rem; }
.comparison-table td:first-child { color: var(--ink); font-weight: 800; }
.comparison-table tr:last-child td { border-bottom: 0; }
.status-chip { display: inline-flex; padding: 6px 9px; border-radius: 999px; font-size: .7rem; font-weight: 850; white-space: nowrap; }
.status-chip--open { color: #276342; background: rgba(53,154,101,.12); }
.status-chip--closed { color: #8a3b4c; background: rgba(190,74,101,.11); }
.final-call-panel { text-align: center; background: linear-gradient(135deg, rgba(255,241,248,.95), rgba(237,231,255,.9)); }
.final-call-mark { font-size: 3.2rem; color: var(--gold); margin-bottom: 10px; }
.final-call-panel .lead { max-width: 820px; margin-left: auto; margin-right: auto; }
.forecast-share-button { font: inherit; }
.source-list { display: grid; gap: 12px; padding-left: 22px; }
.source-list li { color: var(--muted); padding-left: 5px; }
.forecast-teaser { display: grid; grid-template-columns: minmax(0,1fr) 210px; align-items: center; gap: 22px; background: linear-gradient(135deg, rgba(255,245,250,.94), rgba(238,232,255,.9)); }
.forecast-teaser__odds { display: grid; place-items: center; min-height: 150px; border-radius: 24px; color: #fff; background: linear-gradient(135deg, #281533, #4c2258); text-align: center; box-shadow: 0 18px 36px rgba(40,21,51,.18); }
.forecast-teaser__odds span { display: block; color: rgba(255,255,255,.68); font-size: .72rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.forecast-teaser__odds strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 3.8rem; line-height: .95; }
.forecast-teaser__odds small { color: #ffd36c; font-weight: 850; }
@media (max-width: 820px) {
  .forecast-board { grid-template-columns: 1fr; }
  .forecast-board__aside { border-left: 0; border-top: 1px solid rgba(255,255,255,.11); }
  .forecast-summary-grid { grid-template-columns: repeat(2,1fr); }
  .horizon-selector { grid-template-columns: repeat(3,1fr); }
  .forecast-teaser { grid-template-columns: 1fr; }
  .forecast-teaser__odds { min-height: 125px; }
}
@media (max-width: 560px) {
  .forecast-topline { align-items: flex-start; flex-direction: column; }
  .forecast-summary-grid, .signal-grid { grid-template-columns: 1fr; }
  .horizon-selector { grid-template-columns: repeat(2,1fr); }
  .survival-row { grid-template-columns: 68px minmax(0,1fr) 42px; gap: 8px; }
  .survival-row > em { grid-column: 2 / 4; text-align: left; margin-top: -6px; }
  .board-number-row { align-items: flex-start; flex-direction: column; }
  .method-steps section { grid-template-columns: 1fr; }
}
.forecast-content { grid-template-columns: minmax(0, 1fr); }
.forecast-content > * { min-width: 0; }

/* Version 2.0 publication and hub components */
.hub-content{width:min(1080px,100%)}
.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}
.hub-card{display:block;text-decoration:none;padding:22px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.68);transition:transform .18s ease,box-shadow .18s ease}
.hub-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(82,44,103,.11)}.hub-card span{font-size:1.8rem}.hub-card h3{margin:10px 0 6px}.hub-card p{margin:0;color:var(--muted);line-height:1.55}.hub-card--featured{grid-column:span 2;background:linear-gradient(135deg,rgba(255,241,248,.94),rgba(239,234,255,.9))}
.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.status-grid>div{padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.6)}.status-grid p{margin:10px 0 0;color:var(--muted)}
.status-badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.status-confirmed{background:#e5f6ec;color:#276641}.status-reported{background:#fff1cc;color:#7b5a08}.status-speculative{background:#f0e9ff;color:#654492}
.source-status{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.84rem}.source-box,.callout{margin:22px 0;padding:20px;border-radius:18px;background:rgba(247,238,255,.72);border:1px solid var(--line)}.source-box h3{margin-top:0}.source-box p{margin:.55rem 0}.callout{background:rgba(255,249,232,.88)}
.travel-log{display:grid;gap:12px}.travel-log section{position:relative;padding:20px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.62)}.travel-log section>span:first-child{color:var(--rose-dark);font-weight:850;font-size:.8rem;text-transform:uppercase}.travel-log h3{margin:6px 0}.travel-log p{margin:0 0 12px}
.appearance-table{display:grid;gap:2px;margin:22px 0;border:1px solid var(--line);border-radius:20px;overflow:hidden}.appearance-row{display:grid;grid-template-columns:140px 1.2fr 1.5fr 150px;gap:14px;padding:16px;background:rgba(255,255,255,.64);align-items:start}.appearance-head{background:rgba(238,226,249,.78);font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.stats-grid--large{grid-template-columns:repeat(4,1fr)}.fine-print{font-size:.8rem;color:var(--muted)}.metric-list{display:grid;gap:2px;border:1px solid var(--line);border-radius:18px;overflow:hidden}.metric-list>div{display:flex;justify-content:space-between;gap:20px;padding:16px;background:rgba(255,255,255,.62)}.metric-list span{color:var(--muted);text-align:right}
.hub-promo{display:grid;grid-template-columns:1.3fr .7fr;gap:22px;align-items:center}.hub-promo__tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hub-promo__tiles a{display:flex;min-height:95px;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-decoration:none;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.68);font-size:1.6rem}.hub-promo__tiles span{font-size:.78rem;font-weight:850;color:var(--muted)}
@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,1fr)}.hub-card--featured{grid-column:span 2}.appearance-row{grid-template-columns:110px 1fr}.appearance-row span:nth-child(3),.appearance-row span:nth-child(4){grid-column:2}.stats-grid--large{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.hub-grid,.status-grid,.hub-promo{grid-template-columns:1fr}.hub-card--featured{grid-column:auto}.hub-promo__tiles{grid-template-columns:1fr 1fr}.source-status{align-items:flex-start;flex-direction:column}.appearance-head{display:none}.appearance-row{grid-template-columns:1fr}.appearance-row span:nth-child(n){grid-column:auto}.metric-list>div{flex-direction:column}.metric-list span{text-align:left}}
