@font-face {
      font-family: "Quasimoda";
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      src: url("../fonts/quasimoda-regular.woff2") format("woff2");
    }

    @font-face {
      font-family: "Quasimoda";
      font-style: normal;
      font-weight: 600;
      font-display: swap;
      src: url("../fonts/quasimoda-semibold.woff2") format("woff2");
    }

    :root {

      --fs-xs: clamp(0.875rem,  0.84rem + 0.16vw, 0.9375rem);
      --fs-sm: clamp(1rem,      0.96rem + 0.19vw, 1.0625rem);
      --fs-md: clamp(1.0625rem, 0.99rem + 0.33vw, 1.1875rem);
      --fs-lg: clamp(1.1875rem, 1.06rem + 0.56vw, 1.375rem);
      --fs-xl: clamp(1.375rem,  1.17rem + 0.93vw, 1.75rem);

      --text-stroke: 0.25px;

      --fw-semibold: 600;

      --navy:       #232b55;
      --blue:       #05a0d7;
      --green:      #19a64a;
      --green-dark: #127a36;
      --blue-text:  #0378a3;
      --placeholder:#68718a;
      --blue-dark:  #1e235a;
      --sky:        #e6f5fa;

      --text:       #1e235a;
      --muted:      #232b55;
      --line:       #e6f5fa;
      --white:      #ffffff;

      --gradient-main: linear-gradient(135deg, #232b55 0%, #05a0d7 80%);

      --gradient-poster: linear-gradient(90deg, #232b55 0%, #1d4a85 55%, #0b7bb0 100%);
      --gradient-bar:   linear-gradient(90deg, var(--blue), var(--sky));

      --gradient-about:    radial-gradient(130% 160% at 0% 0%, #232b55 0%, #1d3f7c 50%, #05a0d7 100%);
      --gradient-why:      linear-gradient(120deg, #232b55 0%, #1e235a 45%, #05a0d7 100%);
      --gradient-learn:    radial-gradient(150% 180% at 100% 100%, #05a0d7 0%, #16579a 40%, #232b55 85%);
      --gradient-formulas: conic-gradient(from 200deg at 85% 50%, #05a0d7 0deg, #232b55 120deg, #1e235a 240deg, #05a0d7 360deg);
      --gradient-terms:    radial-gradient(120% 220% at 75% 120%, #05a0d7 0%, #1a3f86 40%, #151a5c 80%);
      --gradient-form:     linear-gradient(90deg, #1e235a 0%, #232b55 55%, #05a0d7 100%);
      --gradient-partners: radial-gradient(circle at 15% 50%, #05a0d7 0%, #1f4f8f 45%, #232b55 85%);
      --gradient-footer:   radial-gradient(120% 170% at 85% 110%, #05a0d7 0%, #0f5d9a 35%, #232b55 75%);
      --gradient-button:   radial-gradient(140% 200% at 0% 100%, #05a0d7 0%, #1f4f8f 45%, #232b55 90%);

      --shadow:       0 0.625rem 1.875rem -0.5rem rgba(35, 43, 85, 0.1);
      --shadow-badge: 0 0.375rem 1.25rem rgba(5, 160, 215, 0.1);
      --shadow-btn:   0 0.625rem 1.5625rem rgba(35, 43, 85, 0.1);

      --navy-deep:    #151a5c;
      --green-soft:   #eef8f1;
      --green-border: #e6f5fa;
      --line-soft:    rgba(30, 35, 90, 0.18);
      --field-border: #e6f5fa;
      --focus-ring:   rgba(5, 160, 215, 0.12);
      --error:        #c62f2f;
      --nav-bg:       rgba(255, 255, 255, 0.9);

      --space-xs:  clamp(0.375rem, 0.33rem + 0.2vw,  0.5rem);
      --space-sm:  clamp(0.75rem,  0.65rem + 0.45vw, 1rem);
      --space-md:  clamp(1rem,     0.8rem + 0.9vw,   1.5rem);
      --space-lg:  clamp(1.25rem,  0.95rem + 1.35vw, 2rem);
      --space-section:    clamp(2.75rem, 2.1rem + 2.8vw,  4.25rem);
      --space-hint-top:   clamp(2.5rem,  1.75rem + 3.3vw, 5rem);
      --space-section-lg: clamp(4rem,    0.3rem + 13.2vw, 12.1875rem);
      --pad-card:    clamp(1.25rem, 0.95rem + 1.35vw, 2rem);
      --pad-card-lg: clamp(1.5rem,  0.95rem + 2.45vw, 2.75rem);
      --pad-tile:    clamp(0.875rem, 0.8rem + 0.3vw, 1rem) clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
      --gap-grid:    clamp(1rem, 0.75rem + 1.1vw, 1.5rem);
      --pad-page:    clamp(1rem, 0.85rem + 0.7vw, 1.25rem);

      --radius-button: 0px;
      --radius-card:   0px;
      --radius-small:  0px;

      --logo-height-org:     2.5rem;
      --logo-height-partner: 5.75rem;

      padding-top:    env(safe-area-inset-top, 0px);
      padding-bottom: env(safe-area-inset-bottom, 0px);

      color-scheme: light;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {

      font-size: clamp(100%, min(0.8334vw, 1.4815vh), 44px);
      scroll-behavior: smooth;

      scroll-padding-top: calc(5.25rem + env(safe-area-inset-top, 0px));
      -webkit-text-size-adjust: 100%;
    }

    body {
      margin: 0;
      background: var(--white);
      color: var(--text);
      font: 1.0625rem/1.65 "Quasimoda", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
      -webkit-text-stroke: var(--text-stroke) currentColor;
      overflow-x: hidden;
    }

    img,
    svg {
      max-width: 100%;
    }

    a {
      color: var(--blue-dark);
    }

    h1, h2, h3, h4 {
      margin: 0;
      line-height: 1.25;

    }

    :focus-visible {
      outline: 0.1875rem solid var(--blue);
      outline-offset: 0.125rem;
      border-radius: 0px;
    }

    @media (prefers-reduced-motion: reduce) {
      * {
        scroll-behavior: auto !important;
        transition: none !important;
      }
    }

    .container {
      max-width: 71.25rem;
      margin: 0 auto;

      padding-left: max(var(--pad-page), env(safe-area-inset-left, 0px));
      padding-right: max(var(--pad-page), env(safe-area-inset-right, 0px));
    }

    section {
      padding: var(--space-section) 0;
    }

    .grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--gap-grid);
    }

    @media (max-width: 860px) {
      .grid-2 {
        grid-template-columns: 1fr;
      }
    }

    .section-badge {
      display: inline-block;
      margin-bottom: var(--space-md);
      padding: 0.75rem 1.375rem;
      background: var(--gradient-main);
      color: var(--white);
      font-size: clamp(var(--fs-md), 2.5vw, var(--fs-lg));
      font-weight: var(--fw-semibold);
      border-radius: 0px;
      box-shadow: var(--shadow-badge);
    }

    .about .card,
    .stack .card {
      padding: var(--pad-card-lg);
    }

    .badge-about    { background: var(--gradient-about); }
    .badge-why      { background: var(--gradient-why); }
    .badge-learn    { background: var(--gradient-learn); }
    .badge-formulas { background: var(--gradient-formulas); }
    .badge-terms    { background: var(--gradient-terms); }
    .badge-form     { background: var(--gradient-form); }
    .badge-partners { background: var(--gradient-partners); }

    .card {
      height: 100%;
      padding: var(--pad-card);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    .btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.75rem 1.75rem;
      border: 1px;
      border-radius: var(--radius-button);
      font: inherit;
      font-size: var(--fs-sm);
      font-weight: var(--fw-semibold);
      text-decoration: none;
      cursor: pointer;
      transition: transform 0.2s;
    }

    .btn:hover {
      transform: translateY(-0.125rem);
    }

    .btn-gradient {
      background: var(--gradient-button);
      color: var(--white);
      box-shadow: var(--shadow-btn);
    }

    .btn-outline {
      text-decoration: underline;
      text-decoration-style: solid;
      text-decoration-thickness: 0.125rem;
      text-underline-offset: 0.375rem;
      background: var(--white);
      color: var(--navy);
    }

    .btn-row {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
    }

    .nav {
      position: sticky;
      top: env(safe-area-inset-top, 0px);
      z-index: 50;
      background: var(--nav-bg);
      backdrop-filter: blur(0.75rem);
      border-bottom: 1px solid var(--line);
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0 0 auto;
      height: env(safe-area-inset-top, 0px);
      background: var(--white);
      z-index: 60;
    }

    .nav .container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      min-height: 5.25rem;
    }

    .brand {
      display: flex;
      align-items: center;
      text-decoration: none;
    }

    .brand img {
      height: 3rem;
      width: auto;
      max-width: 13.75rem;
      object-fit: contain;
    }

    .menu {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }

    .menu a {
      padding: 0.5rem 0.875rem;
      border-radius: var(--radius-button);
      color: var(--navy);
      font-size: var(--fs-sm);
      font-weight: var(--fw-semibold);
      text-decoration: none;
    }

    .menu a:hover {
      background: var(--sky);
      color: var(--blue-dark);
    }

    .menu a.menu-cta {
      background: var(--white);
      color: var(--navy);
      transition: background-color 0.25s, color 0.25s, box-shadow 0.25s;
    }

    .menu a.menu-cta:hover,
    .menu a.menu-cta:focus-visible {
      background: var(--navy);
      color: var(--white);
      box-shadow: var(--shadow-btn);
    }

    .burger {
      display: none;
      width: 2.625rem;
      height: 2.625rem;
      border: 1px solid var(--line);
      border-radius: 0px;
      background: var(--white);
      color: var(--navy);
      font-size: var(--fs-md);
      cursor: pointer;
    }

    @media (max-width: 520px) {
      .brand { gap: 0.625rem; }
      .brand img { height: 2.25rem; }
    }

    @media (max-width: 860px) {
      .burger {
        display: block;
      }

      .menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        padding: 0.75rem 1.25rem 1rem;
        background: var(--white);
        border-bottom: 1px solid var(--line);
        box-shadow: var(--shadow);
      }

      .menu.open {
        display: flex;
      }
    }

    .hero {
      position: relative;
      display: flow-root;
      overflow: hidden;
      overflow: clip;
      padding: 5rem 0 0;
    }

    .hero-tagline {
      padding-top: 2.75rem;
    }

    .hero-top > * {
      min-width: 0;
    }

    .hero-top {
      position: relative;
      display: grid;
      grid-template-columns: 1.15fr 1fr;
      align-items: center;
      gap: 2rem 2.5rem;
      margin-bottom: 0;
    }

    .hero-photo {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    .hero-photo::before {
      content: "";
      display: block;
      padding-top: 75%;
    }

    .hero-photo img {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 58% 30%;
    }

    .hero-copy,
    .hero-stats {
      align-self: center;
    }

    .date-strip {
      padding: 0.5rem 0 0.625rem;
      background: var(--gradient-poster);
      color: var(--white);
      font-size: var(--fs-xs);
      line-height: 1.4;
    }

    .date-strip strong {
      font-weight: var(--fw-semibold);
    }

    .hero-label {
      display: inline-block;
      padding: 0.375rem 0.875rem;
      margin: 0 0 var(--space-lg) 0;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-small);
      color: var(--blue-dark);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
    }

    .hero h1 {
      margin: 1rem 0 0.875rem;
      color: var(--navy);
      font-size: clamp(1.7rem, 3.8vw, 2.7rem);
      font-weight: var(--fw-semibold);
    }

    .hero h1 span {
      background: var(--gradient-main);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero h1.hero-logo {
      margin: 1.5rem 0 1.5rem;
      line-height: 0;
    }

    .hero h1.hero-logo img {
      width: min(100%, 32.5rem);
      height: auto;
    }

    .hero-lead {
      max-width: 35rem;
      margin: 0 0 1.375rem;
      color: var(--muted);
      font-size: var(--fs-md);
    }

    .hero-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.75rem;
    }

    .hero-stat {
      padding: var(--pad-tile);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 0px;
      box-shadow: var(--shadow);
    }

    .hero-stat b {
      display: block;
      color: var(--blue-dark);
      font-size: var(--fs-xl);
      line-height: 1;
    }

    .hero-stat span {
      color: var(--muted);
      font-size: var(--fs-xs);
    }

    @media (max-width: 860px) {
      .hero {
        padding-top: 1.75rem;
      }

      .date-strip {
        font-size: var(--fs-xs);
      }

      .hero-top {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.375rem;
      }
    }

    .about-link {
      margin-top: var(--space-hint-top);
      margin-bottom: var(--space-section-lg);
      text-align: center;
      pointer-events: none;
    }

    .about-link a {
      pointer-events: auto;
    }

    .about-link-mark {
      display: block;
      height: 0;
    }

    @media (min-width: 861px) {
      .about-link {
        position: sticky;
        bottom: 0.75rem;
        z-index: 5;
      }

      .about-link a {
        transition: background-color 0.25s, box-shadow 0.25s, padding 0.25s;
      }

      .about-link.is-stuck a {
        padding: 0.625rem 1.25rem;
        background: rgba(255, 255, 255, 0.96);
        box-shadow: var(--shadow-btn);
      }
    }

    @media (min-width: 861px) and (max-height: 820px) {
      .hero {
        padding-top: clamp(1.25rem, 6vh, 5rem);
      }

      .hero-tagline {
        padding-top: clamp(0.75rem, 4.5vh, 2.75rem);
      }

      .hero-photo {
        max-height: 50vh;
      }

      :root {
        --space-hint-top: clamp(1rem, 5vh, 5rem);
      }
    }

    .about-link a,
    .about-more a {
      color: var(--navy);
      font-size: var(--fs-md);
      font-weight: var(--fw-semibold);
      text-decoration: none;
    }

    .about {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--gap-grid);
      align-items: stretch;
    }

    .about-photo {
      position: relative;
      display: block;
      min-height: 20rem;
      overflow: hidden;
      border-radius: var(--radius-card);
      background: var(--navy);
      box-shadow: var(--shadow);
    }

    .about-photo > svg {
      position: absolute;
      top: 50%;
      left: 50%;
      translate: -50% -50%;
    }

    .about-photo img {
      position: absolute;
      top: 0;
      left: 0;
      z-index: 1;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 46% 35%;
    }

    .about-text {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start;
    }

    .about-text p {
      margin: 0;
      color: var(--muted);
      font-size: var(--fs-md);
    }

    .about-more {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--gap-grid);
      margin-top: 3rem;
    }

    .about-more a {
      grid-column: 2;
      justify-self: center;
      text-align: center;
      text-decoration: underline;
      text-decoration-style: solid;
      text-decoration-thickness: 0.125rem;
      text-underline-offset: 0.375rem;
    }

    @media (max-width: 860px) {
      .about {
        grid-template-columns: 1fr;
      }

      .about-photo {
        min-height: 0;
        align-self: start;
      }

      .about-photo::before {
        content: "";
        display: block;
        padding-top: 56.25%;
      }

      .about-more {
        grid-template-columns: 1fr;
      }

      .about-more a {
        grid-column: 1;
      }
    }

    .check-list {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .check-list li {
      position: relative;
      color: var(--navy);
      margin-bottom: 0.875rem;
      padding-left: 2.375rem;
    }

    .check-list li strong {
      color: var(--navy);
    }

    .check-list li:last-child {
      margin-bottom: 0;
    }

    .check-list li::before {
      content: "";
      position: absolute;
      top: 0.55em;
      left: 0;
      width: 0.75rem;
      height: 0.75rem;
      background: var(--blue);
      border-radius: 0px;
    }

    .stack {
      display: grid;
      gap: var(--space-section);
    }

    .why-grid {
      display: grid;
      grid-template-columns: 1.25fr 1fr;
      gap: var(--gap-grid);
      align-items: stretch;
    }

    .why-photo {
      position: relative;
      min-height: 20rem;
      overflow: hidden;
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    .why-photo img {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 34% 40%;
    }

    @media (max-width: 860px) {
      .why-grid { grid-template-columns: 1fr; }
      .why-photo { min-height: 0; align-self: start; }
      .why-photo::before { content: ""; display: block; padding-top: 62.5%; }
    }

    @media (max-width: 560px) {
    }

    .formula {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      align-self: start;
      padding: var(--pad-card);
      overflow: hidden;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    .formula::before {
      content: "";
      position: relative;
      top: 0x;
      left: 0;
      right: 0;
      height: 0.375rem;
      background: var(--gradient-bar);
    }

    .formula p {
      margin: 0;
    }

    .formula h3 {
      color: var(--navy);
      font-size: var(--fs-lg);
    }

    .formula--plus {
      background: var(--white);
      border-color: var(--green-border);
    }

    .formula--plus::before {
      background: var(--green);
    }

    .formula h3.formula-logo {
      margin: 0.25rem 0 0.5rem;
      line-height: 0;
    }

    .formula h3.formula-logo img {
      width: min(100%, 21.25rem);
      height: auto;
    }

    .formula--plus h3.formula-logo img {
      width: min(100%, 23.1875rem);
    }

    .tag {
      align-self: flex-start;
      padding: 0.25rem 0.75rem;
      background: var(--sky);
      border-radius: var(--radius-small);
      color: var(--blue-dark);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
    }

    .formula--plus .tag {
      background: var(--green-dark);
      color: var(--white);
    }

    .org-logos {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
      margin-top: var(--space-md);
      padding-top: 1rem;
      border-top: 1px solid var(--line);
    }

    .org-logo {
      display: grid;
      place-items: center;
      width: 5.5rem;
      height: 4.25rem;
      padding: 0.5rem 0.75rem;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 0px;
      color: var(--navy);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
    }

    .org-logo--extra {
      background: var(--green-soft);
      border-color: var(--green);
    }

    .org-logo img {
      display: block;
      width: 100%;
      height: var(--logo-height-org);
      object-fit: contain;
    }

    .tabs {
      display: flex;
      align-items: flex-end;
      gap: 0;
      margin-bottom: var(--space-sm);
      border-bottom: 1px solid var(--line-soft);
    }

    .tab {
      margin-bottom: -1px;
      padding: 0.625rem 1.375rem;
      border: 1px solid transparent;
      border-bottom: 0;
      border-radius: 0px 0px 0 0;
      background: transparent;
      color: var(--navy);
      font: inherit;
      font-size: var(--fs-md);
      font-weight: var(--fw-semibold);
      cursor: pointer;
    }

    .tab {
      transform-origin: left bottom;
      transition: transform 0.15s;
    }

    .tab[aria-selected="true"] {
      border-color: var(--line-soft);
      background: var(--white);
      color: var(--blue-text);
      transform: scale(1.06);
      text-decoration: underline;
      text-decoration-style: solid;
      text-decoration-thickness: 0.125rem;
      text-underline-offset: 0.375rem;
    }

    .day {
      margin-bottom: var(--space-sm);
      padding: var(--space-md) var(--pad-card);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    .day h3 {
      margin-bottom: 0.75rem;
      color: var(--navy);
      font-size: var(--fs-lg);
    }

    .lecture {
      display: flex;
      align-items: center;
      gap: 1.25rem;
      margin-bottom: 0.375rem;
      padding: 0.625rem 1rem;
      background: transparent;
      border-radius: 0px;
    }

    .lecture:last-child {
      margin-bottom: 0;
    }

    .lecture-time {
      flex-shrink: 0;
      min-width: 9.375rem;
      padding: 0.75rem 1rem;
      background-color: var(--navy-deep);
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      border-radius: var(--radius-button);
      color: var(--white);
      font-weight: var(--fw-semibold);
      text-align: center;
      font-variant-numeric: tabular-nums;
    }

    .lecture-time.g1 { background-image: url("../img/godzina-1.jpg"); }
    .lecture-time.g2 { background-image: url("../img/godzina-2.jpg"); }
    .lecture-time.g3 { background-image: url("../img/godzina-3.jpg"); }
    .lecture-time.g4 { background-image: url("../img/godzina-4.jpg"); }
    .lecture-time.g5 { background-image: url("../img/godzina-5.jpg"); }
    .lecture-time.g6 { background-image: url("../img/godzina-6.jpg"); }
    .lecture-time.g7 { background-image: url("../img/godzina-7.jpg"); }

    .lecture h4 {
      margin-bottom: 0.125rem;
      color: var(--navy);
      font-size: var(--fs-sm);
    }

    .lecture small {
      color: var(--blue-dark);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
    }

    .plus-logo {
      margin: 1.5rem 0 1rem;
    }

    .plus-logo img {
      display: block;
      width: 14.375rem;
      height: auto;
    }

    .lecture--plus {
      background: var(--green-soft);
    }

    .lecture-plus-tag {
      display: inline-block;
      background: var(--green-dark);
      margin-left: 0.5rem;
      padding: 0.125rem 0.5rem;
      border-radius: 0px;
      color: var(--white);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
      vertical-align: middle;
    }

    @media (max-width: 640px) {
      .lecture {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.625rem;
      }

      .lecture-time {
        min-width: 0;
      }
    }

    #registration-form {
      padding: 2rem 1.25rem;
      border-radius: 0px;
    }

    .form-card {
      max-width: 71.25rem;
      margin: 0 auto;
      padding: var(--space-md) var(--pad-card);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow);
    }

    @media (max-width: 560px) {
      .form-card {
        padding: var(--pad-card);
      }
    }

    .field {
      margin-bottom: 0.875rem;
    }

    .field-label {
      display: block;
      margin-bottom: 0.25rem;
      color: var(--navy);
      font-weight: var(--fw-semibold);
    }

    input[type="text"],
    input[type="email"],
    select {
      width: 100%;
      padding: 0.8125rem 0.875rem;
      background: var(--white);
      border: 1.5px solid var(--field-border);
      border-radius: 0px;
      color: var(--text);
      font: inherit;
      font-size: var(--fs-sm);
    }

    select {
      -webkit-appearance: none;
      appearance: none;
      background-image: url("../ikony/ui-strzalka.svg");
      background-repeat: no-repeat;
      background-position: right 1rem center;
      background-size: 0.75rem 0.5rem;
      padding-right: 2.75rem;
    }

    input::placeholder {
      color: var(--placeholder);
      opacity: 1;
    }

    input:focus,
    select:focus {
      outline: none;
      border-color: var(--blue);
      box-shadow: 0 0 0 0.25rem var(--focus-ring);
    }

    .field-error {
      display: none;
      margin-top: 0.25rem;
      color: var(--error);
      font-size: var(--fs-xs);
    }

    .invalid .field-error {
      display: block;
    }

    .invalid input,
    .invalid select {
      border-color: var(--error);
    }

    .plus-box {
      display: flex;
      align-items: flex-start;
      gap: var(--space-sm);
      margin-bottom: var(--space-sm);
      padding: var(--space-sm) var(--space-md);
      background: var(--green-soft);
      border: 0px solid var(--green-border);
      border-radius: 0px;
      cursor: pointer;
    }

    .plus-box input {
      accent-color: var(--green);
    }

    .plus-box small,
    .plus-box small * {
      font-size: var(--fs-xs);
    }

    .plus-box small {
      display: block;
      color: var(--muted);
    }

    .consent {

      display: flex;
      gap: 0.75rem;
      margin-bottom: 0.625rem;
      color: var(--muted);
      font-size: var(--fs-xs);
      line-height: 1.5;
    }

    .consent a {
      word-break: break-word;
    }

    .plus-box input,
    .consent input {
      -webkit-appearance: none;
      appearance: none;
      background-color: var(--white);
      border: 1.5px solid var(--navy);
      border-radius: 0;
      flex-shrink: 0;
      width: 1.5rem;
      height: 1.5rem;
      margin-top: 0.1875rem;
      accent-color: var(--blue);
    }

    .consent input:checked {
      background: var(--navy) url("../ikony/ui-ptaszek.svg") center / 80% 80% no-repeat;
    }

    .consent input:focus-visible {
      outline: 3px solid var(--blue);
      outline-offset: 2px;
    }

    .plus-box input {
      border-color: var(--green);
    }

    .plus-box input:checked {
      background: var(--green) url("../ikony/ui-ptaszek.svg") center / 80% 80% no-repeat;
    }

    .plus-box input:focus-visible {
      outline: 3px solid var(--blue);
      outline-offset: 2px;
    }

    .plus-box input {
      flex-shrink: 0;
      width: 1.5rem;
      height: 1.5rem;
    }

    .field-hint {
      margin-top: 0.375rem;
      font-size: var(--fs-xs);
    }

    .field-hint a {
      display: inline-block;
      min-height: 1.5rem;
      padding: 0.1875rem 0;
    }

    .consent-error {
      display: none;
      color: var(--error);
      font-size: var(--fs-xs);
    }

    .form-actions {
      margin-top: var(--space-sm);
      text-align: center;
    }

    .form-actions .btn {
      padding: 1rem 3rem;
      font-size: var(--fs-md);
      letter-spacing: 0.8px;
    }

    .form-summary {
      display: none;
      margin-top: 1.375rem;
      padding: 1.125rem;
      background: var(--sky);
      border: 1px solid var(--blue);
      border-radius: 0px;
    }

    .form-summary.show {
      display: block;
    }

    .form-summary.is-error {
      border-color: #b42318;
      background: #fdecea;
    }

    .partners {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: var(--space-sm);
    }

    .partners .partner {
      flex: 0 1 12.5rem;
    }

    .partner {
      display: grid;
      place-items: center;
      height: 10rem;
      padding: var(--pad-tile);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 0px;
      color: var(--muted);
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
      text-align: center;
    }

    .partner img {
      display: block;
      width: 100%;
      height: var(--logo-height-partner);
      object-fit: contain;
    }

    .footer {
      margin-top: var(--space-section);
      padding: clamp(3rem, 2rem + 4vw, 5.5rem) 0;
      background: var(--gradient-footer);
      color: var(--white);
    }

    .footer .container {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: var(--space-md);
    }

    .footer a {
      color: var(--white);
    }

    .footer-brand img {
      display: block;
      width: 16.75rem;
      height: auto;
    }

    section {
      position: relative;
    }

    section > :not(.decor) {
      position: relative;
      z-index: 1;
    }

    .decor {
      position: absolute;
      z-index: 0;
      width: min(calc(var(--w) * 0.0625rem), calc(var(--w) * 100vw / 1920));
      height: auto;
      pointer-events: none;
    }

    .decor--right { right: calc((100% - 100vw) / 2 + var(--x, 3vw)); }
    .decor--left  { left:  calc((100% - 100vw) / 2 + var(--x, 3vw)); }

    @media (max-width: 1100px) {
      .decor { display: none; }
    }

    h1, h2, h3, h4, b, strong {
      font-weight: var(--fw-semibold);
    }

    .about-link a {
      display: inline-block;
      min-height: 1.5rem;
      padding: 0.125rem 0;
    }

    .footer a[href^="mailto:"] {
      display: inline-block;
      padding: 0.1875rem 0;
    }

    .hp-field {
      position: absolute;
      left: -624.9375rem;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }

    img,
    svg,
    .lecture-time {
      -webkit-user-drag: none;
      user-select: none;
      -webkit-user-select: none;
      -webkit-touch-callout: none;
    }

    .fallback {
      display: none;
    }

    .failed > .fallback {
      display: grid;
    }

    .brand-fallback {
      color: var(--navy);
      font-size: var(--fs-md);
      font-weight: var(--fw-semibold);
    }

    .failed > .brand-fallback {
      display: block;
    }

    :root {
      --ease: cubic-bezier(0.22, 0.8, 0.3, 1);
    }

    .noscript-note {
      margin: 1rem 0;
      padding: 1rem 1.25rem;
      background: var(--sky);
      border-radius: var(--radius-card);
    }

    .anim .reveal {
      opacity: 0;
      translate: 0 1.75rem;
      transition: opacity 0.7s var(--ease), translate 0.7s var(--ease);
      transition-delay: calc(var(--i, 0) * 80ms);
    }

    .anim .reveal.in {
      opacity: 1;
      translate: 0 0;
    }

    .anim .section-badge.reveal {
      opacity: 1;
      translate: none;
      clip-path: inset(-1.875rem calc(100% - 0.375rem) -1.875rem -1.875rem);
      transition: clip-path 0.8s var(--ease);
      transition-delay: 0s;
    }

    .anim .section-badge.reveal.in {
      clip-path: inset(-1.875rem -1.875rem -1.875rem -1.875rem);
    }

    .anim .hero-photo.reveal img {
      scale: 1.05;
      transition: scale 0.7s var(--ease);
      transition-delay: calc(var(--i, 0) * 80ms);
    }

    .anim .hero-photo.reveal.in img {
      scale: 1;
    }

    .date-strip {
      animation: strip-in 0.7s var(--ease) both;
    }

    @keyframes strip-in {
      from { opacity: 0; translate: 0 -0.5rem; }
      to   { opacity: 1; translate: 0 0; }
    }

    .nudge {
      display: inline-block;
      animation: nudge 2.6s ease-in-out infinite;
    }

    @keyframes nudge {
      0%, 55%, 100% { translate: 0 0; }
      25%           { translate: 0 0.3125rem; }
    }

    .hero .btn-gradient {
      animation: cta-pulse 6s ease-in-out 3s infinite;
    }

    @keyframes cta-pulse {
      0%, 62%, 100% { box-shadow: var(--shadow-btn), 0 0 0 0 rgba(5, 160, 215, 0); }
      74%           { box-shadow: var(--shadow-btn), 0 0 0 0.625rem rgba(5, 160, 215, 0.22); }
      88%           { box-shadow: var(--shadow-btn), 0 0 0 1.25rem rgba(5, 160, 215, 0); }
    }

    .decor {
      animation: decor-float 9s ease-in-out infinite;
      animation-delay: calc(var(--n, 0) * -1.9s);
    }

    @keyframes decor-float {
      0%, 100% { translate: 0 0;     rotate: 0deg; }
      50%      { translate: 0 -0.625rem; rotate: 1.5deg; }
    }

    .nav {
      transition: box-shadow 0.3s var(--ease);
    }

    .nav.is-scrolled {
      box-shadow: 0 0.5rem 1.375rem rgba(35, 43, 85, 0.16);
    }

    .anim #schedule:not(.play) .day {
      opacity: 0;
    }

    .anim #schedule.play .day {
      animation: fade-up 0.5s var(--ease) both;
    }

    .anim #schedule.play .day:nth-child(2) {
      animation-delay: 0.1s;
    }

    .anim #schedule.play .day > :nth-child(n+2) {
      animation: fade-up 0.45s var(--ease) both;
      animation-delay: calc(var(--k, 1) * 60ms + 80ms);
    }

    .day > :nth-child(2) { --k: 1; }
    .day > :nth-child(3) { --k: 2; }
    .day > :nth-child(4) { --k: 3; }
    .day > :nth-child(5) { --k: 4; }
    .day > :nth-child(6) { --k: 5; }
    .day > :nth-child(7) { --k: 6; }
    .day > :nth-child(8) { --k: 7; }

    @keyframes fade-up {
      from { opacity: 0; translate: 0 0.875rem; }
      to   { opacity: 1; translate: 0 0; }
    }

    .tab {
      transition: color 0.2s, scale 0.2s var(--ease);
    }

    .field.invalid input,
    .field.invalid select {
      animation: shake 0.45s var(--ease);
    }

    @keyframes shake {
      0%, 100% { translate: 0 0; }
      20%      { translate: -0.375rem 0; }
      40%      { translate: 0.375rem 0; }
      60%      { translate: -0.25rem 0; }
      80%      { translate: 0.1875rem 0; }
    }

    .form-summary.show {
      animation: pop-in 0.55s var(--ease) both;
    }

    @keyframes pop-in {
      from { opacity: 0; scale: 0.96; translate: 0 0.625rem; }
      to   { opacity: 1; scale: 1;    translate: 0 0; }
    }

    .consent input:checked,
    .plus-box input:checked {
      animation: tick 0.3s var(--ease);
    }

    @keyframes tick {
      0%   { scale: 0.6; }
      60%  { scale: 1.18; }
      100% { scale: 1; }
    }

    .plus-box {
      transition: background-color 0.25s, box-shadow 0.25s;
    }

    .plus-box:has(input:checked) {
      box-shadow: inset 0 0 0 0.125rem var(--green);
    }

    .btn:active {
      translate: 0 1px;
      scale: 0.98;
    }

    @media (hover: hover) {
      .formula,
      .hero-stat,
      .partner,
      .org-logo {
        transition: translate 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s;
      }

      .formula:hover,
      .hero-stat:hover {
        translate: 0 -0.25rem;
        box-shadow: 0 1rem 2.5rem rgba(35, 43, 85, 0.14);
      }

      .partner:hover,
      .org-logo:hover {
        translate: 0 -0.1875rem;
        box-shadow: var(--shadow);
      }

      .partner img,
      .org-logo img {
        transition: scale 0.25s var(--ease);
      }

      .partner:hover img,
      .org-logo:hover img {
        scale: 1.07;
      }

      .lecture-time {
        transition: scale 0.2s var(--ease);
      }

      .lecture:hover .lecture-time {
        scale: 1.05;
      }

      .hero .btn-gradient:hover {
        animation: none;
      }
    }

    .about-link a,
    .about-more a {
      transform-origin: center;
    }

    .about-link a:hover,
    .about-more a:hover,
    .about-link a:focus-visible,
    .about-more a:focus-visible {
      animation: link-pulse 1.1s ease-in-out infinite;
    }

    .about-link a:hover .nudge,
    .about-more a:hover .nudge,
    .about-link a:focus-visible .nudge,
    .about-more a:focus-visible .nudge {
      animation: nudge-fast 0.55s ease-in-out infinite;
    }

    @keyframes link-pulse {
      0%, 100% { scale: 1; }
      50%      { scale: 1.06; }
    }

    @keyframes nudge-fast {
      0%, 100% { translate: 0 0; }
      50%      { translate: 0 0.375rem; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        transition-delay: 0s !important;
      }

      .anim .reveal,
      .anim #schedule:not(.play) .day {
        opacity: 1 !important;
        translate: none !important;
        clip-path: none !important;
      }
    }

    @media print {
      .anim .reveal,
      .anim #schedule:not(.play) .day {
        opacity: 1 !important;
        translate: none !important;
        clip-path: none !important;
      }
    }

    @media (max-height: 520px) and (orientation: landscape) {
      .nav {
        position: static;
      }

      html {
        scroll-padding-top: 1rem;
      }
    }

    .hero-stats > * {
      min-width: 0;
    }

    @media (max-width: 440px) {
      .hero-stats {
        grid-template-columns: minmax(0, 1fr);
      }
    }

    @media (max-width: 860px) {

      .hero-copy  { order: 2; }
      .hero-photo { order: 3; }
      .hero-stats { order: 4; }

      .hero {
        padding-top: var(--space-lg);
      }

      .hero-photo {
        align-self: start;
      }

      .hero-photo::before {
        padding-top: 62.5%;
      }

      .menu a {
        display: flex;
        align-items: center;
        min-height: 3rem;
      }

      .menu a.menu-cta {
        justify-content: center;
        margin-top: var(--space-xs);
        background: var(--navy);
        color: var(--white);
      }
    }

    @media (max-width: 560px) {

      .date-strip {
        text-align: center;
      }

      .hero h1.hero-logo img {
        width: min(100%, 22rem);
      }

      .hero .btn-row {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-sm);
      }

      .hero .btn-row .btn {
        justify-content: center;
        min-height: 3rem;
      }

      .about-link,
      .about-more {
        text-align: center;
      }

      .tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
      }

      .tab {
        text-align: center;
      }

      .partners .partner {
        flex: 0 1 calc(50% - var(--gap-grid) / 2);
      }

      .footer .container {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-md);
        text-align: left;
      }

      #registration-form {
        padding-left: 0;
        padding-right: 0;
      }

      .plus-box {
        padding: var(--space-sm);
      }

      .form-actions .btn {
        width: 100%;
        min-height: 3rem;
      }
    }

    @media (pointer: coarse) {
      .brand,
      .burger,
      .about-link a,
      .about-more a,
      .field-hint a,
      .tab,
      .footer a,
      .btn {
        min-height: 2.75rem;
      }

      .brand,
      .burger {
        min-width: 2.75rem;
      }

      .about-link a,
      .about-more a,
      .field-hint a,
      .footer a {
        display: inline-flex;
        align-items: center;
      }
    }

