html,body{overflow-anchor:none}
body{margin:0;background:#FFFFFF;overflow-x:hidden}
html{scroll-behavior:smooth}
p,li{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
a{color:#735EC2}a:hover{color:#4E3B9E}
*{box-sizing:border-box}
input,select,button{font:inherit}
input:focus-visible,select:focus-visible,summary:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #735EC2;outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nsf-skip-link{position:absolute;top:-100px;left:16px;background:#553FB5;color:#FFFFFF!important;padding:12px 20px;border-radius:8px;z-index:9999;text-decoration:none;font-weight:600;font-size:15px;transition:top .2s ease;box-shadow:0 4px 14px rgba(0,0,0,0.25)}
.nsf-skip-link:focus{top:16px;outline:3px solid #FFFFFF;outline-offset:2px}
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
details[open] .nsf-plus{transform:rotate(45deg)}
.nsf-plus{transition:transform .3s ease}
@keyframes nsf-in{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes nsf-rise{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes nsf-tri-rise{from{opacity:0;transform:translateY(18px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes nsf-float{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(0,-14px) rotate(2deg)}}
@keyframes nsf-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes nsf-drift{from{transform:translateY(0) rotate(0deg)}to{transform:translateY(160px) rotate(-8deg)}}
@keyframes nsf-drift-sm{from{transform:translateY(0)}to{transform:translateY(-60px)}}
@keyframes nsf-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes nsf-pop{from{opacity:0;transform:scale(.5) rotate(-20deg)}to{opacity:1;transform:none}}
@keyframes nsf-reveal{from{clip-path:inset(22% 0 0 0);transform:scale(1.12)}to{clip-path:inset(0 0 0 0);transform:scale(1)}}
.nsf-in{animation:nsf-in .9s cubic-bezier(.2,.7,.2,1) both}
.nsf-rise{animation:nsf-rise 1.1s cubic-bezier(.2,.7,.2,1) both}
.nsf-d1{animation-delay:.08s}.nsf-d2{animation-delay:.2s}.nsf-d3{animation-delay:.34s}.nsf-d4{animation-delay:.48s}.nsf-d5{animation-delay:.64s}.nsf-d6{animation-delay:.82s}
.nsf-tri-enter{transform-box:fill-box;transform-origin:center;animation:nsf-tri-rise .95s cubic-bezier(.2,.7,.2,1) both}
.nsf-te1{animation-delay:.1s}.nsf-te5{animation-delay:.18s}.nsf-te2{animation-delay:.26s}.nsf-te3{animation-delay:.34s}.nsf-te4{animation-delay:.42s}
.nsf-tri{transform-box:fill-box;transform-origin:center;animation:nsf-float 7s ease-in-out infinite}
.nsf-t2{animation-duration:8s;animation-delay:-2s}.nsf-t3{animation-duration:6s;animation-delay:-1s}.nsf-t4{animation-duration:9s;animation-delay:-3s}.nsf-t5{animation-duration:7.5s;animation-delay:-4s}
.nsf-progress{transform:scaleX(0);transform-origin:left}
.nsf-nav-link{color:#383842;text-decoration:none}.nsf-nav-link:hover{color:#735EC2}
.nsf-btn{transition:transform .25s ease,box-shadow .25s ease}.nsf-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(115,94,194,.6)}
.nsf-photo{overflow:hidden}.nsf-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.nsf-photo:hover img{transform:scale(1.04)}
.nsf-row:hover .nsf-num{color:#735EC2}
@supports (animation-timeline: view()){
.nsf-progress{animation:nsf-progress linear both;animation-timeline:scroll(root)}
.nsf-line{transform-origin:top;animation:nsf-grow linear both;animation-timeline:view();animation-range:entry 0% cover 70%}
}
@media (min-width:1024px){
@supports (animation-timeline: view()){
.nsf-par{animation:nsf-drift linear both;animation-timeline:scroll(root);animation-range:0px 900px}
.nsf-par-sm{animation:nsf-drift-sm linear both;animation-timeline:scroll(root);animation-range:0px 900px}
}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.nsf-progress{display:none}}

/* Płynny wjazd od dołu z fade-in dla wszystkich sekcji (identyczny jak w Hero) */
.nsf-io .nsf-rv,
.nsf-io .nsf-rv2,
.nsf-io .nsf-rv3 {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .85s cubic-bezier(.2,.7,.2,1), transform .85s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.nsf-io .nsf-rv2 {
  transition-delay: .14s;
}
.nsf-io .nsf-rv3 {
  transition-delay: .26s;
}
.nsf-io .nsf-img {
  opacity: 0;
  transform: translateY(24px) scale(1.03);
  clip-path: inset(14% 0 0 0);
  transition: opacity .85s cubic-bezier(.2,.7,.2,1), transform .95s cubic-bezier(.2,.7,.2,1), clip-path .95s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform, clip-path;
}
.nsf-io .nsf-pop {
  opacity: 0;
  transform: scale(.5) rotate(-20deg);
  transition: opacity .8s, transform .8s cubic-bezier(.2,.7,.2,1);
}
.nsf-io .nsf-line {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.6s cubic-bezier(.2,.7,.2,1);
}
.nsf-io .is-in {
  opacity: 1 !important;
  transform: none !important;
}
.nsf-io .nsf-img.is-in {
  opacity: 1 !important;
  transform: none !important;
  clip-path: inset(0 0 0 0) !important;
}
#program ol > li > span[aria-hidden="true"]{z-index:2}
@media (prefers-reduced-motion:reduce){.nsf-io .nsf-rv,.nsf-io .nsf-rv2,.nsf-io .nsf-rv3,.nsf-io .nsf-img,.nsf-io .nsf-pop,.nsf-io .nsf-line{opacity:1;transform:none;clip-path:none;transition:none}}

/* ==========================================================================
   Header & Navigation — Mobile First (Sticky + 2x Logo Shrink on Scroll)
   ========================================================================== */
.nsf-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  height: 64px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow-anchor: none;
}

.nsf-header.is-scrolled {
  background: rgba(255, 255, 255, 0.97);
  border-bottom-color: #ECE9F5;
  box-shadow: 0 8px 24px -10px rgba(42, 42, 51, 0.08);
}

.nsf-header-inner {
  max-width: 1280px;
  height: 100%;
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
}

.nsf-header-logo {
  display: flex;
  align-items: center;
  line-height: 0;
  flex-shrink: 0;
}

.nsf-header-logo img {
  height: 48px;
  width: auto;
  display: block;
  transition: height .24s cubic-bezier(.2, .7, .2, 1);
}

.nsf-header.is-scrolled .nsf-header-logo img {
  height: 32px;
}

/* Mobile Actions: always-visible "Zapisz się" CTA + Hamburger */
.nsf-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}

.nsf-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 999px;
  background: #735EC2;
  color: #FFFFFF !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  flex-shrink: 0;
}

.nsf-menu-toggle {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid #DCD6EE;
  background: #FFFFFF;
  color: #2A2A33;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color .2s ease, background .2s ease;
}

.nsf-menu-toggle:hover {
  border-color: #735EC2;
}

.nsf-menu-bar {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: #2A2A33;
  transition: transform .25s ease, opacity .2s ease;
}

.nsf-menu-toggle.is-open .nsf-menu-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nsf-menu-toggle.is-open .nsf-menu-bar:nth-child(2) {
  opacity: 0;
}

.nsf-menu-toggle.is-open .nsf-menu-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Dropdown Navigation */
.nsf-nav {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 16px;
  right: 16px;
  background: #FFFFFF;
  border: 1px solid #DCD6EE;
  border-radius: 22px;
  padding: 12px 16px;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 20px 44px -12px rgba(42, 42, 51, 0.18);
  z-index: 60;
}

.nsf-nav.is-open {
  display: flex;
}

.nsf-nav .nsf-nav-link {
  display: block;
  padding: 11px 12px;
  border-radius: 12px;
  transition: background .2s ease, color .2s ease;
}

.nsf-nav .nsf-nav-link:hover {
  background: #F7F5FC;
}

@media (min-width: 768px) {
  .nsf-header {
    height: 72px;
  }
  .nsf-header-inner {
    padding: 0 24px;
  }
  .nsf-header.is-scrolled .nsf-header-inner {
    padding: 0 24px;
  }
  .nsf-header-logo img {
    height: 54px;
  }
  .nsf-header.is-scrolled .nsf-header-logo img {
    height: 36px;
  }
  .nsf-header-cta {
    min-height: 44px;
    padding: 0 22px;
    font-size: 15px;
  }
}

@media (min-width: 920px) {
  .nsf-header {
    height: 80px;
  }
  .nsf-header-inner {
    padding: 0 24px;
    gap: 28px;
  }
  .nsf-header.is-scrolled .nsf-header-inner {
    padding: 0 24px;
  }
  .nsf-header-logo img {
    height: 62px;
  }
  .nsf-header.is-scrolled .nsf-header-logo img {
    height: 38px;
  }
  .nsf-menu-toggle {
    display: none;
  }
  .nsf-nav,
  .nsf-nav.is-open {
    display: flex;
    position: static;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 28px;
    margin-left: auto;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    font-size: 15px;
    font-weight: 500;
  }
  .nsf-nav .nsf-nav-link {
    padding: 6px 0;
    border-radius: 0;
  }
  .nsf-nav .nsf-nav-link:hover {
    background: transparent;
  }
  .nsf-header-actions {
    margin-left: 0;
  }
  .nsf-header-cta {
    min-height: 48px;
    padding: 0 24px;
  }
}

/* ==========================================================================
   Hero Section — Mobile First Architecture
   ========================================================================== */

.nsf-hero {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 16px 40px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: relative;
}

.nsf-hero-content {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.nsf-hero-eyebrow {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #735EC2;
}

.nsf-hero-title {
  margin: 0;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: clamp(36px, 10vw, 52px);
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: #2A2A33;
}

.nsf-hero-title br {
  display: none;
}

.nsf-hero-subtitle {
  margin: 0;
  max-width: 520px;
  font-size: 17px;
  line-height: 1.55;
  color: #55556A;
}

.nsf-hero-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  font-size: 15px;
  color: #383842;
  padding-top: 4px;
}

.nsf-hero-meta-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.nsf-hero-meta-item:first-child {
  grid-column: 1 / -1;
}

.nsf-hero-meta-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: #F7F5FC;
  border: 1px solid #EAE4F6;
  color: #735EC2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nsf-hero-meta-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  gap: 1px;
}

.nsf-hero-meta-label {
  font-size: 12px;
  color: #6B6B7B;
}

.nsf-hero-meta-item strong {
  font-weight: 600;
}

.nsf-hero-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  padding-top: 4px;
}

.nsf-hero-actions .nsf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 24px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  width: 100%;
  box-sizing: border-box;
}

.nsf-btn-primary {
  background: #735EC2;
  color: #FFFFFF !important;
}

.nsf-btn-secondary {
  border: 1.5px solid #D9D3EE;
  color: #383842 !important;
  background: #FFFFFF;
}

.nsf-hero-note {
  margin: 0;
  font-size: 13px;
  color: #6B6B7B;
}

/* Hero Stage & Visual Composition — Mobile First */
.nsf-hero-stage-col {
  width: 100%;
  max-width: 530px;
  margin: 0 auto;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nsf-hero-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1024 / 1000;
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(180deg, #F6F3FC 0%, #FFFFFF 100%);
  border: 1px solid #EAE4F6;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.nsf-hero-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.nsf-hero-figure {
  position: relative;
  z-index: 3;
  width: 110%;
  max-width: none;
  height: auto;
  display: block;
  pointer-events: none;
  filter: drop-shadow(0 14px 28px rgba(42, 42, 51, 0.16));
  user-select: none;
  transform-origin: bottom center;
}

/* Subtle bottom fade grounding the portraits */
.nsf-hero-stage-ground {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 56px;
  background: linear-gradient(to top, #FFFFFF 0%, rgba(255, 255, 255, 0.72) 45%, rgba(255, 255, 255, 0) 100%);
  z-index: 4;
  pointer-events: none;
}

/* Speaker Dock — flows below the stage on mobile so it NEVER covers the portraits or truncates text */
.nsf-hero-dock {
  position: relative;
  margin-top: -18px;
  width: calc(100% - 16px);
  z-index: 6;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(220, 214, 238, 0.95);
  border-radius: 20px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  box-shadow: 0 12px 32px -8px rgba(56, 56, 66, 0.12), 0 2px 6px rgba(115, 94, 194, 0.06);
}

.nsf-hero-speaker-chip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.nsf-hero-speaker-chip .dot,
.nsf-hero-speaker-tri {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  margin-top: 3px;
  display: block;
}

.nsf-hero-speaker-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.3;
  gap: 2px;
}

.nsf-hero-speaker-name {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #2A2A33;
}

.nsf-hero-speaker-role {
  font-size: 12px;
  color: #55556A;
  line-height: 1.38;
  white-space: normal;
}

.nsf-hero-dock-sep {
  width: 100%;
  height: 1px;
  background: #ECE9F5;
  flex-shrink: 0;
}

/* Small Phablets & Up (>= 540px) */
@media (min-width: 540px) {
  .nsf-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
  }
  .nsf-hero-actions {
    flex-direction: row;
    align-items: center;
    width: auto;
  }
  .nsf-hero-actions .nsf-btn {
    width: auto;
  }
}

/* Tablet Screens (>= 680px) */
@media (min-width: 680px) {
  .nsf-hero {
    padding: 32px 24px 56px;
    gap: 36px;
  }
  .nsf-hero-content {
    gap: 24px;
  }
  .nsf-hero-title {
    font-size: clamp(52px, 8vw, 76px);
  }
  .nsf-hero-subtitle {
    font-size: 19px;
  }
  .nsf-hero-stage-col {
    max-width: 700px;
  }
  .nsf-hero-stage {
    border-radius: 32px;
  }
  .nsf-hero-dock {
    margin-top: -26px;
    width: calc(100% - 28px);
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 22px;
  }
  .nsf-hero-dock-sep {
    width: 1px;
    height: auto;
    align-self: stretch;
  }
}

/* Desktop Screens (>= 1024px) */
@media (min-width: 1024px) {
  .nsf-hero {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: clamp(32px, 5vw, 56px) 24px clamp(48px, 6vw, 80px);
  }
  .nsf-hero-content {
    flex: 1 1 440px;
    max-width: 520px;
    gap: 28px;
  }
  .nsf-hero-eyebrow {
    font-size: 14px;
    letter-spacing: 0.14em;
  }
  .nsf-hero-title {
    font-size: clamp(56px, 7.8vw, 112px);
    line-height: 0.95;
    letter-spacing: -0.035em;
  }
  .nsf-hero-title br {
    display: inline;
  }
  .nsf-hero-subtitle {
    font-size: 20px;
  }
  .nsf-hero-meta {
    gap: 12px 32px;
    font-size: 16px;
  }
  .nsf-hero-meta-label {
    font-size: 13px;
  }
  .nsf-hero-actions {
    padding-top: 6px;
    gap: 14px;
  }
  .nsf-hero-actions .nsf-btn {
    min-height: 54px;
    padding: 0 26px;
    font-size: 16px;
    white-space: nowrap;
  }
  .nsf-hero-note {
    font-size: 14px;
  }
  .nsf-hero-stage-col {
    flex: 1.45 1 550px;
    max-width: 770px;
    margin: 0;
  }
  .nsf-hero-stage {
    border-radius: 32px;
    background: transparent;
    border: none;
    overflow: visible;
  }
  .nsf-hero-figure {
    width: 110%;
    filter: drop-shadow(0 18px 32px rgba(42, 42, 51, 0.18));
  }
  .nsf-hero-stage-ground {
    left: -10%;
    right: -10%;
    height: 110px;
    background: linear-gradient(to top, #FFFFFF 0%, rgba(255, 255, 255, 0.88) 50%, rgba(255, 255, 255, 0) 100%);
  }
  .nsf-hero-dock {
    margin-top: -28px;
    width: calc(100% - 16px);
    padding: 14px 20px;
  }
}

/* Podstrony prawne: Regulamin i Polityka Prywatności */
.nsf-legal-body {
  background: #FFFFFF;
  color: #383842;
  font-family: Figtree, system-ui, -apple-system, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}
.nsf-legal-hero {
  background: #F7F5FC;
  border-bottom: 1px solid #ECE9F5;
  padding: clamp(40px, 6vw, 72px) 24px clamp(32px, 5vw, 56px);
}
.nsf-legal-container {
  max-width: 1120px;
  margin: 0 auto;
}
.nsf-legal-layout {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  padding: clamp(40px, 6vw, 72px) 24px clamp(72px, 10vw, 120px);
}
.nsf-legal-content {
  flex: 1 1 680px;
  min-width: 0;
}
.nsf-legal-sidebar {
  flex: 0 0 300px;
  position: sticky;
  top: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (max-width: 900px) {
  .nsf-legal-layout {
    flex-direction: column;
  }
  .nsf-legal-sidebar {
    position: static;
    width: 100%;
    order: -1;
  }
}
.nsf-legal-card {
  background: #FFFFFF;
  border: 1px solid #ECE9F5;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 4px 16px -4px rgba(56, 56, 66, 0.04);
}
.nsf-legal-section {
  scroll-margin-top: 32px;
  margin-bottom: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid #ECE9F5;
}
.nsf-legal-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.nsf-legal-section h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(22px, 2.5vw, 28px);
  font-weight: 600;
  color: #2A2A33;
  letter-spacing: -0.02em;
  margin: 0 0 16px 0;
  line-height: 1.25;
}
.nsf-legal-section h3 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 19px;
  font-weight: 600;
  color: #2A2A33;
  margin: 24px 0 12px 0;
}
.nsf-legal-section p {
  margin: 0 0 16px 0;
  color: #44444F;
}
.nsf-legal-section ul, .nsf-legal-section ol {
  margin: 0 0 20px 0;
  padding-left: 24px;
  color: #44444F;
}
.nsf-legal-section li {
  margin-bottom: 10px;
}
.nsf-legal-callout {
  background: #F7F5FC;
  border-left: 4px solid #735EC2;
  border-radius: 0 16px 16px 0;
  padding: 16px 20px;
  margin: 20px 0;
}
.nsf-legal-callout p {
  margin: 0;
  font-size: 15px;
  color: #44444F;
}
.nsf-toc-link {
  display: block;
  padding: 8px 12px;
  border-radius: 10px;
  color: #55556A;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.4;
  transition: all 0.2s ease;
}
.nsf-toc-link:hover {
  background: #F7F5FC;
  color: #735EC2;
  padding-left: 16px;
}

#kontakt a:hover {
  color: #553FB5 !important;
}


select option:disabled {
  color: #8A7FB0;
}

/* ==========================================================================
   Countdown Bar w sekcji #cena (Ikona + Informacja + Licznik) — Mobile First
   ========================================================================== */
.nsf-countdown-bar {
  flex: 1 1 100%;
  width: 100%;
  border-top: 1px solid rgba(201, 191, 240, 0.2);
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
  position: relative;
}

.nsf-countdown-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.nsf-countdown-timer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: nowrap;
  width: 100%;
}

.nsf-countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  max-width: 96px;
  min-width: 64px;
  padding: 10px 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(201, 191, 240, 0.24);
  border-radius: 16px;
}

@media (min-width: 540px) {
  .nsf-countdown-bar {
    padding-top: 32px;
    gap: 22px;
  }
  .nsf-countdown-head {
    flex-direction: row;
    justify-content: center;
    text-align: left;
    gap: 16px;
  }
  .nsf-countdown-timer {
    gap: 14px;
  }
  .nsf-countdown-unit {
    min-width: 88px;
    padding: 12px 16px;
    border-radius: 18px;
  }
}

@media (min-width: 900px) {
  .nsf-countdown-bar {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    padding-top: 36px;
    gap: 24px;
  }
  .nsf-countdown-head {
    width: auto;
    justify-content: flex-start;
    flex: 1 1 auto;
  }
  .nsf-countdown-timer {
    width: auto;
  }
}

/* ==========================================================================
   Stats Section & Global Mobile First Refinements
   ========================================================================== */
.nsf-stats-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px 40px;
}

