/* Kezdőlap: letisztult hero (cím, adományszámláló, Magyarország-sziluett egyetlen jellel), élő közvetítés,
   plakát-menetrend, szabályok, Alíz. A napi témák (2. nap: kozmikus, döntő: arany) a themes.css-ben vannak. */

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,7fr);align-items:center;gap:clamp(16px,3vw,48px);min-height:min(90vh,880px);padding:0 var(--gutter) 0 max(var(--gutter),calc((100% - 1640px) / 2));background:radial-gradient(70% 80% at 76% 46%,#104532 0%,var(--night) 55%,#03150f 100%);color:#fff;overflow:hidden}
.sky{position:absolute;inset:0;z-index:-2;pointer-events:none}
.sky>i{position:absolute;inset:0;display:none}
.fx{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.hero-copy{position:relative;z-index:2;padding:clamp(40px,5vw,72px) 0}
.day-chip{display:inline-flex;align-items:center;gap:9px;margin:0 0 18px;padding:6px 12px 5px;border-radius:999px;background:rgba(255,62,92,.12);box-shadow:inset 0 0 0 1px rgba(255,62,92,.5);color:#fff;font:700 15px/1 var(--display);letter-spacing:.16em;text-transform:uppercase}
.day-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--hu-red);animation:beat 1.8s ease-out infinite}
.kicker{margin:0 0 22px;font:700 clamp(17px,1.3vw,22px)/1.35 var(--display);text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}
.kicker span{white-space:nowrap}
.hero h1{font-size:clamp(60px,7vw,140px);line-height:.9;letter-spacing:0}
.hero h1 span{display:block;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
.hero h1 span:nth-child(2){animation-delay:.08s}
.hero h1 span:nth-child(3){animation-delay:.16s}
.hero h1 .gold{color:var(--gold)}
.hero .lead{margin:26px 0 0;max-width:40ch;color:#cfe3d8;font-size:clamp(19px,1.45vw,24px)}

/* Adományszámláló: tipográfia, doboz nélkül */
.tally{display:grid;gap:8px;max-width:440px;margin:34px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.16)}
.tally-label{font:700 14px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:#8fd1ae}
.tally-row{display:flex;align-items:baseline;gap:12px}
.tally-num{font:800 clamp(48px,5vw,76px)/.95 var(--display);font-variant-numeric:tabular-nums;color:#fff}
.tally-unit{font:800 clamp(22px,2vw,30px)/1 var(--display);color:var(--gold)}
.tally.bump .tally-num{animation:bump .9s cubic-bezier(.2,.9,.3,1.3)}

/* Magyarország-sziluett egyetlen jellel */
.stage{position:relative;align-self:stretch;display:flex;align-items:center;min-width:0}
.map-wrap{position:relative;isolation:isolate;width:100%}
.map-wrap::before{content:"";position:absolute;left:50%;top:52%;z-index:-1;width:90%;aspect-ratio:1.6;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(242,193,78,.16),transparent 72%);pointer-events:none}
.map{position:relative;z-index:1;display:block;width:100%;height:auto}
.map .land{fill:#0e4a35;stroke:var(--gold);stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 0 18px rgba(242,193,78,.22))}
.map .lake{fill:#3f8fb5;opacity:.55}
.map .river{fill:none;stroke:#3f8fb5;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.45}
.map .target{animation:none}
.map .target .heart{fill:#ff4564;stroke:#120e09;stroke-width:3;stroke-linejoin:round}
.map .target .label{fill:#fff;font:800 30px var(--display);letter-spacing:.14em;paint-order:stroke;stroke:var(--night);stroke-width:8px;stroke-linejoin:round}

/* Keringő versenyzők (alapból rejtve, a 2. nap kapcsolja be) */
.orbit{display:none;position:absolute;inset:0;pointer-events:none}
.orbit-ring{position:absolute;left:50%;top:50%;display:block;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.crew{position:absolute;left:0;top:0;display:block;border-radius:50%;overflow:hidden;background:var(--plum);box-shadow:0 0 0 1.5px rgba(255,255,255,.85),0 6px 14px rgba(0,0,0,.5);will-change:transform,opacity}
.crew img{width:100%;height:100%;object-fit:cover}

/* ---------- Élő közvetítés ---------- */
.broadcast{position:relative;padding:clamp(64px,8vw,112px) 0;background:radial-gradient(60% 80% at 80% 50%,rgba(106,67,200,.32),transparent 70%),var(--plum);color:#fff;overflow:hidden}
.broadcast-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:center}
.broadcast h2{margin-bottom:24px;font-size:clamp(38px,4.6vw,72px);line-height:.95}
.broadcast-copy>p:not(.kicker):not(.bc-hint){max-width:38ch;color:#e4dcf5}
.bc-hint{margin:18px 0 0;font-size:14px;color:#a998cc}
.broadcast-stage{min-width:0}
.screen{position:relative;padding:10px;border-radius:14px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(201,179,247,.3),0 50px 100px -40px rgba(0,0,0,.9)}
.onair{position:absolute;z-index:2;top:-13px;right:24px;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 5px;border-radius:4px;background:#e5382b;color:#fff;font:800 14px/1 var(--display);letter-spacing:.16em;text-transform:uppercase}
.onair i{width:7px;height:7px;border-radius:50%;background:#fff;animation:none}
.broadcast-frame{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:7px;background:#0e0a1c}
.broadcast-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- Döntő-sáv (csak a döntő napján látszik) ---------- */
.finale{display:none}

/* ---------- Menetrend: arany plakát, óriás dátumszámok ---------- */
.days{padding:var(--section) 0;background:var(--gold);color:var(--night)}
.days-head{display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;align-items:end;margin-bottom:clamp(24px,4vw,48px)}
.days-head h2{font-size:clamp(56px,8vw,120px)}
.days-head p{max-width:46ch;margin:0;font-size:19px;font-weight:500}
.days-list{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;border-top:5px solid var(--night)}
.days-list li{position:relative;display:flex;flex-direction:column;padding:22px clamp(14px,2vw,30px) 28px;border-right:5px solid var(--night)}
.days-list li:last-child{border-right:0}
.days-list .num{font:800 clamp(130px,19vw,300px)/.78 var(--display);letter-spacing:-.01em;margin-bottom:18px}
.days-list .when{font-size:20px}
.days-list .when b{font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.days-list .what{margin-top:8px;font:800 clamp(30px,3.4vw,50px)/.95 var(--display);text-transform:uppercase}
.days-list .final{background:var(--night);color:#fff;border-right:0}
.days-list .final .num,.days-list .final .what{color:var(--gold)}
.days-list .state{position:absolute;top:20px;right:clamp(14px,2vw,26px);padding:6px 11px 5px;border-radius:3px;font:800 14px/1 var(--display);letter-spacing:.16em;text-transform:uppercase}
.days-list .state:empty{display:none}
.days-list .is-past .state{background:rgba(6,35,26,.1);color:var(--night)}
.days-list .is-past .num,.days-list .is-past .what,.days-list .is-past .when{opacity:.4}
.days-list .final.is-past .state{background:rgba(255,255,255,.12);color:#fff}
.days-list .is-today{background:var(--night);color:#fff}
.days-list .is-today .num,.days-list .is-today .what{color:var(--gold)}
.days-list .is-today .state{background:var(--hu-red);color:#fff}

/* ---------- A kupa + szabályok ---------- */
.cup{padding:var(--section) 0;background:var(--paper)}
.cup-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}
.cup h2{margin-bottom:30px;font-size:clamp(60px,9vw,136px);color:var(--sign)}
.cup-text p{max-width:44ch;font-size:20px}
.duo{padding:clamp(26px,3.4vw,48px);border-radius:6px;background:var(--night);color:#fff}
.duo h3{margin-bottom:10px;font-size:clamp(30px,2.8vw,40px);color:var(--gold)}
.rules{margin:0;padding:0;list-style:none}
.rules li{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.rules li:last-child{border-bottom:0;padding-bottom:0}
.rule-num{font:800 44px/.9 var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.rules p{margin:0;color:#cfe3d8;font-size:17px;line-height:1.5}
.rules b{display:block;margin-bottom:4px;color:#fff;font-size:19px}

/* ---------- Alíz a kezdőlapon ---------- */
.aliz-home{position:relative;padding:var(--section) 0;background:radial-gradient(50% 70% at 20% 50%,rgba(201,179,247,.14),transparent 70%),var(--plum);color:#fff;overflow:hidden}
.aliz-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,6vw,96px);align-items:center}
.gallery{position:relative}
.slides{position:relative;aspect-ratio:1/1;overflow:hidden;touch-action:pan-y}
.slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.slide.is-active{opacity:1;pointer-events:auto}
.slide img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 28px rgba(0,0,0,.5))}
.gal-ui{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px}
.gal-btn{width:52px;height:52px;border:2px solid var(--lilac);border-radius:4px;background:transparent;color:var(--lilac);font:800 30px/1 var(--display);cursor:pointer}
.gal-btn:hover{background:var(--lilac);color:var(--plum)}
.dots{display:flex;gap:10px}
.dots button{width:14px;height:14px;padding:0;border:2px solid var(--lilac);border-radius:50%;background:transparent;cursor:pointer}
.dots button[aria-current="true"]{background:var(--lilac)}
.aliz-text .who{margin:0 0 6px;font:700 20px/1.3 var(--display);text-transform:uppercase;letter-spacing:.16em;color:var(--lilac)}
.aliz-home h2{margin:14px 0 20px -.03em;font:italic 400 clamp(110px,17vw,240px)/.92 var(--serif);text-transform:none;letter-spacing:.015em}
.aliz-text p{max-width:38ch;color:#e4dcf5;font:400 20px/1.6 var(--serif)}
.aliz-text .btn{margin-top:14px}

/* ---------- Belépő animáció a görgetéskor ---------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .days-list li:nth-child(2){transition-delay:.12s}
.js .days-list li:nth-child(3){transition-delay:.24s}

@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillin{from{fill-opacity:0}to{fill-opacity:1}}
@keyframes fadein{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
@keyframes pulse{from{opacity:.9;transform:scale(.35)}to{opacity:0;transform:scale(2.6)}}
@keyframes beat{0%{box-shadow:0 0 0 0 rgba(255,62,92,.7)}70%,100%{box-shadow:0 0 0 9px rgba(255,62,92,0)}}
@keyframes blink{50%{opacity:.2}}
@keyframes bump{0%{transform:scale(1)}30%{transform:scale(1.06);color:var(--gold-2)}100%{transform:scale(1)}}
@keyframes converge{to{stroke-dashoffset:0}}
@keyframes converge-fade{to{opacity:.16}}

@media (max-width:960px){
  .hero{grid-template-columns:1fr;gap:0;padding-right:var(--gutter);min-height:0}
  .hero-copy{padding-bottom:12px}
  .stage{padding-bottom:clamp(40px,8vw,64px)}
  .days-head,.cup-grid,.aliz-grid,.broadcast-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
  .days-list{grid-template-columns:1fr;border-top:0}
  .days-list li{display:grid;grid-template-columns:auto 1fr;column-gap:22px;align-items:center;padding:16px 0;border-right:0;border-top:5px solid var(--night)}
  .days-list .num{grid-row:span 3;margin:0;font-size:104px}
  .days-list .final,.days-list .is-today{padding-left:14px;padding-right:14px}
  .days-list .state{top:12px;right:10px}
  .rules li{grid-template-columns:48px 1fr;gap:12px}
  .rule-num{font-size:34px}
  .map .target .label{font-size:44px;stroke-width:10px}
}
@media (prefers-reduced-motion:reduce){.map .land{stroke-dashoffset:0}.js .reveal{opacity:1;transform:none}}
