:root {
  --navy: #061d45;
  --navy-2: #020e25;
  --blue: #04aef0;
  --blue-2: #087abe;
  --cyan: #13d6f1;
  --red: #ef1824;
  --red-2: #b30c1a;
  --yellow: #f8d821;
  --orange: #ff8a00;
  --ink: #0a1730;
  --paper: #fffdf2;
  --white: #ffffff;
  --shadow: 7px 8px 0 var(--navy-2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
}
body::selection { color: var(--navy); background: var(--yellow); }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input { font: inherit; }
section { scroll-margin-top: 70px; }
:focus-visible { outline: 4px solid var(--yellow); outline-offset: 4px; }
.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; }
.skip-link { position: fixed; z-index: 999; top: 8px; left: 8px; transform: translateY(-160%); background: #fff; color: #000; padding: .75rem 1rem; font-weight: 900; }
.skip-link:focus { transform: none; }

.scroll-progress { position: fixed; z-index: 160; inset: 0 0 auto; height: 4px; background: transparent; pointer-events: none; }
.scroll-progress span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--yellow),var(--red),var(--cyan)); box-shadow:0 0 12px var(--yellow); }

.topbar {
  position: fixed;
  z-index: 150;
  inset: 0 0 auto 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 72px;
  padding: .55rem clamp(1rem, 4vw, 3.5rem);
  background: rgba(3, 20, 49, .76);
  border-bottom: 2px solid rgba(255,255,255,.15);
  backdrop-filter: blur(14px);
  transition: background .25s ease, box-shadow .25s ease;
}
.topbar.is-scrolled { background: rgba(3, 20, 49, .95); box-shadow:0 10px 30px rgba(0,0,0,.2); }
.topbar__brand { flex:0 0 auto; }
.topbar__brand img { width: clamp(128px, 15vw, 190px); filter: drop-shadow(0 5px 4px rgba(0,0,0,.35)); }
.topbar__nav { display:flex; align-items:center; justify-content:center; gap:clamp(.8rem,2.2vw,2rem); }
.topbar__nav a { position:relative; padding:.55rem .15rem; color:#fff; font-size:.79rem; font-weight:900; letter-spacing:.075em; text-transform:uppercase; text-decoration:none; }
.topbar__nav a::after { content:""; position:absolute; inset:auto 0 2px; height:3px; background:var(--yellow); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.topbar__nav a:hover::after, .topbar__nav a:focus-visible::after { transform:scaleX(1); }
.topbar__cta { flex:0 0 auto; padding:.7rem 1rem; color:var(--navy); background:var(--yellow); border:2px solid #fff; box-shadow:4px 4px 0 var(--red); text-decoration:none; font-size:.75rem; font-weight:950; letter-spacing:.04em; text-transform:uppercase; transition:transform .2s ease,box-shadow .2s ease; }
.topbar__cta:hover { transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--red); }

.hero {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(300px, .96fr);
  align-items: center;
  padding: 7rem clamp(1rem, 5vw, 5.5rem) 5.5rem;
  color: #fff;
  background:
    radial-gradient(circle at 45% 45%, rgba(19,214,241,.26), transparent 34%),
    linear-gradient(130deg, #073d82 0%, var(--navy) 48%, var(--navy-2) 100%);
  overflow: hidden;
}
.hero::after {
  content: "";
  position: absolute;
  z-index: -2;
  width: 54vmax;
  aspect-ratio: 1;
  right: -24vmax;
  bottom: -28vmax;
  border: 9vmax solid rgba(239, 24, 36, .85);
  border-radius: 50%;
  box-shadow: 0 0 0 6vmax rgba(248,216,33,.92), 0 0 0 11vmax rgba(4,174,240,.35);
}
.hero__halftone { position: absolute; z-index: -1; inset: 0; opacity: .2; background-image: radial-gradient(#fff 1.3px, transparent 1.3px); background-size: 14px 14px; mask-image: linear-gradient(90deg,#000,transparent 74%); }
.speed-lines { position: absolute; z-index: -1; inset: -30%; opacity: .2; background: repeating-conic-gradient(from 88deg at 72% 48%, transparent 0 4deg, #fff 4deg 4.6deg, transparent 4.6deg 9deg); animation: spin 36s linear infinite; }
.comic-star { position:absolute; z-index:0; color:var(--yellow); -webkit-text-stroke:3px var(--navy-2); filter:drop-shadow(4px 4px 0 var(--red)); line-height:1; animation:starPulse 3.8s ease-in-out infinite; }
.comic-star--a { top:18%; left:48%; font-size:2.2rem; transform:rotate(-15deg); }
.comic-star--b { top:34%; left:4%; font-size:1.45rem; animation-delay:-1.2s; }
.comic-star--c { right:3%; top:15%; font-size:2.6rem; animation-delay:-2.4s; }
.hero__content { position: relative; z-index: 5; max-width: 740px; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .4rem; color: var(--yellow); font-size: clamp(.78rem, 2vw, 1rem); font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow span { font-size: 1.5em; }
.hero__logo { display: block; width: min(720px, 100%); margin: -1rem 0 -2rem; filter: drop-shadow(9px 14px 0 rgba(0,0,0,.28)); transform: rotate(-2deg); }
.hero__copy { max-width: 600px; margin: 0; font-size: clamp(1.08rem, 2vw, 1.35rem); line-height: 1.45; font-weight: 720; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.4rem; }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.25rem; border: 3px solid #fff; text-decoration: none; font-size: .92rem; font-weight: 950; letter-spacing: .045em; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-4px) rotate(-1deg); }
.button--primary { color: var(--navy); background: var(--yellow); border-color: var(--yellow); box-shadow: 6px 6px 0 var(--red); }
.button--ghost { background: rgba(255,255,255,.07); box-shadow: 6px 6px 0 rgba(0,0,0,.3); }
.button--dark { color:#fff; background:var(--navy); border-color:var(--navy); box-shadow:6px 6px 0 var(--red); }
.hero__date { display: inline-flex; align-items: center; gap: .8rem; margin-top: 1.65rem; transform: rotate(-1deg); }
.hero__date-label { padding: .45rem .65rem; color: var(--navy); background: #fff; font-size: .72rem; font-weight: 950; text-transform: uppercase; letter-spacing: .1em; }
.hero__date strong { color: var(--yellow); font-size: clamp(1.45rem, 4vw, 2.6rem); line-height: 1; font-style: italic; letter-spacing: -.02em; }
.hero__character-wrap { position: absolute; z-index: 3; right: clamp(-3rem, 2vw, 3rem); bottom: 0; width: min(47vw, 670px); filter: drop-shadow(-14px 12px 0 rgba(0,0,0,.28)); will-change:transform; }
.hero__character { width: 100%; transform-origin: bottom center; animation: heroFloat 4.8s ease-in-out infinite; }
.burst { position: absolute; z-index: 4; display: grid; place-items: center; width: 86px; aspect-ratio: 1; color: #fff; background: var(--red); clip-path: polygon(50% 0,61% 29%,85% 9%,78% 39%,100% 43%,75% 57%,95% 79%,65% 72%,57% 100%,45% 73%,18% 94%,28% 63%,0 57%,29% 47%,7% 21%,39% 31%); font-weight: 1000; font-size: 1.1rem; font-style: italic; text-shadow: 2px 2px 0 var(--navy); animation: pop 3.5s ease-in-out infinite; }
.burst--one { top: 16%; left: -8%; }
.burst--two { top: 42%; right: -2%; width: 66px; background: var(--blue); animation-delay: -1.4s; }
.scroll-cue { position: absolute; z-index: 8; bottom: 1.1rem; left: 50%; display: flex; flex-direction: column; align-items: center; gap: .4rem; color: rgba(255,255,255,.78); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transform: translateX(-50%); }
.scroll-cue span { width: 22px; height: 34px; border: 2px solid currentColor; border-radius: 99px; }
.scroll-cue span::after { content:""; display:block; width:4px; height:7px; margin:6px auto; border-radius:99px; background:currentColor; animation: scroll 1.6s ease-in-out infinite; }

.marquee { position:relative; z-index:10; overflow:hidden; padding:.7rem 0; color:var(--navy); background:var(--yellow); border-block:4px solid var(--navy); }
.marquee__track { display:flex; width:max-content; align-items:center; gap:1.25rem; animation:marquee 22s linear infinite; }
.marquee span { font-size:clamp(1rem,2.4vw,1.65rem); font-weight:1000; font-style:italic; letter-spacing:.07em; }
.marquee i { color:var(--red); font-size:1.3rem; font-style:normal; }

.mission { position: relative; padding: clamp(5rem, 9vw, 8.5rem) clamp(1rem, 5vw, 5rem); background: var(--paper); }
.mission::before { content:""; position:absolute; inset: 0 0 auto; height: 22px; background: repeating-linear-gradient(135deg,var(--yellow) 0 22px,var(--navy) 22px 44px); }
.section-heading { max-width: 790px; margin: 0 auto 2.8rem; text-align: center; }
.kicker { display:inline-block; margin:0 0 .8rem; padding:.42rem .75rem; color:#fff; background:var(--red); font-size:.78rem; font-weight:950; letter-spacing:.14em; text-transform:uppercase; transform:rotate(-1deg); box-shadow:4px 4px 0 var(--navy); }
.kicker--yellow { color:var(--navy); background:var(--yellow); box-shadow:4px 4px 0 rgba(0,0,0,.35); }
.section-heading h2, .prizes h2, .calculator h2, .countdown h2, .video-section h2, .faq h2, .final-cta h2 { margin: 0; font-size: clamp(2.1rem, 6vw, 4.8rem); line-height: .97; letter-spacing: -.058em; text-transform: uppercase; }
.section-heading > p:last-child { margin: 1.2rem auto 0; font-size: 1.08rem; line-height: 1.55; }
.steps { width: min(1120px,100%); margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.15rem; }
.step-card { position:relative; min-height:260px; padding:3.9rem 1.45rem 1.6rem; color:#fff; background:var(--navy); border:4px solid var(--ink); box-shadow:8px 8px 0 var(--blue); overflow:hidden; transition:transform .25s ease,box-shadow .25s ease; }
.step-card:hover { transform:translateY(-7px) rotate(-1deg); box-shadow:12px 14px 0 var(--blue); }
.step-card:nth-child(2){ background:var(--red); box-shadow:8px 8px 0 var(--yellow); transform:translateY(1.5rem); }
.step-card:nth-child(2):hover { transform:translateY(.9rem) rotate(1deg); box-shadow:12px 14px 0 var(--yellow); }
.step-card:nth-child(3){ background:var(--blue-2); box-shadow:8px 8px 0 var(--red); }
.step-card:nth-child(3):hover { box-shadow:12px 14px 0 var(--red); }
.step-card__number { position:absolute; top:-1.4rem; right:.5rem; color:rgba(255,255,255,.14); font-size:6.8rem; font-weight:1000; letter-spacing:-.08em; }
.step-card__icon { position:relative; display:block; margin-bottom:.6rem; font-size:2.2rem; filter:drop-shadow(3px 4px 0 rgba(0,0,0,.3)); }
.step-card h3 { position:relative; margin:0 0 .65rem; font-size:1.65rem; text-transform:uppercase; }
.step-card p { position:relative; margin:0; font-size:1rem; line-height:1.55; }
.mission__note { width:fit-content; max-width:min(720px,100%); margin:3.7rem auto 0; padding:.8rem 1rem; color:var(--navy); background:#fff; border:2px dashed var(--navy); font-size:.88rem; font-weight:750; text-align:center; }

.calculator { position:relative; isolation:isolate; min-height:710px; display:grid; grid-template-columns:minmax(270px,.78fr) minmax(430px,1.22fr); align-items:end; gap:clamp(1rem,4vw,5rem); padding:clamp(4rem,8vw,7rem) clamp(1rem,7vw,7rem) 0; color:#fff; background:linear-gradient(125deg,#05265b 0%,#074b9a 60%,#0099db 100%); overflow:hidden; }
.calculator::before { content:""; position:absolute; z-index:-2; inset:0; background-image:radial-gradient(rgba(255,255,255,.24) 1.5px,transparent 1.5px); background-size:18px 18px; mask-image:linear-gradient(90deg,transparent,#000); }
.calculator__shape { position:absolute; z-index:-1; width:65vw; aspect-ratio:1; right:-25vw; top:-40%; border-radius:50%; border:9vw solid var(--red); box-shadow:0 0 0 7vw var(--yellow); opacity:.92; }
.calculator__character { align-self:end; max-width:560px; justify-self:end; filter:drop-shadow(12px 12px 0 rgba(0,0,0,.28)); will-change:transform; }
.calculator__character img { max-height:690px; width:auto; }
.calculator__panel { align-self:center; width:min(680px,100%); margin-bottom:clamp(3.5rem,7vw,6rem); padding:clamp(1.35rem,4vw,2.5rem); color:var(--navy); background:var(--paper); border:5px solid var(--navy-2); box-shadow:14px 16px 0 var(--red); transform:rotate(-.5deg); }
.calculator__panel h2 { font-size:clamp(2rem,5vw,4.2rem); }
.calculator__panel > p:not(.kicker):not(.coupon-help) { margin:1rem 0 1.4rem; font-size:1.02rem; line-height:1.5; }
.coupon-input { display:grid; grid-template-columns:1fr auto; gap:.55rem 1rem; padding:1.15rem; background:#fff; border:3px solid var(--navy); }
.coupon-input label { font-weight:900; }
.coupon-input output { color:var(--red); font-size:1.1rem; font-weight:1000; }
.coupon-input input { grid-column:1/-1; width:100%; accent-color:var(--red); cursor:pointer; }
.coupon-input input::-webkit-slider-runnable-track { height:12px; border:2px solid var(--navy); background:linear-gradient(90deg,var(--yellow),var(--orange)); }
.coupon-input input::-webkit-slider-thumb { width:28px; height:28px; margin-top:-10px; border:4px solid #fff; border-radius:50%; background:var(--red); box-shadow:0 0 0 3px var(--navy); -webkit-appearance:none; }
.range-labels { grid-column:1/-1; display:flex; justify-content:space-between; font-size:.75rem; font-weight:850; }
.coupon-result { display:flex; align-items:baseline; justify-content:center; gap:.55rem; margin:1.15rem 0 .75rem; padding:.65rem 1rem; color:#fff; background:var(--red); border:3px solid var(--navy); box-shadow:5px 5px 0 var(--yellow); text-transform:uppercase; }
.coupon-result span { font-size:.72rem; font-weight:900; letter-spacing:.08em; }
.coupon-result strong { font-size:clamp(2.8rem,8vw,5rem); line-height:.9; }
.coupon-result b { font-size:1rem; }
.coupon-help { margin:.9rem 0 0; font-size:.78rem; line-height:1.45; opacity:.76; }

.prizes { position:relative; padding:clamp(5rem,10vw,9rem) clamp(1rem,5vw,5rem); background:
  linear-gradient(rgba(255,253,242,.95),rgba(255,253,242,.95)),
  radial-gradient(var(--blue) 1px,transparent 1px); background-size:auto,16px 16px; overflow:hidden; }
.prizes::before { content:"WOW!"; position:absolute; right:-.04em; top:-.1em; color:rgba(4,174,240,.07); font-size:clamp(9rem,28vw,28rem); line-height:1; font-weight:1000; font-style:italic; letter-spacing:-.1em; pointer-events:none; }
.prizes__intro { position:relative; z-index:1; max-width:820px; margin:0 auto 3rem; text-align:center; }
.prizes__intro > p:last-child { max-width:650px; margin:1.2rem auto 0; font-size:1.08rem; line-height:1.6; }
.prize-showcase { position:relative; z-index:1; width:min(1180px,100%); margin:auto; display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }
.prize-card { position:relative; min-height:360px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; padding:3.2rem 1rem 1.1rem; border:4px solid var(--navy); box-shadow:8px 9px 0 var(--navy); overflow:hidden; transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease; }
.prize-card:hover { transform:translateY(-7px) rotate(-.7deg); box-shadow:13px 15px 0 var(--navy); }
.prize-card:nth-child(1){ grid-column:span 5; }
.prize-card:nth-child(2){ grid-column:span 4; }
.prize-card:nth-child(3){ grid-column:span 3; }
.prize-card:nth-child(4){ grid-column:span 5; }
.prize-card:nth-child(5){ grid-column:span 7; }
.prize-card::after { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.45) 1px,transparent 1px); background-size:12px 12px; pointer-events:none; }
.prize-card--orange { background:linear-gradient(145deg,#ffb20f,#ff6b00); }
.prize-card--pink { background:linear-gradient(145deg,#ff73c8,#e1136d); }
.prize-card--cyan { background:linear-gradient(145deg,#28dfe9,#009ed0); }
.prize-card--blue { background:linear-gradient(145deg,#37a9ff,#074fa5); }
.prize-card--yellow { background:linear-gradient(145deg,#fff253,#f7bd00); }
.prize-card__tag { position:absolute; z-index:3; top:.8rem; left:.8rem; padding:.4rem .6rem; color:#fff; background:var(--navy); font-size:.72rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; transform:rotate(-2deg); }
.prize-card img { position:relative; z-index:2; flex:1 1 auto; width:100%; height:250px; object-fit:contain; filter:drop-shadow(9px 12px 0 rgba(0,0,0,.18)); transition:transform .3s ease; }
.prize-card:hover img { transform:scale(1.04) rotate(1deg); }
.prize-card:nth-child(3) img { height:300px; }
.prize-card h3 { position:relative; z-index:3; align-self:stretch; margin:.5rem 0 0; padding:.7rem .8rem; color:#fff; background:var(--navy); font-size:1.35rem; text-align:center; text-transform:uppercase; }
.prize-card--voucher { min-height:330px; }
.prize-card img.voucher-image { position:relative; z-index:3; width:min(680px,96%); height:auto; flex:none; object-fit:contain; filter:drop-shadow(9px 10px 0 var(--navy)); transform:rotate(-2deg); }
.prize-card:hover img.voucher-image { transform:scale(1.025) rotate(0deg); }
.prizes__legal { max-width:900px; margin:2rem auto 0; color:#4a5262; font-size:.76rem; line-height:1.5; text-align:center; }

.countdown { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,1fr); align-items:center; gap:clamp(2rem,6vw,6rem); padding:clamp(4.5rem,9vw,7.5rem) clamp(1rem,7vw,7rem); color:#fff; background:linear-gradient(120deg,var(--red-2),var(--red) 45%,#ff483f); overflow:hidden; }
.countdown::after { content:""; position:absolute; z-index:-2; inset:0; background:repeating-conic-gradient(from 0deg at 18% 48%,transparent 0 6deg,rgba(255,255,255,.13) 6deg 7deg); }
.countdown__burst { position:absolute; z-index:-1; width:520px; aspect-ratio:1; left:-260px; top:50%; transform:translateY(-50%); background:var(--yellow); clip-path:polygon(50% 0,57% 28%,73% 4%,72% 33%,94% 17%,80% 41%,100% 43%,78% 52%,96% 70%,72% 64%,74% 94%,57% 70%,50% 100%,43% 71%,25% 96%,29% 65%,3% 78%,23% 55%,0 43%,25% 40%,7% 18%,32% 32%); opacity:.92; }
.countdown__copy { position:relative; z-index:2; max-width:620px; }
.countdown__copy h2 { text-shadow:5px 6px 0 rgba(0,0,0,.2); }
.countdown__copy > p:last-child { font-size:1.08rem; line-height:1.55; }
.countdown__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; }
.countdown__grid div { min-width:0; padding:1.15rem .35rem; color:var(--navy); background:#fff; border:4px solid var(--navy); box-shadow:6px 7px 0 var(--yellow); text-align:center; transform:rotate(-1deg); }
.countdown__grid div:nth-child(even){ transform:rotate(1.5deg) translateY(8px); }
.countdown__grid strong { display:block; font-size:clamp(2rem,5vw,4.2rem); line-height:1; letter-spacing:-.06em; }
.countdown__grid span { display:block; margin-top:.35rem; font-size:.67rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.countdown__grid.is-finished { grid-template-columns:1fr; }
.countdown-finished { margin:0; padding:1.5rem; color:var(--navy); background:var(--yellow); border:4px solid var(--navy); box-shadow:8px 9px 0 #fff; font-size:clamp(1.6rem,5vw,3.5rem); font-weight:1000; text-align:center; text-transform:uppercase; }

.video-section { position:relative; min-height:760px; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); align-items:center; gap:clamp(2rem,8vw,8rem); padding:clamp(5rem,9vw,8rem) clamp(1rem,9vw,9rem); background:var(--yellow); overflow:hidden; }
.video-section::before { content:""; position:absolute; width:36vw; aspect-ratio:1; right:-10vw; bottom:-14vw; border-radius:50%; border:7vw solid var(--blue); box-shadow:0 0 0 5vw var(--red); opacity:.85; }
.video-section__copy { position:relative; z-index:2; max-width:680px; }
.video-section__copy > p:not(.kicker) { max-width:560px; margin:1.2rem 0 1.7rem; font-size:1.08rem; line-height:1.6; }
.video-frame { position:relative; z-index:2; justify-self:center; width:min(390px,100%); padding:11px; background:var(--navy); border:5px solid #fff; border-radius:32px; box-shadow:18px 20px 0 var(--red),25px 27px 0 var(--navy); transform:rotate(2deg); }
.video-frame::before { content:""; position:absolute; z-index:4; width:35%; height:22px; top:10px; left:50%; transform:translateX(-50%); border-radius:0 0 14px 14px; background:var(--navy); }
.video-frame video { width:100%; aspect-ratio:1080/2026; object-fit:cover; border-radius:20px; background:#000; }
.video-frame__label { position:absolute; z-index:5; top:7%; left:-22%; padding:.55rem .8rem; color:#fff; background:var(--red); border:3px solid var(--navy); box-shadow:5px 5px 0 var(--navy); font-size:.78rem; font-weight:950; letter-spacing:.1em; text-transform:uppercase; transform:rotate(-7deg); }

.supporters { position:relative; padding:clamp(5rem,9vw,8rem) 1rem; background:var(--paper); }
.supporters::after { content:""; position:absolute; inset:auto 0 0; height:18px; background:repeating-linear-gradient(135deg,var(--blue) 0 18px,var(--navy) 18px 36px); }
.supporters__board { width:min(980px,96%); margin:auto; padding:clamp(1.2rem,4vw,2.7rem); background:#fff; border:4px solid var(--navy); box-shadow:12px 14px 0 var(--yellow); }
.supporters__board img { width:100%; }

.faq { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(2rem,8vw,8rem); padding:clamp(5rem,9vw,8rem) clamp(1rem,8vw,8rem); color:#fff; background:linear-gradient(130deg,var(--navy-2),var(--navy)); }
.faq__heading { align-self:start; position:sticky; top:120px; }
.faq__list { display:grid; gap:.9rem; }
.faq details { color:var(--ink); background:#fff; border:3px solid var(--blue); box-shadow:6px 7px 0 var(--red); }
.faq summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.15rem; cursor:pointer; list-style:none; font-size:1.02rem; font-weight:900; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary span { flex:0 0 auto; display:grid; place-items:center; width:32px; aspect-ratio:1; color:#fff; background:var(--red); font-size:1.4rem; transition:transform .2s ease; }
.faq details[open] summary span { transform:rotate(45deg); }
.faq details p { margin:0; padding:0 1.15rem 1.2rem; font-size:.96rem; line-height:1.65; }

.final-cta { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(1rem,6vw,5rem); min-height:650px; padding:clamp(4rem,8vw,7rem) clamp(1rem,7vw,7rem); color:#fff; background:linear-gradient(120deg,#053477,var(--navy)); overflow:hidden; }
.final-cta::after { content:""; position:absolute; z-index:-2; inset:0; background:repeating-conic-gradient(from 0deg at 42% 50%,transparent 0 7deg,rgba(255,255,255,.12) 7deg 8deg); }
.final-cta__texture { position:absolute; z-index:-1; inset:0; opacity:.2; background-image:radial-gradient(#fff 1.3px,transparent 1.3px); background-size:13px 13px; mask-image:linear-gradient(90deg,#000,transparent); }
.final-cta__logo { width:min(610px,100%); filter:drop-shadow(11px 14px 0 rgba(0,0,0,.3)); transform:rotate(-3deg); }
.final-cta__copy { max-width:700px; }
.final-cta__copy h2 { text-shadow:5px 6px 0 rgba(0,0,0,.24); }
.final-cta__copy > p:not(.kicker) { margin:1.2rem 0 1.7rem; font-size:1.06rem; line-height:1.6; }

.footer { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.3rem 2rem; padding:2.4rem clamp(1rem,5vw,5rem); color:rgba(255,255,255,.76); background:#020b1d; border-top:5px solid var(--red); }
.footer img { grid-row:1/3; width:160px; }
.footer p { margin:0; font-size:.85rem; line-height:1.45; }
.footer__fineprint { max-width:880px; font-size:.72rem !important; opacity:.72; }
.mobile-cta { display:none; }

.reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.75,.25,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.steps .reveal:nth-child(2), .prize-showcase .reveal:nth-child(2), .faq__list .reveal:nth-child(2) { transition-delay:.08s; }
.steps .reveal:nth-child(3), .prize-showcase .reveal:nth-child(3), .faq__list .reveal:nth-child(3) { transition-delay:.16s; }
.prize-showcase .reveal:nth-child(4), .faq__list .reveal:nth-child(4) { transition-delay:.24s; }
.prize-showcase .reveal:nth-child(5) { transition-delay:.32s; }

@keyframes heroFloat { 0%,100%{transform:translateY(0) rotate(.5deg)} 50%{transform:translateY(-13px) rotate(-.5deg)} }
@keyframes pop { 0%,100%{transform:scale(.92) rotate(-8deg)} 50%{transform:scale(1.08) rotate(4deg)} }
@keyframes scroll { 0%{transform:translateY(0);opacity:0} 30%{opacity:1} 100%{transform:translateY(13px);opacity:0} }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes marquee { to { transform:translateX(-50%); } }
@keyframes starPulse { 0%,100%{transform:scale(.85) rotate(-12deg)} 50%{transform:scale(1.12) rotate(8deg)} }

@media (max-width: 980px) {
  .topbar__nav { display:none; }
  .hero { grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr); }
  .calculator { grid-template-columns:minmax(220px,.65fr) minmax(380px,1.35fr); padding-inline:2rem; }
  .prize-card:nth-child(1),.prize-card:nth-child(2),.prize-card:nth-child(3),.prize-card:nth-child(4),.prize-card:nth-child(5){ grid-column:span 6; }
  .prize-card:nth-child(5){ grid-column:4/span 6; }
  .countdown { grid-template-columns:1fr; text-align:center; }
  .countdown__copy { margin:auto; }
  .countdown__grid { width:min(720px,100%); margin:auto; }
  .video-section { padding-inline:3rem; }
  .faq { grid-template-columns:1fr; }
  .faq__heading { position:static; text-align:center; }
}

@media (max-width: 760px) {
  body { padding-bottom:66px; }
  section { scroll-margin-top:60px; }
  .topbar { min-height:62px; padding:.4rem .8rem; }
  .topbar__brand img { width:118px; }
  .topbar__cta { width:140px; min-width:0; padding:.55rem .45rem; font-size:.66rem; line-height:1.1; text-align:center; white-space:normal; box-shadow:3px 3px 0 var(--red); }
  .hero { min-height:max(100svh,700px); display:block; padding:5.15rem .8rem 2.5rem; }
  .hero__content { text-align:center; }
  .eyebrow { max-width:100%; justify-content:center; margin-inline:auto; font-size:.69rem; letter-spacing:.08em; line-height:1.3; }
  .hero__logo { width:min(88vw,470px); margin:-.35rem auto -1.15rem; }
  .hero__copy { max-width:31ch; margin-inline:auto; font-size:.96rem; line-height:1.4; }
  .hero__actions { width:min(100%,360px); display:grid; grid-template-columns:1fr 1fr; justify-content:center; gap:.7rem; margin:1.15rem auto 0; }
  .button { min-height:50px; width:100%; max-width:none; padding:.65rem .55rem; font-size:.72rem; line-height:1.15; text-align:center; }
  .hero__date { justify-content:center; gap:.6rem; margin-top:1.05rem; }
  .hero__date strong { font-size:1.55rem; }
  .hero__character-wrap { right:-4vw; bottom:-2.4rem; width:min(62vw,360px); opacity:.95; }
  .hero__character-wrap::before { content:""; position:absolute; z-index:-1; inset:20% 5% 0 0; background:radial-gradient(circle,var(--yellow) 0 48%,transparent 49%); opacity:.86; }
  .burst,.scroll-cue,.comic-star--a { display:none; }
  .marquee { padding:.55rem 0; }
  .mission { padding-top:5rem; }
  .section-heading h2,.prizes h2,.calculator h2,.countdown h2,.video-section h2,.faq h2,.final-cta h2 { font-size:clamp(2rem,11vw,3.4rem); }
  .section-heading > p:last-child,.prizes__intro > p:last-child { font-size:1rem; }
  .steps { grid-template-columns:1fr; gap:1.15rem; }
  .step-card,.step-card:nth-child(2) { min-height:205px; transform:none; }
  .step-card:hover,.step-card:nth-child(2):hover { transform:translateY(-4px); }
  .mission__note { margin-top:2rem; }
  .calculator { min-height:auto; display:flex; flex-direction:column-reverse; gap:0; padding:4.5rem 1rem 0; }
  .calculator__shape { width:140vw; right:-85vw; top:-20%; border-width:18vw; box-shadow:0 0 0 12vw var(--yellow); }
  .calculator__panel { width:100%; margin:0; padding:1.2rem; box-shadow:8px 9px 0 var(--red); transform:none; }
  .calculator__character { width:64%; max-width:310px; margin:1.5rem auto -3px; align-self:center; }
  .calculator__character img { max-height:480px; }
  .coupon-input { grid-template-columns:1fr; }
  .coupon-input output { grid-row:2; }
  .coupon-input input,.range-labels { grid-column:1; }
  .coupon-result { gap:.4rem; }
  .prizes { padding-inline:0; }
  .prizes__intro,.prizes__legal { padding-inline:1rem; }
  .prize-showcase { display:flex; gap:1rem; padding:0 1rem 1.1rem; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--red) transparent; }
  .prize-card { flex:0 0 83vw; min-height:360px; scroll-snap-align:center; }
  .prize-card:nth-child(3) { flex-basis:72vw; }
  .countdown { padding:4.5rem 1rem; }
  .countdown__grid { grid-template-columns:repeat(2,1fr); gap:.8rem; }
  .countdown__grid div { padding:1rem .3rem; }
  .countdown__grid div:nth-child(even) { transform:rotate(1.5deg); }
  .countdown__grid strong { font-size:2.65rem; }
  .video-section { min-height:auto; grid-template-columns:1fr; padding:4.5rem 1rem 6rem; text-align:center; }
  .video-section__copy > p:not(.kicker) { margin-inline:auto; }
  .video-section__copy .button { margin-inline:auto; }
  .video-frame { width:min(320px,82vw); margin-top:1rem; border-radius:26px; box-shadow:11px 13px 0 var(--red),17px 19px 0 var(--navy); }
  .video-frame__label { left:-12%; }
  .supporters__board { width:calc(100% - 2rem); padding:.85rem; box-shadow:7px 8px 0 var(--yellow); }
  .faq { padding:4.5rem 1rem; }
  .faq summary { font-size:.94rem; }
  .final-cta { min-height:auto; grid-template-columns:1fr; padding:4.5rem 1rem; text-align:center; }
  .final-cta__logo { width:min(460px,94vw); margin:0 auto -1.6rem; }
  .final-cta__copy > p:not(.kicker) { margin-inline:auto; }
  .final-cta__copy .button { margin:auto; }
  .footer { grid-template-columns:1fr; text-align:center; padding:2rem 1rem; }
  .footer img { grid-row:auto; width:145px; margin:auto; }
  .mobile-cta { position:fixed; z-index:145; inset:auto .75rem calc(.65rem + env(safe-area-inset-bottom)); min-height:48px; display:flex; align-items:center; justify-content:center; color:var(--navy); background:var(--yellow); border:3px solid var(--navy); box-shadow:5px 5px 0 var(--red); text-decoration:none; font-size:.82rem; font-weight:1000; letter-spacing:.07em; text-transform:uppercase; transform:translateY(120px); transition:transform .28s ease; }
  .mobile-cta.is-visible { transform:translateY(0); }
}

@media (max-width: 420px) {
  .hero { min-height:690px; padding-top:5rem; }
  .hero__character-wrap { right:-5vw; width:63vw; }
  .hero__copy { max-width:28ch; }
  .hero__date { display:flex; }
  .hero__date-label { font-size:.64rem; }
  .topbar__cta { width:136px; }
  .coupon-result { flex-wrap:wrap; }
  .prize-card { flex-basis:88vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
