      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      body {
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
          sans-serif;
        line-height: 1.6;
        color: #262322;
        background-color: #f6c945;
      }
      /* アンカー/スクロール移動時に見出しが固定ヘッダー(約4rem)の下へ潜らないよう余白を確保 */
      section[id] {
        scroll-margin-top: 5rem;
      }
      /* セクション見出しの下に黒のアクセントバー（黄・グレー背景どちらでも視認できる黒を採用） */
      #rules-heading::after,
      #categories-heading::after,
      #prizes-heading::after,
      #workshop-heading::after,
      #judge-heading::after {
        content: "";
        display: block;
        width: 4rem;
        height: 0.375rem;
        background: #262322;
        border-radius: 9999px;
        margin: 1rem auto 0;
      }
      .container {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 1rem;
      }
      .section {
        padding: 4rem 0;
      }
      .section-gray {
        background-color: #f3f4f6;
      }

      .grid {
        display: grid;
        gap: 2rem;
      }
      .grid-2 {
        grid-template-columns: repeat(2, 1fr);
      }
      .grid-3 {
        grid-template-columns: repeat(3, 1fr);
      }

      .text-center {
        text-align: center;
      }
      .text-xl {
        font-size: 1.25rem;
      }
      .text-2xl {
        font-size: 1.5rem;
      }
      .text-3xl {
        font-size: 1.875rem;
      }
      .text-4xl {
        font-size: 2.25rem;
      }
      .font-bold {
        font-weight: 700;
      }
      .font-black {
        font-weight: 900;
      }

      .mb-4 {
        margin-bottom: 1rem;
      }
      .mb-6 {
        margin-bottom: 1.5rem;
      }
      .mb-8 {
        margin-bottom: 2rem;
      }
      .mb-12 {
        margin-bottom: 3rem;
      }
      .mb-16 {
        margin-bottom: 4rem;
      }

      .award-card {
        background: white;
        border: 2px solid #262322;
        border-radius: 1rem;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        overflow: hidden;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .award-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
      }
      .award-card img {
        width: 100%;
        height: 12rem;
        object-fit: cover;
      }
      .award-card-content {
        padding: 1rem;
      }
      .award-category {
        font-size: 0.75rem;
        color: #6b7280;
        margin-bottom: 0.25rem;
      }
      .award-title {
        font-weight: 700;
        font-size: 1.125rem;
        color: #262322;
        margin-bottom: 0.25rem;
      }
      .award-author {
        font-size: 0.875rem;
        color: #6b7280;
      }

      .grand-prize {
        border: 4px solid #f6c945;
        background: white;
        border-radius: 1.5rem;
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
        overflow: hidden;
        margin-bottom: 4rem;
      }
      .grand-prize-header {
        background: linear-gradient(135deg, #f6c945 0%, #e9b93c 100%);
        color: #262322;
        padding: 1.5rem;
        text-align: center;
      }
      .grand-prize-content {
        padding: 2rem;
      }
      .prize-images {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
      }
      .prize-image-main {
        width: 100%;
        height: auto;
        border-radius: 1rem;
        border: 2px solid #262322;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        margin-bottom: 1rem;
      }
      .prize-image-small {
        width: 100%;
        height: auto;
        border-radius: 0.75rem;
        border: 1px solid #262322;
      }
      .judge-comment {
        background-color: #fef3c7;
        border: 2px solid #f6c945;
        border-radius: 1rem;
        padding: 1.5rem;
      }

      .excellence-award {
        border: 2px solid #262322;
        background: white;
        border-radius: 1.5rem;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        overflow: hidden;
      }
      .excellence-header {
        background-color: #262322;
        color: #f6c945;
        padding: 1rem;
        text-align: center;
        font-weight: 900;
        font-size: 1.25rem;
      }
      .excellence-content {
        padding: 1.5rem;
      }
      .excellence-image-main {
        width: 100%;
        height: auto;
        border-radius: 1rem;
        border: 1px solid #262322;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        margin-bottom: 1.5rem;
      }
      .excellence-images {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        margin-bottom: 1.5rem;
      }
      .excellence-image-small {
        width: 100%;
        height: 12rem;
        object-fit: cover;
        border-radius: 0.75rem;
        border: 1px solid #262322;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
      }
      .excellence-comment {
        background-color: #f9fafb;
        border: 1px solid #d1d5db;
        border-radius: 0.75rem;
        padding: 1rem;
      }

      @media (min-width: 768px) {
        .grand-prize-content {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 2rem;
          align-items: start;
        }
      }

      @media (max-width: 768px) {
        .grid-2,
        .grid-3 {
          grid-template-columns: 1fr;
        }
        .text-4xl {
          font-size: 1.875rem;
        }
        .text-3xl {
          font-size: 1.5rem;
        }
      }
