/* Compatibility fixes only; the supplied desktop design remains the baseline. */
html { scroll-padding-top: calc(100px + env(safe-area-inset-top)); overflow-x: clip; }
body { -webkit-text-size-adjust: 100%; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button, a, .chip { touch-action: manipulation; }
.hero-content, .countdown-left, .field, .form-grid, .mascot-card > div,
.why > *, .foot-brand, .foot-meta { min-width: 0; }
.btn, .nav-cta { justify-content: center; text-align: center; }
.btn svg { flex-shrink: 0; }
.nav-cta, .nav-links a, .foot-meta a { min-height: 44px; display: inline-flex; align-items: center; }
:focus-visible { outline: 2px solid var(--blue-soft); outline-offset: 3px; }
.field input:not([type="checkbox"]), .field select { min-width: 0; min-height: 48px; font-size: 16px; }
.field input[type="checkbox"] { padding: 0; appearance: auto; }
.chip { display: inline-flex; min-height: 44px; max-width: 100%; }
.chip span { display: inline-flex; align-items: center; min-height: 44px; }
.chip input { width: 1px; height: 1px; clip-path: inset(50%); }
.chip input:focus-visible + span { outline: 2px solid var(--blue-soft); outline-offset: 3px; }
.consent { min-height: 44px; cursor: pointer; }
.consent input { width: 20px; height: 20px; min-height: 0; }
.orbit-point { font-family: inherit; min-height: 44px; }
.orbit-point:focus-visible { outline: 2px solid var(--blue-soft); outline-offset: 3px; }
.event-photo::after { max-width: calc(100% - 24px); }
.marquee-track { animation-name: seamless-marquee; }
@keyframes seamless-marquee { to { transform: translateX(calc(-100% - 22px)); } }
.marquee:focus-within .marquee-track { animation-play-state: paused; }
footer { padding-bottom: max(40px, env(safe-area-inset-bottom)); }

@media (max-width: 1080px) {
  .benefit-orbit .orbit-point:nth-of-type(1) { --px: 24%; --py: 10%; }
  .benefit-orbit .orbit-point:nth-of-type(2) { --px: 48%; --py: 23%; }
  .benefit-orbit .orbit-point:nth-of-type(3) { --px: 69%; --py: 41%; }
  .benefit-orbit .orbit-point:nth-of-type(4) { --px: 69%; --py: 59%; }
  .benefit-orbit .orbit-point:nth-of-type(5) { --px: 48%; --py: 77%; }
  .benefit-orbit .orbit-point:nth-of-type(6) { --px: 24%; --py: 90%; }
}
@media (min-width: 701px) and (max-width: 1080px) {
  .mascot-card { flex-wrap: wrap; align-content: center; }
  .mascot-card > div { flex: 1 1 160px; }
  .mascot-card img, .mascot-card:nth-child(2) img { margin-inline: auto; }
}
@media (max-width: 700px) {
  @keyframes seamless-marquee { to { transform: translateX(calc(-100% - 14px)); } }
  .nav { padding-top: max(13px, env(safe-area-inset-top)); }
  .nav.scrolled { padding-top: max(13px, env(safe-area-inset-top)); }
  .nav-inner { padding-left: max(18px, env(safe-area-inset-left)); padding-right: max(18px, env(safe-area-inset-right)); }
}
@media (max-width: 640px) {
  .wrap, .foot-inner { padding-left: max(18px, env(safe-area-inset-left)); padding-right: max(18px, env(safe-area-inset-right)); }
  .hero { padding-top: calc(116px + env(safe-area-inset-top)); }
  .hero-inner { padding: 0; }
  .hero-eyebrow .dot { flex-shrink: 0; }
  .hero-btns { align-items: stretch; }
  .hero-btns .btn { flex: 1 1 220px; min-height: 48px; }
  .sec-title, .tagline h2, .closing h2 { overflow-wrap: break-word; }
  .countdown { padding-inline: 18px; }
  .timer { width: 100%; }
  .t-num { font-variant-numeric: tabular-nums; }
  .benefit-orbit { min-height: 430px; }
  .orbit-track { width: 360px; height: 360px; left: calc(8% - 180px); }
  .orbit-edo { width: 29%; max-width: 29%; left: 1%; max-height: 52%; }
  .orbit-point { min-height: 44px; padding: 7px 9px 7px 7px; gap: 6px; max-width: calc(100% - 24px); }
  .orbit-label { font-size: .7rem; line-height: 1.25; }
  .benefit-orbit .orbit-point:nth-of-type(1) { --px: 33%; --py: 10%; }
  .benefit-orbit .orbit-point:nth-of-type(2) { --px: 58%; --py: 26%; }
  .benefit-orbit .orbit-point:nth-of-type(3) { --px: 65%; --py: 42%; }
  .benefit-orbit .orbit-point:nth-of-type(4) { --px: 65%; --py: 58%; }
  .benefit-orbit .orbit-point:nth-of-type(5) { --px: 58%; --py: 74%; }
  .benefit-orbit .orbit-point:nth-of-type(6) { --px: 33%; --py: 90%; }
  .orbit-point:hover, .orbit-point:focus-visible, .orbit-point.is-active { transform: translate(-50%, -50%) scale(1.025); }
  .benefit-detail { padding: 30px 22px; }
  .benefit-detail h3 { font-size: clamp(1.95rem, 8vw, 2.4rem); }
  .detail-bottom { overflow-wrap: anywhere; }
  .formats .pill { min-height: 44px; display: inline-flex; align-items: center; }
  .event-photo::after { font-size: .5rem; letter-spacing: .07em; padding: 8px 10px; }
  .mascot-card { padding: 14px; gap: 12px; }
  .mascot-card img { width: 86px; height: 110px; }
  .mascot-card h3 { font-size: 1.12rem; }
  .why-visual::before { max-width: 100%; width: 280px; height: 280px; }
  .why-num { font-size: clamp(6rem, 28vw, 8.5rem); }
  .why-float { max-width: 100%; font-size: .68rem; padding: 10px 12px; }
  .why-float .badge { flex-shrink: 0; }
  .form-shell { padding: 32px 18px; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .field, .field.full, .form-submit.full, .form-note.full { grid-column: 1 / -1; }
  .form-note.full { width: 100%; min-width: 0; padding: 12px; gap: 10px; }
  .form-note-copy { min-width: 0; }
  .form-submit { min-height: 52px; }
  .closing { padding-inline: 18px; }
  .closing .btn-solid { max-width: 100%; padding-inline: 20px; }
  .foot-brand { flex-wrap: wrap; justify-content: center; }
  .foot-meta { justify-content: center; gap: 6px 18px; }
}
@media (max-width: 480px) {
  .mascot-card:nth-child(2) { flex-direction: column; align-items: stretch; }
  .mascot-card:nth-child(2) img { width: min(100%, 240px); height: auto; align-self: center; }
}
@media (max-width: 359px) {
  .nav-logo { width: 98px; flex: 0 0 98px; }
  .nav-cta { padding-inline: 10px; }
  .wrap, .nav-inner, .foot-inner { padding-inline: max(16px, env(safe-area-inset-left)); }
  .hero h1 .hero-slogan { font-size: 2.35rem; }
  .hero-content { padding-inline: 14px; }
  .orbit-label { font-size: .66rem; }
  .orbit-point { gap: 5px; padding-inline: 6px; }
  .mascot-card img { width: 72px; }
  .form-shell { padding-inline: 14px; }
  .chip span { padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
