/* ==========================================================================
   Sulzberger Darts Open 2026 — stylesheet
   ========================================================================== */

:root{
  --bg-black:#07080a;
  --bg-anthracite:#101215;
  --bg-panel:#15181c;
  --neon-red:#ff1f3d;
  --neon-red-dim:#8c0f21;
  --orange:#ff8c1a;
  --gold:#ffc94a;
  --board-green:#0f7a4a;
  --board-green-light:#1fae6b;
  --text-main:#f4f1ea;
  --text-dim:#a9a9ad;
  --glow-red: 0 0 12px rgba(255,31,61,.85), 0 0 40px rgba(255,31,61,.35);
  --glow-gold: 0 0 12px rgba(255,201,74,.8), 0 0 36px rgba(255,201,74,.3);
  --glow-orange: 0 0 14px rgba(255,140,26,.75), 0 0 44px rgba(255,140,26,.3);
  --font-display: "Teko","Rajdhani",sans-serif;
  --font-body: "Rajdhani",sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  background:var(--bg-black);
  scroll-behavior:smooth;
}

body{
  margin:0;
  min-height:100vh;
  background:var(--bg-black);
  color:var(--text-main);
  font-family:var(--font-body);
  overflow-x:hidden;
  position:relative;
  -webkit-font-smoothing:antialiased;
}

#shake-wrapper{ position:relative; z-index:1; }
#shake-wrapper.shake{ animation:screenshake .35s ease; }

@keyframes screenshake{
  0%{ transform:translate(0,0); }
  20%{ transform:translate(-4px,3px); }
  40%{ transform:translate(4px,-3px); }
  60%{ transform:translate(-3px,-2px); }
  80%{ transform:translate(3px,2px); }
  100%{ transform:translate(0,0); }
}

/* ---------- Background layers ---------- */

#bg-canvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,140,26,.09), transparent 60%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(15,122,74,.10), transparent 60%),
    linear-gradient(180deg, var(--bg-black) 0%, var(--bg-anthracite) 45%, var(--bg-black) 100%);
}

.light-rays{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    conic-gradient(from 200deg at 50% -10%,
      rgba(255,201,74,0) 0deg,
      rgba(255,201,74,.05) 8deg,
      rgba(255,201,74,0) 16deg,
      rgba(255,31,61,0) 40deg,
      rgba(255,31,61,.05) 48deg,
      rgba(255,31,61,0) 56deg,
      rgba(255,201,74,0) 140deg,
      rgba(255,201,74,.05) 150deg,
      rgba(255,201,74,0) 160deg
    );
  mix-blend-mode:screen;
  animation:raysturn 40s linear infinite;
  opacity:.8;
}
@keyframes raysturn{
  0%{ transform:rotate(0deg); }
  100%{ transform:rotate(360deg); }
}

.vignette{
  position:fixed;
  inset:0;
  z-index:2;
  pointer-events:none;
  box-shadow:inset 0 0 18vw rgba(0,0,0,.75);
  background:radial-gradient(ellipse at 50% 40%, transparent 45%, rgba(0,0,0,.55) 100%);
}

/* ---------- Hero ---------- */

.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:6rem 1.25rem 4rem;
  text-align:center;
  overflow:hidden;
}

.tension-banner{
  position:absolute;
  top:1.2rem;
  left:50%;
  transform:translateX(-50%);
  font-family:var(--font-display);
  font-size:clamp(.85rem,2.4vw,1.1rem);
  letter-spacing:.12em;
  padding:.5rem 1.4rem;
  border-radius:999px;
  border:1px solid rgba(255,31,61,.5);
  background:rgba(255,31,61,.08);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  opacity:0;
  z-index:6;
  white-space:nowrap;
}
.tension-banner.show{ animation:tensionIn .6s ease forwards; }
@keyframes tensionIn{
  0%{ opacity:0; transform:translateX(-50%) translateY(-12px); }
  100%{ opacity:1; transform:translateX(-50%) translateY(0); }
}

