/* ==========================================================================
   AIBC Webinars — Design System & Site
   Kierunek: "Mapa zależności" — tusz (granat) + papier, edytorska typografia,
   motyw schematu infrastruktury. Tokeny poniżej są jedynym źródłem kolorów.
   ========================================================================== */

/* ---------- Fonty (samohostowane; brak zapytań do Google = RODO) ---------- */
@font-face { font-family: "Schibsted Grotesk"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url(/static/fonts/schibsted-grotesk-latin-wght-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Schibsted Grotesk"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url(/static/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(/static/fonts/newsreader-latin-opsz-italic.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(/static/fonts/newsreader-latin-ext-opsz-italic.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(/static/fonts/newsreader-latin-opsz-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+FEFF, U+FFFD; }
@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(/static/fonts/newsreader-latin-ext-opsz-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+A720-A7FF; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url(/static/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url(/static/fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+A720-A7FF; }

/* ---------- Tokeny ---------- */
:root {
  /* Tusz (granat AIBC) */
  --ink-980: #050A16;
  --ink-950: #070D1C;
  --ink-900: #0B1428;
  --ink-850: #0F1A33;
  --ink-800: #14213F;
  --ink-700: #1E2D52;
  --ink-600: #2C3D66;
  /* Papier */
  --paper-50: #FBF9F5;
  --paper-100: #F4F0E8;
  --paper-200: #EAE3D6;
  --paper-300: #DDD3C1;
  /* Piasek / złoto (akcent marki) */
  --sand-200: #F1E3C4;
  --sand-300: #E4CB98;
  --sand-400: #D6B679;
  --sand-500: #C29B55;
  --sand-700: #7C5E27;   /* tekst na papierze (AA) */
  /* Sygnał (incydent) — używany oszczędnie */
  --ember-400: #FF7A52;
  --ember-500: #F0643C;
  --ember-700: #B23A17;
  /* Stany */
  --ok-400: #6FCF9E;
  --ok-700: #1F7A4D;
  --err-300: #FFA58C;
  --err-600: #C2361B;
  /* Tekst */
  --on-ink: #EFEAE0;
  --on-ink-muted: #A9B2C5;
  --on-ink-dim: #7F8AA3;
  --on-paper: #0B1428;
  --on-paper-muted: #4B566D;
  /* Linie */
  --line-ink: rgba(214, 182, 121, .16);
  --line-ink-strong: rgba(214, 182, 121, .32);
  --line-paper: rgba(11, 20, 40, .12);
  --line-paper-strong: rgba(11, 20, 40, .28);
  /* Spektrum z sygnetu AIBC — wyłącznie jako cienka linia-podpis */
  --spectrum: linear-gradient(90deg, #F2C14E 0%, #EE8B3A 24%, #E0524A 48%, #B8458E 72%, #3F7BD9 100%);

  /* Typografia */
  --f-sans: "Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --f-serif: "Newsreader", ui-serif, Georgia, "Times New Roman", serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --fs-display-1: clamp(3.1rem, 1.2rem + 8.4vw, 9rem);
  --fs-display-2: clamp(2.15rem, 1.35rem + 3.3vw, 4.4rem);
  --fs-display-3: clamp(1.9rem, 1.3rem + 2.4vw, 3.4rem);
  --fs-h3: clamp(1.3rem, 1.1rem + .8vw, 1.75rem);
  --fs-lede: clamp(1.08rem, 1rem + .35vw, 1.3rem);
  --fs-body: 1.0625rem;
  --fs-small: .9rem;
  --fs-micro: .75rem;

  /* Przestrzeń (skala 4px) */
  --s-1: .25rem; --s-2: .5rem; --s-3: .75rem; --s-4: 1rem; --s-5: 1.5rem; --s-6: 2rem; --s-7: 3rem; --s-8: 4rem; --s-9: 6rem; --s-10: 8rem;
  --sec-pad: clamp(4.5rem, 3rem + 7vw, 10rem);
  --gutter: clamp(1rem, .5rem + 3vw, 3.5rem);
  --wrap: 1360px;

  /* Promienie i cienie */
  --r-xs: 4px; --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-pill: 999px;
  --shadow-1: 0 1px 2px rgba(5, 10, 22, .08), 0 4px 16px rgba(5, 10, 22, .06);
  --shadow-2: 0 2px 6px rgba(5, 10, 22, .12), 0 18px 48px rgba(5, 10, 22, .18);
  --shadow-glow: 0 0 0 1px rgba(214, 182, 121, .25), 0 18px 60px rgba(214, 182, 121, .12);

  /* Ruch */
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-io: cubic-bezier(.65, 0, .35, 1);
  --t-fast: 160ms; --t-med: 320ms; --t-slow: 700ms;

  --focus: 0 0 0 3px var(--ink-900), 0 0 0 5px var(--sand-300);
  color-scheme: dark light;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; font-family: var(--f-sans); font-size: var(--fs-body); line-height: 1.6; color: var(--on-ink); background: var(--ink-950);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; font-feature-settings: "ss01", "cv11"; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul[class], ol[class] { list-style: none; padding: 0; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--sand-300); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--sand-300); color: var(--ink-950); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: .75rem 1.25rem; background: var(--sand-300); color: var(--ink-950); font-weight: 700; border-radius: var(--r-pill); text-decoration: none; transition: top var(--t-fast); }
.skip-link:focus { top: 1rem; }

/* ---------- Typografia ---------- */
.mono { font-family: var(--f-mono); font-feature-settings: "zero" 0; letter-spacing: 0; }
.mono-num { font-family: var(--f-mono); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.serif-i { font-family: var(--f-serif); font-style: italic; font-weight: 400; letter-spacing: -.01em; font-variation-settings: "opsz" 72; }
.display-1 { font-size: var(--fs-display-1); font-weight: 800; line-height: .9; letter-spacing: -.045em; text-wrap: balance; }
.display-2 { font-size: var(--fs-display-2); font-weight: 750; line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.display-3 { font-size: var(--fs-display-3); font-weight: 750; line-height: 1.02; letter-spacing: -.03em; text-wrap: balance; }
.lede { font-size: var(--fs-lede); line-height: 1.55; color: var(--on-paper-muted); max-width: 40rem; text-wrap: pretty; }
.lede--light { color: var(--on-ink-muted); }
.muted { color: var(--on-ink-dim); }
.small { font-size: var(--fs-small); }
.eyebrow { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--f-mono); font-size: var(--fs-micro); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-700); margin-bottom: var(--s-5); }
.eyebrow--light { color: var(--sand-400); }
.eyebrow__n { display: inline-grid; place-items: center; min-width: 2.2rem; height: 1.5rem; padding: 0 .4rem; border: 1px solid currentColor; border-radius: var(--r-pill); font-size: .7rem; letter-spacing: .04em; }
.prose { max-width: 44rem; }
.prose p, .prose ul { margin-bottom: 1em; }
.prose h3 { font-size: 1.25rem; margin: 1.6em 0 .5em; letter-spacing: -.01em; }
.prose a { color: inherit; font-weight: 600; }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.sec { position: relative; padding-block: var(--sec-pad); }
.sec--paper { background: var(--paper-100); color: var(--on-paper); }
.sec--paper-deep { background: var(--paper-200); color: var(--on-paper); }
.sec--ink { background: var(--ink-900); color: var(--on-ink); }
.sec-head { margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); max-width: 60rem; }
.sec-head .lede { margin-top: var(--s-5); }
.sec-head--split { display: grid; gap: var(--s-5) var(--s-8); max-width: none; align-items: end; }
@media (min-width: 960px) { .sec-head--split { grid-template-columns: 1.35fr 1fr; } .sec-head--split .lede { margin-top: 0; } }

/* ==========================================================================
   Komponenty — Design System
   ========================================================================== */

/* Przyciski */
.btn { --btn-bg: var(--ink-900); --btn-fg: var(--on-ink); --btn-bd: transparent;
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .8rem 1.4rem;
  border: 1px solid var(--btn-bd); border-radius: var(--r-pill); background: var(--btn-bg); color: var(--btn-fg);
  font-family: var(--f-sans); font-size: 1rem; font-weight: 650; letter-spacing: -.005em; line-height: 1.1; text-decoration: none; cursor: pointer;
  transition: background-color var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast) var(--ease-out), box-shadow var(--t-med); -webkit-tap-highlight-color: transparent; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0) scale(.99); }
.btn:focus-visible { outline: none; box-shadow: var(--focus); }
.btn--sm { min-height: 40px; padding: .55rem 1.05rem; font-size: .92rem; }
.btn--lg { min-height: 56px; padding: 1rem 1.75rem; font-size: 1.06rem; }
.btn--block { width: 100%; }
.btn--sand { --btn-bg: var(--sand-300); --btn-fg: var(--ink-950); box-shadow: inset 0 -2px 0 rgba(124, 94, 39, .25); }
.btn--sand:hover { --btn-bg: var(--sand-200); box-shadow: inset 0 -2px 0 rgba(124, 94, 39, .25), 0 10px 30px rgba(228, 203, 152, .22); }
.btn--ink { --btn-bg: var(--ink-900); --btn-fg: var(--paper-50); }
.btn--ink:hover { --btn-bg: var(--ink-700); }
.btn--ghost-light { --btn-bg: transparent; --btn-fg: var(--on-ink); --btn-bd: var(--line-ink-strong); }
.btn--ghost-light:hover { --btn-bd: var(--sand-300); --btn-bg: rgba(214, 182, 121, .06); }
.btn--ghost-dark { --btn-bg: transparent; --btn-fg: var(--on-paper); --btn-bd: var(--line-paper-strong); }
.btn--ghost-dark:hover { --btn-bd: var(--ink-900); }
.btn--danger-ghost { --btn-bg: transparent; --btn-fg: var(--err-300); --btn-bd: rgba(255, 165, 140, .35); }
.btn--danger-ghost:hover { --btn-bd: var(--err-300); }
.btn__arrow { display: inline-block; transition: transform var(--t-med) var(--ease-out); }
.btn:hover .btn__arrow { transform: translateX(4px); }
.btn__spinner { display: none; width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
.btn[aria-busy="true"] { pointer-events: none; opacity: .85; }
.btn[aria-busy="true"] .btn__spinner { display: inline-block; }
.btn[aria-busy="true"] .btn__arrow { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.linklike { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.textlink { display: inline-flex; gap: .5rem; align-items: center; font-weight: 650; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.textlink:hover span { transform: translateX(3px); }
.textlink span { transition: transform var(--t-med) var(--ease-out); }

/* Odznaki */
.badge { display: inline-flex; align-items: center; gap: .4rem; padding: .22rem .6rem; border-radius: var(--r-pill); font-family: var(--f-mono); font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; border: 1px solid currentColor; }
.badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Pola formularza (ciemne tło) */
.field { position: relative; display: grid; gap: .45rem; align-content: start; }
.field__label { font-weight: 600; font-size: .95rem; color: var(--on-ink); display: flex; gap: .5rem; align-items: baseline; }
.field__req { color: var(--sand-400); font-weight: 700; }
.field__opt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--on-ink-dim); font-weight: 500; }
.field__hint { font-size: .85rem; color: var(--on-ink-dim); margin-top: -.15rem; }
.input { width: 100%; min-height: 54px; padding: .9rem 1rem; font-size: 1rem; color: var(--on-ink); background: rgba(5, 10, 22, .55);
  border: 1px solid rgba(169, 178, 197, .28); border-radius: var(--r-sm); transition: border-color var(--t-fast), box-shadow var(--t-fast), background-color var(--t-fast); -webkit-appearance: none; appearance: none; }
.input::placeholder { color: var(--on-ink-dim); }
.input:hover { border-color: rgba(169, 178, 197, .5); }
.input:focus { outline: none; border-color: var(--sand-300); background: rgba(5, 10, 22, .8); box-shadow: 0 0 0 4px rgba(228, 203, 152, .16); }
.input--area { min-height: 110px; resize: vertical; line-height: 1.5; }
.input:user-invalid, .input.user-invalid-fallback, .field.has-error .input { border-color: var(--err-300); background: rgba(194, 54, 27, .08); }
.input:required:user-valid, .input.user-valid-fallback { border-color: rgba(111, 207, 158, .55); }
.field__error { min-height: 0; font-size: .86rem; color: var(--err-300); display: none; gap: .4rem; align-items: flex-start; }
.field__error:not(:empty) { display: flex; }
.field__error:not(:empty)::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 1.1rem; height: 1.1rem; margin-top: .15rem; border-radius: 50%; background: var(--err-300); color: var(--ink-950); font-size: .72rem; font-weight: 800; }
.field__count { justify-self: end; font-size: .72rem; color: var(--on-ink-dim); margin-top: -.2rem; }
.field__count.is-near { color: var(--sand-300); }

/* Checkbox */
.check { position: relative; display: grid; gap: .35rem; }
.check__input { position: absolute; opacity: 0; width: 24px; height: 24px; margin: 0; top: 2px; left: 0; cursor: pointer; }
.check__label { display: grid; grid-template-columns: 24px 1fr; gap: .85rem; align-items: start; font-size: .94rem; line-height: 1.5; color: var(--on-ink); cursor: pointer; }
.check__box { width: 24px; height: 24px; border-radius: 6px; border: 1.5px solid rgba(169, 178, 197, .55); background: rgba(5, 10, 22, .5); display: grid; place-items: center; transition: all var(--t-fast); margin-top: 1px; }
.check__box::after { content: ""; width: 12px; height: 7px; border: 2.5px solid var(--ink-950); border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform var(--t-fast) var(--ease-out); }
.check__input:checked + .check__label .check__box { background: var(--sand-300); border-color: var(--sand-300); }
.check__input:checked + .check__label .check__box::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.check__input:focus-visible + .check__label .check__box { box-shadow: var(--focus); }
.check__input:user-invalid + .check__label .check__box, .check.has-error .check__box { border-color: var(--err-300); }
.check__more { padding-left: calc(24px + .85rem); font-size: .86rem; }
.check__more a { color: var(--sand-300); }
.check .field__error { padding-left: calc(24px + .85rem); }
.check--optional .check__label { color: var(--on-ink-muted); }

/* Modal (<dialog>) */
.modal { width: min(640px, calc(100vw - 2rem)); max-height: min(80vh, 720px); padding: 0; border: 1px solid var(--line-paper); border-radius: var(--r-lg); background: var(--paper-50); color: var(--on-paper); box-shadow: var(--shadow-2); }
.modal::backdrop { background: rgba(5, 10, 22, .72); backdrop-filter: blur(3px); }
.modal[open] { animation: modal-in var(--t-med) var(--ease-out); }
@keyframes modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.modal__inner { display: flex; flex-direction: column; max-height: inherit; }
.modal__head { display: flex; justify-content: space-between; gap: 1rem; align-items: start; padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid var(--line-paper); }
.modal__title { font-size: 1.25rem; letter-spacing: -.015em; line-height: 1.25; }
.modal__close { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line-paper-strong); background: transparent; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--on-paper); }
.modal__close:hover { background: var(--paper-200); }
.modal__body { padding: 1.25rem 1.5rem; overflow: auto; font-size: .95rem; color: var(--on-paper-muted); }
.modal__foot { padding: 1rem 1.5rem 1.5rem; display: flex; justify-content: flex-end; gap: .75rem; }

