/* Energa Trefl Gdańsk — warstwa wizualna nad szablonem strefy kibica: żywa hala w hero, paralaksa składu, złote akcenty. */
:root{--gold:#e9b949;--gold-2:#ffdf7a}

/* HERO: wideo hali + przezroczysta warstwa zawodników (losowy skład z hero-rotate.js) */
.hero-v2 .hero-photo,html[data-theme=home] .hero-v2 .hero-photo{background-image:url('assets/hero-hall.webp')}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease;pointer-events:none}
.hero-video.on{opacity:1}
.hero-players{position:absolute;inset:0;background-image:var(--hero-away,none);background-size:inherit;background-position:inherit;background-repeat:no-repeat;
  transform:translate3d(calc(var(--px,0) * -16px),calc(var(--py,0) * -8px + var(--sy,0) * 60px),0) scale(1.01);transition:transform .35s cubic-bezier(.2,.7,.2,1);will-change:transform;
  animation:players-in 1.3s cubic-bezier(.2,.7,.2,1) both .15s}
html[data-theme=home] .hero-players{background-image:var(--hero-home,none)}
.hero-video{transform:translate3d(calc(var(--px,0) * 8px),calc(var(--py,0) * 5px + var(--sy,0) * 30px),0) scale(1.06);transition:opacity 1.4s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.hero-glow{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:.55;
  background:radial-gradient(520px circle at var(--gx,70%) var(--gy,30%),#ffcf4a33,transparent 60%)}
html[data-theme=home] .hero-glow{opacity:.3}
@keyframes players-in{from{opacity:0;transform:translate3d(0,40px,0) scale(1.04)}to{opacity:1}}
.hero-photo:after{z-index:1}
.hero-v2 h1{animation:h1-in 1s cubic-bezier(.2,.7,.2,1) both .1s}
.hero-v2 h1 em{display:inline-block;animation:roar 1.1s cubic-bezier(.2,1.4,.4,1) both .7s}
.hero-v2 .hero-content>p,.hero-v2 .hero-actions{animation:h1-in .9s cubic-bezier(.2,.7,.2,1) both .45s}
@keyframes h1-in{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes roar{0%{opacity:0;transform:scale(.6) rotate(-4deg)}60%{opacity:1;transform:scale(1.08) rotate(1deg)}100%{transform:none}}

/* pasek postępu przewijania */
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(var(--sp,0));background:linear-gradient(90deg,var(--yellow),var(--gold));z-index:200;pointer-events:none}

/* karty zawodników: delikatny 3D tilt i złoty połysk */
.player-card{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease;transform-style:preserve-3d}
.player-card:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,30%),#ffe08a2e,transparent 65%)}
.player-card:hover:after{opacity:1}

/* ryk-o-metr: wyskakujący napis */
.roar-pop{position:absolute;left:50%;top:40%;font-family:var(--heading);font-weight:900;font-size:34px;letter-spacing:1px;color:var(--yellow);text-shadow:0 2px 0 #000;
  pointer-events:none;white-space:nowrap;animation:roar-pop .9s ease-out forwards;z-index:5}
@keyframes roar-pop{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}25%{opacity:1;transform:translate(-50%,-14px) scale(1.15)}100%{opacity:0;transform:translate(calc(-50% + var(--dx,0px)),-70px) scale(1)}}
.fan-boost{position:relative}
.fan-boost.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-2px)}}

/* licznik do meczu: lekkie „tyknięcie” sekund */
.countdown .tick{animation:tick .45s ease-out}
@keyframes tick{from{transform:translateY(-6px);opacity:.4}to{transform:none;opacity:1}}

@media (max-width:1099px){.hero-video{display:none}.hero-players{transform:none;transition:none}}
@media (prefers-reduced-motion:reduce){
  .hero-video{display:none}.hero-players,.hero-v2 h1,.hero-v2 h1 em,.hero-v2 .hero-content>p,.hero-v2 .hero-actions{animation:none;transform:none}
  .player-card{transform:none}.scroll-progress{display:none}.roar-pop,.fan-boost.shake{animation:none}
}