.hero-board{
  position:absolute;
  top:50%;
  left:50%;
  width:min(140vw,1100px);
  height:min(140vw,1100px);
  transform:translate(-50%,-50%);
  z-index:0;
  opacity:.16;
  pointer-events:none;
  filter:drop-shadow(0 0 60px rgba(255,31,61,.25));
}
.board-spin{
  transform-origin:200px 200px;
  animation:boardspin 180s linear infinite;
}
@keyframes boardspin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}
.ring{ }
.ring-outer{ fill:#050505; stroke:#3a3a3a; stroke-width:2; }
.ring-double{ fill:none; stroke:var(--neon-red); stroke-width:14; opacity:.55; }
.ring-single-outer{ fill:#111; stroke:#333; stroke-width:1; }
.ring-triple{ fill:none; stroke:var(--board-green-light); stroke-width:12; opacity:.55; }
.ring-single-inner{ fill:#0d0d0d; stroke:#2c2c2c; stroke-width:1; }
.ring-25{ fill:var(--board-green); opacity:.55; }
.ring-bull{ fill:var(--neon-red); opacity:.75; }
.segments line{ stroke:#333; stroke-width:1; }

.hero-content{
  position:relative;
  z-index:3;
  max-width:900px;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.eyebrow{
  font-family:var(--font-display);
  letter-spacing:.3em;
  font-size:clamp(.7rem,2vw,.95rem);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  margin:0 0 .6rem;
}

.title{
  margin:0;
  line-height:.95;
  font-family:var(--font-display);
  font-weight:700;
  text-transform:uppercase;
}
.title-line{
  display:block;
  font-size:clamp(2.6rem,10vw,6.4rem);
  letter-spacing:.03em;
}
.title-line1{
  color:var(--text-main);
  text-shadow:0 0 24px rgba(244,241,234,.25);
}
.title-line2{
  color:var(--neon-red);
  text-shadow:var(--glow-red);
  animation:flicker 6s ease-in-out infinite;
}
.title-line3{
  color:var(--gold);
  text-shadow:var(--glow-gold);
  font-size:clamp(2.2rem,8vw,5rem);
  letter-spacing:.15em;
}

@keyframes flicker{
  0%,89%,92%,100%{ opacity:1; }
  90%{ opacity:.75; }
  91%{ opacity:.95; }
}

.subdate{
  font-family:var(--font-display);
  font-size:clamp(1rem,3vw,1.5rem);
  letter-spacing:.08em;
  color:var(--text-dim);
  margin:1rem 0 2.5rem;
}
.time-highlight{
  color:var(--board-green-light);
  text-shadow:0 0 10px rgba(31,174,107,.7);
  font-weight:600;
}

/* ---------- Countdown ---------- */

.countdown{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(.4rem,2vw,1.1rem);
  margin-bottom:1.5rem;
}

.unit-box{
  position:relative;
  width:clamp(4.4rem,20vw,7.5rem);
  padding:.9rem .3rem .8rem;
  background:linear-gradient(180deg,#1b1e22 0%,#0c0d0f 100%);
  border:1px solid rgba(255,140,26,.3);
  border-radius:14px;
  box-shadow:
    0 0 0 1px rgba(0,0,0,.6) inset,
    0 8px 24px rgba(0,0,0,.6),
    0 0 22px rgba(255,31,61,.18);
  transition:box-shadow .3s ease, border-color .3s ease, transform .15s ease;
}

.unit-value{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(2.2rem,9vw,4.2rem);
  line-height:1;
  color:var(--gold);
  text-shadow:var(--glow-gold);
  font-variant-numeric:tabular-nums;
}

.unit-label{
  margin-top:.35rem;
  font-family:var(--font-display);
  font-size:clamp(.65rem,2vw,.9rem);
  letter-spacing:.18em;
  color:var(--text-dim);
}

.unit-box.tick{
  animation:unitTick .5s ease;
}
@keyframes unitTick{
  0%{ transform:scale(1); box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 22px rgba(255,31,61,.18); }
  30%{ transform:scale(1.08); box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 40px rgba(255,201,74,.55); border-color:rgba(255,201,74,.8); }
  100%{ transform:scale(1); box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 22px rgba(255,31,61,.18); }
}

.sep{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,6vw,3rem);
  color:var(--neon-red);
  text-shadow:var(--glow-red);
  transform:translateY(-.4rem);
}

.countdown-message{
  min-height:1.6em;
  font-family:var(--font-display);
  font-size:clamp(.95rem,3vw,1.4rem);
  letter-spacing:.08em;
  color:var(--orange);
  text-shadow:var(--glow-orange);
  text-transform:uppercase;
}

/* intensity states */
.hero.tense-day .unit-box{
  border-color:rgba(255,31,61,.55);
  box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 34px rgba(255,31,61,.32);
}
.hero.tense-hour .unit-box{
  border-color:rgba(255,31,61,.8);
  animation:tensePulse 1.4s ease-in-out infinite;
}
.hero.tense-final .countdown{
  animation:finalShake 6s ease-in-out infinite;
}
@keyframes tensePulse{
  0%,100%{ box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 26px rgba(255,31,61,.35); }
  50%{ box-shadow:0 0 0 1px rgba(0,0,0,.6) inset,0 8px 24px rgba(0,0,0,.6),0 0 55px rgba(255,31,61,.7); }
}
@keyframes finalShake{
  0%,94%,100%{ transform:translate(0,0); }
  95%{ transform:translate(-2px,1px); }
  97%{ transform:translate(2px,-1px); }
}
.hero.tense-critical .unit-box{
  animation:criticalPulse .6s ease-in-out infinite;
}
@keyframes criticalPulse{
  0%,100%{ transform:scale(1); }
  50%{ transform:scale(1.05); }
}

/* Game on banner */
.gameon{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
  animation:gameonIn 1s ease;
}
.gameon[hidden]{ display:none; }
.gameon-icon{
  font-size:clamp(3rem,10vw,5rem);
  animation:spinIn 1s ease, boardspin 6s linear infinite 1s;
}
.gameon-text{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(2.6rem,10vw,5rem);
  color:var(--neon-red);
  text-shadow:var(--glow-red);
  letter-spacing:.06em;
}
.gameon-sub{
  font-family:var(--font-display);
  font-size:clamp(1rem,3.4vw,1.6rem);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  letter-spacing:.1em;
}
@keyframes gameonIn{
  0%{ opacity:0; transform:scale(.7); }
  60%{ opacity:1; transform:scale(1.05); }
  100%{ opacity:1; transform:scale(1); }
}
@keyframes spinIn{
  0%{ transform:rotate(-180deg) scale(0); }
  100%{ transform:rotate(0deg) scale(1); }
}

.scroll-hint{
  position:absolute;
  bottom:1.6rem;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:.4rem;
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.22em;
  font-size:clamp(.85rem,3vw,1rem);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  background:rgba(255,201,74,.07);
  border:1px solid rgba(255,201,74,.35);
  border-radius:999px;
  padding:.5rem 1.2rem;
  animation:hintbounce 1.8s ease-in-out infinite;
  z-index:3;
}
.scroll-hint .chevron{
  font-size:1.15em;
}
@keyframes hintbounce{
  0%,100%{ transform:translate(-50%,0); opacity:.7; box-shadow:0 0 10px rgba(255,201,74,.15); }
  50%{ transform:translate(-50%,8px); opacity:1; box-shadow:0 0 22px rgba(255,201,74,.4); }
}

/* ---------- Flying darts / impact ---------- */

#dart-layer{
  position:fixed;
  inset:0;
  z-index:5;
  pointer-events:none;
  overflow:hidden;
}
.flying-dart{
  position:absolute;
  font-size:2.2rem;
  filter:drop-shadow(0 0 8px rgba(255,140,26,.8));
  will-change:transform,opacity;
}
.impact-glow{
  position:absolute;
  width:120px;
  height:120px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,201,74,.9) 0%, rgba(255,140,26,.5) 40%, transparent 70%);
  transform:translate(-50%,-50%);
  animation:impactglow .6s ease-out forwards;
}
@keyframes impactglow{
  0%{ opacity:1; transform:translate(-50%,-50%) scale(.3); }
  100%{ opacity:0; transform:translate(-50%,-50%) scale(2.2); }
}
.impact-particle{
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 8px var(--gold);
  animation:particlefly .7s ease-out forwards;
}
@keyframes particlefly{
  0%{ opacity:1; transform:translate(0,0) scale(1); }
  100%{ opacity:0; transform:var(--pfly) scale(.3); }
}

/* ---------- Big overlays (180 / schnocka) ---------- */

.big-overlay{
  position:fixed;
  inset:0;
  z-index:20;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  pointer-events:none;
  opacity:0;
  padding:1rem;
}
#overlay-180 span{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(3rem,16vw,9rem);
  color:var(--neon-red);
  text-shadow:0 0 30px rgba(255,31,61,.9), 0 0 90px rgba(255,140,26,.6);
  letter-spacing:.04em;
}
.big-overlay.show{
  animation:overlayPop 2.2s ease forwards;
}
@keyframes overlayPop{
  0%{ opacity:0; transform:scale(.6) rotate(-4deg); }
  12%{ opacity:1; transform:scale(1.1) rotate(1deg); }
  20%{ transform:scale(1) rotate(0deg); }
  80%{ opacity:1; }
  100%{ opacity:0; transform:scale(1.05); }
}

.schnocka-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.6rem,7vw,3.4rem);
  color:var(--board-green-light);
  text-shadow:0 0 24px rgba(31,174,107,.85);
  max-width:90vw;
}
.schnocka-sub{
  margin-top:1rem;
  font-family:var(--font-display);
  font-size:clamp(1rem,3.4vw,1.6rem);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  min-height:1.4em;
}