/* Toast */
.toast-region { position: fixed; z-index: 90; right: 1rem; bottom: 1rem; display: grid; gap: .5rem; max-width: min(420px, calc(100vw - 2rem)); }
.toast { display: flex; gap: .75rem; align-items: flex-start; padding: .9rem 1.1rem; border-radius: var(--r-md); background: var(--ink-800); color: var(--on-ink); border: 1px solid var(--line-ink-strong); box-shadow: var(--shadow-2); font-size: .94rem; animation: toast-in var(--t-med) var(--ease-out); }
.toast::before { content: ""; flex: none; width: 8px; height: 8px; margin-top: .45rem; border-radius: 50%; background: var(--sand-300); }
.toast--ok::before { background: var(--ok-400); }
.toast--err::before { background: var(--ember-500); }
.toast--inline { margin-bottom: 2rem; animation: none; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

/* Placeholder (widoczny tylko w podglądzie administratora) */
.ph { display: inline-block; padding: .1rem .5rem; margin: .1rem 0; border: 1px dashed var(--ember-400); border-radius: 6px; color: var(--ember-400); font-family: var(--f-mono); font-size: .75rem; font-style: normal; font-weight: 500; letter-spacing: .02em; text-transform: none; background: rgba(240, 100, 60, .06); }

/* Pasek podglądu admina */
.admin-bar { position: fixed; z-index: 80; left: 50%; bottom: 1rem; transform: translateX(-50%); display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: center; max-width: calc(100vw - 2rem);
  padding: .6rem 1rem; background: var(--paper-50); color: var(--ink-900); border-radius: var(--r-pill); box-shadow: var(--shadow-2); font-size: .82rem; }
.admin-bar a { font-weight: 700; }
.admin-bar__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ember-500); box-shadow: 0 0 0 4px rgba(240, 100, 60, .2); }
body:has(.admin-bar) .sticky-cta { bottom: 4.5rem; }