h1, h2, h3, h4, .hero-tagline, .section-badge {
  text-wrap: balance;
}

p, li, small, .lecture h4 {
  text-wrap: pretty;
}

.nowrap {
  white-space: nowrap;
}

.decor.decor-1 { --w:172; --x:6vw; top:calc(var(--space-section) - min(7rem, 112 * 100vw / 1920)); }
.decor.decor-2 { --w:226; --x:4vw; top:-7.5rem; }
.decor.decor-3 { --w:192; --x:8vw; top:22%; }
.decor.decor-4 { --w:232; --x:3vw; bottom:-6rem; }
.decor.decor-5 { --w:239; --x:4vw; bottom:-6rem; }
.page-section { padding-top: var(--space-section); }
.page-section h1.section-badge { margin-top: 0; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap-grid); align-items: stretch; }
.contact-card h2 { margin: 0 0 var(--space-md); font-size: var(--fs-lg); font-weight: var(--fw-semibold); color: var(--navy); line-height: 1.3; }
.contact-list { display: grid; grid-template-columns: max-content 1fr; gap: 0.75rem 1.5rem; margin: 0; font-size: var(--fs-md); }
.contact-list dt { font-weight: var(--fw-semibold); color: var(--blue-text); }
.contact-list dd { margin: 0; color: var(--text); }
.contact-list a { color: var(--navy); font-weight: var(--fw-semibold); }
.contact-bar { height: 0.375rem; margin: calc(-1 * var(--pad-card-lg)) calc(-1 * var(--pad-card-lg)) var(--pad-card-lg); background: var(--gradient-bar); }
.contact-card { padding: var(--pad-card-lg); }
.legal { max-width: 52rem; padding: var(--pad-card-lg); }
.legal h2 { margin: 2rem 0 0.75rem; font-size: var(--fs-md); font-weight: var(--fw-semibold); color: var(--navy); }
.legal h2:first-of-type { margin-top: 0.5rem; }
.legal p, .legal li { color: var(--text); }
.legal ol { padding-left: 1.4rem; }
.legal li { margin-bottom: 0.4rem; }
.legal .meta { color: var(--blue-text); font-weight: var(--fw-semibold); }
.legal a { color: var(--navy); font-weight: var(--fw-semibold); }
@media (max-width: 860px) {
  .contact-grid { grid-template-columns: 1fr; }
  .contact-list { grid-template-columns: 1fr; gap: 0.2rem; }
  .contact-list dd { margin-bottom: 0.8rem; }
}
.page-section > .card, .page-section > .faq, .page-section > .page-figure, .page-section > .page-cta { margin-top: var(--gap-grid); }
.page-section > h2.section-badge { margin-top: 3rem; }
.page-section .card .check-list { margin: 0; }
.faq { display: grid; gap: 0.75rem; }
.faq details.card { padding: 0; }
.faq summary { position: relative; padding: 1.1rem 3.2rem 1.1rem 1.4rem; cursor: pointer; list-style: none; font-weight: var(--fw-semibold); color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 1.4rem; top: 50%; transform: translateY(-50%); font-size: 1.5rem; line-height: 1; color: var(--blue); }
.faq details[open] summary::after { content: "–"; }
.faq details > div { padding: 0 1.4rem 1.25rem; color: var(--text); }
.page-figure { margin: 0; }
.page-figure img { display: block; width: 100%; height: auto; }
.page-cta { margin-bottom: 0; }
.legal.page-text { max-width: none; }
.extra-people { display: grid; gap: 1rem; }
.extra-people:empty { display: none; }
.person { padding: 1rem 1.25rem 0.25rem; border: 1px solid #d6ecf5; background: #f6fbfd; }
.person-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; color: var(--navy); }
.person-remove, .add-person-btn, .email-hint button { padding: 0; border: 0; background: none; font: inherit; font-weight: var(--fw-semibold); color: var(--navy); text-decoration: underline; cursor: pointer; }
.add-person { margin: 0.25rem 0 1.25rem; }
.email-hint { margin-top: 0.35rem; font-size: var(--fs-sm); color: var(--navy); }
.date-countdown { font-weight: var(--fw-semibold); }
.thanks-term { font-weight: var(--fw-semibold); color: var(--navy); }
.thanks-card h2 { margin: 0 0 1rem; font-size: var(--fs-lg); font-weight: var(--fw-semibold); color: var(--navy); }
.thanks-buttons { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.thanks-cta { display: flex; flex-wrap: wrap; gap: 1rem; }
.anim.anim-szybkie .reveal { transition-duration: 0.25s; transition-delay: calc(var(--i, 0) * 20ms); translate: 0 0.75rem; }
.anim.anim-szybkie .reveal.in { translate: 0 0; }
.anim.anim-szybkie .section-badge.reveal { transition-duration: 0.3s; translate: none; }
.anim.anim-szybkie .hero-photo.reveal img { transition-duration: 0.25s; transition-delay: 0s; }
.cal-dialog { width: min(34rem, calc(100vw - 2rem)); padding: 1.75rem; border: 0; border-top: 0.375rem solid var(--blue); color: var(--text); box-shadow: 0 1.5rem 3rem rgba(35, 43, 85, 0.3); }
.cal-dialog::backdrop { background: rgba(35, 43, 85, 0.55); }
.cal-dialog h2 { margin: 0 0 1.25rem; font-size: var(--fs-lg); font-weight: var(--fw-semibold); color: var(--navy); }
.cal-dialog .thanks-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem 1rem; }
.cal-dialog .thanks-buttons a:last-child { grid-column: 1 / -1; }
.cal-close { margin: 1.5rem 0 0; text-align: right; }
.survey-form { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.survey-q { margin: 0; padding: 1rem 1.25rem; border: 1px solid #d6ecf5; background: #f6fbfd; }
.survey-q legend { padding: 0 0.25rem; font-weight: var(--fw-semibold); color: var(--navy); }
.survey-options { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: 0.5rem 0 0.25rem; }
.survey-options label { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.survey-q small { color: var(--text); opacity: 0.8; }
.survey-q textarea { width: 100%; margin-top: 0.5rem; padding: 0.6rem 0.75rem; border: 1px solid #c9d0e0; font: inherit; }
.custom-block { margin-top: var(--gap-grid); }
.survey-options input { width: 1.15rem; height: 1.15rem; accent-color: var(--navy); }
.survey-form > .btn { justify-self: start; }
.thanks-dialog { width: min(42rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; }
.thanks-dialog h3 { margin: 1.5rem 0 0.75rem; font-size: var(--fs-md, 1.05rem); font-weight: var(--fw-semibold); color: var(--navy); }
.thanks-dialog .thanks-buttons { display: flex; flex-wrap: wrap; gap: 0.6rem 1.25rem; }
.thanks-dialog .cal-close { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: flex-start; }
.date-countdown { font-variant-numeric: tabular-nums; white-space: nowrap; }
.extra-section > h2.section-badge + * { margin-top: var(--gap-grid); }
.extra-section > * + * { margin-top: var(--gap-grid); }
.media-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap-grid); align-items: center; }
.media-text .page-figure img { box-shadow: 1rem 1rem 0 var(--blue); }
.media-text--prawo .page-figure { order: 2; }
.media-text--prawo .page-figure img { box-shadow: -1rem 1rem 0 var(--blue); }
.page-cta.btn-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
@media (max-width: 860px) { .media-text { grid-template-columns: 1fr; } .media-text--prawo .page-figure { order: 0; } }
.media-text > .card { align-self: center; }
.media-text { margin-bottom: 1rem; }
.section-extra { display: grid; gap: var(--gap-grid); margin-top: var(--gap-grid); }
.section-extra > * { margin: 0; }

/* === Okno podziękowania (v2) === */
html.dialog-open { overflow: hidden; }
.thanks-dialog { position: fixed; width: min(40rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: hidden auto; border: 0; border-top: 0.375rem solid var(--blue); background: var(--white); color: var(--text); box-shadow: 0 1.75rem 3.5rem rgba(35, 43, 85, 0.35); overscroll-behavior: contain; }
.thanks-dialog[open] { animation: thanks-in 0.25s ease-out; }
.thanks-dialog::backdrop { background: rgba(30, 35, 90, 0.6); backdrop-filter: blur(2px); }
@keyframes thanks-in { from { opacity: 0; transform: translateY(0.75rem) scale(0.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .thanks-dialog[open] { animation: none; } }
.thanks-x { position: absolute; top: 0.75rem; right: 0.75rem; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; background: transparent; color: var(--navy); cursor: pointer; }
.thanks-x svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.thanks-x:hover, .thanks-x:focus-visible { background: var(--sky); }
.thanks-head { padding: 2rem 2rem 1.25rem; text-align: center; background: linear-gradient(180deg, var(--sky) 0%, var(--white) 100%); }
.thanks-icon { display: inline-grid; place-items: center; width: 3.5rem; height: 3.5rem; margin-bottom: 0.875rem; border-radius: 50%; background: var(--gradient-button); box-shadow: 0 0.5rem 1.25rem rgba(5, 160, 215, 0.3); }
.thanks-icon svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: var(--white); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.thanks-dialog .thanks-head h2 { margin: 0 0 0.625rem; font-size: var(--fs-xl); font-weight: var(--fw-semibold); color: var(--navy); }
.thanks-head p { max-width: 30rem; margin: 0 auto; font-size: var(--fs-sm); line-height: 1.5; }
.thanks-dialog .thanks-term { margin: 0 2rem; padding: 0.875rem 1rem; border-left: 0.25rem solid var(--blue); background: var(--sky); font-weight: var(--fw-semibold); color: var(--navy); line-height: 1.45; }
.thanks-group { margin: 0 2rem; padding: 1.25rem 0 0; }
.thanks-group + .thanks-group { margin-top: 1.25rem; border-top: 1px solid var(--line); }
.thanks-dialog .thanks-group h3 { margin: 0 0 0.75rem; font-size: var(--fs-sm); font-weight: var(--fw-semibold); letter-spacing: 0.02em; text-transform: uppercase; color: var(--navy); }
.thanks-cal { display: grid; gap: 0.625rem; }
.thanks-day { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.5rem; }
.thanks-day-label { font-size: var(--fs-xs); line-height: 1.35; }
.thanks-day-label strong { display: block; color: var(--navy); font-size: var(--fs-sm); }
.thanks-share { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.thanks-chip { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; min-height: 2.75rem; padding: 0.5rem 0.875rem; border: 1px solid #b9d9e8; background: var(--white); color: var(--navy); font: inherit; font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-decoration: none; cursor: pointer; transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
.thanks-chip svg { flex: none; width: 1.125rem; height: 1.125rem; fill: none; stroke: var(--blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.thanks-chip:hover { border-color: var(--blue); background: var(--sky); }
.thanks-chip:focus-visible, .thanks-x:focus-visible { outline: 0.1875rem solid var(--blue); outline-offset: 0.125rem; }
.thanks-chip.is-done { border-color: var(--green); color: var(--green-dark); }
.thanks-chip.is-done svg { stroke: var(--green); }
.thanks-chip--wide { width: 100%; margin-top: 0.125rem; }
.thanks-dialog .thanks-actions { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; margin: 1.5rem 0 0; padding: 1rem 2rem 1.25rem; border-top: 1px solid var(--line); background: var(--white); }
.thanks-actions .btn-outline { padding-inline: 0.5rem; }
@media (max-width: 34rem) {
  .thanks-head { padding: 1.75rem 1.25rem 1rem; }
  .thanks-dialog .thanks-term, .thanks-group { margin-inline: 1.25rem; }
  .thanks-day { grid-template-columns: 1fr 1fr; }
  .thanks-day-label { grid-column: 1 / -1; }
  .thanks-dialog .thanks-actions { position: static; padding: 0.875rem 1.25rem 1rem; }
  .thanks-icon { width: 2.75rem; height: 2.75rem; margin-bottom: 0.625rem; }
  .thanks-icon svg { width: 1.375rem; height: 1.375rem; }
  .thanks-dialog .thanks-head h2 { font-size: var(--fs-lg); }
  .thanks-head p { font-size: var(--fs-xs); }
  .thanks-actions .btn-gradient { flex: 1 1 100%; justify-content: center; }
  .thanks-actions .btn-outline { margin: 0 auto; }
}