#mosquito{
  position:fixed;
  z-index:19;
  font-size:2rem;
  top:40%;
  left:-10%;
  opacity:0;
  pointer-events:none;
}
#mosquito.fly{
  animation:mosquitofly 3.5s ease-in-out forwards;
}
@keyframes mosquitofly{
  0%{ opacity:0; left:-10%; top:60%; transform:rotate(0deg); }
  10%{ opacity:1; }
  25%{ left:20%; top:20%; transform:rotate(15deg); }
  50%{ left:50%; top:55%; transform:rotate(-10deg); }
  75%{ left:75%; top:15%; transform:rotate(10deg); }
  90%{ opacity:1; }
  100%{ opacity:0; left:110%; top:40%; transform:rotate(0deg); }
}

#score-popup{
  position:fixed;
  z-index:21;
  left:50%;
  top:35%;
  transform:translate(-50%,-50%);
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(2rem,8vw,4rem);
  color:var(--gold);
  text-shadow:var(--glow-gold);
  pointer-events:none;
  opacity:0;
}
#score-popup.show{
  animation:scorepop 1.4s ease forwards;
}
@keyframes scorepop{
  0%{ opacity:0; transform:translate(-50%,-40%) scale(.5); }
  25%{ opacity:1; transform:translate(-50%,-50%) scale(1.1); }
  35%{ transform:translate(-50%,-50%) scale(1); }
  100%{ opacity:0; transform:translate(-50%,-60%) scale(1); }
}