/* Pasek postępu przewijania (dekoracyjny) */
.scroll-progress { position: fixed; z-index: 60; inset: 0 0 auto 0; height: 2px; background: var(--spectrum); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    @keyframes grow-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }
    .scroll-progress { animation: grow-x auto linear; animation-timeline: scroll(root); }
  }
}

/* ==========================================================================
   Nagłówek
   ========================================================================== */
.site-header { position: fixed; z-index: 50; inset: 0 0 auto 0; transition: background-color var(--t-med), border-color var(--t-med), backdrop-filter var(--t-med); border-bottom: 1px solid transparent; }
.site-header.is-solid { background: rgba(7, 13, 28, .86); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-bottom-color: var(--line-ink); }
.site-header__inner { display: flex; align-items: center; gap: 1.5rem; max-width: var(--wrap); margin-inline: auto; padding: .9rem var(--gutter); }
.brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--on-ink); }
.brand__symbol { display: block; width: 23px; height: 31px; object-fit: contain; flex: 0 0 auto; }
.brand__word { font-weight: 850; font-size: 1.3rem; letter-spacing: .06em; line-height: 1; }
.brand__logo { height: 30px; width: auto; }
.brand__sep { width: 1px; height: 18px; background: var(--line-ink-strong); }
.brand__label { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sand-400); }
.site-nav { margin-left: auto; }
.site-nav ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.site-nav a { display: block; padding: .5rem .8rem; border-radius: var(--r-pill); font-size: .93rem; font-weight: 550; color: var(--on-ink-muted); text-decoration: none; transition: color var(--t-fast), background-color var(--t-fast); }
.site-nav a:hover { color: var(--on-ink); background: rgba(214, 182, 121, .08); }
.site-header__cta { margin-left: .5rem; }
@media (max-width: 820px) { .site-nav { display: none; } .site-header__cta { margin-left: auto; } }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero { position: relative; overflow: hidden; min-height: 100svh; padding-top: clamp(6rem, 4rem + 3vw, 7.25rem); padding-bottom: clamp(2rem, 1.5rem + 2vw, 3rem);
  display: flex; flex-direction: column; justify-content: space-between; gap: 3rem;
  background:
    radial-gradient(60rem 40rem at 85% 10%, rgba(214, 182, 121, .10), transparent 60%),
    radial-gradient(50rem 36rem at 70% 90%, rgba(63, 123, 217, .08), transparent 60%),
    linear-gradient(180deg, var(--ink-950), var(--ink-900)); }
.hero__grid-bg { position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(var(--line-ink) 1px, transparent 1px), linear-gradient(90deg, var(--line-ink) 1px, transparent 1px);
  background-size: 80px 80px; background-position: -1px -1px; opacity: .35;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, #000 20%, transparent 75%); }
.hero__map { position: absolute; pointer-events: none; right: max(-1vw, -20px); top: 47%; transform: translateY(-50%); width: min(48vw, 760px); opacity: .95; }
.hero__inner { position: relative; z-index: 1; }
.hero__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-family: var(--f-mono); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-400); margin-bottom: clamp(1.25rem, 1rem + 1.2vw, 2rem); }
.hero__kicker .mono { color: var(--on-ink-muted); letter-spacing: .08em; }
.hero__kicker-sep { color: var(--on-ink-dim); }
.kicker-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ember-500); box-shadow: 0 0 0 0 rgba(240, 100, 60, .6); }
@media (prefers-reduced-motion: no-preference) { .kicker-dot { animation: ping 2.4s var(--ease-out) infinite; } }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(240, 100, 60, .55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(240, 100, 60, 0); } }
.hero__title { display: flex; flex-direction: column; max-width: 14ch; font-size: clamp(2.4rem, 1rem + 3.9vw, 5.2rem); font-weight: 800; line-height: .94; letter-spacing: -.045em; }
.hero__line { display: block; text-wrap: balance; }
.hero__line--xl { white-space: nowrap; font-size: 1.72em; letter-spacing: -.055em; line-height: .86; margin-bottom: .1em;
  background: linear-gradient(180deg, #FFF8EA 20%, var(--sand-300) 140%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__subtitle { margin-top: clamp(1.25rem, 1rem + 1vw, 2rem); max-width: 22ch; font-family: var(--f-serif); font-style: italic; font-weight: 380; font-variation-settings: "opsz" 72;
  font-size: clamp(1.5rem, 1rem + 1.6vw, 2.6rem); line-height: 1.08; letter-spacing: -.015em; color: var(--sand-300); text-wrap: balance; }
.hero__lead { margin-top: clamp(1.1rem, .9rem + .8vw, 1.5rem); max-width: 37rem; font-size: var(--fs-lede); color: var(--on-ink-muted); text-wrap: pretty; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-top: clamp(1.5rem, 1.25rem + 1vw, 2.25rem); }
.hero__countdown { font-size: .8rem; color: var(--on-ink-dim); letter-spacing: .04em; margin-left: .5rem; }
.hero__countdown strong { color: var(--sand-300); font-weight: 600; }
.hero__meta { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-ink-strong); }
.hero__meta-cell { padding: 1.1rem 1.25rem 0 0; }
.hero__meta-cell + .hero__meta-cell { padding-left: 1.25rem; border-left: 1px solid var(--line-ink); }
.hero__meta dt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--on-ink-dim); margin-bottom: .45rem; }
.hero__meta dd { font-size: clamp(1.05rem, .95rem + .5vw, 1.35rem); font-weight: 650; letter-spacing: -.015em; line-height: 1.25; }
.hero__meta dd small { display: block; margin-top: .2rem; font-size: .8rem; font-weight: 450; color: var(--on-ink-dim); letter-spacing: 0; }
.hero__meta-cell--hosts dd { font-size: 1rem; }
.hero__host { display: block; }
.hero__meta .muted { color: var(--on-ink-dim); font-weight: 500; }