.nsf-stats-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 24px 12px;
}

.nsf-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  min-width: 0;
}

.nsf-stat-item:nth-child(-n+3) {
  grid-column: span 2;
}

.nsf-stat-item:nth-child(n+4) {
  grid-column: span 3;
}

.nsf-stat-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(34px, 9.5vw, 60px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.nsf-stat-label {
  color: #55556A;
  font-size: 14px;
  line-height: 1.3;
}

@media (min-width: 560px) {
  .nsf-stats-section {
    padding: 0 24px 56px;
  }
  .nsf-stats-grid {
    gap: 28px 24px;
  }
  .nsf-stat-label {
    font-size: 16px;
  }
}

@media (min-width: 960px) {
  .nsf-stats-section {
    padding: 0 24px 72px;
  }
  .nsf-stats-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
  }
  .nsf-stat-item,
  .nsf-stat-item:nth-child(-n+3),
  .nsf-stat-item:nth-child(n+4) {
    grid-column: span 1;
    padding: 24px 12px 0;
  }
  .nsf-stat-num {
    font-size: 60px;
  }
  .nsf-stat-label {
    font-size: 18px;
    line-height: 1.4;
  }
  .nsf-stat-label br {
    display: none;
  }
}

/* Responsive adjustments for Content Sections on Mobile (< 640px) */
@media (max-width: 639px) {
  #o-konferencji,
  #prelegenci,
  #warsztaty,
  #program,
  #zapisy,
  #kontakt {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
  #cena {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-bottom: 56px !important;
  }
  #cena > .nsf-rv {
    border-radius: 28px !important;
    padding: 28px 22px !important;
    gap: 32px !important;
  }
  #cena .nsf-btn {
    width: 100%;
    justify-content: center;
  }
  #program {
    gap: 36px !important;
  }
  #program > div:last-child {
    padding-left: 58px !important;
  }
  #program > div:last-child > div[aria-hidden="true"] {
    left: 19px !important;
  }
  #program ol > li > span[aria-hidden="true"] {
    left: -58px !important;
    width: 40px !important;
    height: 40px !important;
  }
  #zapisy > div {
    gap: 36px !important;
  }
  #zapisy form {
    padding: 24px 18px !important;
    border-radius: 24px !important;
  }
  #zapisy form button[type="submit"] {
    width: 100%;
    justify-content: center;
  }
  #kontakt {
    gap: 44px !important;
  }
  #kontakt > div:first-child {
    gap: 36px !important;
  }
}


