.header-edition { font-size: .68rem; letter-spacing: .18em; color: var(--muted); }
.reveal-shell { width: min(1060px, calc(100% - 2.5rem)); padding-top: clamp(3rem, 6vw, 5rem); }
.reveal-hero { min-height: 0; padding-bottom: 3.5rem; }
.reveal-hero h1 { font-size: clamp(3.5rem, 8.7vw, 7rem); }
.reveal-hero .hero-copy { max-width: 620px; margin-top: 1.5rem; }
.reveal-hero .hero-orbit { right: .5rem; bottom: 2.5rem; }
.reveal-strip { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1.6rem; padding: 1.65rem 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.reveal-hours { margin: .4rem 0 0; font-size: 1.5rem; font-weight: 300; letter-spacing: -.04em; }
.reveal-hours small { display: inline-block; margin-left: .75rem; color: var(--muted); font-size: .61rem; letter-spacing: .13em; }
.reveal-tally { display: grid; text-align: right; }
.reveal-tally strong { font-size: 1.75rem; font-weight: 400; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.reveal-tally > span { color: var(--muted); font-size: .6rem; letter-spacing: .13em; }
.reveal-progress { grid-column: 1 / -1; height: 2px; background: var(--ink-raised); }
.reveal-progress span { display: block; width: 0; height: 100%; background: var(--champagne); transition: width .8s ease; }
.reveal-ranking { margin-top: 3rem; }
.reveal-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.4rem; }
.reveal-heading h2 { margin: 0; font-size: clamp(1.3rem, 3vw, 2rem); }
.reveal-heading > p { flex-shrink: 0; margin: 0; color: var(--muted); font-size: .75rem; }
.next-reveal { display: grid; grid-template-columns: 60px 1fr auto; gap: 1.5rem; align-items: center; padding: 2rem; border: 1px solid var(--line); background: var(--ink-soft); }
.next-reveal[hidden], .reveal-error[hidden] { display: none; }
.next-symbol { font-size: 2rem; color: var(--muted); text-align: center; }
.next-reveal h3 { margin: .5rem 0; font-size: 1.35rem; letter-spacing: -.035em; }
.next-reveal p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: .85rem; }
.reveal-clock { display: grid; gap: .25rem; text-align: right; }
.reveal-clock > span { font-size: 1.5rem; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.reveal-clock small { color: var(--muted); font-size: .55rem; letter-spacing: .11em; }
.public-ranking { list-style: none; margin: 0; padding: 0; }
.result-row { display: grid; grid-template-columns: 60px 1fr auto; gap: 1.5rem; align-items: center; padding: 1.5rem 2rem; border-bottom: 1px solid var(--line); }
.result-position { color: var(--champagne-soft); font-size: 2.5rem; font-weight: 300; letter-spacing: -.075em; line-height: 1; font-variant-numeric: tabular-nums; }
.result-player { min-width: 0; }
.result-player h3 { margin: 0 0 .25rem; font-size: clamp(1.05rem, 2.4vw, 1.5rem); }
.result-player p { margin: 0; color: var(--muted); font-size: .8rem; }
.result-points { display: grid; text-align: right; }
.result-points strong { font-size: 1.4rem; font-weight: 400; font-variant-numeric: tabular-nums; }
.result-points span { color: var(--muted); font-size: .6rem; letter-spacing: .12em; }
.result-badge { display: block; margin-bottom: .65rem; font-size: .6rem; letter-spacing: .18em; font-weight: 700; }
.result-row.podium { background: rgba(252, 212, 160, .035); }
.result-row.winner { margin-top: 1rem; border: 1px solid var(--champagne); padding-top: 2.25rem; padding-bottom: 2.25rem; background: linear-gradient(110deg, rgba(252, 212, 160, .13), rgba(252, 212, 160, .025)); }
.winner .result-position { color: var(--champagne); font-size: 4rem; }
.winner .result-player h3 { font-size: clamp(1.55rem, 3.5vw, 2.5rem); }
.result-row.just-revealed { animation: reveal-in .8s ease both; }
.reveal-note { margin: 1.25rem 0 0; color: var(--muted); font-size: .8rem; }
.reveal-scoring { max-width: 710px; margin: 2.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line-subtle); color: var(--muted); font-size: .73rem; }
.reveal-error { color: var(--red); font-size: .85rem; }
@keyframes reveal-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 740px) {
  .reveal-shell { width: calc(100% - 2rem); padding-top: 2.5rem; }
  .reveal-hero { padding-bottom: 2.5rem; }
  .reveal-hero .hero-orbit { display: none; }
  .reveal-hero .hero-meta { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .reveal-hours { font-size: 1.25rem; }
  .reveal-hours small { display: block; margin: .3rem 0 0; }
  .reveal-tally strong { font-size: 1.5rem; }
  .reveal-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .next-reveal, .result-row { grid-template-columns: 38px 1fr auto; padding: 1.3rem .85rem; gap: .75rem; }
  .next-reveal { grid-template-columns: 38px 1fr; }
  .reveal-clock { grid-column: 2; text-align: left; margin-top: .25rem; }
  .result-position { font-size: 2rem; }
  .result-player p { font-size: .7rem; overflow-wrap: anywhere; }
  .result-points strong { font-size: 1.2rem; }
  .winner .result-position { font-size: 3rem; }
  .result-row.winner { padding-top: 1.6rem; padding-bottom: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .result-row.just-revealed { animation: none; }
  .reveal-progress span { transition: none; }
}