/* Mapa zależności */
.depmap { width: 100%; height: auto; overflow: visible; }
.dm-dot { fill: rgba(214, 182, 121, .22); }
.dm-base { fill: none; stroke: rgba(214, 182, 121, .22); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.dm-sig { fill: none; stroke: var(--sand-300); stroke-width: 2.25; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: 0; opacity: .9; }
.dm-sig.w1 { stroke: var(--ember-400); }
.dm-node { fill: var(--ink-950); stroke: var(--sand-400); stroke-width: 2; }
.dm-node--origin { fill: var(--ember-500); stroke: var(--ember-400); }
.dm-node--hub { fill: var(--sand-300); stroke: var(--sand-200); }
.dm-ring { fill: none; stroke: var(--sand-300); stroke-width: 1; opacity: 0; transform-box: fill-box; transform-origin: center; }
.w0 .dm-ring { stroke: var(--ember-400); }
.dm-label { font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; fill: var(--on-ink-muted); paint-order: stroke; stroke: var(--ink-950); stroke-width: 7px; stroke-linejoin: round; }
.w1 .dm-label { fill: var(--on-ink); }
.dm-tag__t { font-family: var(--f-mono); font-size: 10px; letter-spacing: .2em; fill: var(--ember-400); paint-order: stroke; stroke: var(--ink-950); stroke-width: 6px; }

@media (prefers-reduced-motion: no-preference) {
  .dm-sig { stroke-dasharray: 1 1; stroke-dashoffset: 1; animation: dm-draw 11s var(--ease-io) infinite; }
  .dm-sig.w2 { animation-delay: 1.3s; }
  .dm-sig.w3 { animation-delay: 2.6s; }
  .dm-sig.e3, .dm-sig.e5 { animation-delay: 1.6s; }
  .dm-sig.e8 { animation-delay: 2.9s; }
  .dm-n .dm-ring { animation: dm-ring 11s var(--ease-out) infinite; }
  .dm-n.w0 .dm-ring { animation-name: dm-ring-origin; animation-duration: 2.75s; }
  .dm-n.w1 .dm-ring { animation-delay: 1.2s; }
  .dm-n.w2 .dm-ring { animation-delay: 2.5s; }
  .dm-n.w3 .dm-ring { animation-delay: 3.8s; }
  .dm-n .dm-label { transition: fill .6s; }
}
@keyframes dm-draw { 0% { stroke-dashoffset: 1; opacity: 1; } 16% { stroke-dashoffset: 0; opacity: 1; } 72% { stroke-dashoffset: 0; opacity: .95; } 86%, 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes dm-ring { 0%, 11% { opacity: 0; transform: scale(.4); } 13% { opacity: .9; transform: scale(.5); } 26% { opacity: 0; transform: scale(1.6); } 100% { opacity: 0; } }
@keyframes dm-ring-origin { 0% { opacity: .9; transform: scale(.4); } 70%, 100% { opacity: 0; transform: scale(1.7); } }

@media (max-width: 1099px) {
  .hero__map { width: 88vw; right: -18vw; top: 6rem; transform: none; opacity: .45; }
}
@media (max-width: 719px) {
  .hero { min-height: auto; gap: 2.25rem; padding-top: 6rem; }
  .hero__map { position: relative; order: 2; right: auto; top: auto; width: calc(100% + 2 * var(--gutter)); margin: -.5rem calc(-1 * var(--gutter)) -1.5rem; opacity: .9; }
  .hero__map .depmap { width: 100%; margin-left: 0; }
  .hero__kicker-sep, .hero__kicker .mono { display: none; }
  .hero__inner { order: 1; }
  .hero > .wrap:last-child { order: 3; }
  .hero__title { font-size: clamp(2.3rem, 1.2rem + 6vw, 3.4rem); }
  .hero__line--xl { font-size: 1.55em; }
  .hero__actions .btn { flex: 1 1 100%; }
  .hero__countdown { margin-left: 0; width: 100%; text-align: center; }
  .hero__meta { grid-template-columns: 1fr 1fr; }
  .hero__meta-cell { padding: .9rem .75rem .9rem 0; }
  .hero__meta-cell + .hero__meta-cell { padding-left: 0; border-left: 0; }
  .hero__meta-cell:nth-child(even) { padding-left: .9rem; border-left: 1px solid var(--line-ink); }
  .hero__meta-cell:nth-child(n+3) { border-top: 1px solid var(--line-ink); }
  .hero__meta-cell--hosts { grid-column: 1 / -1; padding-left: 0 !important; border-left: 0 !important; }
  .hero__meta-cell--hosts dd { display: flex; flex-wrap: wrap; gap: .1rem 1rem; }
}

/* Wejścia (reveal) — progresywne ulepszenie */
@media (prefers-reduced-motion: no-preference) {
  .reveal-now { animation: rise .9s var(--ease-out) both; }
  .hero__inner .reveal-now:nth-child(2) { animation-delay: .08s; }
  .hero__inner .reveal-now:nth-child(3) { animation-delay: .16s; }
  .hero__inner .reveal-now:nth-child(4) { animation-delay: .24s; }
  .hero__inner .reveal-now:nth-child(5) { animation-delay: .32s; }
  .hero__meta.reveal-now { animation-delay: .42s; }
  @supports ((animation-timeline: view()) and (animation-range: entry)) {
    .reveal { animation: rise linear both; animation-timeline: view(); animation-range: entry 0% entry 38%; }
  }
  .js-reveal .reveal:not(.is-in) { opacity: 0; transform: translateY(22px); }
  .js-reveal .reveal { transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
}
@keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   01 — Problem (kaskada)
   ========================================================================== */
.problem__grid { display: grid; gap: clamp(3rem, 2rem + 4vw, 6rem); }
@media (min-width: 960px) { .problem__grid { grid-template-columns: 1.1fr .9fr; align-items: start; } .problem__text { position: sticky; top: 7rem; } }
.problem .display-2 { max-width: 14ch; }
.problem .lede { margin-top: var(--s-6); }
.cascade { position: relative; display: grid; gap: 0; counter-reset: c; }
.cascade::before { content: ""; position: absolute; left: 11px; top: 14px; bottom: 14px; width: 2px; background: linear-gradient(180deg, var(--ember-500), var(--sand-500) 45%, var(--ink-900)); }
.cascade__step { position: relative; display: grid; grid-template-columns: 24px 3rem 1fr; column-gap: 1rem; row-gap: .35rem; padding: 1.5rem 0 1.75rem; border-bottom: 1px solid var(--line-paper); }
.cascade__step:last-child { border-bottom: 0; }
.cascade__marker { grid-row: 1 / span 2; width: 24px; height: 24px; margin-top: .2rem; position: relative; z-index: 1; background: var(--paper-100); border: 2px solid var(--ink-900); transform: rotate(45deg) scale(.72); }
.cascade__step--origin .cascade__marker { border-radius: 50%; transform: none; background: var(--ember-500); border-color: var(--ember-500); box-shadow: 0 0 0 6px rgba(240, 100, 60, .15); }
.cascade__step:last-child .cascade__marker { background: var(--ink-900); }
.cascade__n { grid-row: 1; font-size: .78rem; color: var(--sand-700); padding-top: .45rem; }
.cascade__label { grid-column: 3; font-size: var(--fs-h3); letter-spacing: -.02em; line-height: 1.15; }
.cascade__text { grid-column: 3; color: var(--on-paper-muted); max-width: 30rem; }

/* ==========================================================================
   02 — Dlaczego teraz (macierz pytań)
   ========================================================================== */
.whynow { background: linear-gradient(180deg, var(--ink-900), var(--ink-950)); }
.whynow .display-2 { max-width: 20ch; }
.qmatrix { --cols: minmax(0, 1fr) repeat(4, 7.25rem) 9.5rem; border-top: 1px solid var(--line-ink-strong); }
.qmatrix__head, .qrow { display: grid; grid-template-columns: var(--cols); align-items: center; }
.qmatrix__head { padding: 1rem 0; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-dim); border-bottom: 1px solid var(--line-ink); }
.qmatrix__hr { text-align: center; padding-inline: .25rem; line-height: 1.35; }
.qmatrix__ha { text-align: right; }
.qrow { position: relative; padding: 1.35rem 0; border-bottom: 1px solid var(--line-ink); transition: background-color var(--t-med); }
.qrow::before { content: ""; position: absolute; inset: 0 auto 0 calc(-1 * var(--gutter)); width: 3px; background: var(--sand-300); transform: scaleY(0); transition: transform var(--t-med) var(--ease-out); }
.qrow:hover { background: linear-gradient(90deg, rgba(214, 182, 121, .06), transparent 70%); }
.qrow:hover::before { transform: scaleY(1); }
.qrow__q { display: grid; grid-template-columns: 3rem 1fr; gap: .5rem; align-items: baseline; padding-right: 1.5rem; }
.qrow__n { font-size: .8rem; color: var(--sand-400); }
.qrow__text { font-size: clamp(1.15rem, 1rem + .6vw, 1.55rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.25; text-wrap: pretty; }
.qrow__cell { display: grid; place-items: center; }
.qrow__cell .qrow__role { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.qdot { width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--line-ink-strong); transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med); }
.qrow__cell.is-on .qdot { background: var(--sand-300); border-color: var(--sand-300); box-shadow: 0 0 0 5px rgba(228, 203, 152, .1); }
.qrow:hover .qrow__cell.is-on .qdot { transform: scale(1.2); box-shadow: 0 0 0 8px rgba(228, 203, 152, .12); }
.qrow__agenda { text-align: right; }
.qlink { white-space: nowrap; display: inline-flex; gap: .5rem; align-items: center; padding: .45rem .75rem; border-radius: var(--r-pill); border: 1px solid var(--line-ink); color: var(--on-ink-muted); text-decoration: none; font-size: .82rem; transition: all var(--t-fast); }
.qlink .mono { color: var(--sand-300); }
.qlink:hover { border-color: var(--sand-300); color: var(--on-ink); }
@media (max-width: 1099px) {
  .qmatrix { border-top: 0; }
  .qmatrix__head { display: none; }
  .qrow { grid-template-columns: 1fr; gap: .9rem; padding: 1.5rem 0; }
  .qrow:first-of-type { border-top: 1px solid var(--line-ink-strong); }
  .qrow__q { grid-template-columns: 2.5rem 1fr; padding-right: 0; }
  .qrow__cell { display: none; }
  .qrow__cell.is-on { display: inline-flex; }
  .qrow { grid-template-areas: none; }
  .qrow > .qrow__cell.is-on { justify-self: start; }
  .qrow { display: flex; flex-wrap: wrap; column-gap: .4rem; }
  .qrow__q { flex: 1 1 100%; }
  .qrow__cell.is-on { padding: .3rem .7rem; border: 1px solid var(--line-ink-strong); border-radius: var(--r-pill); gap: .45rem; font-size: .78rem; color: var(--on-ink-muted); }
  .qrow__cell.is-on .qdot { width: 7px; height: 7px; box-shadow: none; }
  .qrow__cell.is-on .qrow__role { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .qrow { padding-left: 2.5rem; row-gap: .5rem; }
  .qrow__q { margin-left: -2.5rem; margin-bottom: .35rem; }
  .qrow__agenda { flex: 1 1 100%; text-align: left; margin-top: .25rem; }
}

/* ==========================================================================
   03 — Czego się dowiesz (warstwy)
   ========================================================================== */
.learn .display-2 { max-width: 14ch; }
.stack { display: grid; gap: 1rem; }
.stratum { position: relative; display: grid; gap: 1.5rem; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--r-lg); background: var(--paper-50); border: 1px solid var(--line-paper); overflow: hidden; }
.stratum::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; }
.stratum--1::before { background: var(--sand-400); }
.stratum--2::before { background: var(--ember-500); }
.stratum--3::before { background: var(--ink-900); }
.stratum__idx { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-700); }
.stratum__name { margin-top: .5rem; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); letter-spacing: -.03em; line-height: 1.05; }
.stratum__outcome { margin-top: .75rem; color: var(--on-paper-muted); max-width: 30rem; }
.stratum__items { display: flex; flex-wrap: wrap; gap: .6rem; align-content: center; }
.token { position: relative; display: inline-flex; align-items: center; gap: .6rem; padding: .7rem 1.1rem .7rem .95rem; border-radius: var(--r-pill); border: 1px solid var(--line-paper-strong);
  font-size: clamp(1rem, .95rem + .35vw, 1.2rem); font-weight: 600; letter-spacing: -.01em; line-height: 1.1; background: var(--paper-100); transition: transform var(--t-med) var(--ease-out), background-color var(--t-fast), border-color var(--t-fast); }
