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

      :root {
        --brown-dark: #2c1810;
        --brown: #6b4226;
        --brown-warm: #8b6914;
        --cream: #faf3e0;
        --cream-dark: #f0e6cc;
        --sky: #5b8fb9;
        --sky-light: #8bbbd9;
        --sky-dark: #3a6e94;
        --accent: #d4882b;
        --warm-tan: #e2d3b5;
        --text: #2c1810;
        --text-muted: #5c4a3a;
      }

      html {
        font-size: clamp(13px, 0.5vw + 11px, 16px);
        scroll-behavior: smooth;
      }

      body {
        font-family:
          "Nunito",
          system-ui,
          -apple-system,
          sans-serif;
        color: var(--text);
        background: var(--cream);
        line-height: 1.7;
        font-size: 1rem;
      }

      .container, article {
        max-width: 780px;
        margin: 0 auto;
        padding: 0 1.5rem;
      }

      section {
        padding: 3.5rem 0;
      }

      nav {
        background: var(--brown-dark);
        padding: 0.8rem 0;
        position: sticky;
        top: 0;
        z-index: 100;
      }

      nav .container {
        display: flex;
        gap: 1.5rem;
        justify-content: center;
        flex-wrap: wrap;
      }

      nav a {
        color: var(--cream);
        text-decoration: none;
        font-weight: 600;
        font-size: 1.25rem;
        letter-spacing: 0.02em;
        transition: color 0.2s;
      }

      nav a:hover {
        color: var(--accent);
      }

      .hero {
        background: url("background.png") center bottom / cover no-repeat;
        color: white;
        text-align: center;
        padding: 6rem 0 8rem;
        border-top: none;
        position: relative;
      }

      .hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
          to bottom,
          rgba(58, 110, 148, 0.75) 0%,
          rgba(30, 30, 30, 0.45) 50%,
          rgba(0, 0, 0, 0.3) 100%
        );
      }

      .hero .container {
        position: relative;
        z-index: 1;
      }

      .hero h1 {
        font-size: clamp(2.2rem, 8vw, 5rem);
        font-weight: 800;
        line-height: 1.15;
        margin-bottom: 1.5rem;
        text-shadow:
          0 0 30px rgba(255, 255, 255, 0.4),
          0 2px 4px rgba(0, 0, 0, 0.6),
          0 4px 16px rgba(0, 0, 0, 0.4),
          0 8px 32px rgba(0, 0, 0, 0.2);
        -webkit-text-stroke: 0.5px rgba(255, 255, 255, 0.3);
      }

      .hero .date {
        display: inline-block;
        font-size: clamp(1.1rem, 2.5vw, 1.4rem);
        font-weight: 700;
        margin-bottom: 2.5rem;
        letter-spacing: 0.06em;
        color: white;
        background: rgba(212, 136, 43, 0.7);
        padding: 0.35rem 1.4rem;
        border-radius: 2rem;
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
      }

      .hero .highlights {
        display: grid;
        grid-template-columns: repeat(4, auto);
        justify-content: center;
        gap: 0.8rem 1.2rem;
        max-width: 600px;
        margin: 0 auto;
      }

      .hero .highlight-tag {
        background: rgba(0, 0, 0, 0.4);
        -webkit-backdrop-filter: blur(6px);
        backdrop-filter: blur(6px);
        padding: 0.4rem 1rem;
        border-radius: 2rem;
        font-size: 1rem;
        font-weight: 600;
        border: 1px solid rgba(255, 255, 255, 0.2);
      }

      h2 {
        font-size: 2rem;
        font-weight: 800;
        color: var(--brown-dark);
        margin-bottom: 1.2rem;
      }

      h3 {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--brown-warm);
        margin-top: 1.8rem;
        margin-bottom: 0.6rem;
      }

      p {
        margin-bottom: 1rem;
      }

      p:last-child {
        margin-bottom: 0;
      }

      .info-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        margin-top: 1.5rem;
      }

      .info-card {
        background: white;
        border-radius: 16px;
        padding: 1.5rem 1.3rem 1.2rem;
        box-shadow: 0 4px 16px rgba(44, 24, 16, 0.07);
        position: relative;
        overflow: hidden;
        text-align: center;
      }

      .info-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--sky), var(--accent));
      }

      .info-card strong {
        display: block;
        color: var(--brown);
        font-size: 0.75rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        margin-bottom: 0.4rem;
      }

      .info-card span {
        color: var(--text);
        font-size: 1.25rem;
        font-weight: 700;
      }

      .cta-wrap {
        text-align: center;
        margin-top: 2rem;
      }

      .cta {
        display: inline-block;
        background: var(--accent);
        color: white;
        text-decoration: none;
        font-weight: 700;
        font-size: 1.25rem;
        padding: 0.9rem 2.4rem;
        border-radius: 2rem;
        transition:
          background 0.2s,
          transform 0.15s;
        box-shadow: 0 4px 12px rgba(212, 136, 43, 0.3);
      }

      .cta:hover {
        background: var(--brown-warm);
        transform: translateY(-1px);
      }

      .contact-line {
        margin-top: 1.25rem;
        font-size: 1rem;
        color: var(--text-muted);
      }

      .contact-line a {
        color: var(--brown);
        text-decoration: none;
        font-weight: 600;
        transition: color 0.2s;
      }

      .contact-line a:hover {
        color: var(--accent);
      }

      #prihlaseni {
        background: var(--cream-dark);
      }

      .rules-section {
        background: var(--warm-tan);
      }

      .rules-section p {
        color: var(--text-muted);
        font-size: 1rem;
        line-height: 1.75;
      }

      .rules-section ul {
        list-style: disc;
        padding-left: 1.4rem;
        margin-bottom: 1rem;
      }

      .rules-section li {
        color: var(--text-muted);
        font-size: 1rem;
        line-height: 1.75;
        margin-bottom: 0.5rem;
      }

      footer {
        background: var(--brown-dark);
        color: var(--cream);
        padding: 2.5rem 0;
        text-align: center;
      }

      footer p {
        font-size: 0.75rem;
        opacity: 0.7;
        margin-top: 1rem;
      }

      .footer-links {
        display: flex;
        justify-content: center;
        gap: 2rem;
        flex-wrap: wrap;
      }

      .footer-links a {
        color: var(--cream);
        text-decoration: none;
        font-weight: 600;
        font-size: 1rem;
        transition: color 0.2s;
      }

      .footer-links a:hover {
        color: var(--accent);
      }

      @media (max-width: 600px) {
        section {
          padding: 2.5rem 0;
        }
        .hero {
          padding: 3.5rem 0 3rem;
        }
        .info-grid {
          grid-template-columns: 1fr;
        }
        .hero .highlights {
          grid-template-columns: repeat(2, auto);
        }
      }
