:root {
  --bg: #1f3047;
  --dark: #1f3047;
  --text: #ffffff;
  --muted: rgba(255,255,255,.74);
  --line: rgba(255,255,255,.16);
  --cyan: #63d5ff;
  --violet: #7b61ff;
  --pink: #ff83d7;
  --paper: #ffffff;
  --paper-soft: #f5f7fb;
  --ink: #101522;
  --ink-muted: #4f596d;
  --paper-line: #e4e8f0;
  --selected-hero: #1f3047;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Sans", sans-serif;
  color: var(--text);
  background: var(--paper);
}
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }

.hero {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(31,48,71,.88) 0%, rgba(31,48,71,.68) 34%, rgba(31,48,71,.28) 68%, rgba(31,48,71,.10) 100%),
    linear-gradient(180deg, rgba(31,48,71,.22) 0%, rgba(31,48,71,.18) 54%, rgba(31,48,71,.92) 100%),
    url("assets/kitakyushu-sarakura-night.jpg");
  background-size: cover;
  background-position: center 43%;
}

.nav {
  height: 76px;
  padding: 0 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(31,48,71,.76);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,.08);
  position: relative;
  z-index: 3;
}
.brand { line-height: 1.05; font-weight: 850; letter-spacing: .02em; }
.brand-main { font-size: 25px; }
.brand-sub { margin-top: 5px; font-size: 12px; color: rgba(255,255,255,.8); font-weight: 700; }
.navlinks { display: flex; gap: 26px; align-items: center; font-size: 14px; font-weight: 750; white-space: nowrap; }
.navlinks a:not(.nav-cta) { opacity: .88; }
.navlinks a:hover { color: var(--cyan); }
.lang { cursor: pointer; background: transparent; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 8px 12px; font-weight: 800; }
.nav-cta { padding: 13px 20px; border-radius: 10px; background: linear-gradient(135deg, #62a8ff, #ee8adf); box-shadow: 0 12px 34px rgba(105,132,255,.32); }
.menu-button { display: none; background: transparent; border: 0; font-size: 26px; }

.hero-content {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 80px));
  margin: 0 auto;
  padding-top: 15vh;
}
h1 {
  margin: 0 0 8px;
  font-size: clamp(58px, 9vw, 118px);
  line-height: .95;
  letter-spacing: -.055em;
  font-weight: 950;
  background: linear-gradient(120deg, #9d89ff 0%, #dcecff 42%, #ffffff 72%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.subtitle { margin: 0 0 14px; font-size: clamp(24px, 3vw, 38px); font-weight: 850; letter-spacing: -.02em; }
.subtitle span { color: var(--cyan); }
.eyebrow { display: flex; align-items: center; gap: 16px; margin: 0 0 20px; color: rgba(255,255,255,.84); font-size: 20px; }
.eyebrow::before { content: ""; display: block; width: 92px; height: 1px; background: rgba(255,255,255,.55); }
.headline { margin: 30px 0 16px; max-width: 760px; font-size: clamp(34px, 4.6vw, 58px); line-height: 1.2; letter-spacing: -.04em; font-weight: 950; }
.description { max-width: 790px; margin: 0; color: rgba(255,255,255,.9); font-size: clamp(16px, 1.45vw, 20px); line-height: 1.85; font-weight: 650; }
.buttons { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 36px; }
.btn { min-width: 172px; padding: 15px 23px; border-radius: 12px; font-weight: 850; display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid rgba(255,255,255,.24); }
.btn.primary { border: 0; color: #fff; background: linear-gradient(135deg, #377dff, #d765c8); box-shadow: 0 18px 44px rgba(55,125,255,.25); }
.btn.secondary { background: rgba(31,48,71,.38); backdrop-filter: blur(8px); }

.meta { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; border-top: 1px solid var(--line); background: rgba(31,48,71,.76); backdrop-filter: blur(10px); }
.meta-inner { width: min(1180px, calc(100% - 80px)); margin: 0 auto; min-height: 96px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; align-items: center; }
.meta-item { display: flex; gap: 13px; align-items: flex-start; color: rgba(255,255,255,.9); font-size: 16px; font-weight: 780; }
.icon { color: var(--pink); font-size: 22px; line-height: 1; }

/* White content area after the hero */
main {
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 0%, rgba(99,213,255,.14), transparent 30%),
    radial-gradient(circle at 86% 18%, rgba(154,124,255,.12), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #f8faff 50%, #ffffff 100%);
}
.section { width: min(1180px, calc(100% - 80px)); margin: 0 auto; padding: 96px 0; }
.section.compact { padding-top: 54px; }
.section-kicker { margin: 0 0 14px; color: #327dba; text-transform: uppercase; letter-spacing: .16em; font-weight: 900; font-size: 13px; }
.section h2 { margin: 0 0 18px; color: var(--ink); font-size: clamp(32px, 4vw, 52px); letter-spacing: -.04em; line-height: 1.18; }
.section p { color: var(--ink-muted); font-size: 18px; line-height: 1.9; max-width: 900px; }

#theme {
  padding-top: 104px;
  padding-bottom: 104px;
}
#theme h2 { max-width: 900px; }
#theme p:not(.section-kicker) { font-size: 20px; color: #333c4d; }

.cards { margin-top: 38px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.card { padding: 28px; min-height: 220px; border: 1px solid var(--paper-line); border-radius: 22px; background: rgba(255,255,255,.86); box-shadow: 0 22px 70px rgba(17,24,39,.08); }
.card h3 { margin: 0 0 12px; color: var(--ink); font-size: 22px; }
.card p { margin: 0; color: var(--ink-muted); font-size: 15.5px; line-height: 1.75; }
.split { display: grid; grid-template-columns: 1.25fr .75fr; gap: 48px; align-items: center; }
.criteria-list { list-style: none; margin: 0; padding: 24px; border: 1px solid var(--paper-line); border-radius: 24px; background: #fff; box-shadow: 0 22px 70px rgba(17,24,39,.08); }
.criteria-list li { padding: 13px 0; border-bottom: 1px solid var(--paper-line); color: var(--ink); font-weight: 850; }
.criteria-list li:last-child { border-bottom: 0; }
.sponsor-panel { border: 1px solid #dfe5f0; border-radius: 30px; padding: 54px; background: linear-gradient(135deg, rgba(99,213,255,.14), rgba(255,131,215,.10)), #fff; box-shadow: 0 24px 80px rgba(17,24,39,.08); }
.sponsor-panel .btn { margin-top: 16px; }

footer { background: var(--dark); border-top: 1px solid rgba(255,255,255,.12); padding: 42px 40px; color: rgba(255,255,255,.72); text-align: center; line-height: 1.8; }
footer strong { color: #fff; }

@media (max-width: 1080px) {
  .nav { padding: 0 22px; }
  .menu-button { display: block; }
  .navlinks { display: none; position: absolute; left: 0; right: 0; top: 76px; padding: 22px; background: rgba(31,48,71,.97); flex-direction: column; align-items: flex-start; }
  body.menu-open .navlinks { display: flex; }
  .hero-content { width: calc(100% - 44px); padding-top: 12vh; }
  .meta-inner { width: calc(100% - 44px); grid-template-columns: 1fr 1fr; padding: 20px 0; }
  .cards { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .hero { min-height: 110vh; background-position: 58% center; }
  .headline { font-size: 32px; }
  .meta { position: relative; margin-top: 64px; }
  .meta-inner { grid-template-columns: 1fr; }
  .section { width: calc(100% - 44px); padding: 70px 0; }
  .sponsor-panel { padding: 32px 22px; }
}
