/* ═══════════════════════════════════════════════════════════
   LETNIA PRZYSTAŃ — zmierzch nad Drwęcą
   noc (koncerty) → fala → dzień (plaża) → noc (stopka)
   ═══════════════════════════════════════════════════════════ */
:root{
  --noc:        #12152B;   /* granat nocy nad wodą        */
  --noc-2:      #191D3A;   /* powierzchnie na nocy        */
  --noc-3:      #0B0D1E;   /* sylwetki, woda              */
  --zloto:      #FFB03A;   /* żarówki nad barem — akcent  */
  --luna:       #FF6A4D;   /* koral zmierzchu             */
  --zorza:      #B94A8C;   /* różowy stop gradientu       */
  --piasek:     #F3EADA;   /* plaża — sekcje dzienne      */
  --piasek-2:   #EBDFC7;   /* karty na piasku             */
  --rzeka:      #2F7276;   /* teal wody za dnia           */
  --atrament:   #20243A;   /* tekst na piasku             */
  --mgla:       rgba(243,234,218,.72);  /* tekst na nocy */
  --mgla-slaba: rgba(243,234,218,.45);
  --disp: 'Cinzel', serif; /* szeryf jak w logo Przystani */
  --txt:  'Sora', sans-serif;
  --mono: 'Spline Sans Mono', monospace;
  --r: 14px;
  --ease: cubic-bezier(.22, 1, .36, 1); /* miękkie wyhamowanie — wspólne dla całej strony */
}
/* firmowy scrollbar */
::-webkit-scrollbar{ width:11px; }
::-webkit-scrollbar-track{ background:var(--noc-3); }
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, var(--zloto), var(--luna));
  border-radius:99px; border:3px solid var(--noc-3);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--txt); background:var(--noc); color:var(--mgla);
  font-size:16px; line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
[hidden]{ display:none !important; }
.wrap{ width:min(1120px, 100% - 2.5rem); margin-inline:auto; }
::selection{ background:var(--zloto); color:var(--noc-3); }
#koncerty,#plaza,#info{ scroll-margin-top:84px; }