.token::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid currentColor; }
.token:hover { transform: translateY(-2px); border-color: var(--ink-900); }
.stratum--1 .token::before { background: var(--sand-400); border-color: var(--sand-400); }
.stratum--2 .token::before { background: var(--ember-500); border-color: var(--ember-500); }
.stratum--3 .token::before { background: var(--ink-900); border-color: var(--ink-900); }
@media (min-width: 960px) {
  .stratum { grid-template-columns: minmax(18rem, .8fr) 1.2fr; align-items: center; gap: 3rem; }
  .stratum--2 { margin-left: clamp(0rem, 4vw, 5rem); }
  .stratum--3 { margin-left: clamp(0rem, 8vw, 10rem); }
}

/* ==========================================================================
   04 — Co dostaniesz + Dla kogo
   ========================================================================== */
.benefits__grid { display: grid; gap: 2.5rem 4rem; }
@media (min-width: 960px) { .benefits__grid { grid-template-columns: .8fr 1.2fr; } }
.benefits__list { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line-paper-strong); }
@media (min-width: 640px) { .benefits__list { grid-template-columns: 1fr 1fr; } .benefit:nth-child(odd) { padding-right: 2rem; border-right: 1px solid var(--line-paper); } .benefit:nth-child(even) { padding-left: 2rem; } }
.benefit { display: grid; gap: .4rem; padding: 1.75rem 0; border-bottom: 1px solid var(--line-paper); }
.benefit__n { font-size: .75rem; color: var(--sand-700); }
.benefit__t { font-size: 1.3rem; letter-spacing: -.02em; line-height: 1.2; }
.benefit__d { color: var(--on-paper-muted); }
.audience { margin-top: clamp(4rem, 3rem + 4vw, 7rem); padding-top: 2rem; background: linear-gradient(var(--line-paper-strong), var(--line-paper-strong)) no-repeat center top / calc(100% - 2 * var(--gutter)) 1px; }
.audience__title .eyebrow { margin-bottom: 1.5rem; }
.audience__row { display: grid; gap: .75rem 2rem; padding: 1.25rem 0; }
@media (min-width: 960px) { .audience__row { grid-template-columns: 9rem 1fr; } }
.audience__lbl { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-paper-muted); padding-top: .8rem; }
.audience__list { display: flex; flex-wrap: wrap; gap: .1rem .15rem; font-size: clamp(1.35rem, 1.05rem + 1.35vw, 2.4rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.2; }
.audience__list li { display: inline; }
.audience__list li::after { content: "/"; margin: 0 .4em 0 .45em; color: var(--sand-500); font-weight: 300; }
.audience__list li:last-child::after { content: ""; }
.audience__list--roles { font-family: var(--f-serif); font-style: italic; font-weight: 400; letter-spacing: -.015em; color: var(--on-paper-muted); font-variation-settings: "opsz" 72; }
.audience__note { margin-top: 1.5rem; max-width: 44rem; color: var(--on-paper-muted); }

/* ==========================================================================
   05 — Prowadzące
   ========================================================================== */
.hosts { overflow: hidden; background:
  radial-gradient(50rem 30rem at 10% 20%, rgba(214, 182, 121, .07), transparent 60%), var(--ink-900); }
.hosts__list { position: relative; display: grid; gap: clamp(4rem, 3rem + 5vw, 8rem); }
.host { display: grid; gap: 1.75rem; align-items: end; }
.portrait { position: relative; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(160deg, var(--ink-800), var(--ink-950)); border: 1px solid var(--line-ink); }
.portrait--photo { overflow: visible; background: transparent; border: 0; }
.portrait__media { position: absolute; z-index: 0; inset: 0; overflow: hidden; border: 1px solid var(--line-ink); border-radius: inherit; background: linear-gradient(160deg, var(--ink-800), var(--ink-950)); }
.portrait img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.host:hover .portrait img { transform: scale(1.03); }
.portrait__ph { width: 100%; height: 100%; }
.pp-lines line { stroke: rgba(214, 182, 121, .28); stroke-width: 1.5; stroke-linecap: round; }
.pp-nodes circle { fill: rgba(214, 182, 121, .45); }
.pp-nodes .pp-hot { fill: var(--ink-950); stroke: var(--sand-300); stroke-width: 2; }
.pp-ember { fill: var(--ember-500); }
.pp-ember-ring { fill: none; stroke: var(--ember-400); stroke-width: 1.25; opacity: .6; }
.portrait__decor { position: absolute; z-index: 1; top: 0; bottom: 0; left: -25%; width: 125%; height: 100%; overflow: visible; pointer-events: none; fill: rgba(214, 182, 121, .62); stroke: rgba(214, 182, 121, .52); stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.portrait__decor path { fill: none; vector-effect: non-scaling-stroke; }
.portrait__decor circle { stroke: none; }
.portrait__decor .portrait__decor-faint { opacity: .5; }
.portrait__decor .portrait__decor-hot { fill: var(--ink-950); stroke: var(--sand-300); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.portrait__decor-mobile { display: none; }
.portrait__idx { position: absolute; left: 1rem; bottom: 1rem; font-size: .75rem; letter-spacing: .12em; color: var(--sand-300); display: flex; gap: .5rem; align-items: center; }
.portrait::after { content: ""; position: absolute; z-index: 2; inset: auto 0 0 0; height: 40%; background: linear-gradient(0deg, rgba(5, 10, 22, .65), transparent); pointer-events: none; }
.portrait--photo::after { border-radius: 0 0 var(--r-lg) var(--r-lg); }
.portrait__idx { z-index: 3; }
.host__name { font-size: clamp(2.4rem, 1.4rem + 3.6vw, 5.25rem); font-weight: 800; letter-spacing: -.045em; line-height: .92; }
.host__name span { display: block; }
.host__name em { display: block; color: var(--sand-300); font-weight: 400; letter-spacing: -.02em; }
.host__role { margin-top: 1.25rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--on-ink-muted); display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.host__bio { margin-top: 1.25rem; max-width: 34rem; color: var(--on-ink-muted); }
.host__bio p + p { margin-top: .75em; }
.host__link { display: inline-flex; gap: .4rem; margin-top: 1.25rem; padding: .5rem .9rem; border: 1px solid var(--line-ink-strong); border-radius: var(--r-pill); font-size: .88rem; font-weight: 600; text-decoration: none; transition: border-color var(--t-fast); }
.host__link:hover { border-color: var(--sand-300); }
@media (min-width: 860px) {
  .host { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; }
  .host--a .portrait { grid-column: 1 / span 4; grid-row: 1; }
  .host--a .host__body { grid-column: 5 / span 6; grid-row: 1; padding-bottom: 2.5rem; position: relative; z-index: 1; }
  .host--a .host__name { margin-left: -5.5rem; }
  .host--b { margin-top: -6rem; }
  .host--b .portrait { grid-column: 9 / span 4; grid-row: 1; }
  .host--b .host__body { grid-column: 3 / span 6; grid-row: 1; padding-bottom: 2.5rem; text-align: right; position: relative; z-index: 1; }
  .host--b .host__name { margin-right: -5.5rem; }
  .host--b .host__role { justify-content: flex-end; }
  .host--b .host__bio { margin-left: auto; }
  .host--b .portrait__decor { right: -25%; left: auto; transform: scaleX(-1); }
  .hosts__list--duo::before { content: ""; position: absolute; left: calc(50% - .5px); top: 40%; bottom: 44%; width: 1px; background: linear-gradient(180deg, transparent, var(--line-ink-strong) 20%, var(--line-ink-strong) 80%, transparent); }
  .hosts__list--duo::after { content: ""; position: absolute; left: calc(50% - 6px); top: 50%; width: 12px; height: 12px; background: var(--sand-300); transform: rotate(45deg); box-shadow: 0 0 0 8px rgba(228, 203, 152, .08); }
  .host__name { text-shadow: 0 1px 14px rgba(5, 10, 22, .45); }
}
@media (max-width: 859px) {
  .host { grid-template-columns: minmax(0, 7.5rem) 1fr; gap: 1.25rem; align-items: start; }
  .portrait { aspect-ratio: 4 / 5; border-radius: var(--r-md); }
  .portrait--photo::after { border-radius: 0 0 var(--r-md) var(--r-md); }
  .portrait__decor { inset: 0; width: 100%; height: 100%; opacity: .62; }
  .host--b .portrait__decor { transform: scaleX(-1); }
  .portrait__decor-desktop { display: none; }
  .portrait__decor-mobile { display: block; }
  .portrait__idx { left: .6rem; bottom: .5rem; font-size: .65rem; }
  .portrait__idx .ph { display: none; }
  .host__role { margin-top: .75rem; }
  .host__bio { grid-column: 1 / -1; }
  .host__body { display: contents; }
  .host__name { grid-column: 2; align-self: center; }
  .host__role, .host__bio, .host__link { grid-column: 1 / -1; margin-top: 0; }
  .host__link { justify-self: start; }
}

/* ==========================================================================
   06 — Agenda (linia czasu)
   ========================================================================== */
.agenda__bar { display: flex; align-items: stretch; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); position: relative; }
.agenda__seg { position: relative; flex-basis: 0; min-width: 0; padding: 1rem .75rem 0 0; border-top: 6px solid var(--ink-900); }
.agenda__seg:nth-child(1) { border-top-color: var(--sand-400); }
.agenda__seg:nth-child(2) { border-top-color: var(--ink-900); }
.agenda__seg:nth-child(3) { border-top-color: var(--ember-500); }
.agenda__seg:nth-child(4) { border-top-color: var(--ink-600); }
.agenda__seg:nth-child(5) { border-top-color: var(--sand-500); }
.agenda__seg + .agenda__seg { margin-left: 4px; }
.agenda__seg::before { content: ""; position: absolute; left: 0; top: -12px; width: 2px; height: 18px; background: var(--ink-900); }
.agenda__seg-t { display: block; font-size: .78rem; color: var(--on-paper); font-weight: 600; }
.agenda__seg-l { display: block; font-size: .78rem; color: var(--on-paper-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agenda__seg-end { position: absolute; right: 0; top: 1rem; font-size: .78rem; font-weight: 600; }
.agenda__bar::after { content: ""; position: absolute; right: 0; top: -12px; width: 2px; height: 18px; background: var(--ink-900); }
.timeline { position: relative; display: grid; }
.tl { display: grid; grid-template-columns: 9rem 3rem 1fr; gap: 0 1rem; padding: 0; }
.tl__time { padding: 1.9rem 0; display: grid; align-content: start; gap: .15rem; }
.tl__start { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.3rem); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.tl__end { font-size: .95rem; color: var(--on-paper-muted); }
.tl__dur { margin-top: .5rem; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sand-700); }
.tl__rail { position: relative; display: flex; justify-content: center; }
.tl__rail::before { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: var(--line-paper-strong); }
.tl:first-child .tl__rail::before { top: 2.35rem; }
.tl:last-child .tl__rail::before { bottom: auto; height: 2.35rem; }
.tl__node { position: relative; z-index: 1; width: 16px; height: 16px; margin-top: 2.1rem; background: var(--paper-100); border: 2px solid var(--ink-900); transform: rotate(45deg); transition: background-color var(--t-med), transform var(--t-med) var(--ease-out); }
.tl:hover .tl__node { background: var(--sand-400); transform: rotate(45deg) scale(1.15); }
.tl__body { padding: 1.9rem 0; border-bottom: 1px solid var(--line-paper); }
.tl:last-child .tl__body { border-bottom: 0; }
.tl__label { display: flex; gap: .75rem; align-items: center; margin-bottom: .6rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-700); }
.tl__title { font-size: clamp(1.3rem, 1.05rem + 1vw, 2rem); letter-spacing: -.028em; line-height: 1.15; max-width: 34ch; text-wrap: balance; }
.tl__text { margin-top: .75rem; color: var(--on-paper-muted); max-width: 42rem; }
.tl__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.tl__tags li { padding: .28rem .7rem; border-radius: var(--r-pill); font-size: .82rem; background: var(--paper-200); color: var(--on-paper); }
.tl__live { display: inline-flex; gap: .4rem; align-items: center; padding: .15rem .55rem; border-radius: var(--r-pill); background: var(--ember-500); color: #fff; font-size: .68rem; letter-spacing: .12em; }
.tl.is-live .tl__node { background: var(--ember-500); border-color: var(--ember-500); }
.tl.is-past .tl__node { background: var(--ink-900); }
.tl:target .tl__body, .tl.is-flash .tl__body { animation: flash 1.6s var(--ease-out); }
@keyframes flash { 0% { background: rgba(214, 182, 121, .35); } 100% { background: transparent; } }
@media (max-width: 719px) {
  .agenda__bar { display: none; }
  .tl { grid-template-columns: 1.5rem 1fr; gap: 0 1rem; }
  .tl__rail { grid-row: 1 / span 2; grid-column: 1; }
  .tl__time { grid-column: 2; padding: 1.5rem 0 0; display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap; }
  .tl__start { font-size: 1.5rem; }
  .tl__dur { margin: 0 0 0 auto; }
  .tl__body { grid-column: 2; padding: .6rem 0 1.5rem; }
  .tl__node { margin-top: 1.7rem; width: 13px; height: 13px; }
  .tl:first-child .tl__rail::before { top: 1.9rem; }
  .tl:last-child .tl__rail::before { height: 1.9rem; }
}

/* ==========================================================================
   07 — Rejestracja
   ========================================================================== */
.register { overflow: hidden; background: linear-gradient(180deg, var(--ink-900), var(--ink-950)); }
.register__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(40rem 30rem at 80% 30%, rgba(214, 182, 121, .09), transparent 70%); }
.register__grid { position: relative; display: grid; gap: 3rem; }
@media (min-width: 1024px) { .register__grid { grid-template-columns: .85fr 1.15fr; gap: 5rem; align-items: start; } .register__intro { position: sticky; top: 7rem; } }
.register .display-2 { max-width: 12ch; }
.register .lede { margin-top: 1.5rem; }
.ticket-mini { margin-top: 2.25rem; padding: 1.25rem 1.4rem; border: 1px solid var(--line-ink-strong); border-radius: var(--r-md); border-left: 3px solid var(--sand-300); background: rgba(214, 182, 121, .04); }
.ticket-mini__title { font-weight: 700; font-size: 1.1rem; letter-spacing: -.015em; line-height: 1.3; }
.ticket-mini__meta { margin-top: .4rem; font-size: .78rem; color: var(--on-ink-muted); letter-spacing: .04em; }
.nextsteps { display: grid; margin-top: 2rem; }
.nextsteps__i { display: grid; grid-template-columns: 2rem 1fr; gap: .15rem 1rem; padding: 1rem 0; border-top: 1px solid var(--line-ink); }
.nextsteps__n { grid-row: 1 / span 2; width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line-ink-strong); font-size: .75rem; color: var(--sand-300); }
.nextsteps__i.is-done .nextsteps__n { background: var(--ok-400); border-color: var(--ok-400); color: var(--ink-950); font-weight: 700; }
.nextsteps__t { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sand-400); }
.nextsteps__d { color: var(--on-ink-muted); font-size: .95rem; }
.register__form { position: relative; padding: clamp(1.25rem, .75rem + 2.5vw, 2.75rem); border-radius: var(--r-lg); background: linear-gradient(180deg, rgba(20, 33, 63, .72), rgba(11, 20, 40, .72)); border: 1px solid var(--line-ink-strong); box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
.register__form::before { content: ""; position: absolute; inset: -1px -1px auto -1px; height: 3px; border-radius: var(--r-lg) var(--r-lg) 0 0; background: var(--spectrum); opacity: .85; }
.regform { display: grid; gap: 1.5rem; }
.regform__grid { display: grid; gap: 1.35rem; }
@media (min-width: 640px) { .regform__grid { grid-template-columns: 1fr 1fr; gap: 1.5rem 1.25rem; } }
.regform__alert { padding: 1rem 1.1rem; border-radius: var(--r-sm); background: rgba(194, 54, 27, .14); border: 1px solid rgba(255, 165, 140, .45); color: var(--err-300); font-size: .95rem; }
.regform__alert:focus { outline: none; }
.regform__alert ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.regform__alert a { color: inherit; }
.consents { display: grid; gap: 1.1rem; padding: 1.25rem 0 0; margin: 0; border: 0; border-top: 1px solid var(--line-ink); }
.regform__submit { display: grid; gap: .9rem; }
.regform__fine { font-size: .82rem; color: var(--on-ink-dim); }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.regclosed { display: grid; gap: 1rem; }
.regclosed__badge { justify-self: start; padding: .3rem .75rem; border-radius: var(--r-pill); border: 1px solid var(--sand-400); color: var(--sand-300); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.regclosed__t { font-size: 1.6rem; letter-spacing: -.02em; line-height: 1.2; }
.regclosed p { color: var(--on-ink-muted); }
.regclosed__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.interest { display: grid; gap: 1rem; margin-top: 1.25rem; padding-top: 1.5rem; border-top: 1px solid var(--line-ink); }
.interest__title { max-width: 22ch; font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem); line-height: 1.2; letter-spacing: -.02em; }
.interest-form { display: grid; gap: 1rem; }
.interest-form .btn { justify-self: start; }
.interest-form__success { display: grid; gap: .35rem; padding: 1rem 1.1rem; border: 1px solid rgba(214, 187, 128, .55); border-radius: var(--r-md); background: rgba(214, 187, 128, .08); color: var(--on-ink); }
.interest-form__success span { color: var(--on-ink-muted); }

/* Sticky CTA (mobile) */
.sticky-cta { position: fixed; z-index: 45; left: .75rem; right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem .55rem .55rem 1.1rem;
  border-radius: var(--r-pill); background: rgba(11, 20, 40, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid var(--line-ink-strong); box-shadow: var(--shadow-2);
  transform: translateY(150%); transition: transform var(--t-med) var(--ease-out); }
.sticky-cta.is-visible { transform: none; }
.sticky-cta__meta { display: flex; flex-direction: column; font-size: .74rem; line-height: 1.3; color: var(--on-ink-muted); }
.sticky-cta__meta .mono:first-child { color: var(--on-ink); font-weight: 600; }
@media (min-width: 820px) { .sticky-cta { display: none !important; } }

/* ==========================================================================
   Potwierdzenie / strona uczestnika / komunikaty
   ========================================================================== */
.confirm { position: relative; min-height: 100svh; padding: clamp(7rem, 5rem + 6vw, 10rem) 0 var(--sec-pad); overflow: hidden;
  background: radial-gradient(50rem 36rem at 80% 0%, rgba(214, 182, 121, .10), transparent 60%), linear-gradient(180deg, var(--ink-950), var(--ink-900)); }
.confirm__inner { position: relative; display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.confirm__inner--narrow { max-width: 860px; }
.confirm__check { width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--ok-400); position: relative; }
.confirm__check::after { content: ""; position: absolute; left: 6px; top: 4px; width: 5px; height: 9px; border: solid var(--ink-950); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.confirm__title { margin-bottom: .2em; }
.confirm__lead { font-size: clamp(1.35rem, 1.1rem + 1.2vw, 2.1rem); line-height: 1.25; letter-spacing: -.02em; color: var(--on-ink-muted); max-width: 30ch; }
.confirm__lead em { color: var(--sand-300); }
.confirm__lead p + p { margin-top: .6em; }
.confirm__grid { position: relative; z-index: 1; display: grid; gap: 3rem; }
@media (min-width: 960px) { .confirm__grid { grid-template-columns: 1fr 1fr; gap: 5rem; } }
.confirm__h { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-400); font-weight: 500; margin-bottom: 1rem; }
.confirm__mail { position: relative; z-index: 1; }
.confirm__mail p { color: var(--on-ink-muted); max-width: 36rem; }
.confirm__mail p + p { margin-top: .75rem; }
.confirm__cal { margin-top: 1.75rem; }
.confirm__steps .nextsteps { margin-top: 0; }
.confirm__cta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid var(--line-ink); color: var(--on-ink-muted); }
.confirm__cta .textlink { color: var(--sand-300); }

.ticket { display: grid; grid-template-columns: 1fr auto; border-radius: var(--r-lg); background: var(--paper-50); color: var(--on-paper); box-shadow: var(--shadow-glow), 0 30px 80px rgba(0, 0, 0, .4); overflow: hidden; }
.ticket__main { position: relative; padding: clamp(1.5rem, 1rem + 2.5vw, 3rem); }
.ticket__main::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 0; border-right: 2px dashed var(--paper-300); }
.ticket__eyebrow { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-700); }
.ticket__title { margin-top: .75rem; font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.9rem); letter-spacing: -.035em; line-height: 1.02; max-width: 20ch; }
.ticket__sub { margin-top: .5rem; font-family: var(--f-serif); font-style: italic; font-size: clamp(1.15rem, 1rem + .7vw, 1.6rem); color: var(--on-paper-muted); line-height: 1.2; }
.ticket__meta { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 1rem 2.5rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line-paper); }
.ticket__meta dt { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-paper-muted); margin-bottom: .3rem; }
.ticket__meta dd { font-weight: 650; font-size: 1.05rem; line-height: 1.3; }
.ticket__meta dd small { display: block; font-weight: 450; font-size: .82rem; color: var(--on-paper-muted); }
.ticket__hosts dd span { display: block; }
.ticket__stub { position: relative; display: flex; flex-direction: column; justify-content: space-between; align-items: center; gap: 1rem; width: 7.5rem; padding: 1.75rem .5rem; background: var(--ink-900); color: var(--on-ink); }
.ticket__stub::before, .ticket__stub::after { content: ""; position: absolute; left: -12px; width: 24px; height: 24px; border-radius: 50%; background: var(--ink-950); }
.ticket__stub::before { top: -12px; } .ticket__stub::after { bottom: -12px; }
.ticket__stub-l { writing-mode: vertical-rl; transform: rotate(180deg); font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--sand-300); }
.ticket__stub-d { font-size: .8rem; }
.ticket__stub-f { font-weight: 800; letter-spacing: .08em; font-size: .85rem; }
@media (max-width: 719px) {
  .ticket { grid-template-columns: 1fr; }
  .ticket__main::after { top: auto; left: 0; width: auto; height: 0; border-right: 0; border-bottom: 2px dashed var(--paper-300); }
  .ticket__stub { width: auto; flex-direction: row; padding: 1rem 1.5rem; }
  .ticket__stub::before, .ticket__stub::after { top: -12px; left: auto; bottom: auto; }
  .ticket__stub::before { left: -12px; } .ticket__stub::after { right: -12px; }
  .ticket__stub-l { writing-mode: horizontal-tb; transform: none; }
  .ticket__meta { grid-template-columns: 1fr 1fr; gap: 1rem 1.5rem; }
  .ticket__hosts { grid-column: 1 / -1; }
}

