/* Мягкая зимняя сцена для страницы третьего этапа. */
.stage2-location > div { border: 0; background: radial-gradient(ellipse at 100% 0%, rgb(245 151 68 / .08), transparent 48%), #141416; }
.stage2-location > div > div:first-child > div:last-child { border: 0; background: #0c0d0f; }
.stage2-location .text-text-muted { color: #b8b7b4; }
@media (max-width: 42.5rem) { .stage2-location .btn--lg { width: 100%; } }
.stage3-availability { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: 2.5rem; align-items: center; padding: 2rem 2.25rem; border-radius: 1.25rem; background: radial-gradient(ellipse at 100% 0%, rgb(171 210 226 / .07), transparent 48%), #121416; }
.stage3-availability-intro h2 { margin: .65rem 0 .6rem; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.2; font-weight: 850; }
.stage3-availability-intro > p:nth-of-type(2) { display: flex; flex-wrap: wrap; gap: .65rem; align-items: baseline; }
.stage3-availability-intro strong { color: #ff9736; font-size: clamp(3rem, 5vw, 4rem); line-height: 1; font-weight: 900; }
.stage3-availability-intro span { color: var(--color-text); font-weight: 700; }
.stage3-availability-note, .stage3-availability-help { color: #b8b7b4; font-size: .8rem; line-height: 1.4; }
.stage3-availability-note { margin-top: .8rem; }
.stage3-availability-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.stage3-availability-group { padding: 1.2rem; border-radius: .9rem; background: rgb(0 0 0 / .25); }
.stage3-availability-label { font-size: .85rem; font-weight: 800; color: var(--color-text); }
.stage3-availability-count { margin-top: .8rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; }
.stage3-availability-count strong { font-size: 1.8rem; line-height: 1; color: #ff9736; }
.stage3-availability-count span { font-size: .85rem; color: #d5d3cf; }
.stage3-availability-bar { height: .4rem; margin-top: .9rem; border-radius: 99px; overflow: hidden; background: rgb(255 255 255 / .12); }
.stage3-availability-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f2771a, #ffb162); }
.stage3-availability-help { margin-top: .65rem; }
.ev-fast.ev-fast--stage3 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 52rem; gap: 1rem; padding: 1rem 0 0; border: 0; }
.ev-fast--stage3 .ev-fast__col { position: relative; overflow: hidden; padding: 1.4rem 3.4rem 1.4rem 1.5rem; border: 0; border-radius: .85rem; background: radial-gradient(ellipse at 100% 0%, rgb(155 190 205 / .045), transparent 75%), #131416; }
.ev-fast--stage3 .ev-fast__col b { color: #f79438; }
.ev-fast--stage3 .ev-fast__col span { line-height: 1.45; }
.stage3-hero { isolation: isolate; overflow: hidden; }
.stage3-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background-image: linear-gradient(to right, color-mix(in oklab, var(--color-background) 78%, transparent) 0%, color-mix(in oklab, var(--color-background) 55%, transparent) 38%, transparent 68%), linear-gradient(to bottom, color-mix(in oklab, var(--color-background) 40%, transparent) 0%, color-mix(in oklab, var(--color-background) 25%, transparent) 40%, color-mix(in oklab, var(--color-background) 92%, transparent) 84%, var(--color-background) 100%), url('/static/home/disc_9_canicross_night.jpg'); background-size: cover; background-position: center, center, center 30%; }
.stage3-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 5rem; z-index: 0; pointer-events: none; background: linear-gradient(to bottom, transparent, var(--color-background)); }
.stage3-hero > .page { position: relative; z-index: 1; }
.stage3-hero-snow { z-index: 0; }
.stage3-hero__details > div { border-left: 2px solid rgb(255 151 54 / .7); padding-left: .85rem; }
.stage3-hero__details .text-text-muted { color: var(--color-text); font-weight: 600; }
.stage3-hero .btn--primary { background: linear-gradient(110deg, #ed6b12, #ff9d35, #ed6b12); background-size: 200% 100%; box-shadow: 0 8px 28px rgb(255 123 25 / .27); }
.stage3-facts { display: grid; gap: 1.25rem; }
.stage3-facts-group { padding-top: 1.15rem; border-top: 1px solid var(--color-border); }
.stage3-facts-group h3 { margin: 0 0 .8rem; color: var(--color-primary); font-size: .85rem; font-weight: 800; letter-spacing: .04em; }
.stage3-facts-group .ev-elig__list { gap: .65rem; }
/* Морозный свет вместо рамок: только декоративные поверхности этапа. */
.stage3-motion #race-video .cab-box,
.stage3-motion .ev-elig,
.stage3-motion #schedule article,
.stage3-motion #location > div,
.stage3-motion #regulations > div > div,
.stage3-motion #regulations article {
  border: 0;
  box-shadow: none;
  background: radial-gradient(ellipse at 100% 0%, rgb(171 210 226 / .055), transparent 53%), linear-gradient(135deg, rgb(255 255 255 / .045), rgb(255 255 255 / .015));
}
.stage3-motion #regulations > div > div.sm\:grid { background: transparent; }
.stage3-motion #disciplines article { border: 0; }
.stage3-motion .stage3-disc-action { color: #fff5eb; background: rgb(16 17 19 / .78); border: 1px solid rgb(255 151 54 / .32); box-shadow: none; transition: background-color .2s ease, border-color .2s ease; }
.stage3-motion .stage3-disc-action:hover, .stage3-motion .stage3-disc-action:focus-visible { color: #fff; background: rgb(85 45 19 / .92); border-color: #ff9d35; }
@media (prefers-reduced-motion: reduce) { .stage3-motion .stage3-disc-action { transition: none; } }
.stage3-motion .ev-elig__quote { border: 0; }
.stage3-motion #location > div { background: radial-gradient(ellipse at 100% 0%, rgb(171 210 226 / .045), transparent 40%), #121315; }
.stage3-motion #location > div > div:first-child > div:last-child { border: 0; background: #0b0c0e; }
.stage3-motion #location .text-text-muted,
.stage3-motion #regulations .text-text-muted,
.stage3-motion #schedule .text-text-muted,
.stage3-motion .ev-fast__col span { color: #b8b7b4; }
.ev-final--winter {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 7rem 2rem 6.5rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.ev-final--winter::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, var(--color-background) 0%, transparent 25%, transparent 70%, var(--color-background) 100%), linear-gradient(90deg, var(--color-background), rgb(8 9 11 / .68) 25%, rgb(8 9 11 / .72) 75%, var(--color-background)), url('/static/covers/stage3-frost.jpg') center 57% / cover no-repeat;
}
.ev-final--winter .stage3-final-eyebrow { margin: 0 0 1rem; color: #ffad60; font-size: .78rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ev-final--winter .ev-final__title { max-width: 20ch; margin-inline: auto; line-height: 1.1; text-wrap: balance; }
.ev-final--winter .ev-final__lead { text-wrap: balance; }
.ev-final--winter > :not(.ev-snow) { position: relative; z-index: 1; }
.ev-snow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.ev-snow i { position: absolute; top: -8%; left: var(--x); width: var(--size); height: var(--size); border-radius: 50%; background: #fff6e9; opacity: .5; }
.ev-snow i:nth-child(1) { --x: 7%; --size: 3px; --duration: 12s; --delay: -3s; }
.ev-snow i:nth-child(2) { --x: 16%; --size: 2px; --duration: 15s; --delay: -9s; }
.ev-snow i:nth-child(3) { --x: 26%; --size: 4px; --duration: 14s; --delay: -6s; }
.ev-snow i:nth-child(4) { --x: 35%; --size: 2px; --duration: 17s; --delay: -12s; }
.ev-snow i:nth-child(5) { --x: 44%; --size: 3px; --duration: 13s; --delay: -4s; }
.ev-snow i:nth-child(6) { --x: 53%; --size: 2px; --duration: 16s; --delay: -11s; }
.ev-snow i:nth-child(7) { --x: 62%; --size: 4px; --duration: 15s; --delay: -7s; }
.ev-snow i:nth-child(8) { --x: 70%; --size: 2px; --duration: 13s; --delay: -10s; }
.ev-snow i:nth-child(9) { --x: 79%; --size: 3px; --duration: 17s; --delay: -2s; }
.ev-snow i:nth-child(10) { --x: 87%; --size: 2px; --duration: 14s; --delay: -8s; }
.ev-snow i:nth-child(11) { --x: 93%; --size: 3px; --duration: 16s; --delay: -13s; }
.ev-snow i:nth-child(12) { --x: 98%; --size: 2px; --duration: 12s; --delay: -5s; }
.ev-final--winter .ev-final__btns .btn--primary {
  background: linear-gradient(110deg, #ed6b12, #ff9d35, #ed6b12);
  background-size: 200% 100%;
  box-shadow: 0 8px 28px rgb(255 123 25 / .27);
}
@media (prefers-reduced-motion: no-preference) {
  .stage3-hero::before { animation: hero-crossfade 24s ease-in-out infinite; }
  .ev-snow i { animation: winter-snow var(--duration) linear var(--delay) infinite; }
  .stage3-hero > .page > * { animation: hero-arrive .7s ease-out both; }
  .stage3-hero > .page > h1 { animation-delay: .08s; }
  .stage3-hero__details { animation-delay: .16s !important; }
  .stage3-hero .btn--primary { animation: winter-glow 7s ease-in-out infinite; }
  .ev-final--winter .ev-final__btns .btn--primary { animation: winter-glow 7s ease-in-out infinite; }
  .stage3-motion .motion-reveal { transition: opacity .8s ease-out, transform .8s cubic-bezier(.2,.7,.2,1); }
  .stage3-motion .motion-reveal.motion-pending { opacity: .35; transform: translateY(24px); }
}
@media (prefers-reduced-motion: reduce) { .ev-snow { display: none; } }
@media (max-width: 42.5rem) {
  .stage3-availability { grid-template-columns: 1fr; gap: 1.25rem; padding: 1.4rem; }
  .stage3-availability-groups { grid-template-columns: 1fr; gap: .65rem; }
  .stage3-availability-group { padding: 1rem; }
  .ev-fast--stage3 .ev-fast__col { padding: 1rem 2.5rem 1rem 1rem; }
  .ev-fast--stage3 .ev-fast__col b { font-size: 1.75rem; }
  .ev-fast--stage3 .ev-fast__col span { font-size: .78rem; }
  .ev-final--winter { padding: 5rem 1rem 4.5rem; }
  .ev-final--winter::before { background-position: center, center, 55% center; }
  .ev-snow i:nth-child(n+9) { display: none; }
}
@keyframes winter-snow { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(20px, 36rem, 0); } }
@keyframes winter-glow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes hero-arrive { from { opacity: .45; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-crossfade { 0%, 38%, 100% { opacity: 0; } 50%, 88% { opacity: 1; } }