/* ==========================================================================
   Sekcja Warsztaty / Praktyczki — Mobile First
   ========================================================================== */
.nsf-mobile-br {
  display: inline;
}

@media (min-width: 640px) {
  .nsf-mobile-br {
    display: none;
  }
}

.nsf-praktyczki-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.nsf-praktyczka-card {
  background: #FFFFFF;
  border-radius: 24px;
  padding: 20px;
  border: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: stretch;
  box-shadow: 0 4px 20px -4px rgba(42, 42, 51, 0.05);
  transition: transform .25s ease, box-shadow .25s ease;
}

.nsf-praktyczka-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px -12px rgba(115, 94, 194, 0.14);
}

.nsf-praktyczka-photo {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  background: #EEEAF8;
  overflow: hidden;
  position: relative;
}

.nsf-praktyczka-content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nsf-praktyczka-details {
  border-top: 1px solid #DCD6EE;
  margin-top: 4px;
  padding-top: 4px;
}

@media (min-width: 640px) {
  .nsf-praktyczka-card {
    flex-direction: row;
    align-items: flex-start;
    border-radius: 28px;
    padding: 28px;
    gap: 24px;
  }
  .nsf-praktyczka-photo {
    flex: 0 0 170px;
    width: 170px;
    border-radius: 20px;
    align-self: flex-start;
  }
  .nsf-praktyczka-content {
    flex: 1 1 0;
    height: 100%;
  }
  .nsf-praktyczka-details {
    margin-top: auto;
  }
}