.calmenu { position: relative; display: inline-block; }
.calmenu summary { list-style: none; }
.calmenu summary::-webkit-details-marker { display: none; }
.calmenu__icon { width: 18px; height: 18px; border: 2px solid currentColor; border-radius: 4px; position: relative; }
.calmenu__icon::before { content: ""; position: absolute; left: 2px; right: 2px; top: 3px; height: 2px; background: currentColor; }
.calmenu__chev { font-size: .8rem; transition: transform var(--t-fast); }
.calmenu[open] .calmenu__chev { transform: rotate(180deg); }
.calmenu__list { position: absolute; z-index: 5; left: 0; top: calc(100% + .5rem); min-width: 20rem; padding: .4rem; border-radius: var(--r-md); background: var(--paper-50); color: var(--on-paper); box-shadow: var(--shadow-2); animation: calmenu-in var(--t-fast) var(--ease-out); }
@keyframes calmenu-in { from { transform: translateY(12px) scale(.98); } }
.calmenu__list a { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem .9rem; border-radius: var(--r-sm); text-decoration: none; font-weight: 600; font-size: .95rem; }
.calmenu__list a:hover, .calmenu__list a:focus-visible { background: var(--paper-200); }
.calmenu__list .mono { font-size: .7rem; color: var(--on-paper-muted); font-weight: 500; align-self: center; }

