@font-face{font-family:"Source Serif 4";src:url("/landing/assets/fonts/source-serif-4.woff2") format("woff2");font-weight:200 900;font-display:swap}
@font-face{font-family:Inter;src:url("/landing/assets/fonts/inter.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{color-scheme:light;--ink:#16202e;--paper:#fbfaf7;--accent:#24408e;--rule:#e2ded4;--muted:#5f6977}
*{box-sizing:border-box}body{min-height:100dvh;display:flex;flex-direction:column;margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 Inter,system-ui,sans-serif}a{color:var(--accent);text-underline-offset:.2em}button,input,select{font:inherit}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.signup-header{width:100%;max-width:72rem;margin:0 auto;padding:1rem clamp(1.25rem,4vw,3rem);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);gap:1rem}.signup-header>a:last-child{font-size:.88rem}.brand{display:inline-flex;align-items:center;font:600 1.7rem/1.1 "Source Serif 4",Georgia,serif;color:var(--ink);text-decoration:none}.brand__owl{width:1.6rem;height:1.6rem;margin-right:.5rem}.brand span{display:none;font:.7rem/1.8 Inter,system-ui,sans-serif;letter-spacing:.03em;color:var(--muted)}
main{flex:1 0 auto;width:100%;max-width:39rem;padding:2rem 1.25rem 1rem;margin:0 auto}h1{font:500 clamp(2.15rem,7vw,3.1rem)/1.12 "Source Serif 4",Georgia,serif;letter-spacing:-.025em;margin:1.2rem 0 .85rem}.intro{color:#45505f;margin:0 0 1.7rem;font-size:1.04rem}
.role-options{display:grid;gap:.75rem}.role-choice>label{position:relative}.role-choice input{position:absolute;inset:auto auto 0 0;opacity:0;width:1px;height:1px}.role-choice label>span{display:block;padding:1.1rem 1rem;background:white;border:1px solid var(--rule);border-radius:.5rem;box-shadow:0 3px 15px #16202e04;cursor:pointer;font-weight:400}.role-choice label>span:hover{border-color:var(--accent)}.role-choice strong{font-weight:600;font-size:1rem}.role-choice small{display:block;color:var(--muted);font-size:.81rem;margin-top:.2rem}.role-choice input:checked+span{border-color:var(--accent);background:#eef1f9;box-shadow:inset 0 0 0 1px var(--accent)}.role-choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}
/* The rest of the form waits for the role. A browser without :has() drops these rules and shows every field. */
.after-role,div.for-parent{display:grid;gap:1.25rem}.signup-form:not(:has([name=role]:checked)) .after-role{display:none}.signup-form:has([name=role][value=student]:checked) .for-parent{display:none}.signup-form:has([name=role][value=parent]:checked) .for-student{display:none}
.signup-form{display:grid;gap:1.25rem}label{display:block;font-size:.86rem;font-weight:500}input:not([type=checkbox],[type=radio]),select{display:block;width:100%;background:white;border:1px solid #cdc7ba;border-radius:.3rem;padding:.75rem;color:var(--ink);margin-top:.4rem;min-height:3rem}input::placeholder{color:var(--muted);opacity:1}.two-fields{display:grid;gap:1rem}.hint{font-size:.78rem;color:var(--muted);margin:.25rem 0 0}.two-fields+.hint{margin-top:-.8rem}.optional{font-weight:400;color:var(--muted)}fieldset{border:0;margin:0;padding:0;min-width:0}legend{font-size:.86rem;font-weight:500;margin-bottom:.6rem;padding:0}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips label{position:relative}.chips input{position:absolute;inset:auto auto 0 0;opacity:0;width:1px;height:1px}.chips span{display:block;border:1px solid #cdc7ba;border-radius:2rem;padding:.65rem .85rem;font-size:.88rem;cursor:pointer}.chips input:checked+span{color:var(--accent);background:#eef1f9;border-color:var(--accent)}.chips input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}.check{display:flex;gap:.7rem;align-items:flex-start;line-height:1.55;font-weight:400}.check input{accent-color:var(--accent);width:1.15rem;height:1.15rem;flex-shrink:0;margin:.12rem 0 0}
.parent-choices{display:grid;gap:1rem;border-top:1px solid var(--rule);padding-top:1.25rem}details{font-size:.85rem}details>label{margin-top:1rem}summary{color:var(--accent);width:fit-content;text-decoration:underline;text-underline-offset:.22em;padding:.25rem 0}summary::marker{font-size:.7em}.setup-preview{list-style:none;display:grid;gap:.25rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:1rem 0;margin:0 0 1.5rem;font-size:.88rem;line-height:1.5;color:#45505f}.consent{padding-top:.25rem}.primary{display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--accent);color:white;width:100%;border:1px solid var(--accent);border-radius:.35rem;padding:1rem;font-weight:500;font-size:1rem;min-height:3.5rem}.primary:hover{background:#1b3272}.signup-form>.primary{margin-top:.75rem}.back{font-size:.85rem;text-align:center}.centered{text-align:center}.error{padding:1rem;border-left:3px solid #9c3329;background:#f8eeeb;color:#79271f;font-size:.86rem}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}footer{text-align:center;margin:2.5rem 1.25rem 1.5rem;color:var(--muted);font-size:.73rem;line-height:2}footer a{color:var(--muted)}
@media(min-width:560px){.signup-header{padding-block:1.5rem}.brand{font-size:2rem}main{padding-top:2.75rem}.two-fields,.role-options{grid-template-columns:1fr 1fr}.signup-header .brand span{display:inline;margin-left:1rem}}
@media(max-width:559px){.chips{display:grid}.chips span{border-radius:.5rem;padding:.75rem 1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.field-error{display:block;color:#79271f;font-size:.82rem;font-weight:400;margin-top:.4rem}[aria-invalid=true]{border-color:#9c3329!important}input,select{scroll-margin-top:1.5rem;min-width:0}.two-fields>label{min-width:0}
details>.two-fields{margin-top:1rem}details>.hint{margin-top:.4rem}
