/* =========================================================================
   Lanówka — nowoczesny redesign
   - pełnoszerokościowe pasy z naprzemiennym kontrastem (ciemny/jasny)
   - typografia: Space Grotesk (display) + Inter (treść)
   - animacje wejścia (IntersectionObserver), obsługa prefers-reduced-motion
   ========================================================================= */

:root {
    /* Akcenty */
    --accent:      #7c5cff;            /* elektryczny fiolet            */
    --accent-2:    #19e3c2;            /* mięta — kontrast/akcent       */
    --accent-grad: linear-gradient(115deg, #7c5cff 0%, #19e3c2 100%);

    /* Powierzchnie ciemne */
    --ink-900: #0b0b11;
    --ink-850: #14141d;
    --ink-800: #1b1b25;

    /* Powierzchnie jasne */
    --paper:      #f0f5fd;            /* śnieżny biel z lekkim chłodnym/niebieskim tonem */
    --paper-card: #fbfdff;

    /* Tekst */
    --on-dark:   #f5f5fb;
    --on-light:  #15151d;
    --muted-d:   #9b99b4;
    --muted-l:   #5d5d6e;
    --line-d:    rgba(255,255,255,.10);
    --line-l:    rgba(0,0,0,.10);

    /* Wymiary */
    --wrap:   1240px;
    --pad-y:  clamp(64px, 9vw, 130px);
    --gap:    clamp(16px, 2vw, 28px);
    --radius: 18px;
    --shadow: 0 24px 60px -20px rgba(0,0,0,.55);
    --shadow-l: 0 18px 45px -22px rgba(20,20,40,.4);

    --font-display: 'Space Grotesk', system-ui, sans-serif;
    --font-body:    'Inter', system-ui, -apple-system, sans-serif;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family: var(--font-body);
    background: var(--ink-900);
    color: var(--on-dark);
    overflow-x: hidden;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { display:block; max-width:100%; }
a   { color: inherit; text-decoration: none; }

::-webkit-scrollbar       { width:11px; }
::-webkit-scrollbar-track { background: var(--ink-850); }
::-webkit-scrollbar-thumb { background: var(--accent); border-radius:6px; }

/* ----- Pasy pełnej szerokości + wewnętrzny kontener -------------------- */
.band         { width:100%; }
.band--dark   { background: var(--ink-900); color: var(--on-dark); }
.band--ink    { background: var(--ink-850); color: var(--on-dark); }
.band--light  { background: var(--paper);   color: var(--on-light); }
.wrap         { max-width: var(--wrap); margin-inline:auto; padding: var(--pad-y) clamp(20px,5vw,48px); }

/* ----- Nagłówki sekcji ------------------------------------------------- */
.eyebrow {
    font: 600 .82rem/1 var(--font-display);
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--accent);
    display: inline-flex;
    align-items: center;
    gap: .7rem;
}
.eyebrow::before { content:""; width:34px; height:2px; background: var(--accent-grad); }
.band--light .eyebrow { color:#6a45ff; }
.section-title {
    font: 700 clamp(2rem, 5vw, 3.5rem)/1.04 var(--font-display);
    letter-spacing: -.02em;
    margin: .8rem 0 0;
    max-width: 18ch;
}
.section-lead { color: var(--muted-d); max-width: 60ch; margin-top: 1rem; font-size: 1.05rem; }
.band--light .section-lead { color: var(--muted-l); }

/* ----- Przyciski ------------------------------------------------------- */
.btn {
    --bg: var(--accent);
    display:inline-flex; align-items:center; gap:.5rem;
    font: 600 1rem/1 var(--font-display);
    letter-spacing:.02em;
    padding: 15px 28px;
    border-radius: 999px;
    border: none;
    cursor: pointer;
    color:#fff;
    background: var(--accent-grad);
    transition: transform .25s ease, box-shadow .25s ease, opacity .25s;
    box-shadow: 0 12px 30px -10px rgba(124,92,255,.6);
}
.btn:hover, .btn:focus-visible { transform: translateY(-3px); box-shadow: 0 18px 40px -12px rgba(124,92,255,.75); }
.btn--ghost {
    background: transparent;
    border: 1.5px solid currentColor;
    color: inherit;
    box-shadow: none;
}
.btn--ghost:hover, .btn--ghost:focus-visible { background: var(--accent); border-color: var(--accent); color:#fff; box-shadow:none; }

/* ----- Animacje wejścia ------------------------------------------------ */
.reveal { opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); will-change: opacity, transform; }
.reveal--left  { transform: translateX(-52px); }
.reveal--right { transform: translateX(52px); }
.reveal--pop   { transform: scale(.85) translateY(20px); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal--pop.is-visible    { animation: pop-in .6s cubic-bezier(.22,1.2,.4,1) both; }
.reveal--swoop-right { opacity:0; }
.reveal--swoop-left  { opacity:0; }
.reveal--swoop-right.is-visible { animation: swoop-right .9s cubic-bezier(.18,.9,.32,1) both; }
.reveal--swoop-left.is-visible  { animation: swoop-left  .9s cubic-bezier(.18,.9,.32,1) both; }

@keyframes pop-in { 0%{opacity:0;transform:scale(.6)} 60%{opacity:1;transform:scale(1.05)} 100%{transform:scale(1)} }
@keyframes swoop-right {
    0%   { opacity:0; transform: translateX(70%) skewX(-22deg); }
    60%  { opacity:1; transform: translateX(-8%) skewX(8deg); }
    80%  { transform: translateX(2%) skewX(-2deg); }
    100% { opacity:1; transform: none; }
}
@keyframes swoop-left {
    0%   { opacity:0; transform: translateX(-70%) skewX(22deg); }
    60%  { opacity:1; transform: translateX(8%) skewX(-8deg); }
    80%  { transform: translateX(-2%) skewX(2deg); }
    100% { opacity:1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    .reveal, .reveal.is-visible, [class*="reveal--"].is-visible {
        opacity:1 !important; transform:none !important; transition:none !important; animation:none !important;
    }
}

/* ======================================================================= */
/* NAWIGACJA                                                               */
/* ======================================================================= */
.nav {
    position: absolute; inset: 0 0 auto 0; z-index: 30;
    display:flex; align-items:center; justify-content:space-between;
    gap:1rem; flex-wrap:wrap;
    padding: 18px clamp(20px,5vw,48px);
}
.nav img { width: 64px; height:auto; }
.nav-links { display:flex; gap: clamp(12px,2vw,28px); flex-wrap:wrap; }
.nav-links a {
    font: 600 .9rem/1 var(--font-display);
    letter-spacing:.08em; text-transform:uppercase;
    color: #fff; opacity:.85; padding: 6px 2px;
    border-bottom: 2px solid transparent; transition: .2s;
}
.nav-links a:hover, .nav-links a:focus-visible { opacity:1; border-color: var(--accent-2); }

/* ======================================================================= */
/* HERO                                                                    */
/* ======================================================================= */
.hero {
    position: relative; min-height: 100vh;
    display: grid; align-items: center;
    padding: 120px clamp(20px,5vw,48px) 80px;
    isolation: isolate;
    color:#fff;
    background: url(../img/static/background.jpg) center / cover no-repeat fixed;
}
.hero::before {
    content:""; position:absolute; inset:0; z-index:-1;
    background:
        radial-gradient(120% 90% at 15% 10%, rgba(124,92,255,.35), transparent 55%),
        linear-gradient(180deg, rgba(11,11,17,.55) 0%, rgba(11,11,17,.78) 70%, var(--ink-900) 100%);
}
.hero-inner { max-width: var(--wrap); margin-inline:auto; width:100%; }
.hero-eyebrow { color: var(--accent-2); }
.hero h1 {
    font: 700 clamp(3rem, 11vw, 8rem)/0.92 var(--font-display);
    letter-spacing: -.03em;
    margin: 1rem 0;
    text-wrap: balance;
}
.hero-count {
    display:inline-flex; align-items:baseline; gap:.6rem;
    background: rgba(11,11,17,.45);
    border: 1px solid var(--line-d);
    backdrop-filter: blur(6px);
    border-radius: 16px;
    padding: 14px 22px;
    margin: .4rem 0 1.6rem;
}
.hero-count p { font: 700 clamp(2rem,5vw,3rem)/1 var(--font-display); background: var(--accent-grad); -webkit-background-clip:text; background-clip:text; color: transparent; }
.hero-sub { font-size: clamp(1.05rem,1.6vw,1.3rem); max-width: 42ch; color:#dcdce8; }
.hero-cta { display:flex; gap: .9rem; flex-wrap:wrap; margin-top: 2rem; }

/* ======================================================================= */
/* POPUP „WIRUS"                                                           */
/* ======================================================================= */
.virus {
    position: fixed; inset: 12px; margin: auto; z-index:1000;
    width: min(85vw, 1340px); height: max-content; max-height: calc(100dvh - 24px);
    background:#fff; color:#111;
    display:none; grid-template-columns: 1.15fr 1fr;
    border-radius: 16px; overflow: hidden auto;
    box-shadow: 0 40px 120px -20px rgba(0,0,0,.8);
    border: 4px solid #d32f2f;
}
.virus.is-open { display:grid; animation: pop-in .35s ease both; }
.virus img { width:100%; height:100%; max-height:60vh; object-fit:fill; background:#0e0e14; }
.virus-body { padding: clamp(28px,4vw,56px); display:flex; flex-direction:column; gap:1.2rem; }
.virus-tag { font: 700 .98rem/1 var(--font-display); letter-spacing:.2em; text-transform:uppercase; color:#d32f2f; }
.virus-body h2 { font: 700 clamp(2rem,3.6vw,3.1rem)/1.08 var(--font-display); }
.virus-body p  { font-size: clamp(1.15rem,1.9vw,1.45rem); color:#333; }
.virus-body button {
    margin-top:auto; align-self:flex-start;
    font: 600 1.15rem/1 var(--font-display);
    padding: 16px 36px; border:none; border-radius:10px;
    background:#d32f2f; color:#fff; cursor:pointer; transition:.2s;
}
.virus-body button:hover { background:#b71c1c; }
@media (max-width: 760px) {
    .virus.is-open {margin: 30% 10% 2% 4% !important;}
    .virus { grid-template-columns: 1fr; }
    .virus img { max-height: 32vh; }
}
@media (max-height: 600px) {
    .virus { inset: 8px; max-height: calc(100dvh - 16px); }
    .virus img { max-height: none; }
    .virus-body { padding: clamp(14px, 2.5vw, 24px); gap: .6rem; }
    .virus-tag { font-size: .85rem; }
    .virus-body h2 { font-size: clamp(1.3rem, 4.5vw, 2rem); }
    .virus-body p  { font-size: clamp(.9rem, 2.8vw, 1.1rem); }
    .virus-body button { padding: 10px 22px; font-size: 1rem; }
}

/* ======================================================================= */
/* REKLAMA                                                                 */
/* ======================================================================= */
.ad { position: fixed; inset:0; margin:auto; z-index:1000; width:max-content; height:max-content; display:none; border-radius:14px; overflow:hidden; box-shadow:0 40px 120px -20px rgba(0,0,0,.8); }
.ad.is-open { display:block; animation: pop-in .3s ease both; }
.ad-bar { display:flex; justify-content:space-between; align-items:center; background:#fff; color:#111; padding:.6rem 1.1rem; }
.ad-bar h2 { font: 600 1rem/1 var(--font-display); letter-spacing:.04em; }
.ad-bar button { border:none; background:none; cursor:pointer; line-height:0; color:#111; }
.ad-bar button svg { width:30px; height:30px; }
.ad video { display:block; width: min(86vw, 980px); height:auto; max-height: 80vh; background:#000; }

/* ======================================================================= */
/* UCZESTNICY  (pas ciemny — białe karty)                                  */
/* ======================================================================= */
.roster {
    list-style:none;
    display:grid; gap: var(--gap);
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    margin-top: clamp(36px, 5vw, 60px);
}
.card {
    background: var(--paper-card); color: var(--on-light);
    border-radius: var(--radius); overflow:hidden;
    display:flex; flex-direction:column;
    box-shadow: var(--shadow);
    transition: transform .3s ease, box-shadow .3s ease;
}
.card:hover { transform: translateY(-8px); box-shadow: 0 32px 70px -22px rgba(124,92,255,.5); }
.card-media { position:relative; aspect-ratio: 1/1; overflow:hidden; }
.card-media img { width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.card:hover .card-media img { transform: scale(1.06); }
.card-num {
    position:absolute; top:12px; left:12px;
    font: 700 .8rem/1 var(--font-display); letter-spacing:.05em;
    background: rgba(11,11,17,.78); color:#fff;
    padding: 6px 10px; border-radius: 8px;
}
.card-body { padding: 18px 18px 22px; display:flex; flex-direction:column; gap:.35rem; flex:1; }
.card-body h3 { font: 700 1.25rem/1.15 var(--font-display); }
.card-body p  { color: var(--muted-l); font-size: .98rem; }

/* ======================================================================= */
/* INFORMACJE  (pas jasny — szersze wiersze)                               */
/* ======================================================================= */
.features { display:flex; flex-direction:column; gap: clamp(40px,6vw,90px); margin-top: clamp(40px,5vw,70px); }
.feature {
    display:grid; grid-template-columns: 1.05fr 1fr; gap: clamp(24px,4vw,64px);
    align-items:center;
}
.feature--reverse .feature-media { order: 2; }
.feature-media {
    border-radius: var(--radius); overflow:hidden;
    box-shadow: var(--shadow-l); aspect-ratio: 16/11;
}
.feature-media img { width:100%; height:100%; object-fit:cover; }
.feature-text h3 { font: 700 clamp(1.5rem,2.6vw,2.2rem)/1.1 var(--font-display); margin-bottom: 1rem; }
.feature-text p  { color: var(--muted-l); font-size: 1.08rem; }
.feature-text .feature-index { font: 700 .85rem/1 var(--font-display); letter-spacing:.25em; color: var(--accent); margin-bottom:.8rem; display:block; }
@media (max-width: 880px) {
    .feature, .feature--reverse { grid-template-columns: 1fr; }
    .feature--reverse .feature-media { order:0; }
}

/* ======================================================================= */
/* GALERIA  (pas ciemny — immersyjna)                                      */
/* ======================================================================= */
.edition { margin-top: clamp(40px,5vw,72px); }
.edition-head { display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap; border-bottom:1px solid var(--line-d); padding-bottom:.8rem; }
.edition-head h3 { font: 700 clamp(1.5rem,2.6vw,2rem)/1 var(--font-display); }
.edition-head span { font: 600 1rem/1 var(--font-display); color: var(--accent-2); letter-spacing:.04em; }
.edition-team { color: var(--muted-d); margin: .9rem 0 1.4rem; font-size: .98rem; }
.shots {
    display:grid; gap: 14px;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
.shot[hidden] { display:none; }
.shot { display:block; aspect-ratio: 4/3; border-radius: 12px; overflow:hidden; background: var(--ink-800); cursor: zoom-in; position:relative; }
.shot img { width:100%; height:100%; object-fit:cover; transition: transform .4s ease, filter .3s; }
.shot::after { content:""; position:absolute; inset:0; background: linear-gradient(transparent 60%, rgba(124,92,255,.0)); transition:.3s; }
.shot:hover img, .shot:focus-visible img { transform: scale(1.07); }
.edition .btn { margin-top: 1.6rem; }

/* ======================================================================= */
/* SPONSORZY  (pas jasny pełnej szerokości — kafle ciemne)                 */
/* ======================================================================= */
.sponsor-grid {
    display:flex; flex-wrap:wrap; justify-content:center;
    gap: clamp(14px,2vw,22px);
    margin-top: clamp(36px,5vw,56px);
}
.sponsor-tile {
    flex: 0 1 220px;
    background: var(--ink-850);
    border-radius: var(--radius);
    display:flex; align-items:center; justify-content:center;
    padding: 2%;
    min-height: 160px;
    transition: transform .3s ease, box-shadow .3s ease;
}
.sponsor-tile:hover { transform: translateY(-6px); box-shadow: 0 24px 50px -20px rgba(20,20,40,.5); }
.sponsor-tile img { max-height: 86%; max-width: 90%; object-fit: contain; }
.sponsor-tile--invert img { filter: invert(1); }

/* ======================================================================= */
/* STOPKA                                                                  */
/* ======================================================================= */
.site-footer { text-align:center; }
.site-footer .wrap { display:flex; flex-direction:column; align-items:center; gap:.8rem; padding-block: clamp(40px,5vw,64px); }
.site-footer img { height: clamp(150px, 24vh, 240px); width:auto; }
.site-footer h2 { font: 700 clamp(1.8rem,3vw,2.6rem)/1 var(--font-display); }
.site-footer p  { color: var(--muted-d); letter-spacing:.3em; font: 600 1rem/1 var(--font-display); }

:focus-visible { outline: 3px solid var(--accent-2); outline-offset: 3px; border-radius:4px; }

/* etykieta licznika w hero */
.hero-count-label { color:#bdb8e8; }
.hero-count-label::before { display:none; }
