:root {
      --primary: #0055cc;
      --primary-dark: #003399;
      --text: #003366;
      --bg: #A1A1A1;
      --card: #ffffff;
      --border: #d7d7d7;
      --muted: #52606d;
      --shadow: 0 8px 28px rgba(0, 0, 0, 0.22);
      --radius: 18px;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      min-height: 100vh;
      background:
        linear-gradient(rgba(0, 51, 102, 0.12), rgba(0, 51, 102, 0.12)),
        var(--bg);
      color: var(--text);
      font-family: Arial, Helvetica, sans-serif;
    }

    .page {
      width: min(1100px, calc(100% - 24px));
      margin: 0 auto;
      padding: 28px 0 42px;
    }

    .hero {
      background: var(--card);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      margin-bottom: 24px;
    }

    .hero-header {
      background: var(--primary);
      color: #ffffff;
      padding: 30px 22px;
      text-align: center;
    }

    .hero-header h1 {
      margin: 0;
      font-size: clamp(1.8rem, 5vw, 3rem);
      line-height: 1.1;
    }

    .hero-header p {
      margin: 10px 0 0;
      font-size: clamp(1rem, 3vw, 1.25rem);
      font-weight: bold;
      opacity: 0.95;
    }

    .hero-body {
      padding: 22px;
      text-align: center;
    }

    .hero-body p {
      margin: 0;
      color: var(--muted);
      font-size: 1.05rem;
      line-height: 1.55;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: 18px;
    }

    .competition-card {
      display: flex;
      flex-direction: column;
      min-height: 180px;
      background: var(--card);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      border: 1px solid rgba(255, 255, 255, 0.55);
      overflow: hidden;
      text-decoration: none;
      color: var(--text);
      transition:
        transform 0.15s ease,
        box-shadow 0.15s ease,
        border-color 0.15s ease;
    }

    .competition-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 34px rgba(0, 0, 0, 0.25);
      border-color: var(--primary);
      text-decoration: none;
      color: var(--text);
    }

    .competition-top {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 18px 18px 10px;
    }

    .competition-icon {
      width: 48px;
      height: 48px;
      border-radius: 999px;
      background: #eef4ff;
      color: var(--primary);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 1.55rem;
      flex: 0 0 auto;
    }

    .competition-title {
      margin: 0;
      font-size: 1.25rem;
      line-height: 1.2;
      color: var(--text);
    }

    .competition-body {
      padding: 0 18px 18px;
      flex: 1;
    }

    .competition-body p {
      margin: 0;
      color: var(--muted);
      line-height: 1.45;
    }

    .competition-footer {
      padding: 14px 18px;
      background: #f4f8ff;
      border-top: 1px solid var(--border);
      color: var(--primary);
      font-weight: bold;
    }

    .footer {
      margin-top: 24px;
      text-align: center;
      color: #ffffff;
      font-weight: bold;
      text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    }

    @media (max-width: 520px) {
      .page {
        width: calc(100% - 16px);
        padding: 14px 0 28px;
      }

      .hero-header {
        padding: 24px 16px;
      }

      .hero-body {
        padding: 18px;
      }

      .grid {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .competition-card {
        min-height: 150px;
      }
    }