.joinbox { padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--r-lg); border: 1px solid var(--line-ink-strong); background: rgba(214, 182, 121, .04); }
.joinbox.is-open { border-color: var(--sand-300); box-shadow: var(--shadow-glow); }
.joinbox p { color: var(--on-ink-muted); max-width: 40rem; }
.joinbox__link { margin-top: 1rem; padding: .75rem 1rem; border-radius: var(--r-sm); background: rgba(5, 10, 22, .6); font-size: .82rem; color: var(--sand-300) !important; word-break: break-all; }
.joinbox__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.myq__q { font-family: var(--f-serif); font-style: italic; font-size: 1.35rem; line-height: 1.4; color: var(--on-ink); max-width: 44rem; padding-left: 1.25rem; border-left: 2px solid var(--sand-400); }
.manage { display: grid; gap: 1rem; padding-top: 2rem; border-top: 1px solid var(--line-ink); }
.manage__form { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; justify-content: space-between; padding: 1rem 0; border-bottom: 1px solid var(--line-ink); }
.manage__form p { color: var(--on-ink-muted); font-size: .95rem; max-width: 36rem; }
.archive { display: grid; gap: .25rem; margin-top: .5rem; }
.archive a { display: flex; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line-ink); text-decoration: none; }
.archive .mono { color: var(--sand-400); font-size: .85rem; }