/* ---------- Sections ---------- */

.section{
  position:relative;
  z-index:1;
  max-width:1100px;
  margin:0 auto;
  padding:5rem 1.25rem;
}

.section-title{
  text-align:center;
  margin:0 0 2.5rem;
}
.section-title span{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.8rem,6vw,3rem);
  letter-spacing:.1em;
  color:var(--text-main);
  border-bottom:3px solid var(--neon-red);
  padding-bottom:.4rem;
  box-shadow:0 12px 24px -12px rgba(255,31,61,.6);
  text-shadow:0 0 16px rgba(244,241,234,.15);
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.4rem;
}

.card{
  background:linear-gradient(160deg,var(--bg-panel) 0%,#0c0d0f 100%);
  border:1px solid rgba(255,255,255,.06);
  border-radius:16px;
  padding:1.6rem 1.4rem;
  position:relative;
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:16px;
  padding:1px;
  background:linear-gradient(135deg,rgba(255,140,26,.4),rgba(255,31,61,0) 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  opacity:.7;
}
.card:hover{
  transform:translateY(-6px);
  border-color:rgba(255,140,26,.4);
  box-shadow:0 16px 32px -12px rgba(255,140,26,.25), 0 0 30px rgba(255,31,61,.12);
}
.card-icon{
  font-size:2.2rem;
  margin-bottom:.6rem;
  filter:drop-shadow(0 0 10px rgba(255,201,74,.5));
}
.card h3{
  margin:.2rem 0 .5rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.3rem;
  letter-spacing:.02em;
  color:var(--gold);
}
.card p{
  margin:0;
  color:var(--text-dim);
  line-height:1.45;
  font-size:.98rem;
}

/* Drinks */
.drink-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:1.2rem;
  margin-bottom:1.8rem;
}
.drink-card{
  background:radial-gradient(circle at 50% 0%, rgba(15,122,74,.12), transparent 60%), var(--bg-panel);
  border:1px solid rgba(31,174,107,.25);
  border-radius:14px;
  padding:1.6rem 1rem;
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease;
}
.drink-card:hover{
  transform:translateY(-4px) scale(1.02);
  box-shadow:0 0 30px rgba(31,174,107,.25);
}
.drink-icon{ font-size:2.4rem; margin-bottom:.5rem; }
.drink-name{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.25rem;
  color:var(--text-main);
}
.drink-tag{
  margin-top:.3rem;
  font-size:.85rem;
  color:var(--orange);
  text-shadow:var(--glow-orange);
  font-style:italic;
}
.drink-quote{
  text-align:center;
  font-family:var(--font-display);
  font-size:1.1rem;
  color:var(--text-dim);
  letter-spacing:.03em;
}

/* Food */
.food-box{
  background:var(--bg-panel);
  border:1px solid rgba(255,140,26,.25);
  border-radius:16px;
  padding:2rem;
  text-align:center;
  font-size:1.15rem;
  line-height:1.6;
  box-shadow:0 0 30px rgba(255,140,26,.08);
}
.food-box strong{
  color:var(--gold);
  text-shadow:var(--glow-gold);
}

/* Hall of fame */
.hof-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.4rem;
  margin-bottom:1.5rem;
}
.hof-card{
  border-radius:16px;
  padding:2rem 1.4rem;
  text-align:center;
  background:var(--bg-panel);
  border:1px solid rgba(255,255,255,.06);
}
.hof-card.past{
  border-color:rgba(255,201,74,.4);
  box-shadow:0 0 30px rgba(255,201,74,.12);
}
.hof-card.next{
  border-color:rgba(255,31,61,.4);
  box-shadow:0 0 30px rgba(255,31,61,.15);
}
.hof-year{
  font-family:var(--font-display);
  font-size:1.4rem;
  letter-spacing:.1em;
  color:var(--text-dim);
  margin-bottom:.3rem;
}
.hof-trophy{ font-size:2.6rem; margin-bottom:.4rem; }
.hof-trophy.pulse{ animation:trophypulse 2s ease-in-out infinite; }
@keyframes trophypulse{
  0%,100%{ transform:scale(1); filter:drop-shadow(0 0 6px rgba(255,31,61,.4)); }
  50%{ transform:scale(1.12); filter:drop-shadow(0 0 18px rgba(255,31,61,.8)); }
}
.hof-name{
  font-family:var(--font-display);
  font-size:1.3rem;
  color:var(--text-main);
}
.hof-name strong{ color:var(--gold); }
.hof-quote{
  text-align:center;
  font-family:var(--font-display);
  font-size:1.15rem;
  color:var(--text-dim);
  letter-spacing:.02em;
}