@media (min-width: 960px) {
  .nsf-praktyczki-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }
  .nsf-praktyczka-card {
    padding: clamp(24px, 2.8vw, 36px);
    gap: clamp(18px, 2.2vw, 28px);
  }
  .nsf-praktyczka-photo {
    flex: 0 0 clamp(130px, 14vw, 175px);
    width: clamp(130px, 14vw, 175px);
  }
}

/* ==========================================================================
   Formularz zapisów — ujednolicone pola input i select
   ========================================================================== */
.nsf-field {
  box-sizing: border-box;
  width: 100%;
  height: 52px;
  min-height: 52px;
  padding: 0 16px;
  border-radius: 14px;
  border: 1.5px solid #8B7EB4;
  background-color: #FFFFFF;
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  color: #1F1E26;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.nsf-field:hover {
  border-color: #553FB5;
}

.nsf-field:focus {
  border-color: #553FB5;
  box-shadow: 0 0 0 3px rgba(85, 63, 181, 0.2);
  outline: 2px solid #553FB5;
  outline-offset: 1px;
}

.nsf-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23553FB5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px 18px;
  cursor: pointer;
  text-overflow: ellipsis;
}

/* ==========================================================================
   3D Ambient Floating Logo Shapes (Depth-of-Field & Subtle Parallax)
   ========================================================================== */
