:root {
  --blue: #2563EB;
  --blue-dark: #1D4ED8;
  --blue-tint: #EAF1FF;
  --ink: #0F1B3D;
  --muted: #5A6785;
  --line: #DCE4F5;
  --bg: #FFFFFF;
  --warn-bg: #FFF4D6;
  --warn-line: #F0C24B;
  --warn-ink: #5C4300;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.wrap { width: min(100% - 2.5rem, 760px); margin-inline: auto; }

/* Hero */
.hero {
  position: relative;
  overflow: hidden;
  background: var(--blue);
  color: #fff;
  padding: clamp(3rem, 9vw, 6rem) 0 clamp(3.5rem, 10vw, 7rem);
}
.hero__glyph {
  position: absolute;
  right: -0.06em;
  bottom: -0.22em;
  font-weight: 800;
  font-size: clamp(14rem, 46vw, 34rem);
  line-height: 1;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.1);
  user-select: none;
  pointer-events: none;
}
.hero__inner { position: relative; }
.hero__icon {
  display: block;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(10, 30, 90, 0.35);
  margin-bottom: 1.75rem;
}
.hero h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(2.2rem, 7vw, 3.6rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.02em;
  max-width: 14em;
}
.hero__lead { margin: 0 0 2rem; font-size: 1.15rem; max-width: 30em; color: #DCE7FF; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Buttons */
.btn {
  display: inline-block;
  padding: 0.85rem 1.4rem;
  border-radius: 12px;
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-dark); }
.hero .btn--primary { background: #fff; color: var(--blue); }
.hero .btn--primary:hover { background: var(--blue-tint); }
.btn--ghost { border-color: rgba(255, 255, 255, 0.7); color: #fff; }
.btn--ghost:hover { background: rgba(255, 255, 255, 0.14); }
.btn--lg { padding: 1rem 1.8rem; font-size: 1.05rem; }
.btn.is-disabled { background: #C9D3EA; color: #fff; cursor: not-allowed; pointer-events: none; }
.dl { display: grid; gap: 0.5rem; justify-items: start; }
.dl__meta { margin: 0; font-size: 0.9rem; color: var(--muted); }
:focus-visible { outline: 3px solid #F0C24B; outline-offset: 3px; }

/* Platform sections */
.platform {
  padding: clamp(2.5rem, 7vw, 4.5rem) 0;
  display: grid;
  gap: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.platform__head h2 { margin: 0; font-size: 2rem; font-weight: 800; letter-spacing: -0.01em; }
.platform__head p { margin: 0.25rem 0 0; color: var(--muted); }
.platform__body { display: grid; gap: 1.5rem; justify-items: start; }
.steps { margin: 0; padding-left: 1.25rem; color: var(--ink); }
.steps li { margin-bottom: 0.4rem; padding-left: 0.25rem; }

/* iOS notice + video */
.notice {
  width: 100%;
  background: var(--warn-bg);
  border-left: 6px solid var(--warn-line);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  color: var(--warn-ink);
}
.notice p { margin: 0.35rem 0 0; }
.video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
  border: 1px solid var(--line);
}
.video iframe { width: 100%; height: 100%; border: 0; display: block; }
.video__alt { margin: -0.75rem 0 0; font-size: 0.9rem; color: var(--muted); }
.video__alt a { color: var(--blue); }

.gate {
  width: 100%;
  display: grid;
  gap: 1rem;
  justify-items: start;
  padding: 1.25rem;
  background: var(--blue-tint);
  border-radius: 14px;
}
.gate__check { display: flex; gap: 0.7rem; align-items: center; font-weight: 700; cursor: pointer; }
.gate__check input { width: 1.3rem; height: 1.3rem; accent-color: var(--blue); }

/* Footer */
.footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 2rem 0 3rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.footer img { border-radius: 8px; }

@media (min-width: 720px) {
  .platform { grid-template-columns: 180px 1fr; gap: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn { transition: none; }
}
