:root {
  color-scheme: light dark;
  --sky: #2B7DE9;
  --deep-sky: #0A4FBF;
  --cloud: #F8FBFF;
  --silver: #F1F5F9;
  --wingtip: #FF3B30;
  --coral: #FF6B6B;
  --text: #1A2332;
  --muted: #5A6A7A;
  --border: #D6E0EA;
  --night: #0A1628;
  --night-sky: #4DA3FF;
  --night-red: #FF5A5F;
  --night-text: #E8EEF4;
}

* { box-sizing: border-box; }
html { background: var(--cloud); }
body {
  margin: 0;
  min-width: 320px;
  background: var(--cloud);
  color: var(--text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }

.hero {
  position: relative;
  min-height: 540px;
  height: clamp(540px, 62svh, 760px);
  overflow: hidden;
  color: #fff;
  isolation: isolate;
}

.hero-photo,
.hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-photo {
  z-index: -2;
  object-fit: cover;
  object-position: center 52%;
  transform: scale(1.002);
}

.hero-overlay {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(5, 32, 67, .34) 0%, rgba(5, 32, 67, .04) 34%, rgba(5, 32, 67, .10) 63%, rgba(5, 26, 50, .52) 100%),
    linear-gradient(90deg, rgba(3, 30, 60, .20), transparent 48%);
}

.topbar,
.hero-copy,
.hero-meta,
.intro,
.modules,
.footer {
  width: min(1320px, calc(100% - 48px));
  margin-inline: auto;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-top: max(26px, env(safe-area-inset-top));
}

.brand {
  font-size: 24px;
  line-height: 1;
  font-weight: 650;
  letter-spacing: -.045em;
  text-shadow: 0 1px 18px rgba(0, 35, 75, .22);
}
.brand-dot { color: var(--wingtip); }
.brand-club { font-weight: 470; opacity: .82; }

.topnav {
  display: flex;
  align-items: center;
  gap: 26px;
  color: rgba(255,255,255,.88);
  font-size: 13px;
  font-weight: 500;
}
.topnav span { cursor: default; }

.hero-copy {
  position: absolute;
  left: 50%;
  bottom: 108px;
  transform: translateX(-50%);
}

.eyebrow {
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .16em;
  opacity: .82;
}

h1 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(44px, 5.4vw, 76px);
  line-height: .98;
  font-weight: 620;
  letter-spacing: -.055em;
  text-shadow: 0 2px 26px rgba(0, 32, 71, .24);
}

.hero-line {
  margin: 18px 0 0;
  font-size: clamp(17px, 1.6vw, 22px);
  line-height: 1.3;
  font-weight: 430;
  letter-spacing: -.02em;
  opacity: .96;
}

.hero-meta {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 0 24px;
  border-top: 1px solid rgba(255,255,255,.38);
  color: rgba(255,255,255,.80);
  font-size: 12px;
  letter-spacing: .02em;
}

.intro {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .65fr);
  gap: clamp(48px, 8vw, 120px);
  padding: clamp(72px, 9vw, 120px) 0 clamp(58px, 7vw, 92px);
}

.section-label {
  margin: 0 0 18px;
  color: var(--sky);
  font-size: 13px;
  font-weight: 650;
}

.intro h2 {
  margin: 0;
  color: var(--deep-sky);
  font-size: clamp(36px, 4.4vw, 58px);
  line-height: 1.1;
  font-weight: 620;
  letter-spacing: -.045em;
}

.intro-copy {
  align-self: end;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}
.intro-copy p { margin: 0; }
.intro-copy p + p { margin-top: 14px; }

.modules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.module {
  min-height: 128px;
  padding: 24px 22px 22px 0;
  transition: transform .22s ease, background-color .22s ease;
}
.module:nth-child(3n+2),
.module:nth-child(3n+3) {
  padding-left: 22px;
  border-left: 1px solid var(--border);
}
.module:nth-child(n+4) { border-top: 1px solid var(--border); }
.module span,
.module small {
  display: block;
  font-family: "SF Mono", "JetBrains Mono", ui-monospace, monospace;
}
.module span {
  color: var(--sky);
  font-size: 11px;
  letter-spacing: .04em;
}
.module strong {
  display: block;
  margin-top: 15px;
  color: var(--text);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.025em;
}
.module small {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11px;
}

@media (hover: hover) {
  .module:hover {
    background: var(--silver);
    transform: translateY(-2px);
  }
}

.footer {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 0 max(34px, env(safe-area-inset-bottom));
  color: var(--muted);
  font-size: 12px;
}
.footer span:first-child { color: var(--text); font-weight: 600; }

@media (max-width: 760px) {
  .hero {
    min-height: 500px;
    height: 58svh;
  }
  .hero-photo { object-position: 62% center; }
  .topbar,
  .hero-copy,
  .hero-meta,
  .intro,
  .modules,
  .footer {
    width: min(100% - 36px, 1320px);
  }
  .brand { font-size: 22px; }
  .topnav { gap: 14px; font-size: 12px; }
  .topnav span:nth-child(2) { display: none; }
  .hero-copy { bottom: 105px; }
  .eyebrow { font-size: 10px; }
  h1 { font-size: clamp(40px, 12vw, 58px); }
  .hero-line { font-size: 17px; }
  .hero-meta {
    gap: 12px;
    font-size: 10px;
    line-height: 1.45;
  }
  .hero-meta span:last-child { text-align: right; }
  .intro {
    display: block;
    padding-top: 64px;
    padding-bottom: 54px;
  }
  .intro h2 { font-size: clamp(34px, 9.8vw, 48px); }
  .intro-copy { margin-top: 34px; font-size: 15px; }
  .modules { grid-template-columns: repeat(2, 1fr); }
  .module,
  .module:nth-child(3n+2),
  .module:nth-child(3n+3) {
    min-height: 116px;
    padding: 20px 16px 18px 0;
    border-left: 0;
  }
  .module:nth-child(even) {
    padding-left: 16px;
    border-left: 1px solid var(--border);
  }
  .module:nth-child(n+3) { border-top: 1px solid var(--border); }
  .module strong { font-size: 18px; }
  .footer {
    align-items: flex-end;
    font-size: 11px;
    line-height: 1.5;
  }
  .footer span:last-child { text-align: right; }
}

@media (max-width: 420px) {
  .topnav span:nth-child(3) { display: none; }
  .hero-meta span:last-child { display: none; }
}

@media (prefers-color-scheme: dark) {
  html,
  body { background: var(--night); color: var(--night-text); }
  .intro h2 { color: var(--night-sky); }
  .intro-copy,
  .footer,
  .module small { color: #9BAABC; }
  .section-label,
  .module span { color: var(--night-sky); }
  .module strong,
  .footer span:first-child { color: var(--night-text); }
  .modules,
  .module:nth-child(3n+2),
  .module:nth-child(3n+3),
  .module:nth-child(n+4),
  .module:nth-child(even),
  .module:nth-child(n+3) { border-color: rgba(232,238,244,.16); }
  @media (hover: hover) {
    .module:hover { background: rgba(255,255,255,.045); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .module { transition: none; }
}