/* filmowe ziarno na całej stronie */
body::after{
  content:""; position:fixed; inset:0; z-index:90; pointer-events:none; opacity:.045;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.skip{
  position:absolute; left:-999px; top:0; z-index:200; background:var(--zloto);
  color:var(--noc-3); padding:.6rem 1rem; font-weight:700; border-radius:0 0 var(--r) 0;
}
.skip:focus{ left:0; }
:focus-visible{ outline:3px solid var(--zloto); outline-offset:3px; border-radius:4px; }

/* ── przyciski ── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font:700 .95rem/1 var(--txt); text-decoration:none; letter-spacing:.02em;
  padding:1rem 1.7rem; border-radius:999px; transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), filter .3s var(--ease);
}
.btn--zloto{
  background:linear-gradient(120deg, #FFC85F, var(--zloto) 55%, #FF8A50); color:var(--noc-3);
  box-shadow:0 0 0 rgba(255,176,58,0), 0 6px 24px rgba(255,176,58,.25);
}
.btn--zloto:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 0 24px rgba(255,176,58,.35), 0 10px 30px rgba(255,138,80,.35); }
.btn:active{ transform:translateY(0); }
.btn--ghost{ color:var(--piasek); box-shadow:inset 0 0 0 2px rgba(243,234,218,.35); }
.btn--ghost:hover{ box-shadow:inset 0 0 0 2px var(--zloto); color:var(--zloto); }
.btn--s{ padding:.7rem 1.2rem; font-size:.85rem; }

/* ═══ NAV ═══ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:.8rem 1.25rem; transition:box-shadow .45s var(--ease);
  /* drewniana belka — na niej wiszą girlandy */
  background:
    radial-gradient(ellipse 70px 12px at 16% 62%, rgba(20,10,2,.35), transparent 70%),
    radial-gradient(ellipse 46px 9px at 71% 38%, rgba(20,10,2,.3), transparent 70%),
    radial-gradient(ellipse 90px 14px at 45% 75%, rgba(30,16,4,.22), transparent 70%),
    repeating-linear-gradient(180deg, rgba(0,0,0,.13) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(178deg, rgba(255,214,150,.05) 0 2px, transparent 2px 9px),
    linear-gradient(90deg, #46331D 0%, #5A4128 14%, #4E3921 30%, #5E452C 47%, #48341E 64%, #574026 81%, #46331D 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,220,150,.16),
    inset 0 -2px 0 rgba(0,0,0,.45),
    0 3px 14px rgba(5,4,12,.55);
}
.nav.jest-tlo{ box-shadow:inset 0 1px 0 rgba(255,220,150,.16), inset 0 -2px 0 rgba(0,0,0,.45), 0 6px 22px rgba(5,4,12,.75); }
.nav__logo{
  display:flex; align-items:center; gap:.6rem; text-decoration:none;
  font:700 .72rem/1.15 var(--disp); text-transform:uppercase; letter-spacing:.06em; color:var(--piasek);
}
.nav__burger{
  width:44px; height:44px; border:0; background:none; cursor:pointer;
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.nav__burger span{ width:24px; height:2px; background:var(--piasek); transition:transform .3s var(--ease), opacity .3s var(--ease); }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.nav__menu{
  position:fixed; inset:0; background:rgba(11,13,30,.96); backdrop-filter:blur(14px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.4rem;
  opacity:0; pointer-events:none; transition:opacity .35s var(--ease);
}
.nav__menu.otwarte{ opacity:1; pointer-events:auto; }
.nav__menu a{
  font:700 1.5rem var(--disp); text-transform:uppercase; letter-spacing:.03em;
  color:var(--piasek); text-decoration:none;
}
.nav__menu a:hover{ color:var(--zloto); }
.nav__menu .nav__cta{
  font:700 1rem var(--txt); background:var(--zloto); color:var(--noc-3);
  padding:.9rem 2.2rem; border-radius:999px; margin-top:.6rem;
}

/* ═══ HERO ═══ */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  background:linear-gradient(180deg,
    #0B0D1E 0%, var(--noc) 26%, #2A2450 52%, #6E3663 72%, var(--zorza) 84%, var(--luna) 94%, #FF8A50 100%);
  overflow:hidden;
}
.hero__sky{ position:absolute; inset:0; pointer-events:none; }
.hero__stars{
  position:absolute; inset:0 0 30% 0; opacity:.9;
  background-image:
    radial-gradient(1.2px 1.2px at 12% 18%, rgba(243,234,218,.9), transparent 55%),
    radial-gradient(1px 1px    at 31% 9%,  rgba(243,234,218,.7), transparent 55%),
    radial-gradient(1.4px 1.4px at 48% 22%, rgba(243,234,218,.8), transparent 55%),
    radial-gradient(1px 1px    at 63% 12%, rgba(243,234,218,.6), transparent 55%),
    radial-gradient(1.3px 1.3px at 78% 19%, rgba(243,234,218,.85), transparent 55%),
    radial-gradient(1px 1px    at 90% 8%,  rgba(243,234,218,.65), transparent 55%),
    radial-gradient(1px 1px    at 22% 32%, rgba(243,234,218,.5), transparent 55%),
    radial-gradient(1.1px 1.1px at 70% 30%, rgba(243,234,218,.55), transparent 55%);
}
/* girlandy żarówek — zwisające, z nóżką pod linką */
.hero__girlanda{
  position:absolute; top:54px; left:0; width:100%; height:200px;
  transform-origin:top center; animation:sway 8s ease-in-out infinite alternate;
}
@media (min-width: 980px){ .hero__girlanda{ top:62px; } }
.hero__wire{ position:absolute; inset:0; width:100%; height:200px; max-width:none; }
.bulb{
  position:absolute; width:10px; height:10px; margin-left:-5px; border-radius:50%;
  background:radial-gradient(circle at 38% 32%, #FFE3AC, var(--zloto) 60%);
  box-shadow:0 0 7px rgba(255,176,58,.95), 0 0 22px rgba(255,176,58,.5);
  animation:bulb 3.4s ease-in-out infinite alternate;
}
.bulb::before{ /* nóżka do linki */
  content:""; position:absolute; left:50%; top:-5px; width:1.5px; height:5px;
  margin-left:-1px; background:rgba(255,176,58,.55);
}
.bulb:nth-child(2n){ animation-delay:-1.3s; }
.bulb:nth-child(3n){ animation-delay:-2.4s; }
.b1{ left:3.7%;  top:45px; }  .b2{ left:10%;   top:76px; }  .b3{ left:16.5%; top:96px; }
.b4{ left:22.9%; top:107px; } .b5{ left:29.3%; top:107px; } .b6{ left:35.7%; top:97px; }
.b7{ left:42.1%; top:77px; }  .b8{ left:47.9%; top:50px; }  .b9{ left:55.4%; top:50px; }
.b10{ left:61.1%; top:75px; } .b11{ left:66.9%; top:91px; } .b12{ left:72.8%; top:98px; }
.b13{ left:78.8%; top:96px; } .b14{ left:84.9%; top:85px; } .b15{ left:91.1%; top:65px; }
.b16{ left:97.4%; top:36px; }
@keyframes sway{ from{ transform:rotate(-.25deg); } to{ transform:rotate(.25deg); } }

/* linia drzew za sceną — wyrasta zza brzegu */
.hero__trees{
  position:absolute; left:-40%; bottom:calc(16svh + 20px); height:88px; width:180%; max-width:none;
}

/* lity brzeg pod sceną i drzewami — żadnych prześwitów nieba */
.hero__shore{
  position:absolute; left:0; right:0; bottom:calc(16svh - 2px); height:26px;
  background:linear-gradient(180deg, #10142C, #0B0D1E 55%);
}

/* zadaszona scena z neonem — jak prawdziwa hala łukowa na Przystani */
.hero__stage{
  position:absolute; bottom:calc(16svh + 14px); left:50%; transform:translateX(-50%);
  width:min(460px, 94vw); height:auto;
  overflow:visible; pointer-events:auto; cursor:pointer; /* klik = pokaz */
}
.hero__stage:hover .led{ filter:brightness(1.35); }
.snopy{ opacity:0; transition:opacity 1.2s var(--ease); pointer-events:none; }

/* ── TRYB POKAZU — scena budzi się po kliknięciu ── */
.hero.pokaz .snopy{ opacity:1; }
.hero.pokaz .hero__stage .led{ animation:led-cykl 2.6s linear infinite; }
@keyframes led-cykl{
  0%,100%{ stroke:#5BE380; } 33%{ stroke:#FF7ADF; } 66%{ stroke:#6FD4FF; }
}
.hero.pokaz .bulb{ animation:bulb-goni .9s linear infinite; }
.hero.pokaz .bulb:nth-of-type(3n+1){ animation-delay:0s; }
.hero.pokaz .bulb:nth-of-type(3n+2){ animation-delay:.3s; }
.hero.pokaz .bulb:nth-of-type(3n){ animation-delay:.6s; }
@keyframes bulb-goni{ 0%,100%{ opacity:.25; } 50%{ opacity:1; } }
.hero.pokaz .hero__glow{ filter:saturate(1.45) brightness(1.18); }
.hero__stage .led{ animation:led 4.5s ease-in-out infinite alternate; }
@keyframes led{ from{ opacity:.65; } to{ opacity:1; } }
@keyframes bulb{ from{ opacity:.75; } to{ opacity:1; } }

.hero__inner{
  position:relative; z-index:2; width:min(1120px, 100% - 2.5rem); margin-inline:auto;
  padding:11.5rem 0 2.5rem;
  /* na wąskich ekranach scena dostaje własną strefę pod treścią */
  margin-bottom:calc(16svh + min(460px, 94vw) * .58);
  pointer-events:none; /* puste tło przepuszcza klik do sceny/nieba */
}
.hero__inner a, .hero__inner .btn{ pointer-events:auto; }
.hero__eyebrow{
  font:700 .78rem var(--mono); text-transform:uppercase; letter-spacing:.32em;
  color:var(--zloto); margin-bottom:1.2rem;
}
.hero__title{
  font:900 clamp(2.35rem, 8.5vw, 5.4rem)/1.04 var(--disp);
  text-transform:uppercase; color:var(--piasek); letter-spacing:.01em;
  text-shadow:0 4px 60px rgba(11,13,30,.55);
}
.hero__title span{
  color:var(--zloto);
  text-shadow:0 0 34px rgba(255,176,58,.45), 0 4px 60px rgba(11,13,30,.55);
}
.hero__lead{ max-width:34rem; margin-top:1.3rem; font-size:1.05rem; color:var(--mgla); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }

.hero__next{
  display:inline-flex; flex-direction:column; gap:.15rem; margin-top:2.6rem;
  padding:1rem 1.3rem; text-decoration:none; border-radius:var(--r);
  background:rgba(11,13,30,.55); backdrop-filter:blur(8px);
  border:1px solid rgba(255,176,58,.35); max-width:100%;
}
.hero__next:hover{ border-color:var(--zloto); }
.hero__next-label{
  display:flex; align-items:center; gap:.5rem;
  font:700 .68rem var(--mono); text-transform:uppercase; letter-spacing:.26em; color:var(--zloto);
}
.live-dot{ width:7px; height:7px; border-radius:50%; background:var(--luna); animation:bulb 1.2s ease-in-out infinite alternate; }
.hero__next-title{ font:700 1.05rem var(--disp); color:var(--piasek); }
.hero__next-meta{ font:500 .8rem var(--mono); color:var(--mgla-slaba); }

.hero__water{
  position:absolute; left:0; right:0; bottom:0; height:16svh; min-height:110px;
  background:linear-gradient(180deg, #1A1030 0%, var(--noc-3) 100%);
  overflow:hidden;
}
.hero__glow{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(255,138,80,.5), rgba(255,106,77,.12) 45%, transparent 80%),
    repeating-linear-gradient(180deg, rgba(255,176,58,.14) 0 2px, transparent 2px 7px);
  mask-image:linear-gradient(180deg,#000 0%, rgba(0,0,0,.25) 70%, transparent 100%);
  animation:woda 5s ease-in-out infinite alternate;
}
/* kolorowe odbicie neonów sceny w wodzie */
.hero__water::after{
  content:""; position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%);
  width:min(460px, 94vw);
  background:radial-gradient(ellipse 60% 90% at 50% 0%,
    rgba(255,176,58,.30), rgba(255,122,223,.16) 40%, rgba(91,227,128,.10) 62%, transparent 80%);
  mask-image:repeating-linear-gradient(180deg,#000 0 2px, rgba(0,0,0,.15) 2px 6px);
}
@keyframes woda{ from{ transform:translateY(0); opacity:.9; } to{ transform:translateY(4px); opacity:1; } }

/* ═══ SEKCJE — nagłówki ═══ */
.sec-head{ margin-bottom:2.6rem; }
.sec-eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  font:700 .72rem var(--mono); text-transform:uppercase; letter-spacing:.32em;
  color:var(--zloto); margin-bottom:1rem;
}
.sec-eyebrow::before{ content:""; width:2.2rem; height:2px; background:linear-gradient(90deg, var(--zloto), transparent); }
.sec-head h2{
  font:900 clamp(1.7rem, 5vw, 2.8rem)/1.1 var(--disp); text-transform:uppercase;
  letter-spacing:.025em; color:var(--piasek); margin-bottom:.7rem;
}
.sec-head p{ max-width:36rem; color:var(--mgla-slaba); }
.sec-head--dzien h2{ color:var(--atrament); }
.sec-head--dzien p{ color:rgba(32,36,58,.68); }
.sec-head--dzien .sec-eyebrow,.sec-eyebrow--rzeka{ color:var(--rzeka); }
.sec-head--dzien .sec-eyebrow::before,.sec-eyebrow--rzeka::before{ background:linear-gradient(90deg, var(--rzeka), transparent); }

/* ═══ KONCERTY — bilety ═══ */
.koncerty{
  background:
    radial-gradient(640px 320px at 88% 0%, rgba(185,74,140,.12), transparent 70%),
    radial-gradient(520px 280px at 6% 14%, rgba(91,227,128,.06), transparent 70%),
    linear-gradient(180deg, var(--noc-3), var(--noc) 18%);
  padding:5rem 0 5.5rem;
}
.bilety{ display:grid; gap:1.1rem; }
.bilet{
  --tlo-biletu:var(--noc-2);
  position:relative; display:grid; grid-template-columns:5.4rem 1fr;
  background:var(--tlo-biletu); border-radius:var(--r);
  border:1px solid rgba(243,234,218,.08);
  transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.bilet:hover{ transform:translateY(-3px); border-color:rgba(255,176,58,.4); box-shadow:0 14px 40px rgba(0,0,0,.35); }
.bilet--gwiazda{
  border-color:rgba(255,176,58,.45);
  box-shadow:0 0 0 1px rgba(255,176,58,.25), 0 10px 44px rgba(255,106,77,.12);
  background:linear-gradient(120deg, var(--noc-2) 55%, rgba(185,74,140,.14));
  overflow:hidden;
}
.bilet--gwiazda::after{ /* smuga światła przez bilet gwiazdy */
  content:""; position:absolute; top:-60%; bottom:-60%; left:-30%; width:34%;
  background:linear-gradient(100deg, transparent, rgba(255,220,150,.05) 40%, rgba(255,220,150,.13) 50%, rgba(255,220,150,.05) 60%, transparent);
  transform:rotate(12deg); animation:smuga 6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes smuga{ 0%,55%{ left:-40%; } 90%,100%{ left:130%; } }
.bilet--odwolany{ opacity:.55; }
.bilet--odwolany h3{ text-decoration:line-through; }

.bilet__data{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.05rem;
  padding:1.1rem .4rem; border-right:2px dashed rgba(243,234,218,.22);
  font-family:var(--mono); text-align:center;
}
/* wycięcia perforacji biletu */
.bilet__data::before,.bilet__data::after{
  content:""; position:absolute; left:calc(5.4rem - 8px); width:16px; height:16px;
  border-radius:50%; background:var(--noc); z-index:1;
}
.bilet__data::before{ top:-9px; } .bilet__data::after{ bottom:-9px; }
.bilet__dzien{ font:700 .68rem var(--mono); letter-spacing:.18em; color:var(--zloto); }
.bilet__num{ font:900 2rem/1 var(--disp); color:var(--piasek); }
.bilet__msc{ font:500 .66rem var(--mono); color:var(--mgla-slaba); text-transform:uppercase; letter-spacing:.08em; }

.bilet__tresc{ padding:1.15rem 1.2rem 1rem; min-width:0; }
.bilet__tresc h3{ font:700 1.12rem/1.25 var(--disp); color:var(--piasek); margin:.35rem 0 .2rem; }
.bilet__artysci{ font-weight:600; color:var(--zloto); font-size:.92rem; }
.bilet__opis{ font-size:.9rem; color:var(--mgla-slaba); margin-top:.4rem; }
.bilet__meta{ font:500 .74rem var(--mono); color:var(--mgla-slaba); margin-top:.7rem; letter-spacing:.04em; }

.bilet__kasa{
  grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:.9rem;
  padding:.9rem 1.2rem; border-top:2px dashed rgba(243,234,218,.22);
}
.cena{ font:500 .78rem var(--mono); color:var(--mgla-slaba); display:inline-flex; flex-direction:column; line-height:1.3; }
.cena b{ font:700 1.05rem var(--mono); color:var(--piasek); }
.bilet__kasa .btn{ margin-left:auto; }
.kasa-info{ margin-left:auto; font:500 .78rem var(--mono); color:var(--zloto); letter-spacing:.04em; }
.bilet__kod{ /* kod kreskowy jak na prawdziwym bilecie */
  width:66px; height:24px; border-radius:2px; opacity:.55;
  background:repeating-linear-gradient(90deg,
    rgba(243,234,218,.85) 0 2px, transparent 2px 5px,
    rgba(243,234,218,.5) 5px 6px, transparent 6px 10px,
    rgba(243,234,218,.85) 10px 11px, transparent 11px 14px);
}

.tag{
  display:inline-block; font:700 .62rem var(--mono); text-transform:uppercase; letter-spacing:.14em;
  padding:.28rem .6rem; border-radius:999px; margin-right:.4rem;
}
.tag--gwiazda{ background:rgba(255,176,58,.16); color:var(--zloto); border:1px solid rgba(255,176,58,.4); }
.tag--demo{ background:rgba(243,234,218,.08); color:var(--mgla-slaba); border:1px dashed rgba(243,234,218,.3); }
.tag--soldout{ background:rgba(255,106,77,.14); color:var(--luna); border:1px solid rgba(255,106,77,.4); }

.pusto{ text-align:center; padding:3rem 1rem; border:1px dashed rgba(243,234,218,.25); border-radius:var(--r); }
.pusto__big{ font:700 1.2rem var(--disp); color:var(--piasek); margin-bottom:.5rem; }
.pusto a{ color:var(--zloto); }

/* ═══ GALERIA ═══ */
.galeria{ background:var(--noc); padding:1.5rem 0 4.5rem; scroll-margin-top:84px; }
.galeria__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.galeria__item{
  position:relative; display:block; aspect-ratio:1/1;
  border-radius:12px; overflow:hidden; border:1px solid rgba(243,234,218,.08);
  transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.galeria__item:hover{ transform:translateY(-3px); border-color:rgba(255,176,58,.45); box-shadow:0 14px 36px rgba(0,0,0,.4); }
.galeria__item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .8s var(--ease), filter .8s var(--ease);
}
.galeria__item:hover img{ transform:scale(1.05); }
.galeria__podpis{
  position:absolute; inset:auto 0 0 0; padding:1.6rem .8rem .6rem;
  font:500 .74rem var(--mono); color:var(--piasek); letter-spacing:.03em;
  background:linear-gradient(180deg, transparent, rgba(6,7,17,.85));
}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:300; display:grid; place-items:center; padding:1.2rem;
  background:rgba(6,7,17,.93); backdrop-filter:blur(6px); cursor:zoom-out;
  animation:lb-in .2s ease;
}
@keyframes lb-in{ from{ opacity:0; } to{ opacity:1; } }
.lightbox img{
  max-width:94vw; max-height:84vh; border-radius:10px; box-shadow:0 30px 80px rgba(0,0,0,.6);
  transition:opacity .3s var(--ease);
  animation:lb-foto .45s var(--ease);
}
@keyframes lb-foto{ from{ transform:scale(.96); opacity:0; } }
.lightbox figcaption{
  margin-top:.9rem; text-align:center; font:500 .82rem var(--mono); color:var(--mgla);
}
.lightbox__zamknij{
  position:absolute; top:1rem; right:1rem; width:46px; height:46px; border:0; border-radius:50%;
  background:rgba(243,234,218,.12); color:var(--piasek); font-size:1.3rem; cursor:pointer;
}
.lightbox__zamknij:hover{ background:rgba(255,176,58,.25); color:var(--zloto); }
.lightbox__strzalka{
  position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px;
  border:0; border-radius:50%; cursor:pointer;
  background:rgba(243,234,218,.12); color:var(--piasek); font-size:1.8rem; line-height:1;
}
.lightbox__strzalka:hover{ background:rgba(255,176,58,.25); color:var(--zloto); }
.lightbox__strzalka--l{ left:.7rem; }
.lightbox__strzalka--p{ right:.7rem; }
.lightbox__licznik{
  position:absolute; top:1.65rem; left:1.2rem;
  font:700 .8rem var(--mono); letter-spacing:.14em; color:var(--mgla);
}
.lightbox img{ cursor:pointer; }
@media (max-width: 699px){
  .lightbox__strzalka{ width:44px; height:44px; font-size:1.5rem; }
}

/* ═══ GRALI NAD DRWĘCĄ ═══ */
.grali{ background:var(--noc); padding:1.5rem 0 4.5rem; }
.grali__label{
  font:700 .72rem var(--mono); text-transform:uppercase; letter-spacing:.3em;
  color:var(--zloto); margin-bottom:1.2rem;
}
.marquee{
  overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__track{
  display:flex; align-items:center; gap:1.6rem; width:max-content;
  animation:przewijaj 46s linear infinite; padding-block:.3rem;
}
.marquee__track span{
  font:900 clamp(1.9rem, 5.5vw, 3.4rem) var(--disp); text-transform:uppercase; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1.5px rgba(243,234,218,.5);
  transition:color .25s ease;
}
.marquee__track span:hover{ color:var(--zloto); -webkit-text-stroke-color:var(--zloto); }
.marquee__track i{ font-style:normal; color:var(--luna); font-size:1.1rem; }
@keyframes przewijaj{ to{ transform:translateX(-50%); } }

/* ═══ FALA ═══ */
.fala{ background:var(--noc); line-height:0; }
.fala svg{ width:100%; height:56px; }
.fala--dol{ background:var(--piasek); }

/* ═══ ZA DNIA ═══ */
.plaza{ background:var(--piasek); color:var(--atrament); padding:4.5rem 0 4rem; }
.plaza__grid{ display:grid; gap:1.1rem; }
.karta{
  position:relative; background:var(--piasek-2); border-radius:18px; padding:2rem 1.6rem 1.8rem;
  border:1px solid rgba(32,36,58,.08); overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.karta::before{ /* słoneczny refleks w rogu karty */
  content:""; position:absolute; top:-40px; right:-40px; width:130px; height:130px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,176,58,.14), transparent 68%);
}
.karta:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(32,36,58,.14); }
.karta__ikona{
  width:56px; height:56px; padding:12px; margin-bottom:1.1rem;
  background:rgba(47,114,118,.10); border-radius:16px;
}
.karta h3{ font:700 1.05rem var(--disp); text-transform:uppercase; margin-bottom:.5rem; color:var(--atrament); }
.karta p{ font-size:.94rem; color:rgba(32,36,58,.72); }
.plaza__dostep{
  display:inline-block; margin-top:1.8rem; padding:.55rem 1rem; border-radius:999px;
  font:500 .78rem var(--mono); color:var(--rzeka); letter-spacing:.03em;
  border:1px dashed rgba(47,114,118,.45); background:rgba(47,114,118,.06);
}

/* ═══ INFO / FAQ ═══ */
.info{ background:var(--piasek); color:var(--atrament); padding:1rem 0 5rem; }
.info__grid{ display:grid; gap:2.2rem; }
.info__left h2{ font:900 clamp(1.5rem,4.5vw,2.2rem) var(--disp); text-transform:uppercase; margin-bottom:1.1rem; }
.info address{ font-style:normal; line-height:1.8; color:rgba(32,36,58,.8); }
.info__map{ color:var(--rzeka); font-weight:700; text-decoration:none; }
.info__map:hover{ text-decoration:underline; }
.info__social-label{ margin-top:1.4rem; font:500 .8rem var(--mono); color:rgba(32,36,58,.6); }
.info__social{ display:flex; gap:.6rem; margin-top:.6rem; flex-wrap:wrap; }
.info__social a{
  font:700 .85rem var(--txt); text-decoration:none; color:var(--atrament);
  padding:.55rem 1.1rem; border-radius:999px; border:2px solid rgba(32,36,58,.25);
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.info__social a:hover{ border-color:var(--rzeka); background:rgba(47,114,118,.08); }

.info__faq details{
  border-bottom:1px solid rgba(32,36,58,.14);
  transition:background .3s var(--ease);
}
.info__faq details[open]{ background:linear-gradient(90deg, rgba(47,114,118,.05), transparent 70%); }
.info__faq summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font:700 1rem var(--txt); padding:1.05rem 0; color:var(--atrament);
  transition:color .3s var(--ease);
}
.info__faq summary:hover{ color:var(--rzeka); }
.info__faq summary::-webkit-details-marker{ display:none; }
.info__faq summary::after{
  content:"+"; font:700 1.3rem var(--mono); color:var(--rzeka); flex-shrink:0;
  transition:transform .45s var(--ease);
}
.info__faq details[open] summary::after{ transform:rotate(45deg); }
.info__faq details p{ padding:0 0 1.1rem; font-size:.94rem; color:rgba(32,36,58,.72); max-width:38rem; }

/* ═══ ZEW — śledź ogłoszenia (band przed stopką) ═══ */
.zew{ background:var(--piasek); padding:1rem 0 5rem; }
.zew__box{
  position:relative; display:grid; gap:1.6rem; padding:2.4rem 1.8rem;
  background:
    radial-gradient(420px 200px at 90% 110%, rgba(185,74,140,.22), transparent 70%),
    radial-gradient(360px 180px at 6% -10%, rgba(91,227,128,.10), transparent 70%),
    linear-gradient(120deg, #171B38, var(--noc-3));
  border-radius:22px; border:1px solid rgba(255,176,58,.28); overflow:hidden;
  box-shadow:0 24px 60px rgba(18,21,43,.35);
}
.zew__box::before{ /* girlanda w rogu bandu */
  content:""; position:absolute; top:0; right:0; width:200px; height:70px;
  background:
    radial-gradient(4px 4px at 22px 33px, var(--zloto) 40%, transparent 60%),
    radial-gradient(4px 4px at 66px 47px, var(--zloto) 40%, transparent 60%),
    radial-gradient(4px 4px at 112px 51px, var(--zloto) 40%, transparent 60%),
    radial-gradient(4px 4px at 156px 42px, var(--zloto) 40%, transparent 60%),
    radial-gradient(4px 4px at 192px 24px, var(--zloto) 40%, transparent 60%);
  filter:drop-shadow(0 0 5px rgba(255,176,58,.8));
  opacity:.9; pointer-events:none;
}
.zew__eyebrow{
  font:700 .7rem var(--mono); text-transform:uppercase; letter-spacing:.3em;
  color:var(--zloto); margin-bottom:.7rem;
}
.zew__box h2{ font:900 clamp(1.5rem,4.5vw,2.3rem) var(--disp); text-transform:uppercase; color:var(--piasek); }
.zew__lead{ margin-top:.6rem; max-width:30rem; color:var(--mgla-slaba); font-size:.95rem; }
.zew__akcje{ display:flex; flex-wrap:wrap; gap:.7rem; align-content:center; }
.zew__akcje a{
  font:700 .9rem var(--txt); text-decoration:none; color:var(--piasek);
  padding:.85rem 1.5rem; border-radius:999px; border:1.5px solid rgba(243,234,218,.3);
  transition:border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.zew__akcje a:hover{
  border-color:var(--zloto); color:var(--zloto); transform:translateY(-2px);
  box-shadow:0 0 18px rgba(255,176,58,.25);
}

/* ═══ STOPKA ═══ */
.stopka{ background:var(--noc); padding:2.5rem 0 1.6rem; }
.stopka__sun{ width:34px; height:34px; margin-bottom:.7rem; }
.stopka__grid{ display:grid; gap:1.8rem; }
.stopka__logo{ font:900 1.25rem var(--disp); text-transform:uppercase; color:var(--piasek); }
.stopka__tag{ font:500 .78rem var(--mono); color:var(--mgla-slaba); margin-top:.3rem; }
.stopka__kontakt{ display:flex; flex-direction:column; gap:.35rem; font-size:.92rem; }
.stopka__kontakt a{ color:var(--mgla); text-decoration:none; }
.stopka__kontakt a:hover{ color:var(--zloto); }
.stopka__kontakt span{ color:var(--mgla-slaba); }
.stopka__social{ display:flex; gap:.6rem; }
.stopka__social a{
  width:46px; height:46px; display:grid; place-items:center; text-decoration:none;
  font:700 .8rem var(--mono); color:var(--piasek); border:1px solid rgba(243,234,218,.25); border-radius:50%;
  transition:border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.stopka__social a:hover{ border-color:var(--zloto); color:var(--zloto); transform:translateY(-2px); }
.stopka__dol{
  margin-top:2.2rem; padding-top:1.2rem; border-top:1px solid rgba(243,234,218,.1);
  font:500 .75rem var(--mono); color:var(--mgla-slaba);
}
.stopka__dol a{ color:var(--mgla); }

/* ═══ REVEAL (tylko gdy JS działa — bez JS treść zawsze widoczna) ═══ */
html.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
html.js .reveal.widoczne{ opacity:1; transform:none; }

/* ═══ DESKTOP ═══ */
@media (min-width: 700px){
  .bilet{ grid-template-columns:7rem 1fr auto; }
  .bilet__data::before,.bilet__data::after{ left:calc(7rem - 8px); }
  .bilet__num{ font-size:2.5rem; }
  .bilet__kasa{
    grid-column:auto; flex-direction:column; align-items:flex-end; justify-content:center;
    border-top:0; padding:1.1rem 1.4rem; gap:.5rem;
  }
  .bilet__kasa .btn,.kasa-info{ margin-left:0; margin-top:.4rem; }
  .cena{ align-items:flex-end; }
  .galeria__grid{ grid-template-columns:repeat(3,1fr); gap:.9rem; }
  .plaza__grid{ grid-template-columns:repeat(3,1fr); }
  .info__grid{ grid-template-columns:1fr 1.3fr; gap:3.5rem; }
  .stopka__grid{ grid-template-columns:1.2fr 1fr auto; align-items:start; }
  .fala svg{ height:96px; }
  .zew__box{ grid-template-columns:1.5fr auto; padding:3rem 3rem; align-items:center; }
}
@media (min-width: 980px){
  .galeria__grid{ grid-template-columns:repeat(4,1fr); }
  .nav{ padding:1rem 2.2rem; }
  .nav__burger{ display:none; }
  .nav__menu{
    position:static; inset:auto; background:none; backdrop-filter:none;
    flex-direction:row; gap:1.9rem; opacity:1; pointer-events:auto;
  }
  .nav__menu a{ font:600 .92rem var(--txt); text-transform:none; letter-spacing:0; }
  .nav__menu .nav__cta{ font-size:.88rem; padding:.65rem 1.5rem; margin-top:0; }
  .hero__inner{ padding-top:9rem; padding-bottom:4rem; margin-bottom:16svh; }
  .hero__trees{ height:112px; left:0; width:100%; bottom:calc(16svh + 22px); }
  .hero__stage{ left:auto; right:5%; transform:none; width:520px; bottom:calc(16svh + 16px); }
  .hero__water::after{ left:auto; right:5%; transform:none; width:520px; }
}

/* ═══ DOSTĘPNOŚĆ — mniej ruchu ═══ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero__girlanda,.bulb,.hero__stage .led,.hero__glow,.live-dot,.bilet--gwiazda::after,
  .lightbox,.lightbox img,.info__faq details[open] p,
  .hero.pokaz .bulb,.hero.pokaz .hero__stage .led{ animation:none; }
  .snopy{ display:none; }
  .marquee__track{ animation:none; flex-wrap:wrap; width:auto; }
  html.js .reveal{ opacity:1; transform:none; transition:none; }
  .btn,.bilet,.karta{ transition:none; }
}
