/* Atkinson Hyperlegible Next (Braille Institute, SIL Open Font License): letters that are hard to
   confuse, for parents reading in a second language. One variable file, served from this site. */
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  src: url('/fonts/atkinson-next.woff2') format('woff2');
}

:root {
  --bg: #0d0e10; --text: #f7f6f2; --muted: #d4d6db; --line: rgba(255, 255, 255, 0.28); --amber: #f0bd55; --ink: #141310;
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--text); font: 300 19px/1.6 'Atkinson Hyperlegible Next', system-ui, -apple-system, sans-serif; }
main { max-width: 640px; margin: 0 auto; padding: 40px 20px 64px; }
h1 { font-size: 42px; font-weight: 600; line-height: 1.1; margin: 10px 0 14px; letter-spacing: -0.5px; }
h2 { font-size: 24px; font-weight: 600; margin: 32px 0 8px; }
p { margin: 0 0 14px; }
a { color: var(--amber); }
.brand { color: var(--amber); font-weight: 600; letter-spacing: 2px; text-transform: uppercase; font-size: 15px; text-decoration: none; }
.lead { font-size: 21px; color: var(--muted); }

/* How it works: plain numbered lines, no boxes */
.steps { list-style: none; margin: 28px 0; padding: 0; display: grid; gap: 18px; counter-reset: step; }
.steps li { counter-increment: step; position: relative; padding-left: 40px; }
.steps li::before { content: counter(step); position: absolute; left: 0; top: -6px; font-size: 28px; font-weight: 600; color: var(--amber); }
.steps strong { color: var(--text); }

/* Sign-up form: no panel; a white field, an outlined switch and an amber button */
form { display: grid; gap: 14px; margin: 20px 0 24px; }
label { font-weight: 600; }
input[type="email"] { font: inherit; min-height: 54px; border-radius: 10px; border: 0; background: #ffffff; color: var(--ink); padding: 0 16px; }
input[type="email"]::placeholder { color: #6b6f78; }
input[type="email"]:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
button { font: inherit; min-height: 54px; border-radius: 10px; border: 0; background: var(--amber); color: var(--ink); font-weight: 600; cursor: pointer; }
button:focus-visible { outline: 3px solid var(--text); outline-offset: 2px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.msg { min-height: 1.6em; margin: 0; font-weight: 600; }
.note { color: var(--muted); font-size: 16px; }

/* iPhone / Android switch */
.switch { border: 0; margin: 0; padding: 0; min-width: 0; }
.switch legend { font-weight: 600; padding: 0 0 8px; }
.switch .track { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.switch label { position: relative; cursor: pointer; }
.switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.switch span { display: flex; align-items: center; justify-content: center; min-height: 50px; border: 2px solid var(--line); border-radius: 10px; font-weight: 600; color: var(--text); }
.switch input:checked + span { background: var(--text); border-color: var(--text); color: var(--ink); }
.switch input:focus-visible + span { outline: 3px solid var(--amber); outline-offset: 2px; }

footer { border-top: 1px solid var(--line); margin-top: 48px; padding-top: 16px; display: flex; flex-wrap: wrap; gap: 18px; color: var(--muted); font-size: 16px; }

/* Home page: full-screen looping video under an even tint, so text sits directly on it */
.home { background: transparent; }
.home .bg { position: fixed; inset: 0; width: 100vw; height: 100vh; object-fit: cover; z-index: -2; background: var(--bg); }
.home .bg-tint { position: fixed; inset: 0; z-index: -1; background: rgba(8, 9, 11, 0.84); }
@media (prefers-reduced-motion: reduce) {
  .home .bg { display: none; }
  .home .bg-tint { background: linear-gradient(rgba(8, 9, 11, 0.84), rgba(8, 9, 11, 0.84)), url('/media/hero-poster.jpg') center / cover no-repeat; }
}
@media (max-width: 480px) {
  body { font-size: 18px; }
  h1 { font-size: 34px; }
  .lead { font-size: 19px; }
}