.nsf-section-ambient {
  position: relative;
}

.nsf-section-ambient > div:not(.nsf-ambient-item),
.nsf-section-ambient > form,
.nsf-section-ambient > .nsf-hero-content,
.nsf-section-ambient > .nsf-hero-stage-col,
.nsf-section-ambient > .nsf-stats-grid {
  position: relative;
  z-index: 2;
}

.nsf-ambient-item {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  will-change: transform;
}

.nsf-ambient-crystal {
  display: block;
  transform-style: preserve-3d;
}

/* Warstwy głębi (Depth of Field) - Wszystkie z blurem, opacity od 0.30 do 0.65 */
/* 1. Pierwszy plan: bardzo duży format, mocny blur obiektywu */
.nsf-depth-fore {
  filter: blur(24px) drop-shadow(0 30px 50px rgba(115, 94, 194, 0.4));
  opacity: 0.38;
  z-index: 2;
}

/* 2. Średni plan (punkt ostrości): nasycony kolor, wyrazisty kształt z miękkim blurem */
.nsf-depth-mid {
  filter: blur(7px) drop-shadow(0 14px 28px rgba(42, 42, 51, 0.2));
  opacity: 0.60;
  z-index: 1;
}

/* 3. Daleki plan: mniejszy format, zamglony w przestrzeni tła */
.nsf-depth-back {
  filter: blur(14px) drop-shadow(0 8px 18px rgba(93, 119, 194, 0.18));
  opacity: 0.32;
  z-index: 1;
}

