/* Base */
:root {
      --sky-top: #7fd4ff;
      --sky-mid: #9ee3ff;
      --sky-bottom: #e4f7ff;
      --ice: #f5feff;
      --ice-line: #bde8f9;
      --water: #0c3b5a;
      --water-2: #1a5f88;
      --ink: #0f2c40;
      --muted: #4f6978;
      --card: #ffffff;
      --radius: 18px;
      --shadow: 0 16px 36px rgba(5, 35, 58, 0.16);
      --container: 1200px;
    }

    * { box-sizing: border-box; }

    html, body { margin: 0; padding: 0; }

    body {
      font-family: 'Manrope', sans-serif;
      color: var(--ink);
      background: linear-gradient(180deg, #eef9ff 0%, #f9fdff 100%);
      line-height: 1.6;
    }

    .container {
      width: min(var(--container), calc(100% - 32px));
      margin: 0 auto;
    }

    .section { padding: 72px 0; }

    .section-title {
      margin: 0 0 12px;
      font-family: 'Russo One', sans-serif;
      font-size: clamp(1.45rem, 2.1vw, 2.2rem);
      color: #0d3650;
    }

    .section-lead {
      margin: 0;
      max-width: 780px;
      color: var(--muted);
      font-size: 1.03rem;
    }
    /* Hero */
    .hero {
      position: relative;
      min-height: 87vh;
      overflow: hidden;
      background:
        radial-gradient(circle at 72% 16%, rgba(255, 255, 255, 0.42) 0%, transparent 24%),
        radial-gradient(circle at 22% 32%, rgba(215, 240, 255, 0.4) 0%, transparent 22%),
        linear-gradient(180deg, #0a2e41 0%, #164d6d 8%, #5eaed6 46%, #d5f2ff 100%);
      padding-bottom: 24px;
    }

    .hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(5, 28, 44, 0.46) 0%, rgba(5, 28, 44, 0.34) 48%, rgba(5, 28, 44, 0.22) 100%),
        url('/images/bear_hero.png') 58% 56% / cover no-repeat;
      opacity: 0.88;
      pointer-events: none;
      z-index: 1;
    }
    /* Hero top bar */
    .hero-topline {
      position: relative;
      z-index: 5;
      border-bottom: 1px solid rgba(165, 225, 249, 0.2);
      background: rgba(7, 31, 46, 0.56);
      backdrop-filter: blur(3px);
    }

    .topbar {
      min-height: 58px;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 20px;
      position: relative;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      margin-left: auto;
    }

    .brand-logo {
      display: block;
      width: auto;
      height: 60px;
      object-fit: contain;
    }

    .hero-nav {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      font-size: 0.78rem;
      text-transform: uppercase;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: rgba(228, 248, 255, 0.9);
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      white-space: nowrap;
    }

    .hero-nav span { opacity: 0.86; }

    .hero-nav a {
      color: inherit;
      text-decoration: none;
      opacity: 0.86;
      transition: opacity .2s ease;
    }

    .hero-nav a:hover { opacity: 1; }
    /* Hero content alignment */
    .ice-stage {
      position: relative;
      padding: clamp(170px, 16vh, 230px) 0 28px;
      margin-bottom: 0;
      z-index: 2;
      display: flex;
      justify-content: center;
    }

    .hero-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 22px;
      align-items: center;
      max-width: 1100px;
      margin: 0 auto;
      padding: 0;
      text-align: center;
      background: transparent;
      border: 0;
      backdrop-filter: none;
    }

    .hero h1 {
      margin: 0 0 18px;
      font-family: 'Russo One', sans-serif;
      font-size: clamp(1.9rem, 3.7vw, 4.3rem);
      line-height: 2.02;
      color: #f0fbff;
      text-transform: uppercase;
      text-shadow: 0 6px 18px rgba(6, 34, 54, 0.3);
      white-space: nowrap;
      letter-spacing: 0.085em;
    }

    .hero-text {
      margin: 0 0 18px;
      color: rgba(232, 249, 255, 0.93);
      max-width: 640px;
      font-size: 1.02rem;
      margin-inline: auto;
    }

    .hero-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: center;
    }
    /* Buttons */
    .btn {
      border: 0;
      border-radius: 12px;
      padding: 11px 16px;
      font: inherit;
      font-weight: 800;
      cursor: pointer;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .btn:hover { transform: translateY(-2px); }

    .btn-primary {
      color: #fff;
      background: #0b3651;
      box-shadow: 0 10px 22px rgba(5, 29, 45, .4);
    }

    .btn-secondary {
      color: #08334d;
      background: rgba(241, 251, 255, 0.93);
      border: 1px solid rgba(136, 202, 231, 0.68);
    }
    /* Quiz section */
    .crack-section {
      position: relative;
      margin-top: -26px;
      padding-top: 98px;
      background: linear-gradient(180deg, #1d638f 0%, var(--water) 28%, #0d2f46 100%);
      color: #eaf7ff;
      overflow: hidden;
    }

    .crack-section::before {
      content: '';
      position: absolute;
      top: -54px;
      left: 0;
      right: 0;
      height: 78px;
      background: #edf6fc;
      clip-path: polygon(0 64%, 8% 70%, 16% 63%, 24% 69%, 32% 62%, 40% 68%, 48% 63%, 56% 69%, 64% 62%, 72% 68%, 80% 63%, 88% 70%, 96% 62%, 100% 65%, 100% 0, 0 0);
      box-shadow: 0 -8px 18px rgba(8, 39, 58, 0.08);
    }

    .crack-section .section-title,
    .crack-section .section-lead { color: #eaf7ff; }

    .quiz-wrap {
      margin-top: 26px;
      display: block;
    }

    .quiz-card,
    .feature-card,
    .creator-card {
      background: var(--card);
      color: var(--ink);
      border-radius: var(--radius);
      border: 1px solid rgba(13, 54, 80, .12);
      box-shadow: var(--shadow);
      padding: 22px;
    }

    .quiz-meta {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 10px;
      font-size: 0.88rem;
      color: #28536b;
      font-weight: 700;
    }

    .routes-screen[hidden],
    .route-intro[hidden],
    .quiz-flow[hidden],
    .route-summary[hidden],
    .quiz-complete[hidden] {
      display: none !important;
    }

    .routes-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 18px;
      margin-top: 8px;
    }

    .route-card {
      border: 1px solid rgba(17, 73, 105, .18);
      border-radius: 14px;
      background: #f7fcff;
      overflow: hidden;
      text-align: left;
      cursor: pointer;
      padding: 0;
    }

    .route-card:disabled {
      cursor: not-allowed;
      opacity: 0.58;
      filter: grayscale(0.2);
    }

    .route-card img {
      width: 100%;
      height: clamp(220px, 24vw, 300px);
      object-fit: cover;
      object-position: center;
      display: block;
    }

    .route-card-body {
      padding: 12px;
    }

    .route-card-title {
      margin: 0 0 6px;
      font-size: 1rem;
      color: #123e5b;
      font-weight: 800;
    }

    .route-card-meta {
      margin: 0;
      color: #547283;
      font-size: 0.86rem;
    }

    .route-intro-title {
      margin: 0 0 10px;
      color: #123e5b;
      font-size: 1.15rem;
      font-weight: 800;
    }

    .route-intro video {
      width: 100%;
      max-height: 440px;
      border-radius: 12px;
      border: 1px solid rgba(17, 73, 105, .2);
      background: #081f2f;
    }

    .route-badge {
      display: inline-flex;
      align-items: center;
      border: 1px solid rgba(17, 73, 105, .2);
      border-radius: 999px;
      padding: 4px 10px;
      background: #eef9ff;
    }

    .quiz-stage {
      margin: 0 0 8px;
      font-size: 1rem;
      color: #1d4d68;
      font-weight: 900;
      text-align: center;
    }

    .quiz-progress {
      background: #d8ecf7;
      border-radius: 999px;
      height: 10px;
      margin-bottom: 16px;
      overflow: hidden;
    }

    .quiz-progress-bar {
      width: 0;
      height: 100%;
      background: linear-gradient(90deg, #53d6e9 0%, #1ea9d2 100%);
      transition: width .25s ease;
    }

    .quiz-question { margin: 0 0 12px; color: #123e5b; font-size: 1.1rem; }
    .quiz-options { display: grid; gap: 10px; }

    .quiz-option {
      width: 100%;
      text-align: left;
      padding: 11px 12px;
      border-radius: 11px;
      border: 1px solid rgba(17, 73, 105, .2);
      background: #f8fdff;
      color: #123e5b;
      font: inherit;
      font-weight: 700;
      cursor: pointer;
    }

    .quiz-option:hover { background: #ecf8ff; border-color: #33a3d0; }

    .quiz-option.is-correct {
      border-color: #1c9b63;
      background: #e9fbf2;
    }

    .quiz-option.is-wrong {
      border-color: #c55c5c;
      background: #fff0f0;
    }

    .quiz-controls {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 14px;
    }

    .answer-feedback {
      margin-top: 14px;
      padding: 12px;
      border-radius: 11px;
      border: 1px solid rgba(17, 73, 105, .15);
      background: #f2f9ff;
      color: #1b4a65;
      font-size: 0.95rem;
    }

    .route-summary {
      margin-top: 20px;
      padding-top: 18px;
      border-top: 1px solid rgba(17, 73, 105, .14);
    }

    #routeSummary .quiz-controls {
      display: grid;
      grid-template-columns: auto auto 1fr auto;
      align-items: center;
      column-gap: 8px;
      row-gap: 8px;
      width: 100%;
    }

    #routeSummaryToRoutes {
      grid-column: 1;
      grid-row: 1;
    }

    #routeSummaryNextRoute {
      grid-column: 2;
      grid-row: 1;
    }

    #routeSummaryRetryRoute {
      grid-column: 4;
      grid-row: 1;
      justify-self: end;
      margin-left: 0;
      min-width: 225px;
      justify-content: center;
      white-space: nowrap;
    }

    .quiz-complete {
      margin-top: 22px;
      border-top: 1px solid rgba(17, 73, 105, .14);
      padding-top: 20px;
    }

    .result-title { margin: 0 0 8px; font-family: 'Russo One', sans-serif; font-weight: 400; color: #0d3650; }
    .result-text { margin: 0 0 16px; color: var(--muted); }

    .form-grid { display: grid; gap: 10px; }
    .form-field { display: grid; gap: 5px; }
    .form-field label { font-size: .85rem; font-weight: 800; color: #355969; }

    .form-field input,
    .form-field textarea {
      width: 100%;
      border-radius: 10px;
      border: 1px solid rgba(16, 71, 101, .2);
      padding: 9px 11px;
      font: inherit;
      background: #fbfeff;
    }

    .form-field textarea { min-height: 84px; resize: vertical; }

    .form-note { margin: 8px 0 0; font-size: .85rem; color: #617783; }
    .form-attention {
      margin-top: 0;
      font-size: 1.05rem;
      font-weight: 800;
      color: #1d4d68;
    }
    .success { min-height: 19px; margin-top: 6px; color: #188759; font-weight: 700; font-size: .9rem; }
    .cert-download { margin-top: 10px; }
    .cert-download a { color: #0f4f74; font-weight: 800; }

    .certificate-preview {
      margin-top: 14px;
      width: 100%;
      max-width: 520px;
      border-radius: 12px;
      border: 1px solid rgba(17, 73, 105, .16);
      box-shadow: 0 10px 20px rgba(9, 45, 66, .12);
      display: none;
    }

    .certificate-preview.show { display: block; }
    /* Light sections */
    .light-section { background: #f5fbff; }

    /* Transition from hero to the first light section */
    #about {
      position: relative;
      margin-top: -20px;
      padding-top: 98px;
      padding-bottom: 52px;
      z-index: 3;
      background: linear-gradient(180deg, #edf6fc 0%, #f5fbff 100%);
    }

    #about::before {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: -56px;
      height: 66px;
      background: #edf6fc;
      clip-path: polygon(0 70%, 8% 52%, 17% 68%, 27% 50%, 38% 69%, 49% 51%, 60% 68%, 71% 50%, 82% 69%, 91% 52%, 100% 68%, 100% 100%, 0 100%);
      box-shadow: 0 -8px 22px rgba(10, 42, 64, 0.12);
      pointer-events: none;
    }

    .features-grid,
    .creator-grid {
      margin-top: 24px;
      display: grid;
      gap: 14px;
      grid-template-columns: repeat(3, 1fr);
    }

    #routes {
      position: relative;
      background:
        linear-gradient(180deg, #eef6fc 0%, #f3f9fe 42%, #f5fbff 100%);
    }

    #routes .section-lead {
      max-width: 100%;
    }

    #routes::before {
      content: none;
    }

    .routes-timeline {
      margin-top: 24px;
      position: relative;
    }

    .routes-timeline-line,
    .routes-timeline-progress {
      position: absolute;
      left: 50%;
      top: 0;
      transform: translateX(-50%);
      width: 4px;
      border-radius: 999px;
    }

    .routes-timeline-line {
      height: 100%;
      background: linear-gradient(180deg, rgba(158, 211, 239, 0.95) 0%, rgba(74, 142, 179, 0.92) 100%);
    }

    .routes-timeline-progress {
      height: 0%;
      z-index: 2;
      background: linear-gradient(180deg, #7dd4f6 0%, #3caed7 58%, #1d7ca8 100%);
      transition: height .14s linear;
    }

    .route-timeline-item {
      position: relative;
      z-index: 3;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 72px;
      align-items: center;
      margin-bottom: 56px;
      opacity: 0;
      transform: translateY(26px);
      transition: opacity .6s ease, transform .6s ease;
    }

    .route-timeline-item:last-child {
      margin-bottom: 0;
    }

    .route-timeline-item--reverse .route-timeline-media {
      order: 2;
    }

    .route-timeline-item--reverse .route-timeline-content {
      order: 1;
    }

    .route-timeline-media {
      border-radius: 18px;
      overflow: hidden;
      box-shadow: var(--shadow);
      border: 1px solid rgba(12, 57, 85, 0.14);
      background: #dfeff7;
      min-height: 290px;
      opacity: 0;
      transform: translateX(-26px);
      transition: opacity .6s ease, transform .6s ease;
    }

    .route-timeline-media img {
      width: 100%;
      height: 100%;
      min-height: 290px;
      object-fit: cover;
      display: block;
    }

    .route-timeline-content {
      background: var(--card);
      color: var(--ink);
      border-radius: var(--radius);
      border: 1px solid rgba(13, 54, 80, .12);
      box-shadow: var(--shadow);
      padding: 30px 26px;
      min-height: 290px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      opacity: 0;
      transform: translateX(26px);
      transition: opacity .6s ease .08s, transform .6s ease .08s;
    }

    .route-timeline-dot {
      position: absolute;
      left: 50%;
      top: 50%;
      margin-top: -11px;
      transform: translateX(-50%);
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: #68c7ec;
      border: 4px solid #f5fbff;
      box-shadow: 0 4px 14px rgba(17, 73, 105, 0.22);
      z-index: 4;
      opacity: 0;
      scale: .72;
      transition: opacity .45s ease .18s, scale .45s ease .18s;
    }

    .route-timeline-item.route-in-view {
      opacity: 1;
      transform: none;
    }

    .route-timeline-item.route-in-view .route-timeline-media,
    .route-timeline-item.route-in-view .route-timeline-content {
      opacity: 1;
      transform: none;
    }

    .route-timeline-item.route-in-view .route-timeline-dot {
      opacity: 1;
      scale: 1;
    }

    .route-timeline-item--reverse .route-timeline-media {
      transform: translateX(26px);
    }

    .route-timeline-item--reverse .route-timeline-content {
      transform: translateX(-26px);
    }

    .route-overview-title {
      margin: 0 0 14px;
      color: #0f3f5c;
      font-size: 1.22rem;
      line-height: 1.34;
    }

    .route-timeline-content p {
      margin: 0;
      color: #597282;
      font-size: 1rem;
      line-height: 1.72;
    }

    #team {
      position: relative;
      margin-top: -14px;
      padding-top: 76px;
      overflow: hidden;
      background:
        linear-gradient(90deg, rgba(245, 251, 255, 0.9) 0%, rgba(245, 251, 255, 0.78) 45%, rgba(245, 251, 255, 0.68) 100%),
        url('/images/bear_2.webp') center center / cover no-repeat;
    }

    #team::before {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      height: 86px;
      background: linear-gradient(180deg, rgba(233, 243, 249, 0.86) 0%, rgba(233, 243, 249, 0) 100%);
      pointer-events: none;
    }

    .feature-card h3,
    .creator-name { margin: 0 0 8px; color: #0f3f5c; }
    .feature-card p,
    .creator-card p { margin: 0; color: #597282; }
    .creator-role { margin: 0 0 8px; color: #197fb1; font-weight: 700; font-size: .9rem; }

    .gallery-grid {
      margin-top: 24px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
      perspective: 900px;
    }

    #gallery {
      position: relative;
      margin-top: -18px;
      padding-top: 104px;
      background:
        linear-gradient(
          180deg,
          rgba(6, 34, 55, 0.72) 0%,
          rgba(12, 64, 96, 0.48) 28%,
          rgba(202, 222, 234, 0.74) 70%,
          rgba(241, 248, 252, 0.97) 100%
        ),
        url('/images/5276451049688469859_.webp') center top / cover no-repeat;
    }

    #gallery::before {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      height: 92px;
      background: linear-gradient(180deg, rgba(13, 47, 70, 0.98) 0%, rgba(10, 42, 64, 0.64) 48%, rgba(10, 42, 64, 0) 100%);
      clip-path: none;
      pointer-events: none;
    }

    #gallery::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 92px;
      background: linear-gradient(180deg, rgba(236, 245, 250, 0) 0%, rgba(236, 245, 250, 0.74) 72%, rgba(236, 245, 250, 0.92) 100%);
      pointer-events: none;
    }

    #gallery .section-title { color: #eef8ff; }
    #gallery .section-lead {
      color: rgba(233, 246, 255, 0.92);
      max-width: 100%;
    }

    .gallery-item {
      margin: 0;
      min-height: 220px;
      border-radius: 14px;
      overflow: hidden;
      position: relative;
      box-shadow: var(--shadow);
      border: 1px solid rgba(190, 227, 246, .28);
      cursor: pointer;
      transform-origin: center 92%;
      transition: transform .36s ease, box-shadow .36s ease, border-color .36s ease;
      will-change: transform;
    }

    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .42s ease, filter .42s ease;
    }

    .gallery-item span {
      position: absolute;
      left: 8px;
      bottom: 8px;
      font-size: .78rem;
      color: #fff;
      background: rgba(8, 48, 74, .84);
      border-radius: 999px;
      padding: 4px 8px;
    }

    .gallery-item:nth-child(4n + 1) { transform: rotate(-2.2deg) translateY(4px); }
    .gallery-item:nth-child(4n + 2) { transform: rotate(1.8deg) translateY(-1px); }
    .gallery-item:nth-child(4n + 3) { transform: rotate(-1.4deg) translateY(5px); }
    .gallery-item:nth-child(4n) { transform: rotate(2.4deg) translateY(1px); }

    .gallery-item:hover {
      transform: rotate(0deg) translateY(-10px) scale(1.02);
      box-shadow: 0 18px 36px rgba(6, 37, 58, 0.32);
      border-color: rgba(228, 246, 255, 0.66);
      z-index: 2;
    }

    .gallery-item:hover img {
      transform: scale(1.06);
      filter: saturate(1.06) contrast(1.04);
    }

    .body-modal-open {
      overflow: hidden;
      touch-action: none;
    }

    .gallery-modal[hidden] {
      display: none !important;
    }

    .gallery-modal {
      position: fixed;
      inset: 0;
      z-index: 1200;
      display: grid;
      place-items: center;
      padding: 20px;
    }

    .gallery-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(5, 29, 44, 0.78);
      backdrop-filter: blur(4px);
    }

    .gallery-modal-dialog {
      position: relative;
      z-index: 2;
      width: min(980px, calc(100vw - 32px));
      border-radius: 16px;
      border: 1px solid rgba(155, 215, 241, 0.34);
      background: linear-gradient(180deg, rgba(9, 46, 70, 0.92) 0%, rgba(13, 56, 83, 0.9) 100%);
      box-shadow: 0 22px 54px rgba(4, 22, 34, 0.52);
      padding: 18px 62px;
    }

    .gallery-modal-figure {
      margin: 0;
    }

    .gallery-modal-figure img {
      width: 100%;
      max-height: min(72vh, 720px);
      object-fit: contain;
      display: block;
      border-radius: 12px;
      border: 1px solid rgba(192, 231, 248, 0.28);
      background: rgba(3, 25, 39, 0.46);
    }

    .gallery-modal-figure figcaption {
      margin-top: 10px;
      color: #e7f7ff;
      font-weight: 700;
      text-align: center;
      letter-spacing: 0.02em;
    }

    .gallery-modal-close,
    .gallery-modal-nav {
      border: 1px solid rgba(168, 218, 241, 0.5);
      border-radius: 999px;
      background: rgba(12, 66, 99, 0.9);
      color: #ecf9ff;
      font: inherit;
      font-weight: 800;
      cursor: pointer;
      transition: transform .22s ease, background .22s ease, border-color .22s ease;
    }

    .gallery-modal-close:hover,
    .gallery-modal-nav:hover {
      transform: translateY(-1px);
      background: rgba(22, 110, 159, 0.94);
      border-color: rgba(208, 239, 255, 0.78);
    }

    .gallery-modal-close {
      position: absolute;
      right: 12px;
      top: 12px;
      width: 38px;
      height: 38px;
      font-size: 1.38rem;
      line-height: 1;
    }

    .gallery-modal-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 44px;
      height: 44px;
      font-size: 1.6rem;
      line-height: 1;
    }

    .gallery-modal-nav:hover {
      transform: translateY(-50%) scale(1.04);
    }

    .gallery-modal-nav--prev { left: 10px; }
    .gallery-modal-nav--next { right: 10px; }

    /* Footer */
    footer {
      background: #0c3149;
      color: #d9eaf4;
      padding: 24px 0;
      font-size: .9rem;
    }

    .footer-row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
    }
    /* Reveal animation */
    [data-reveal] {
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .55s ease, transform .55s ease;
    }

    [data-reveal].is-visible {
      opacity: 1;
      transform: none;
    }
    /* Responsive */
    @media (max-width: 980px) {

      .hero-grid,
      .quiz-wrap { grid-template-columns: 1fr; }

      .features-grid,
      .creator-grid { grid-template-columns: 1fr 1fr; }
      .route-timeline-item { gap: 44px; margin-bottom: 42px; }
      .route-timeline-content,
      .route-timeline-media { min-height: 250px; }
      .route-timeline-content { padding: 24px 20px; }
      .route-overview-title { font-size: 1.14rem; }

      .gallery-grid { grid-template-columns: repeat(2, 1fr); }
      .gallery-item:nth-child(odd) { transform: rotate(-1.2deg) translateY(2px); }
      .gallery-item:nth-child(even) { transform: rotate(1.2deg) translateY(0); }
      .gallery-modal-dialog {
        width: min(860px, calc(100vw - 24px));
        padding: 16px 56px;
      }
      #gallery {
        margin-top: -12px;
        padding-top: 86px;
      }
      #gallery::before {
        height: 72px;
      }

      #team {
        margin-top: -10px;
        padding-top: 68px;
        background: #f5fbff;
      }

      #team::before {
        top: 0;
        height: 44px;
        background: linear-gradient(180deg, rgba(233, 243, 249, 0.8) 0%, rgba(233, 243, 249, 0) 100%);
      }

      /* Hero */
      .hero { min-height: auto; padding-bottom: 44px; }
      .hero::after { opacity: 0.78; }
      .ice-stage { padding: 128px 0 20px; }
      .hero-grid { padding: 0; }
      .hero h1 { white-space: normal; }
      .hero-nav { font-size: 0.72rem; gap: 10px; }
      .brand-logo { height: 60px; }

      /* Hero -> About transition */
      #about {
        margin-top: -14px;
        padding-top: 78px;
        padding-bottom: 44px;
      }

      #about::before {
        top: -42px;
        height: 50px;
      }

    }

    @media (max-width: 620px) {
      #routeSummary .quiz-controls {
        display: flex;
        flex-wrap: wrap;
      }

      #routeSummaryRetryRoute {
        margin-left: auto;
      }

      #routeSummary .quiz-controls .btn {
        width: auto;
      }

      .section { padding: 58px 0; }

      .features-grid,
      .creator-grid,
      .gallery-grid { grid-template-columns: 1fr; }
      .gallery-item:nth-child(n) { transform: none; }
      .gallery-modal {
        padding: 10px;
      }
      .gallery-modal-dialog {
        width: calc(100vw - 18px);
        padding: 12px 40px;
      }
      .gallery-modal-close {
        right: 8px;
        top: 8px;
        width: 34px;
        height: 34px;
      }
      .gallery-modal-nav {
        width: 36px;
        height: 36px;
        font-size: 1.3rem;
      }
      .gallery-modal-nav--prev { left: 4px; }
      .gallery-modal-nav--next { right: 4px; }
      #gallery {
        margin-top: -8px;
        padding-top: 76px;
      }
      #gallery::before {
        height: 56px;
      }
      #gallery::after {
        height: 64px;
      }

      #team {
        margin-top: -8px;
        padding-top: 60px;
      }

      .routes-timeline-line,
      .routes-timeline-progress {
        left: 16px;
        transform: none;
      }

      .route-timeline-item,
      .route-timeline-item--reverse {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-bottom: 26px;
      }

      .route-timeline-item .route-timeline-media,
      .route-timeline-item--reverse .route-timeline-media,
      .route-timeline-item .route-timeline-content,
      .route-timeline-item--reverse .route-timeline-content {
        order: initial;
      }

      .route-timeline-media,
      .route-timeline-content {
        min-height: auto;
      }

      .route-timeline-content {
        padding: 20px 16px;
        margin-left: 34px;
      }

      .route-timeline-media {
        margin-left: 34px;
      }

      .route-timeline-dot {
        left: 16px;
        transform: translateX(-50%);
      }

      .route-overview-title {
        font-size: 1.08rem;
      }

      .hero-actions .btn,
      .quiz-controls .btn { width: 100%; }

      .hero-nav { display: none; }
      .topbar { justify-content: center; }
      .brand {
        margin-left: 0;
        justify-content: center;
      }
      .routes-grid { grid-template-columns: 1fr; }
      .route-card img { height: 240px; }
    }

