@font-face { font-family: Geist; src: url('/assets/geist-variable.ttf') format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; }
:root { color-scheme: dark; --text:#f0f5f2; --muted:#bdcecb; --ease:cubic-bezier(.22,1,.36,1); }
* { box-sizing:border-box; }
body { margin:0; min-height:100svh; display:flex; flex-direction:column; overflow-x:hidden; background:#101719; color:var(--text); font-family:Geist,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.colour-field { position:fixed; inset:0; pointer-events:none; z-index:-1; background:radial-gradient(ellipse 65% 95% at 50% 112%,#050a13 22%,#073745aa 48%,transparent 73%),radial-gradient(ellipse 80% 92% at 50% 90%,#4db7919c 15%,#1e696d87 49%,transparent 81%),linear-gradient(180deg,#101719 12%,#183d3e 100%); }
header,footer { width:min(1200px,calc(100% - 96px)); margin-inline:auto; }
header { padding-block:36px; }
.brand { display:inline-flex; align-items:center; gap:11px; font-size:24px; font-weight:550; letter-spacing:-1px; }
.brand img { width:30px; height:30px; }
main { width:min(940px,calc(100% - 48px)); margin:auto; padding:72px 0 100px; text-align:center; }
h1,p { margin:0; }
h1 { font-size:clamp(48px,6.3vw,80px); font-weight:600; line-height:1.03; letter-spacing:-.065em; }
.intro { font-size:clamp(20px,2vw,24px); letter-spacing:-.035em; margin-top:28px; line-height:1.35; }
.description { font-size:16px; line-height:1.7; color:var(--muted); margin:12px auto 0; max-width:460px; }
form { max-width:540px; margin:42px auto 0; }
label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.signup { display:flex; gap:8px; padding:7px; border:1px solid #d7f4ea30; border-radius:12px; background:#0b242a66; box-shadow:inset 0 1px 0 #ffffff0c,0 14px 45px #00000015; }
input,button { font:inherit; min-height:52px; border:0; border-radius:7px; }
input { min-width:0; width:100%; padding:0 15px; background:transparent; color:var(--text); font-size:15px; }
input::placeholder { color:#bdcecb; }
button { display:flex; align-items:center; justify-content:center; gap:18px; flex-shrink:0; padding:0 20px; color:#15302d; background:#d5eee3; font-size:14px; font-weight:550; cursor:pointer; transition:background 400ms var(--ease),transform 400ms var(--ease); }
button:hover { background:#f0faf5; transform:translateY(-1px); }
button:active { transform:scale(.98); }
button:disabled { opacity:.6; cursor:wait; }
button span { font-size:19px; }
:focus-visible { outline:2px solid #d5eee3; outline-offset:4px; }
input:focus-visible { outline-offset:0; }
.consent { color:var(--muted); font-size:11px; line-height:1.6; margin-top:16px; }
.form-status { font-size:13px; line-height:1.6; margin-top:12px; color:var(--text); }
.form-status:empty { display:none; }
footer { display:flex; justify-content:flex-end; padding:28px 0; font-size:12px; color:var(--muted); }
footer a { transition:color 400ms var(--ease); }footer a:hover { color:var(--text); }footer a span { margin-left:8px; }
@media(max-width:600px) { header,footer { width:calc(100% - 40px); }header { padding-block:24px; }.brand { font-size:22px; }main { padding:60px 0 72px; }h1 { font-size:clamp(32px,9.4vw,52px); }.intro { font-size:20px; margin-top:24px; }.description { font-size:14px; max-width:280px; }form { margin-top:32px; }.signup { flex-direction:column; gap:4px; }input { font-size:16px; min-height:50px; }button { min-height:50px; }.consent { max-width:250px; margin:14px auto 0; }footer { font-size:11px; padding-bottom:24px; } }
@media(prefers-reduced-motion:no-preference) { main { animation:arrive 950ms var(--ease) both; }@keyframes arrive { from { opacity:0; transform:translateY(16px); }to { opacity:1; transform:translateY(0); } } }

.consent a { text-decoration:underline; text-underline-offset:3px; }

.info-page main { width:min(720px,calc(100% - 48px)); margin:0 auto auto; padding:56px 0 80px; text-align:left; }
.info-page h1 { font-size:clamp(48px,6vw,64px); }
.info-page .updated { font-size:12px; margin:20px 0 32px; }
.info-page h2 { font-size:23px; font-weight:550; letter-spacing:-.025em; line-height:1.3; margin:36px 0 16px; }
.info-page main p { color:var(--muted); font-size:15px; line-height:1.8; margin-bottom:16px; }
.info-page main a { text-decoration:underline; text-underline-offset:4px; color:var(--text); }
.info-page .back-link { display:inline-block; margin-top:28px; font-size:14px; }
@media(max-width:600px) { .info-page main { padding:40px 0 56px; }.info-page main p { font-size:14px; } }

h1 em { font-family:Georgia, serif; font-weight:400; letter-spacing:-.065em; }

/* Give long information pages a clear footer and room for mobile safe areas. */
.info-page header, .info-page main, .info-page footer { flex-shrink:0; }
.info-page footer { width:100%; padding-inline:max(48px,calc((100% - 1200px)/2)); background:#101719; border-top:1px solid #d7f4ea18; }
@media(max-width:600px) {
  html:has(.info-page) { scroll-padding-bottom:96px; }
  .info-page footer { padding:28px 20px calc(32px + env(safe-area-inset-bottom,0px)); }
}