/* ---------- Footer ---------- */

.footer{
  position:relative;
  z-index:1;
  text-align:center;
  padding:3.5rem 1.25rem 4rem;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-target{
  font-size:2.4rem;
  margin-bottom:.6rem;
  filter:drop-shadow(0 0 14px rgba(255,31,61,.6));
}
.footer-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.6rem;
  letter-spacing:.08em;
  color:var(--text-main);
  margin:.2rem 0;
}
.footer-date,.footer-place{
  font-family:var(--font-body);
  color:var(--text-dim);
  margin:.15rem 0;
}
.footer-gameon{
  margin-top:1rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.2rem;
  color:var(--neon-red);
  text-shadow:var(--glow-red);
  letter-spacing:.1em;
}

/* ---------- Responsive ---------- */

@media (max-width:640px){
  .hero{ padding:4.5rem 1rem 3.5rem; }
  .eyebrow{ font-size:clamp(.7rem,3vw,.9rem); }
  .title-line{ font-size:clamp(2.8rem,14vw,4.4rem); }
  .title-line3{ font-size:clamp(2.4rem,12vw,3.6rem); }
  .subdate{ font-size:clamp(1.05rem,4.2vw,1.35rem); margin:.9rem 0 2.1rem; }
  .countdown{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1rem;
    max-width:400px;
    width:100%;
    margin:0 auto 1.4rem;
  }
  .sep{ display:none; }
  .unit-box{ width:100%; padding:1.1rem .3rem 1rem; }
  .unit-value{ font-size:clamp(2.6rem,14vw,3.6rem); }
  .unit-label{ font-size:clamp(.7rem,3vw,.85rem); }
  .countdown-message{ font-size:clamp(1rem,4vw,1.2rem); }
  .scroll-hint{ bottom:1.1rem; }
  .section{ padding:3.5rem 1.1rem; }
}

@media (prefers-reduced-motion: reduce){
  *{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}