/* Strony prawne */
.page-prose { background: var(--paper-100); }
.prose-page { padding-top: 9rem; min-height: 80vh; }
.prose-page__inner { max-width: 820px; }
.prose-page .display-2 { margin-bottom: 2.5rem; }
.prose-page .prose { color: var(--on-paper-muted); }
.prose-page .prose h3 { color: var(--on-paper); }
.prose-page__h2 { margin: 3rem 0 1rem; font-size: 1.5rem; letter-spacing: -.02em; }
.page-prose .site-header:not(.is-solid) { background: var(--ink-950); }

/* ==========================================================================
   Stopka
   ========================================================================== */
.site-footer { background: var(--ink-980); color: var(--on-ink-muted); padding: 4.5rem 0 2rem; font-size: .92rem; }
.site-footer__grid { display: grid; gap: 2.5rem; }
@media (min-width: 860px) { .site-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.site-footer__h { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--on-ink-dim); font-weight: 500; margin-bottom: .9rem; }
.site-footer p + p { margin-top: .35rem; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--on-ink); text-decoration: underline; }
.site-footer__tag { margin-top: 1rem; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-ink-dim); }
.site-footer__small { font-size: .8rem; color: var(--on-ink-dim); }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line-ink); font-size: .8rem; color: var(--on-ink-dim); }
.site-footer__spectrum { width: 120px; height: 2px; background: var(--spectrum); border-radius: 2px; }
.page-landing .site-footer { padding-bottom: 6rem; }
@media (min-width: 820px) { .page-landing .site-footer { padding-bottom: 2rem; } }

/* Zgoda cookies (tylko gdy skonfigurowano GA4/GTM) */
.consent { position: fixed; z-index: 70; left: 1rem; bottom: 1rem; max-width: 26rem; padding: 1.1rem 1.2rem; border-radius: var(--r-md); background: var(--paper-50); color: var(--on-paper); box-shadow: var(--shadow-2); font-size: .9rem; display: grid; gap: .9rem; }
.consent a { font-weight: 600; }
.consent__actions { display: flex; gap: .5rem; justify-content: flex-end; flex-wrap: wrap; }
.consent .btn--ghost-light { --btn-fg: var(--on-paper); --btn-bd: var(--line-paper-strong); }

/* ==========================================================================
   Redukcja ruchu
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .dm-sig { stroke-dashoffset: 0 !important; opacity: .9 !important; }
  .dm-sig.w3 { opacity: .35 !important; }
}

/* Druk (np. bilet) */
@media print {
  .site-header, .site-footer, .sticky-cta, .scroll-progress, .consent, .admin-bar, .hero__map { display: none !important; }
  body, .confirm, .sec { background: #fff !important; color: #000 !important; }
}
.field__hint--below { margin-top: 0; }

@media (max-width: 640px) {
  .cascade__step { grid-template-columns: 24px 1fr; }
  .cascade__n { grid-column: 2; padding-top: .2rem; }
  .cascade__label, .cascade__text { grid-column: 2; }
  .cascade__marker { grid-row: 1 / span 3; }
}
@media (max-width: 1023px) {
  .register__grid { gap: 0; }
  .register__intro { display: contents; }
  .register__intro > .eyebrow, .register__intro > .display-2, .register__intro > .lede { order: 1; }
  .register__intro > .lede { margin-bottom: 2rem; }
  .register__form { order: 2; }
  .ticket-mini { order: 3; margin-top: 2.5rem; }
  .register__intro .nextsteps { order: 4; }
}