/* Subtelny ambient float (powolne mikropływanie w przestrzeni 3D z głębią osi Z) */
@keyframes nsf-bob-a {
  0%, 100% {
    transform: perspective(1000px) rotateX(22deg) rotateY(-18deg) rotateZ(var(--rot, 0deg)) translate3d(0, 0, 0);
  }
  50% {
    transform: perspective(1000px) rotateX(26deg) rotateY(-14deg) rotateZ(calc(var(--rot, 0deg) + 4deg)) translate3d(0, -18px, 20px);
  }
}

@keyframes nsf-bob-b {
  0%, 100% {
    transform: perspective(1000px) rotateX(-20deg) rotateY(22deg) rotateZ(var(--rot, 0deg)) translate3d(0, 0, 0);
  }
  50% {
    transform: perspective(1000px) rotateX(-16deg) rotateY(26deg) rotateZ(calc(var(--rot, 0deg) - 5deg)) translate3d(-12px, 16px, 15px);
  }
}

@keyframes nsf-bob-c {
  0%, 100% {
    transform: perspective(1000px) rotateX(16deg) rotateY(16deg) rotateZ(var(--rot, 0deg)) translate3d(0, 0, 0);
  }
  50% {
    transform: perspective(1000px) rotateX(22deg) rotateY(10deg) rotateZ(calc(var(--rot, 0deg) + 3deg)) translate3d(14px, -12px, 25px);
  }
}

.nsf-bob-1 { animation: nsf-bob-a 8.5s ease-in-out infinite; }
.nsf-bob-2 { animation: nsf-bob-b 11s ease-in-out infinite; }
.nsf-bob-3 { animation: nsf-bob-c 9.5s ease-in-out infinite; }

/* Dostosowanie mobilne */
@media (max-width: 768px) {
  .nsf-ambient-item {
    transform: scale(0.72);
  }
  .nsf-depth-fore {
    opacity: 0.25;
    filter: blur(16px);
  }
  .nsf-depth-mid {
    opacity: 0.45;
    filter: blur(5px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nsf-ambient-item {
    will-change: auto !important;
    transform: none !important;
  }
  .nsf-ambient-crystal {
    animation: none !important;
  }
}
