  :root {
    --font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;

    --text-high: rgba(0, 0, 0, 0.87);
    --text-mid: rgba(0, 0, 0, 0.62);
    --text-low: rgba(0, 0, 0, 0.54);
    --text-disabled: rgba(0, 0, 0, 0.26);
    --text-inverse: #ffffff;

    --accent: #0c00c5;
    --accent-hover: #11038c;
    --accent-press: #0c0066;
    --accent-soft: #ebefff;
    --accent-mid: #cfd7ff;
    --link: #4164e0;
    --cyan: #597eff;
    --teal: #00b0b2;
    --green: #69d582;
    --yellow: #ffdd29;
    --pink: #ff6e6e;
    --red: #ff1e23;
    --purple: #bb97ff;
    --gold: #d4af37;
    --silver: #b0b7c3;
    --bronze: #b87333;

    --surface: #ffffff;
    --surface-soft: #f8f8f8;
    --surface-mid: #efefef;
    --surface-strong: #e0e0e0;
    --surface-inverse: #0a0a0c;

    --border-low: #e0e0e0;
    --border-mid: #d9d9d9;
    --border-high: #9e9e9e;
    --border-inverse: rgba(255, 255, 255, 0.16);

    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 12px;
    --radius-xl: 20px;
    --radius-2xl: 28px;
    --radius-full: 9999px;

    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
    --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
    --shadow-md: 0 6px 14px -4px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 20px 40px -12px rgba(12, 0, 197, 0.18), 0 8px 16px -8px rgba(0, 0, 0, 0.08);
    --shadow-xl: 0 28px 60px -18px rgba(12, 0, 197, 0.4), 0 12px 24px -8px rgba(0, 0, 0, 0.12);

    --container-max: 1200px;
  }

  *, *::before, *::after { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; scroll-behavior: smooth; }
  body {
    font-family: var(--font-family);
    color: var(--text-high);
    background-color: var(--surface);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "palt";
  }
  a { color: inherit; text-decoration: none; }
  img, svg { display: block; max-width: 100%; }
  button { font-family: inherit; }

  /* ------- layout helpers ------- */
  .container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 24px;
  }
  .section { padding: 96px 0; }
  .section-tight { padding: 64px 0; }
  .section--soft { background: var(--surface-soft); }
  .section--accent-soft { background: linear-gradient(180deg, #f4f5fb 0%, #ebefff 100%); }
  .section--dark {
    background: var(--surface-inverse);
    color: #fff;
  }
  .section--dark .section-title { color: #fff; }
  .section--dark .section-lead { color: rgba(255,255,255,0.72); }
  .section--dark .eyebrow { color: var(--cyan); }
  .section--dark .eyebrow::before { background: var(--cyan); }

  .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 16px;
  }
  .eyebrow::before {
    content: "";
    width: 24px;
    height: 1px;
    background: var(--accent);
    display: inline-block;
  }

  .section-title {
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
    color: var(--text-high);
  }
  .section-lead {
    font-size: 16px;
    line-height: 1.8;
    color: var(--text-mid);
    max-width: none;
    margin: 0 0 48px;
  }
  .about-title-br { display: inline; }

  /* ------- nav ------- */
  .nav {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(255, 255, 255, 0.78);
    border-bottom: 1px solid var(--border-low);
    transition: transform 0.3s ease;
  }
  .nav.is-hidden { transform: translateY(-100%); }
  .nav__inner {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .nav__brand {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.02em;
    color: var(--text-high);
  }
  .nav__brand-logo {
    height: 22px;
    width: auto;
    display: block;
  }
  .nav__brand-divider {
    width: 1px;
    height: 26px;
    background: var(--border-mid);
  }
  .nav__brand-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    letter-spacing: 0.04em;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  }
  .nav__brand-text strong {
    display: block;
    line-height: 1;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-high);
  }
  .nav__brand-text small {
    font-size: 12px;
    color: var(--text-low);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: block;
    line-height: 1;
  }
  .nav__links { display: flex; gap: 24px; }
  .nav__link {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-low);
    line-height: 1.4;
    transition: color 0.15s ease;
  }
  .nav__link:hover { color: var(--accent); }
  .nav__cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 154px;
    height: 44px;
    background: var(--accent);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.0125em;
    padding: 8px 24px;
    border-radius: 9999px;
    transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
  }
  .nav__cta svg { width: 24px; height: 24px; flex-shrink: 0; }
  .nav__menu {
    display: none;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: 0;
    color: var(--text-high);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .nav__menu svg { width: 24px; height: 24px; display: block; fill: currentColor; }
  .nav__menu .nav__menu-icon--close { display: none; }
  .nav__menu[aria-expanded="true"] .nav__menu-icon--bars { display: none; }
  .nav__menu[aria-expanded="true"] .nav__menu-icon--close { display: block; }

  /* ------- Mobile drawer (menu open) ------- */
  .nav__drawer {
    display: none;
    position: fixed;
    inset: 48px 0 0 0;
    z-index: 49;
    border-bottom: 1px solid var(--border-mid);
    overflow: hidden;
    overscroll-behavior: contain;
    touch-action: none;
    isolation: isolate;
  }
  .nav__drawer::before {
    content: '';
    position: fixed;
    inset: 48px 0 0 0;
    background: url('../images/menu-bg_sp.jpg') center top / cover no-repeat;
    filter: blur(12px);
    transform: scale(1.1);
    transform-origin: center top;
    z-index: -2;
    pointer-events: none;
  }
  .nav__drawer::after {
    content: '';
    position: fixed;
    inset: 48px 0 0 0;
    background: rgba(255, 255, 255, 0.78);
    z-index: -1;
    pointer-events: none;
  }
  .nav__drawer.is-open { display: block; }
  .nav__drawer-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 40px 16px 32px;
    box-sizing: border-box;
  }
  .nav__drawer-links {
    list-style: none;
    margin: 0;
    padding: 0 8px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex: 1 0 auto;
  }
  .nav__drawer-links a {
    display: block;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    color: var(--text-low);
    text-decoration: none;
    white-space: nowrap;
  }
  .nav__drawer-bottom {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0 8px;
  }
  .nav__drawer-deadline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    border-radius: 20px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(247,248,255,0.2) 100%);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    box-shadow:
      inset 0 1px 0.5px rgba(255, 255, 255, 0.9),
      inset 0 -1px 0.5px rgba(255, 255, 255, 0.4),
      inset 0 0 0 1px rgba(255, 255, 255, 0.35),
      inset 0 0 12px 0 rgba(242, 242, 242, 0.6);
  }
  .nav__drawer-deadline-row {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .nav__drawer-deadline-text {
    flex: 1 0 0;
    min-width: 0;
    font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: var(--text-high);
    font-weight: 600;
  }
  .nav__drawer-deadline-text strong { font-weight: 600; }
  .nav__drawer-deadline .pulse::after {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .nav__drawer-deadline-sub {
    padding-left: 20px;
    font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: rgba(0, 0, 0, 0.62);
    font-weight: 300;
  }
  .nav__drawer-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 68px;
    min-height: 40px;
    padding: 16px 32px;
    border-radius: 55px;
    background: var(--accent);
    color: #fff;
    text-decoration: none;
    box-sizing: border-box;
    transition: background 0.15s ease;
  }
  .nav__drawer-cta:hover { background: var(--accent-hover); }
  .nav__drawer-cta span {
    font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
  }
  .nav__drawer-cta svg { width: 24px; height: 24px; flex-shrink: 0; }
  html.nav-open, body.nav-open { overflow: hidden; overscroll-behavior: none; touch-action: none; height: 100%; }
  /* Menu open: header bar blends into the drawer glass (no separate bg / border) — matches Figma */
  html.nav-open .nav {
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-bottom: 0;
  }
  html.nav-open .nav__drawer::before,
  html.nav-open .nav__drawer::after {
    inset: 0;
  }
  .nav__cta:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -8px rgba(12, 0, 197, 0.5);
  }
  @media (max-width: 720px) {
    .nav__links { display: none; }
  }

  /* ------- HERO (full-bg image variant) ------- */
  .hero {
    position: relative;
    overflow: hidden;
    background-color: #f4f5fb;
    background-image: url('../images/heroImg_pc.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    min-height: 750px;
  }
  .hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }
  .hero__inner > * { margin: 0; }
  .hero__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .hero__head > * { margin: 0; }
  @media (max-width: 980px) {
    .hero {
      background-image: url('../images/Hero_sp.jpg');
      background-position: center top;
      background-size: cover;
    }
    .hero__inner { max-width: 100%; padding: 32px 0 56px; }
  }

  .hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px 8px 8px;
    background: #fff;
    border: 1px solid var(--border-low);
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-mid);
    margin-bottom: 24px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
  }
  .hero__eyebrow-tag {
    background: var(--accent);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 17px;
    padding: 3px 8px;
    border-radius: var(--radius-full);
  }

  .hero__title {
    font-size: clamp(44px, 6.4vw, 80px);
    line-height: 1.04;
    letter-spacing: -0.02em;
    font-weight: 800;
    margin: 0 0 40px;
    color: var(--text-high);
  }
  .hero__title-row { display: block; }
  .hero__title .mark {
    display: inline-block;
    padding: 0;
    margin: 0 0 16px;
    line-height: 1.0;
    letter-spacing: -0.006em;
  }
  .hero__title .mark__grad {
    background: linear-gradient(138deg, #0c00c5 0%, #597eff 60%, #00b0b2 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #0c00c5;
  }
  .hero__title .plain {
    color: var(--text-high);
    display: inline-block;
    margin-top: 0;
  }

  .hero__sub {
    font-size: clamp(14px, 1.1vw, 15px);
    color: var(--text-high);
    line-height: 1.85;
    max-width: 560px;
    margin: 0 0 24px;
    background: rgba(255,255,255,0.78);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 14px;
    padding: 20px 22px;
    box-shadow: var(--shadow-sm);
  }

  /* MEGA CTA */
  .hero__cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-bottom: 32px;
  }
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  }
  .btn--primary {
    background: var(--accent);
    color: #fff;
    box-shadow: 0 8px 24px -8px rgba(12, 0, 197, 0.5);
  }
  .btn--primary:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -8px rgba(12, 0, 197, 0.55);
  }
  .btn--secondary {
    background: #fff;
    color: var(--accent);
    border-color: var(--accent);
  }
  .btn--secondary:hover { background: var(--accent-soft); }
  .btn__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease;
  }
  .btn__arrow svg { width: 24px; height: 24px; display: block; }
  .btn:hover .btn__arrow { transform: translateX(3px); }
  .inline-cta__btn svg { width: 20px; height: 20px; flex-shrink: 0; }
  .sticky-cta__btn { display: inline-flex; align-items: center; gap: 6px; }
  .sticky-cta__btn svg { width: 18px; height: 18px; flex-shrink: 0; }

  /* MEGA variant */
  .btn--mega {
    padding: 22px 36px;
    font-size: 18px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    min-width: 280px;
  }
  .btn--mega .btn__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.02em;
  }
  .btn--mega .btn__sub {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.85;
    letter-spacing: 0.05em;
    margin-top: 6px;
  }
  .btn--mega:hover {
    transform: translateY(-2px);
    box-shadow: 0 32px 64px -16px rgba(12, 0, 197, 0.45);
  }

  /* Hero CTA — pill button (no sub on PC, sub shown on mobile) */
  .hero__cta-row {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .hero__cta-row .btn--mega {
    width: 314px;
    height: 68px;
    padding: 16px 32px;
    border-radius: 9999px;
    box-shadow: none;
    gap: 16px;
    justify-content: center;
    min-width: 0;
  }
  .hero__cta-row .btn--mega .btn__main {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0;
  }
  .hero__cta-row .btn--mega .btn__sub {
    display: none;
  }
  .hero__cta-row .btn--mega:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 32px -16px rgba(12, 0, 197, 0.5);
  }

  .hero__deadline {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 314px;
    padding: 16px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(247, 248, 255, 0.2));
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: var(--text-mid);
    font-size: 14px;
    line-height: 1.4;
    box-sizing: border-box;
    box-shadow:
      0 12px 28px -16px rgba(20, 20, 50, 0.3),
      inset 0 1px 1px 0 rgba(255, 255, 255, 0.9),
      inset 0 0 3px 0 rgba(255, 255, 255, 0.5),
      inset 0 0 16px 0 #f2f2f2;
  }
  .hero__deadline-row {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .hero__deadline-text {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.4;
  }
  .hero__deadline-text strong {
    color: var(--text-high);
    font-weight: 600;
  }
  .hero__deadline-sub {
    padding-left: 20px;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-mid);
    line-height: 1.4;
  }
  .hero__deadline-sp-only { display: none; }
  .hero__deadline-br { display: none; }
  .pulse {
    position: relative;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--red);
  }
  .pulse::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: rgba(255, 30, 35, 0.35);
    animation: pulse 2s ease-out infinite;
  }
  @keyframes pulse {
    0%   { transform: scale(0.8); opacity: 0.7; }
    100% { transform: scale(2.2); opacity: 0; }
  }

  /* hero visual (placeholder for office/event photo) */
  .hero__visual {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background:
      linear-gradient(135deg, #0c00c5 0%, #1714eb 50%, #4164e0 100%);
    box-shadow: var(--shadow-xl);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px;
    color: #fff;
  }
  .hero__visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 80% 20%, rgba(255,255,255,0.18), transparent 50%),
      radial-gradient(circle at 20% 80%, rgba(0,176,178,0.4), transparent 55%);
    pointer-events: none;
  }
  .hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size: 32px 32px;
    pointer-events: none;
    opacity: 0.7;
  }
  .hero__visual > * { position: relative; z-index: 1; }
  .hero__visual-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
  }
  .hero__visual-badge {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    padding: 8px 14px;
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  .hero__visual-photo {
    border-radius: var(--radius-lg);
    overflow: hidden;
    flex: 1;
    margin: 20px 0;
    position: relative;
    background: rgba(255,255,255,0.06);
    min-height: 220px;
  }
  .hero__visual-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: relative;
    z-index: 1;
  }
  .hero__visual-photo-fallback {
    position: absolute;
    inset: 0;
    border: 1.5px dashed rgba(255,255,255,0.25);
    border-radius: var(--radius-lg);
    padding: 40px 24px;
    text-align: center;
    color: rgba(255,255,255,0.85);
    font-size: 13px;
    line-height: 1.7;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    z-index: 0;
  }
  .hero__visual-photo-fallback svg { opacity: 0.7; }
  .hero__visual-photo-fallback .label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  }
  .hero__visual-photo.is-fallback .hero__visual-photo-fallback { z-index: 1; }
  .hero__visual-stats {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    border-top: 1px solid rgba(255,255,255,0.16);
    padding-top: 20px;
  }
  .hero__visual-stat .v {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }
  .hero__visual-stat .l {
    font-size: 10px;
    color: rgba(255,255,255,0.65);
    margin-top: 4px;
    letter-spacing: 0.04em;
  }

  /* ------- Event Overview Bar (light) ------- */
  .overview {
    background: #fff;
    color: var(--text-high);
    padding: 36px 0;
    border-bottom: 1px solid var(--border-low);
  }
  .overview__inner {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px 24px;
  }
  @media (max-width: 880px) {
    .overview__inner { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  }
  .overview__item {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 14px;
    align-items: center;
  }
  .overview__icon {
    width: 44px; height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .overview__icon svg { width: 20px; height: 20px; }
  .overview__icon--blue {   background: #ebefff; color: #4164e0; }
  .overview__icon--purple { background: #f3edff; color: #8657e8; }
  .overview__icon--teal {   background: #e0f5f5; color: #00b0b2; }
  .overview__icon--yellow { background: #fff5cc; color: #d4a900; }
  .overview__icon--pink {   background: #ffe6e6; color: #ff6e6e; }
  .overview__item .l {
    font-size: 11px;
    color: var(--text-low);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 2px;
    font-weight: 700;
  }
  .overview__item .v {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-high);
    line-height: 1.35;
  }
  .overview__item .v small {
    display: block;
    font-size: 11px;
    color: var(--text-low);
    font-weight: 500;
    margin-top: 2px;
  }

  /* ------- About Event (とは？) ------- */
  .eventinfo {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin-bottom: 16px;
  }
  @media (max-width: 880px) {
    .eventinfo { grid-template-columns: 1fr 1fr 1fr; }
  }
  @media (max-width: 720px) {
    /* SP: row 1 = 2 cols (When|Where), row 2 = 3 cols (Who|Stipend|Capacity) per Figma 145:310 */
    .eventinfo { grid-template-columns: repeat(6, 1fr); gap: 8px; }
    .eventinfo__item { padding: 12px; gap: 12px; border-radius: 12px; }
    .eventinfo__item:nth-child(1),
    .eventinfo__item:nth-child(2) { grid-column: span 3; }
    .eventinfo__item:nth-child(3),
    .eventinfo__item:nth-child(4),
    .eventinfo__item:nth-child(5) { grid-column: span 2; }
  }
  .eventinfo__item {
    background: #fff;
    border: 1px solid var(--border-low);
    border-radius: var(--radius-lg);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
  }
  .eventinfo__item:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
  }
  .eventinfo__icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .eventinfo__icon svg { width: 20px; height: 20px; }
  .eventinfo__icon--blue   { background: rgba(89, 126, 255, 0.1);  color: #597eff; }
  .eventinfo__icon--purple { background: rgba(187, 151, 255, 0.1); color: #8b6ff0; }
  .eventinfo__icon--teal   { background: rgba(0, 176, 178, 0.1);   color: #00b0b2; }
  .eventinfo__icon--yellow { background: rgba(255, 221, 41, 0.1);  color: #d4a900; }
  .eventinfo__icon--pink   { background: rgba(255, 110, 110, 0.1); color: #ff6e6e; }
  .eventinfo__l {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-low);
    margin-bottom: 4px;
  }
  .eventinfo__v {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.35;
    letter-spacing: -0.01em;
  }
  .eventinfo__s {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-low);
    margin-top: 2px;
  }

  .enechain-card {
    background: #ebefff;
    color: var(--text-high);
    border-radius: var(--radius-2xl);
    padding: 44px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 44px;
    align-items: stretch;
    position: relative;
    overflow: hidden;
  }
  @media (max-width: 880px) {
    .enechain-card { grid-template-columns: 1fr; gap: 32px; padding: 32px 24px; }
  }
  .enechain-card > * { position: relative; z-index: 1; }

  /* Left column: intro */
  .enechain-card__intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .enechain-card__logo { height: 22px; width: auto; margin-bottom: 16px; }
  .enechain-card__desc {
    font-size: 14px;
    line-height: 2;
    color: var(--text-mid);
    margin: 0;
  }
  .enechain-card__introbtm {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    margin-top: 24px;
  }
  .enechain-card__btns {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 12px;
    width: 264px;
    max-width: 100%;
  }
  .enechain-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: 56px;
    padding: 8px 32px;
    border-radius: 9999px;
    font-size: 16px;
    font-weight: 600;
    background: #fff;
    border: 2px solid var(--accent);
    color: var(--accent);
    transition: background 0.15s ease, transform 0.15s ease;
  }
  .enechain-card__btn:hover {
    background: var(--accent-soft);
    transform: translateY(-1px);
  }
  .enechain-card__btn svg { width: 18px; height: 18px; flex-shrink: 0; }
  .enechain-card__mockup {
    width: 230px;
    max-width: 100%;
    height: auto;
    flex-shrink: 1;
    min-width: 0;
    align-self: flex-end;
    display: block;
  }

  /* Right column: map + stats + product logos */
  .enechain-card__data {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 38px;
    gap: 40px;
    min-height: 320px;
  }
  .enechain-card__map {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    height: 100%;
    max-height: 440px;
    width: auto;
    opacity: 1;
    pointer-events: none;
    z-index: 0;
  }
  .enechain-card__stats {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .ec-stat {
    background: rgba(255, 255, 255, 0.5);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-radius: 20px;
    padding: 16px 20px;
  }
  .ec-stat__v {
    display: flex;
    align-items: baseline;
    gap: 4px;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--text-high);
  }
  .ec-stat__v .u {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-mid);
    margin-left: 0;
  }
  .ec-stat__l {
    font-size: 12px;
    color: var(--text-mid);
    margin-top: 6px;
    line-height: 1.4;
  }
  .enechain-card__logos {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  .enechain-card__logos-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .enechain-card__logos-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
  }
  .enechain-card__logos img {
    height: 26px;
    width: auto;
  }
  .enechain-card__logos-more {
    font-size: 12px;
    color: var(--text-low);
    font-weight: 600;
    letter-spacing: 0;
  }

  /* ------- Themes ------- */
  .themes-grid {
    display: grid;
    grid-template-columns: 305px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
  }
  @media (max-width: 980px) {
    .themes-grid { grid-template-columns: 1fr; gap: 16px; }
  }

  .themes-card {
    background:
      linear-gradient(#fff, #fff) padding-box,
      linear-gradient(135deg, #0c00c5 0%, #597eff 50%, #00b0b2 100%) border-box;
    color: var(--text-high);
    border: 2px solid transparent;
    border-radius: var(--radius-lg);
    padding: 25px 24px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .themes-card > * { position: relative; z-index: 1; }
  .themes-card__label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-low);
    margin-bottom: 0;
  }
  .themes-card__title {
    font-size: 16.3px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--accent);
    margin: 4px 0 0;
    letter-spacing: 0;
  }
  .themes-card__body {
    font-size: 14px;
    color: var(--text-mid);
    line-height: 1.85;
    margin: 0;
  }

  .themes-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr 1fr;
    gap: 10px;
    height: 100%;
  }
  @media (max-width: 880px) {
    .themes-list { grid-template-columns: 1fr 1fr; gap: 8px; }
  }
  @media (max-width: 720px) {
    /* SP: keep 2 cols per Figma 145:503 */
    .theme-tag { padding: 16px; gap: 8px; border-radius: 12px; border-color: var(--border-mid); }
    .theme-tag__no { font-size: 12px; letter-spacing: 0.147em; color: var(--text-mid); }
    .theme-tag__name { font-size: 14px; line-height: 1.4; letter-spacing: 0; }
    .theme-tag__desc { font-size: 12px; line-height: 1.5; color: var(--text-mid); }
    /* THEME hero card: gradient border via padding-box/border-box trick */
    .themes-card {
      background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, #0c00c5 0%, #597eff 50%, #00b0b2 100%) border-box;
      border: 2px solid transparent;
      padding: 24px;
      border-radius: 12px;
    }
    .themes-card__title { font-size: 16px; line-height: 1.4; }
    .themes-card__body { font-size: 14px; line-height: 1.6; }
  }
  .theme-tag {
    background: #fff;
    border: 1px solid var(--border-low);
    border-radius: var(--radius-lg);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
  }
  .theme-tag:hover {
    border-color: var(--accent);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
  }
  .theme-tag__no {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-mid);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    line-height: 1.7;
  }
  .theme-tag__name {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.35;
    letter-spacing: -0.013em;
  }
  .theme-tag__desc {
    font-size: 12px;
    color: var(--text-mid);
    line-height: 1.78;
  }

  /* ------- Why join (3 light cards) ------- */
  .why {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
  }
  @media (max-width: 980px) {
    .why { grid-template-columns: 1fr; }
  }
  @media (max-width: 720px) {
    /* SP: horizontal scroll carousel per Figma 145:578 */
    .why {
      display: flex;
      grid-template-columns: none;
      overflow-x: auto;
      overflow-y: hidden;
      gap: 12px;
      padding: 4px 24px 4px 0;
      margin-right: -24px;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .why::-webkit-scrollbar { display: none; }
    .why__card {
      flex: 0 0 240px;
      width: 240px;
      min-height: 280px;
      padding: 25px 24px;
      gap: 24px;
      scroll-snap-align: start;
      box-shadow: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -1px rgba(0,0,0,0.04);
    }
    .why__no { color: var(--accent); }
  }
  .why__card {
    background: #fff;
    border: 1px solid var(--border-mid);
    color: var(--text-high);
    border-radius: var(--radius-lg);
    padding: 25px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 229px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .why__card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
  }

  .why__no {
    font-size: 12px;
    letter-spacing: 0.14em;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0;
  }
  .why__title {
    font-size: 16px;
    line-height: 1.5;
    font-weight: 600;
    margin: 4px 0 0;
    letter-spacing: 0;
    color: var(--text-high);
  }
  .why__body {
    font-size: 14px;
    line-height: 1.85;
    margin: 0;
    color: var(--text-low);
  }

  /* ------- Mentors (single CTO card) ------- */
  .mentor-card {
    background: #fff;
    border: 1px solid var(--border-low);
    border-radius: var(--radius-lg);
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 32px;
  }
  @media (max-width: 720px) {
    .mentor-card { flex-direction: column; align-items: flex-start; gap: 16px; padding: 20px; }
  }
  .mentor-card__photo {
    width: 123px;
    height: 123px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
  }
  .mentor-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .mentor-card__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .mentor-card__role {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.5;
  }
  .mentor-card__name {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.5;
  }
  .mentor-card__bio {
    font-size: 12px;
    color: var(--text-low);
    line-height: 1.5;
  }
  .mentor-card__quote {
    border-left: 2px solid var(--accent);
    padding-left: 16px;
    font-size: 14px;
    color: var(--text-low);
    line-height: 1.5;
    margin: 0;
  }
  .mentor-note {
    margin: 24px 0 0;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-low);
  }

  /* ------- Prizes ------- */
  .prizes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: stretch;
  }
  @media (max-width: 880px) { .prizes { grid-template-columns: 1fr; } }
  @media (max-width: 720px) {
    /* SP: horizontal scroll carousel per Figma 145:696 */
    .prizes {
      display: flex;
      grid-template-columns: none;
      overflow-x: auto;
      overflow-y: hidden;
      gap: 8px;
      padding: 4px 24px 4px 0;
      margin-right: -24px;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .prizes::-webkit-scrollbar { display: none; }
    .prize {
      flex: 0 0 240px;
      width: 240px;
      min-height: 317px;
      padding: 25px 24px;
      scroll-snap-align: start;
    }
  }

  .prize {
    background: #fff;
    border: 1px solid var(--border-mid);
    border-radius: var(--radius-lg);
    padding: 25px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -1px rgba(0, 0, 0, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .prize:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1), 0 4px 8px -2px rgba(0, 0, 0, 0.06);
  }
  .prize__label {
    font-size: 11px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    line-height: 1.7;
    margin: 0;
  }
  .prize__medal {
    font-size: 40px;
    line-height: 1;
    margin: 0;
  }
  .prize__medal--lg { font-size: 48px; }
  .prize__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.4;
    margin: 0;
  }
  .prize__price {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-high);
    margin: 0;
    line-height: 1.3;
  }

  .prizes-special {
    margin-top: 16px;
    background:
      radial-gradient(ellipse 70% 50% at 80% 0%, rgba(89, 126, 255, 0.45), transparent 60%),
      radial-gradient(ellipse 70% 50% at 0% 100%, rgba(12, 0, 197, 0.55), transparent 60%),
      #0a0a0c;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    padding: 25px 24px;
    display: flex;
    gap: 20px;
    align-items: center;
  }
  @media (max-width: 720px) {
    /* SP: stack icon above text per Figma 145:740 */
    .prizes-special {
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
      gap: 16px;
      padding: 25px 24px;
    }
    .prizes-special__icon { font-size: 48px; }
    .prizes-special__title { font-size: 16px; }
  }
  .prizes-special__icon {
    font-size: 48px;
    line-height: 1;
    flex-shrink: 0;
  }
  .prizes-special__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .prizes-special__label {
    font-size: 11px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    line-height: 1.7;
    margin: 0;
  }
  .prizes-special__title {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    margin: 0;
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
  }
  .prizes-special__body {
    font-size: 14px;
    color: #fff;
    margin: 0;
    line-height: 1.5;
  }

  /* ------- Schedule ------- */
  .schedule {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  @media (max-width: 880px) { .schedule { grid-template-columns: 1fr; } }

  .schedule__day {
    background: #fff;
    border: 1px solid var(--border-mid);
    border-radius: 20px;
    padding: 32px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .schedule__head {
    margin: 0 16px;
    padding: 2px 0;
    border-bottom: 2px solid var(--accent);
    display: flex;
    align-items: baseline;
    gap: 12px;
  }
  .schedule__head-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.7;
  }
  .schedule__head-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.4;
  }
  .schedule__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
  }
  .schedule__row {
    padding: 0 16px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
  }
  .schedule__row--highlight {
    background: #ebefff;
    border-radius: 6px;
    padding: 12px 16px;
    margin: 0 0;
  }
  .schedule__time {
    flex-shrink: 0;
    width: 50px;
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.04em;
    line-height: 1.7;
    font-family: "Helvetica Neue", Arial, sans-serif;
  }
  .schedule__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .schedule__text {
    font-size: 14px;
    color: var(--text-high);
    line-height: 1.5;
  }
  .schedule__sub {
    font-size: 12px;
    color: var(--text-mid);
    line-height: 1.6;
  }

  /* ------- For You & Flow ------- */
  .skills-card {
    background: #fff;
    border: 1px solid var(--border-mid);
    border-radius: var(--radius-lg);
    padding: 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  @media (max-width: 720px) {
    .skills-card { grid-template-columns: 1fr; padding: 24px; gap: 28px; }
  }
  .skills-card__col {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .skills-card__title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-low);
    line-height: 1.4;
  }
  .skills-card__title--required { color: var(--accent); }
  .skills-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .skills-card__list li {
    font-size: 14px;
    color: var(--text-high);
    display: flex;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.5;
  }
  .skills-card__list svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
  }
  .skills-card__note {
    margin-top: 8px;
    background: var(--surface-soft);
    border-radius: 6px;
    padding: 12px 16px;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-mid);
    align-self: flex-start;
  }
  .skills-card__note span:first-child {
    font-size: 20px;
    line-height: 1;
    color: initial;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif;
  }

  .steps {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .steps__heading {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-high);
    margin: 0;
    line-height: 1.4;
  }
  .steps__timeline {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    padding-right: 24px;
  }
  .step-head {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .step-head__num {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2px solid var(--accent);
    background: #fff;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    flex-shrink: 0;
  }
  .step-head {
    position: relative;
  }
  .step-head__line {
    position: absolute;
    top: 19px;
    left: 52px;
    right: -12px;
    height: 2px;
    background: var(--border-low);
  }
  .step-head__line--last {
    background: linear-gradient(to right, var(--border-low), rgba(224, 224, 224, 0));
  }
  .step-head__title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.4;
  }
  .steps__cards {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
  }
  .step-card {
    background: #fff;
    border: 1px solid var(--border-mid);
    border-radius: var(--radius-lg);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .step-card__when {
    font-size: 12px;
    font-weight: 600;
    color: var(--accent);
    line-height: 1.4;
  }
  .step-card__desc {
    font-size: 14px;
    color: var(--text-low);
    line-height: 1.5;
  }
  @media (max-width: 980px) {
    .steps__timeline, .steps__cards { grid-template-columns: repeat(3, 1fr); }
    .steps__timeline { padding-right: 0; }
    .step-head__line { display: none; }
  }
  @media (max-width: 540px) {
    .steps__timeline, .steps__cards { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 720px) {
    /* SP: timeline w/ bordered circles + connecting line per Figma 145:817 */
    .steps { display: grid; grid-template-columns: 40px 1fr; column-gap: 12px; row-gap: 0; padding-right: 0; position: relative; }
    .steps::before {
      content: '';
      position: absolute;
      left: 19px;
      top: 76px;
      bottom: 0;
      width: 2px;
      background: linear-gradient(
        to bottom,
        var(--border-low) 0,
        var(--border-low) calc(100% - 90px),
        rgba(224, 224, 224, 0) 100%
      );
      pointer-events: none;
      z-index: 0;
    }
    .step-head__num, .step-card { position: relative; z-index: 1; }
    .steps__heading { grid-column: 1 / -1; grid-row: 1; font-size: 20px; margin: 0 0 16px; }
    .steps__timeline, .steps__cards { display: contents; }
    .step-head { display: contents; }
    .step-head__num {
      grid-column: 1;
      width: 40px;
      height: 40px;
      border: 2px solid var(--accent);
      background: #fff;
      color: var(--accent);
      font-size: 16px;
      font-weight: 600;
      align-self: start;
      box-sizing: border-box;
    }
    .step-head__line { display: none; }
    .step-head__title {
      grid-column: 2;
      font-size: 16px;
      font-weight: 600;
      color: var(--text-high);
      align-self: center;
      line-height: 1.4;
      padding: 0;
    }
    .step-card {
      grid-column: 2;
      margin: 8px 0 16px;
      padding: 20px;
      background: #fff;
      border: 1px solid var(--border-mid);
      border-radius: 12px;
      gap: 8px;
    }
    .step-card__when { font-size: 12px; font-weight: 600; color: var(--accent); line-height: 1.4; }
    .step-card__desc { font-size: 14px; line-height: 1.6; color: var(--text-mid); }
    /* Pair each head with its card by row (heading=row 1, then head/card pairs) */
    .step-head:nth-child(1) > .step-head__num, .step-head:nth-child(1) > .step-head__title { grid-row: 2; }
    .step-card:nth-child(1) { grid-row: 3; }
    .step-head:nth-child(2) > .step-head__num, .step-head:nth-child(2) > .step-head__title { grid-row: 4; }
    .step-card:nth-child(2) { grid-row: 5; }
    .step-head:nth-child(3) > .step-head__num, .step-head:nth-child(3) > .step-head__title { grid-row: 6; }
    .step-card:nth-child(3) { grid-row: 7; }
    .step-head:nth-child(4) > .step-head__num, .step-head:nth-child(4) > .step-head__title { grid-row: 8; }
    .step-card:nth-child(4) { grid-row: 9; }
    .step-head:nth-child(5) > .step-head__num, .step-head:nth-child(5) > .step-head__title { grid-row: 10; }
    .step-card:nth-child(5) { grid-row: 11; }
    .step-head:nth-child(6) > .step-head__num, .step-head:nth-child(6) > .step-head__title { grid-row: 12; }
    .step-card:nth-child(6) { grid-row: 13; }
  }

  /* ------- enechain Culture ------- */
  .culture__eyebrow {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
  }
  .culture__divider {
    width: 24px;
    height: 1px;
    background: var(--accent);
    flex-shrink: 0;
  }
  .culture__brand {
    height: 14px;
    width: auto;
    display: block;
  }
  .culture__label {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.7;
  }

  .culture {
    background: #ebefff;
    border-radius: 28px;
    padding: 56px 64px;
    display: flex;
    gap: 80px;
    align-items: flex-start;
  }
  @media (max-width: 980px) {
    .culture { flex-direction: column; padding: 40px 28px; gap: 40px; }
  }
  .culture__left {
    flex: 0 0 540px;
    max-width: 540px;
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
  @media (max-width: 980px) {
    .culture__left { flex: 1 1 auto; max-width: 100%; width: 100%; }
  }
  .culture__mission {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .culture__group-label {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-high);
    line-height: 1.4;
  }
  .culture__title {
    font-size: clamp(36px, 4vw, 53px);
    font-weight: 700;
    color: var(--accent);
    line-height: 1.1;
    letter-spacing: -0.01em;
  }
  .culture__desc {
    font-size: 14px;
    color: var(--text-mid);
    line-height: 2;
    margin: 0;
  }
  .culture__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 56px;
    padding: 8px 24px;
    background: #fff;
    border: 2px solid var(--accent);
    border-radius: 32px;
    color: var(--accent);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
    align-self: flex-start;
  }
  .culture__btn:hover {
    background: rgba(255, 255, 255, 0.8);
    transform: translateY(-1px);
  }
  .culture__btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
  }
  .culture__right {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-self: stretch;
  }
  .culture__group {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .culture__principles {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .culture__values {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  @media (max-width: 720px) {
    /* SP: reorder so button sits at the bottom of the section per Figma 145:1020 */
    .culture { display: flex; flex-direction: column; gap: 32px; padding: 24px; border-radius: 28px; width: 100%; box-sizing: border-box; }
    .culture__group, .culture__principles, .culture__values { width: 100%; }
    .culture__left, .culture__right { display: contents; }
    .culture__mission { order: 1; }
    .culture__desc { order: 2; }
    .culture__right > :nth-child(1) { order: 3; }
    .culture__right > :nth-child(2) { order: 4; }
    .culture__btn { order: 5; align-self: stretch; }
    .culture__title { font-size: 32px; line-height: 1.25; }
    .culture__group-label { font-size: 20px; font-weight: 600; }
    .culture-card { width: 100%; }
    .culture-card__name { font-size: 20px; line-height: 1.2; }
    .culture-card--principle .culture-card__name { font-size: 24px; line-height: 1.2; }
    /* Values: emoji on top, name+sub below (Figma 315:2810) */
    .culture__values .culture-card {
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
    }
  }
  .culture-card {
    background: rgba(255, 255, 255, 0.5);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-radius: 20px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
  }
  .culture-card__emoji {
    font-size: 24px;
    line-height: 1;
    flex-shrink: 0;
    color: initial;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
  }
  .culture-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .culture-card__name {
    font-size: 20px;
    font-weight: 700;
    color: var(--accent);
    line-height: 1.4;
    letter-spacing: -0.02em;
  }
  .culture-card--principle .culture-card__name {
    font-size: 24px;
  }
  .culture-card__sub {
    font-size: 12px;
    color: var(--text-mid);
    line-height: 1.4;
  }

  /* ------- Inline CTA (intermediate) ------- */
  .inline-cta {
    margin: 16px 0 0;
    background: linear-gradient(128.85deg, #0c00c5 0%, #597eff 51.9%, #00b0b2 100%);
    border-radius: var(--radius-lg);
    padding: 16px 24px;
    display: flex;
    gap: 16px;
    align-items: center;
    overflow: hidden;
  }
  .inline-cta__img {
    width: 91px;
    height: auto;
    flex-shrink: 0;
    align-self: flex-end;
    margin-bottom: -16px;
    display: block;
  }
  @media (max-width: 720px) {
    .inline-cta {
      display: grid;
      grid-template-columns: auto 1fr;
      grid-template-areas: "text text" "img btn";
      gap: 16px 12px;
      padding: 16px 24px 0;
      text-align: left;
      align-items: end;
    }
    .inline-cta__text { grid-area: text; text-align: left; gap: 8px; }
    .inline-cta__img {
      grid-area: img;
      width: 120px;
      height: auto;
      margin: 0;
      align-self: end;
    }
    .inline-cta__btn { grid-area: btn; justify-self: end; align-self: center; margin: 0; }
  }
  .inline-cta__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .inline-cta__title {
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: #fff;
    letter-spacing: 0;
    line-height: 1.4;
  }
  .inline-cta__sub {
    font-size: 14px;
    color: #fff;
    margin: 0;
    line-height: 1.5;
  }
  .inline-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 157px;
    height: 48px;
    padding: 8px 16px;
    border-radius: 24px;
    background: #fff;
    border: 2px solid var(--accent);
    color: var(--accent);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
    flex-shrink: 0;
  }
  .inline-cta__btn:hover {
    background: var(--accent-soft);
    transform: translateY(-1px);
  }

  /* ------- FAQ ------- */
  .section-title--faq { margin-bottom: 16px; }
  .faq { border-top: 1px solid var(--border-mid); margin-top: 16px; }
  .faq__item { border-bottom: 1px solid var(--border-mid); }
  .faq__q {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 24px 40px 24px 0;
    display: block;
    position: relative;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-high);
    cursor: pointer;
    line-height: 1.5;
    list-style: none;
  }
  .faq__q::-webkit-details-marker { display: none; }
  .faq__q::marker { content: ""; }
  details summary { list-style: none; }
  details summary::-webkit-details-marker { display: none; }
  .faq__q-text { display: block; }
  .faq__q:hover { color: var(--accent); }
  .faq__item { position: relative; }
  .faq__icon {
    position: absolute;
    right: 0;
    top: 24px;
    width: 24px;
    height: 24px;
    border-radius: 12px;
    background: #ebefff;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    box-sizing: border-box;
    transition: transform 0.2s ease;
    pointer-events: none;
  }
  .faq__icon svg { width: 16px; height: 16px; display: block; }
  .faq__item[open] .faq__icon { transform: rotate(45deg); }
  .faq__a {
    padding: 0 0 24px;
    font-size: 16px;
    line-height: 1.85;
    color: var(--text-mid);
    max-width: 1120px;
  }

  /* ------- Final CTA ------- */
  .cta {
    background: linear-gradient(97.75deg, #0c00c5 1.5%, #597eff 60.5%, #00b0b2 99.9%);
    color: #fff;
    border-radius: 28px;
    padding: 96px 64px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
    position: relative;
  }
  .cta__head {
    display: flex;
    flex-direction: column;
    gap: 21px;
    text-align: center;
  }
  .cta__title {
    font-size: 36px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
    letter-spacing: 0;
    color: #fff;
  }
  .cta__sub {
    font-size: 16px;
    font-weight: 400;
    margin: 0;
    line-height: 1.4;
    color: #fff;
  }
  .cta__bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 240px;
  }
  .cta__rocket {
    width: 160px;
    height: auto;
    align-self: flex-end;
    flex-shrink: 0;
    display: block;
  }
  .cta__spacer {
    width: 160px;
    flex-shrink: 0;
  }
  .cta__center {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
    padding-bottom: 56px;
    flex-shrink: 0;
  }
  .cta__deadline {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
  }
  .cta__deadline-row {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .cta__deadline-text {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    line-height: 1.4;
  }
  .cta__deadline-sub {
    font-size: 14px;
    color: #fff;
    padding-left: 20px;
    line-height: 1.4;
  }
  .cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 278px;
    height: 68px;
    padding: 16px 32px;
    background: #fff;
    border: 2px solid var(--accent);
    border-radius: 41px;
    color: var(--accent);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
  }
  .cta__btn:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: translateY(-1px);
  }
  .cta__btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
  }
  @media (max-width: 720px) {
    /* SP: stack everything vertically per Figma 145:1128 */
    .cta {
      padding: 32px 24px;
      border-radius: 28px;
      gap: 40px;
    }
    .cta__title { font-size: 24px; line-height: 1.4; }
    .cta__sub { font-size: 14px; line-height: 1.6; }
    .cta__bottom { flex-direction: column; gap: 0; align-items: stretch; min-height: 0; }
    .cta__spacer { display: none; }
    .cta__center { order: 1; padding-bottom: 0; gap: 24px; align-items: stretch; }
    .cta__rocket {
      order: 2;
      width: 160px;
      max-width: 100%;
      margin: 56px auto 0;
      align-self: center;
    }
    .cta__btn {
      width: 100%;
      max-width: none;
      align-self: stretch;
    }
  }

  /* ------- Sticky bottom CTA (mobile) ------- */
  .sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.6);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-top: 1px solid #efefef;
    padding: 12px 24px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 40;
    display: none;
    transform: translateY(110%);
    transition: transform 0.3s ease;
  }
  .sticky-cta.is-visible { transform: translateY(0); }
  .sticky-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .sticky-cta__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .sticky-cta__text strong {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.56px;
    color: var(--text-high);
  }
  .sticky-cta__text small {
    font-size: 12px;
    line-height: 1.2;
    color: var(--text-low);
  }
  .sticky-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 40px;
    min-height: 32px;
    padding: 4px 12px;
    background: var(--accent);
    color: #fff;
    border-radius: 24px;
    font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.0125em;
    line-height: 1.4;
    white-space: nowrap;
    text-decoration: none;
    flex-shrink: 0;
  }
  .sticky-cta__btn svg { width: 20px; height: 20px; flex-shrink: 0; }
  @media (max-width: 720px) {
    /* Mobile header — matches Figma (brand only, no CTA, glass 48px) */
    .nav {
      background: rgba(255, 255, 255, 0.78);
      -webkit-backdrop-filter: blur(6px);
      backdrop-filter: blur(6px);
      border-bottom-color: var(--border-mid);
    }
    .container.nav__inner { height: 48px; gap: 12px; position: relative; padding-left: 16px; padding-right: 16px; }
    .nav__cta { display: none; }
    .nav__menu {
      display: inline-flex;
      position: absolute;
      right: 16px;
      top: 50%;
      transform: translateY(-50%);
    }
    .nav__brand { gap: 12px; min-width: 0; flex: 0 1 auto; padding-right: 36px; }
    .nav__brand-logo { height: 14px; width: 83px; flex-shrink: 0; }
    .nav__brand-divider { display: block; height: 20px; flex-shrink: 0; }
    .nav__brand-text { min-width: 0; overflow: hidden; gap: 4px; }
    .nav__brand-text strong { font-size: 11px; line-height: 1; letter-spacing: 0.56px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .nav__brand-text small { display: block; font-size: 10px; line-height: 1; letter-spacing: 0.56px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sticky-cta { display: block; }
    body { padding-bottom: 80px; }
  }

  /* ------- Footer ------- */
  .footer {
    padding: 48px 0 24px;
    border-top: 1px solid var(--border-low);
    color: var(--text-low);
  }
  .footer__inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .footer__top {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
  }
  .footer__col {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .footer__col-title {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-low);
    line-height: 1;
  }
  .footer__nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .footer__nav a {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-low);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1;
    transition: color 0.15s ease;
  }
  .footer__nav a:hover { color: var(--accent); }
  .footer__nav a svg { width: 12px; height: 12px; flex-shrink: 0; }
  .footer__socials {
    list-style: none;
    margin: 0;
    padding: 0 0 0 4px;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .footer__socials a {
    display: inline-flex;
    align-items: center;
    color: var(--text-high);
    text-decoration: none;
    transition: opacity 0.15s ease;
  }
  .footer__socials a:hover { opacity: 0.6; }
  .footer__socials svg {
    height: 18px;
    width: auto;
    display: block;
  }
  .footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
  }
  .footer__logo {
    height: 16px;
    width: auto;
  }
  .footer__copyright {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 11px;
    color: var(--text-low);
    line-height: 1;
  }
  @media (max-width: 720px) {
    .footer__top { flex-direction: column; gap: 40px; }
    .footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
  }

  .center { text-align: center; }

  /* ============================================
     MOBILE RESPONSIVE OVERRIDES
     ============================================ */
  @media (max-width: 720px) {
    /* containers / sections */
    .container { padding: 0 24px; }
    .section { padding: 64px 0; }
    .section-tight { padding: 48px 0; }
    .section-title { font-size: clamp(22px, 6vw, 32px); line-height: 1.3; }
    .section-lead { font-size: 14px; margin-bottom: 32px; }
    .eyebrow { margin-bottom: 12px; }

    /* HERO */
    .hero {
      background-size: cover;
      background-position: center top;
      min-height: 758px;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      align-content: center;
    }
    .hero__inner { width: 100%; min-width: 0; align-items: flex-start; gap: 32px; }
    .hero__head { width: 100%; align-items: center; gap: 12px; }
    .hero__eyebrow {
      font-size: 12px;
      gap: 12px;
      padding: 8px 16px 8px 8px;
      max-width: 100%;
      letter-spacing: 0;
      border-color: var(--border-mid);
    }
    .hero__eyebrow-tag { font-size: 10px; padding: 4px 8px; }
    .hero__title {
      font-size: 43px;
      line-height: 1;
      letter-spacing: -0.032em;
    }
    .hero__title .mark { padding: 0; margin: 0; font-size: 42px; letter-spacing: -0.011em; }
    .hero__title .plain { margin-top: 0; }
    .hero__sub {
      padding: 16px 18px;
      font-size: 13.5px;
      line-height: 1.8;
      margin-bottom: 20px;
    }
    .hero__cta-row { width: 100%; justify-content: center; }
    .hero__cta-row .btn--mega {
      width: 100%;
      max-width: 314px;
      height: 68px;
      min-width: 0;
      padding: 16px 32px;
      border-radius: 9999px;
    }
    .btn--mega .btn__main { font-size: 16px; }
    .btn--mega .btn__sub { font-size: 12px; }
    .hero__deadline {
      width: auto;
      max-width: 100%;
      align-self: center;
    }
    .hero__deadline-text {
      flex: 1;
      min-width: 0;
      font-weight: 600;
      color: rgba(0, 0, 0, 0.87);
      font-size: 12px;
    }
    .hero__deadline-text strong {
      font-weight: 600;
      color: rgba(0, 0, 0, 0.87);
    }
    .hero__deadline-sub {
      display: block;
      font-size: 12px;
    }
    .hero__deadline-sp-only { display: none; }
    .hero__deadline-br { display: none; }

    /* Event Overview — 1 column on small screens */
    .overview { padding: 24px 0; }
    .overview__inner { grid-template-columns: 1fr 1fr; gap: 16px 14px; }
    .overview__item { grid-template-columns: 36px 1fr; gap: 10px; }
    .overview__icon { width: 36px; height: 36px; }
    .overview__icon svg { width: 16px; height: 16px; }
    .overview__item .l { font-size: 10px; letter-spacing: 0.1em; }
    .overview__item .v { font-size: 13px; }
    .overview__item .v small { font-size: 10px; }

    /* About Event (とは？) */
    .eventinfo { gap: 10px; }
    .eventinfo__item { padding: 16px 14px; gap: 10px; }
    .eventinfo__icon { width: 36px; height: 36px; }
    .eventinfo__icon svg { width: 18px; height: 18px; }
    .eventinfo__v { font-size: 14px; }
    .eventinfo__s { font-size: 11px; }
    .about-title-br { display: none; }
    /* enechain card — SP reorder per Figma: desc → stats → mockup → logos → buttons */
    .enechain-card { display: flex; flex-direction: column; padding: 28px 20px; gap: 24px; }
    .enechain-card__intro,
    .enechain-card__data,
    .enechain-card__introbtm { display: contents; }
    .enechain-card__logo { order: 1; }
    .enechain-card__desc { order: 2; font-size: 13.5px; line-height: 1.9; }
    .enechain-card__stats { order: 3; }
    .enechain-card__mockup { order: 4; width: 100%; max-width: 320px; align-self: center; }
    .enechain-card__logos { order: 5; justify-content: center; }
    .enechain-card__btns { order: 6; width: 100%; }
    .enechain-card__map { display: none; }
    .ec-stat__v { font-size: 24px; }
    .enechain-card__btn { font-size: 14px; padding: 12px 24px; height: 48px; }

    /* Themes */
    .themes-grid { gap: 12px; }
    .themes-card { padding: 28px 22px; min-height: auto; }
    .themes-card__title { font-size: 22px; }
    .themes-list { grid-template-columns: 1fr 1fr; gap: 10px; }
    .theme-tag { padding: 16px 18px; }
    .theme-tag__name { font-size: 14px; }

    /* Why join cards */
    .why__card { padding: 28px 24px; min-height: auto; }
    .why__title { font-size: 19px; }
    .why__body { font-size: 13.5px; }

    /* Inline CTA */
    .inline-cta__title { font-size: 18px; line-height: 1.4; }

    /* Prizes */
    .prize { padding: 26px 22px; min-height: auto; }
    .prize__head { margin-bottom: 18px; }
    .prize__rank { font-size: 10px; letter-spacing: 0.12em; }
    .prize__name { font-size: 19px; }
    .prize__icon { width: 40px; height: 40px; }
    .prize__icon svg { width: 20px; height: 20px; }
    .prizes-special { padding: 22px; gap: 14px; }

    /* Schedule */
    .schedule__day { padding: 24px 12px; }
    .schedule__head { margin: 0 12px; }
    .schedule__head-title { font-size: 18px; }
    .schedule__row { padding: 0 12px; gap: 12px; }
    .schedule__row--highlight { padding: 12px; }
    .schedule__time { width: 46px; font-size: 11px; }
    .schedule__text { font-size: 13px; }

    /* Culture (Figma 145:1020 / 171:914) */
    .culture { padding: 24px; border-radius: 28px; gap: 32px; }
    .culture-card__name { font-size: 20px; line-height: 1.2; }
    .culture-card--principle .culture-card__name { font-size: 24px; line-height: 1.2; }

    /* FAQ (Figma 322:1624) */
    .faq__q { font-size: 16px; padding: 24px 40px 24px 0; }
    .faq__a { font-size: 16px; padding: 0 32px 24px 0; }

    /* Footer */
    .footer { padding: 48px 0 24px; }
    .footer__col-title { font-size: 16px; }
    .footer__nav a { font-size: 14px; }

    /* Sticky CTA (Figma 200:2086) — keep base values; only minor adjustments */
  }

  @media (max-width: 480px) {
    /* Tightest screens (iPhone SE etc) */
    .container { padding: 0 24px; }
    .section { padding: 48px 0; }
    .section-tight { padding: 36px 0; }

    /* Hero — careful with long English words */
    .hero__title { font-size: clamp(36px, 11.5vw, 43px); line-height: 1; letter-spacing: -0.032em; }
    .hero__title .mark { padding: 0; margin: 0; font-size: clamp(34px, 11.2vw, 42px); letter-spacing: -0.011em; }
    .hero__eyebrow { font-size: 12px; gap: 12px; padding: 8px 16px 8px 8px; }
    .hero__eyebrow-tag { font-size: 10px; padding: 4px 8px; }

    /* Overview: 1 column on very small */
    .overview__inner { grid-template-columns: 1fr; gap: 14px; }
    .overview { padding: 20px 0; }

    /* Themes list 2 col (Figma 145:503) */
    .themes-list { grid-template-columns: 1fr 1fr; }
    .themes-card { padding: 20px; }
    .themes-card__title { font-size: 16px; }
    /* Carousel: right peek matches container padding (16) at ≤480 */
    .why, .prizes { margin-right: -24px; padding-right: 24px; }

    /* CTA mega button text adjustment */
    .btn--mega .btn__main { font-size: 16px; gap: 12px; }
    .cta__title { font-size: 22px; }

    /* FAQ text wrap (tightest screens) */
    .faq__q { font-size: 15px; line-height: 1.5; }

    /* Sticky CTA on very small — keep Figma sizes */
    .sticky-cta { padding-left: 24px; padding-right: 24px; }
  }

  /* Prevent horizontal overflow on any screen */
  html, body { overflow-x: clip; }
  .hero, .section, .overview { max-width: 100%; }
