/* =========================================================
   Scena54 v4.7 — animacje i dodatki
   ========================================================= */

/* Honeypot antyspamowy — niewidoczny dla ludzi i czytników ekranu */
.s54-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

/* 1. Pasek postępu przewijania */
.s54-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:10050;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,rgba(217,180,95,.0),var(--gold,#d9b45f) 18%,var(--gold-2,#f0d48f));box-shadow:0 0 12px rgba(217,180,95,.45);pointer-events:none}
body.admin-bar .s54-progress{top:32px}
@media(max-width:782px){body.admin-bar .s54-progress{top:46px}}

/* 2. Hero — wejście słowo po słowie + połysk złotej linii */
/* maska z zapasem na ogonki/akcenty (ę, ą, y, Ż) — po animacji całkiem zdejmowana */
.hero-title.s54-split .s54-w{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em .04em .26em;margin:-.1em -.04em -.26em}
.hero-title.s54-split.is-done .s54-w{overflow:visible}
.hero-title.s54-split .s54-w,.hero-title.s54-split .s54-w>span{color:inherit!important}
.hero-title.s54-split .s54-w>span{display:inline-block;transform:translateY(105%) rotate(2deg);opacity:0;transition:transform 1s cubic-bezier(.16,.84,.24,1),opacity .7s ease}
.hero-title.s54-split.is-in .s54-w>span{transform:none;opacity:1}
.s54-motion-ok .hero-title .hero-title-gold .s54-w>span{
  background:linear-gradient(100deg,var(--gold-2,#f0d48f) 0%,var(--gold-2,#f0d48f) 40%,#fff6dc 50%,var(--gold-2,#f0d48f) 60%,var(--gold-2,#f0d48f) 100%);
  background-size:250% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:s54-shine 7s ease-in-out 2.2s infinite;
}
@keyframes s54-shine{0%,70%{background-position:100% 0}100%{background-position:-50% 0}}

/* 2b. Hero przy przewijaniu + ziarno filmowe */
.s54-hero-scroll .hero-content{transition:none!important}
.hero-slider{transform-origin:50% 40%}
.s54-motion-ok .hero::after{content:"";position:absolute;inset:-50%;z-index:2;pointer-events:none;opacity:.07;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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:s54-grain 1.2s steps(4) infinite}
@keyframes s54-grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}}

/* 2c. Nagłówki linia po linii */
.s54-lines .s54-line{display:block;overflow:hidden;padding:.1em .03em .24em;margin:-.1em -.03em -.24em}
.s54-lines .s54-line>span{display:inline-block;transform:translateY(112%);transition:transform 1.1s cubic-bezier(.16,.84,.24,1)}
.s54-lines.is-in .s54-line>span{transform:none}
.s54-lines.is-done .s54-line{overflow:visible}

/* 3b. Głębia zdjęć */
.s54-px{scale:1.1;will-change:translate}
.place-photo,.bar-menu-photo,.event-offer-media{overflow:hidden}

/* 3c. Galeria kaskadowo */
.s54-pop{opacity:0;transform:translateY(16px) scale(.98);transition:opacity .7s ease calc(var(--s54-i,0) * 70ms),transform .9s cubic-bezier(.16,.84,.24,1) calc(var(--s54-i,0) * 70ms)}
.s54-pop.is-in{opacity:1;transform:none}

/* Połysk na złotych przyciskach */
.s54-motion-ok .btn-primary,.s54-motion-ok .header-cta{position:relative;overflow:hidden;isolation:isolate}
.s54-motion-ok .btn-primary::before,.s54-motion-ok .header-cta::before{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;z-index:-1;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:left .75s cubic-bezier(.2,.75,.2,1)}
.s54-motion-ok .btn-primary:hover::before,.s54-motion-ok .header-cta:hover::before{left:120%}

/* 4. Kurtyna na zdjęciach */
/* clip-path na obrazku (nie na kontenerze) — inaczej IntersectionObserver nie widzi elementu */
.s54-curtain img{clip-path:inset(0 0 100% 0);transform:scale(1.12);transition:clip-path 1.15s cubic-bezier(.7,0,.2,1) var(--s54-delay,0ms),transform 1.6s cubic-bezier(.2,.75,.2,1) var(--s54-delay,0ms)}
.s54-curtain.is-open img{clip-path:inset(0 0 0 0);transform:scale(1)}

/* 5. Magnetyczne przyciski */
.s54-magnetic{translate:var(--mx,0px) var(--my,0px);transition:translate .35s cubic-bezier(.2,.75,.2,1),background .3s,color .3s,border-color .3s,box-shadow .3s}

/* 7. Plakietki na wydarzeniach */
.s54-event-badge{position:absolute;left:14px;top:14px;z-index:2;padding:7px 12px;border-radius:999px;background:rgba(8,8,9,.82);border:1px solid rgba(240,212,143,.55);color:var(--gold-2,#f0d48f);font:700 11px/1 "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.s54-event-badge.is-live{background:var(--gold,#d9b45f);color:#090909;border-color:var(--gold,#d9b45f)}
.s54-event-badge.is-live::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#090909;vertical-align:1px;animation:s54-pulse 1.4s ease-in-out infinite}
@keyframes s54-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
#wydarzenia .event-card--empty{grid-column:1 / -1;border:1px dashed rgba(217,180,95,.35);background:linear-gradient(135deg,rgba(217,180,95,.06),transparent 60%)}
#wydarzenia .event-card--empty .event-card-content{min-height:0;padding:34px}
#wydarzenia .event-card--empty h3{font-size:clamp(24px,2.4vw,34px);margin:10px 0}
#wydarzenia .event-card--empty p{color:var(--muted,#9d9891);max-width:560px}

/* 8. Pasek marquee */
.s54-marquee{position:relative;overflow:hidden;border-top:1px solid rgba(217,180,95,.18);border-bottom:1px solid rgba(217,180,95,.18);background:#0a0a0b;padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.s54-marquee-track{display:flex;width:max-content;animation:s54-marquee 38s linear infinite}
.s54-marquee:hover .s54-marquee-track{animation-play-state:paused}
.s54-marquee-row{display:flex;align-items:center;flex-shrink:0}
.s54-marquee span{font:800 clamp(20px,2.6vw,38px)/1 "Manrope",sans-serif;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1px rgba(242,238,231,.55);white-space:nowrap;padding:0 28px;transition:color .3s}
.s54-marquee span:nth-of-type(2n){color:var(--gold-2,#f0d48f);-webkit-text-stroke:0}
.s54-marquee i{font-style:normal;color:var(--gold,#d9b45f);font-size:14px}
@keyframes s54-marquee{to{transform:translateX(-50%)}}
/* Pasek wewnątrz sekcji „Miejsce” — szerokość kontenera, lżejszy */
#miejsce .s54-marquee{grid-column:1 / -1;background:transparent;padding:20px 0;margin-top:clamp(0px,1vw,12px);border-color:rgba(255,255,255,.08)}
#miejsce .s54-marquee span{font-size:clamp(18px,1.9vw,28px);padding:0 22px}
#miejsce .s54-marquee i{font-size:11px}

/* 9. Ogłoszenie (popup) */
.s54-announce:not([open]){display:none}
.s54-announce{padding:0;border:1px solid #a4874e;background:#090909;color:#fff;width:min(1040px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;overflow:auto;box-shadow:0 24px 100px #0009}
.s54-announce[open]{animation:s54-pop .55s cubic-bezier(.16,.84,.24,1)}
.s54-announce::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.s54-announce[open]::backdrop{animation:s54-fade .4s ease}
@keyframes s54-pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes s54-fade{from{opacity:0}to{opacity:1}}
.s54-announce-panel{position:relative}
.s54-announce picture{display:block}
.s54-announce picture img{display:block;width:100%;height:auto;max-height:calc(100dvh - 150px);object-fit:contain}
.s54-announce-close{position:sticky;top:10px;float:right;z-index:2;width:44px;height:44px;margin:10px 10px -54px 0;border:1px solid #e4c77e;border-radius:50%;background:#080808;color:#fff;font:32px/1 Arial,sans-serif;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 12px #0008;transition:transform .25s}
.s54-announce-close:hover{transform:rotate(90deg)}
.s54-announce-close:focus-visible,.s54-announce-actions a:focus-visible{outline:3px solid #fff;outline-offset:3px}
.s54-announce-actions{display:flex;justify-content:center;padding:16px 20px;background:#090909}
.s54-announce-actions .btn{gap:12px;text-align:center}
html.s54-announce-open{overflow:hidden}
@media(max-width:720px){
  .s54-announce{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}
  .s54-announce picture img{max-height:calc(100dvh - 112px)}
  .s54-announce-actions{padding:12px}
  .s54-announce-actions .btn{width:100%}
}

/* 10. Formularz — stany */
.s54-field-error input{border-color:#e07a5f!important;box-shadow:0 0 0 1px rgba(224,122,95,.35)!important}
.form-message.s54-msg-error{color:#f0a48f}
.s54-form-paused{padding:28px;border:1px solid rgba(217,180,95,.35);background:rgba(217,180,95,.06);color:var(--text,#f2eee7);font-size:16px;line-height:1.6}
.s54-turnstile{min-height:68px}

/* 11. Karta „Dziękujemy” po wysłaniu */
.s54-thanks{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:20px;background:rgba(4,4,5,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s ease}
.s54-thanks.is-in{opacity:1}
.s54-thanks-card{width:min(520px,100%);padding:44px 38px 36px;text-align:center;background:#0d0d0e;border:1px solid rgba(217,180,95,.4);box-shadow:0 40px 120px rgba(0,0,0,.55);transform:translateY(18px) scale(.98);transition:transform .5s cubic-bezier(.16,.84,.24,1)}
.s54-thanks.is-in .s54-thanks-card{transform:none}
.s54-thanks-card h2{margin:0 0 12px;font:800 clamp(34px,5vw,48px)/1 "Manrope",sans-serif;letter-spacing:-.04em}
.s54-thanks-card p{color:#bdb6ab;line-height:1.65}
.s54-thanks-card .eyebrow{margin:18px 0 10px}
.s54-thanks-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:26px}
.s54-thanks-check{width:76px;height:76px;margin:0 auto;display:block;fill:none;stroke:var(--gold,#d9b45f);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.s54-thanks-check circle{stroke-dasharray:151;stroke-dashoffset:151;animation:s54-draw .8s .15s cubic-bezier(.65,0,.35,1) forwards}
.s54-thanks-check path{stroke-dasharray:36;stroke-dashoffset:36;animation:s54-draw .45s .8s cubic-bezier(.65,0,.35,1) forwards}
@keyframes s54-draw{to{stroke-dashoffset:0}}

/* Ograniczony ruch — wszystko statyczne */
@media (prefers-reduced-motion: reduce){
  .s54-marquee-track{animation:none}
  .s54-announce[open],.s54-announce[open]::backdrop{animation:none}
  .s54-thanks-check circle,.s54-thanks-check path{animation:none;stroke-dashoffset:0}
  .s54-event-badge.is-live::before{animation:none}
  .hero::after{display:none}
}
@media(max-width:720px){
  .s54-marquee{padding:13px 0}
  .s54-marquee span{padding:0 18px}
}

/* Strony prawne — czytelność, listy, tabele */
.legal-section p,.legal-section li{font-size:14px;line-height:1.75;color:#aaa39a}
.legal-section strong{color:#e8e1d6;font-weight:600}
.legal-section ul{margin:4px 0 14px;padding-left:18px;max-width:840px}
.legal-section li{margin:0 0 8px}
.legal-section li::marker{color:var(--gold,#d9b45f)}
.legal-section code{font:12.5px/1.4 ui-monospace,Menlo,monospace;color:#e8d29a;background:rgba(217,180,95,.08);padding:2px 6px;border-radius:5px;word-break:break-word}
.s54-legal-table{overflow-x:auto;margin:6px 0 16px;border:1px solid rgba(255,255,255,.08)}
.s54-legal-table table{width:100%;min-width:620px;border-collapse:collapse;font-size:13.5px;line-height:1.55}
.s54-legal-table th{text-align:left;padding:13px 16px;background:rgba(217,180,95,.07);color:#e8d29a;font-weight:600;font-size:12.5px;border-bottom:1px solid rgba(255,255,255,.08)}
.s54-legal-table td{padding:13px 16px;color:#b3aca2;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.06)}
.s54-legal-table tr:last-child td{border-bottom:0}
.s54-legal-btn{margin:4px 0 6px}
