:root{color-scheme:dark;font-family:system-ui,-apple-system,sans-serif;color:#f3f6ff;background:#071122;--muted:#b9c9df;--line:#3b5170;--mint:#b1f4d5;--violet:#cec5ff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#07112299,#071122f5 470px),url('./assets/home/space-race-hero-v3.webp') center top/cover fixed}header,main,footer{max-width:1120px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:800;text-decoration:none;font-size:19px}.brand span{color:#8ddaff}nav{display:flex;align-items:center;gap:20px;font-size:14px}a{color:inherit}button,input,.button{font:inherit}button,.button{border:1px solid transparent;border-radius:12px;padding:13px 20px;background:var(--mint);color:#0a2a2c;font-weight:750;cursor:pointer;text-decoration:none;min-height:48px}button:disabled{opacity:.6;cursor:wait}.quiet,.secondary{background:#0c1a30bd;border-color:var(--line);color:#e3edfc}.quiet:hover,.secondary:hover{background:#223851}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #9bdcff;outline-offset:5px}[tabindex="-1"]:focus{outline:none}.steps{display:flex;gap:32px;list-style:none;padding:0;margin:30px 0 22px;color:var(--muted);font-size:14px;font-weight:650}.steps li{display:flex;align-items:center;gap:10px}.steps span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #637896;border-radius:50%}.steps [aria-current]{color:var(--mint)}.steps [aria-current] span{background:var(--mint);color:#122d32;border-color:var(--mint)}#status{font-size:14px;min-height:22px;color:var(--muted);margin:0 0 32px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:850;color:#97d8ff;margin:0 0 12px}h1{font-size:clamp(34px,5vw,54px);line-height:1.08;letter-spacing:-.04em;margin:12px 0 16px}h2{font-size:30px;letter-spacing:-.025em;margin:12px 0}p{line-height:1.6;color:var(--muted)}.lead{font-size:18px;margin-bottom:36px}.profiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,210px));gap:20px;margin:32px 0 24px}.profile{min-height:206px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:linear-gradient(140deg,#1b2d4bef,#0d1b30f5);border:1px solid #4b6284;color:white;padding:26px 16px;box-shadow:0 12px 32px #0002}.profile:hover{border-color:var(--mint);background:#203951;transform:translateY(-3px)}.avatar{display:grid;place-items:center;width:84px;height:84px;border-radius:28px;background:var(--avatar,#b3cef9);color:#10243d;font-size:34px;font-weight:850;box-shadow:0 0 32px #a5caff14}.profile-name{font-size:19px;overflow-wrap:anywhere;max-width:100%}.profile-hint{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em}.add{margin:12px 0 56px}.selected-row{display:flex;align-items:center;gap:16px;margin-bottom:26px;flex-wrap:wrap}.selected{border-left:3px solid var(--mint);padding-left:12px;font-weight:750;overflow-wrap:anywhere}.selected-row button{font-size:13px;min-height:42px;padding:9px 15px}.games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game{display:block;border:1px solid #516080;border-radius:22px;overflow:hidden;text-decoration:none;background:#182342;transition:transform .15s,border-color .15s}.math{background:#12313a}.game:hover{transform:translateY(-4px);border-color:var(--mint)}.cover{aspect-ratio:16/8;background:#060e1b;display:flex;align-items:center}.cover img{display:block;width:100%;height:100%;object-fit:contain}.game-copy{padding:26px}.game-copy>p:not(.eyebrow){min-height:26px;margin:12px 0 26px}.play-button{display:flex;align-items:center;justify-content:space-between;background:var(--violet);color:#21173e;padding:15px 20px;border-radius:11px;font-size:18px;font-weight:800}.math .play-button{background:var(--mint);color:#0f3132}.message{max-width:650px;padding:24px 0 80px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}footer{font-size:13px;color:var(--muted);margin-top:32px;padding-bottom:32px}dialog{width:min(520px,calc(100% - 32px));padding:30px;border:1px solid var(--line);border-radius:22px;background:#111f34;color:#f3f6ff}dialog::backdrop{background:#020917bb;backdrop-filter:blur(6px)}label{display:block;margin:20px 0;font-size:14px;font-weight:650}input{display:block;width:100%;padding:13px;margin-top:8px;border:1px solid #62728c;border-radius:10px;background:#081426;color:#fff}#create-status{font-size:14px}[hidden]{display:none!important}@media(max-width:650px){header,main,footer{padding:18px}header{align-items:flex-start;flex-direction:column;gap:16px}nav{justify-content:space-between;width:100%}.steps{gap:22px;margin-top:15px;font-size:13px}#status{margin-bottom:24px}.profiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile{min-height:185px;padding:20px 12px}.avatar{width:70px;height:70px;font-size:28px}.games{grid-template-columns:1fr}.game-copy{padding:22px}.lead{font-size:16px}.message{padding-top:10px}.brand{font-size:18px}dialog{padding:24px}}@media(prefers-reduced-motion:reduce){.game{transition:none}.game:hover,.profile:hover{transform:none}}

/* Keep all desktop launch buttons in view after choosing a profile. */
.choosing-game .steps{margin:10px 0 20px}.choosing-game #status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}.choosing-game .selected-row{margin:0 0 14px}.choosing-game h1{font-size:clamp(30px,4vw,42px);margin:0 0 12px}.choosing-game .lead{margin:0 0 24px}.choosing-game .cover{aspect-ratio:16/4.5}.choosing-game .game-copy{padding:20px}.choosing-game .game-copy .eyebrow{font-size:10px;margin:0}.choosing-game h2{font-size:28px;margin:8px 0}.choosing-game .game-copy>p:not(.eyebrow){margin:8px 0 16px;font-size:14px}.choosing-game .play-button{padding:13px 18px}
@media(max-width:650px){.choosing-game .cover{aspect-ratio:16/5}.choosing-game .games{gap:18px}}
@media(max-width:650px){.choosing-game .cover{aspect-ratio:16/3}.choosing-game .game-copy{padding:16px}.choosing-game .game-copy .eyebrow,.choosing-game .game-copy>p:not(.eyebrow){display:none}.choosing-game h2{font-size:24px;margin:0 0 12px}}
.auth-card{max-width:580px;padding:28px;border:1px solid #486080;border-radius:22px;background:#0d1b30ed;margin-bottom:28px}.auth-card h1{font-size:clamp(30px,4vw,42px)}.auth-modes{display:flex;gap:10px;margin:24px 0}.auth-modes button{flex:1}.auth-modes [aria-pressed="true"]{background:var(--mint);color:#0a2a2c;border-color:var(--mint)}.auth-modes [aria-pressed="false"]{background:transparent;color:#e3edfc;border-color:var(--line)}.auth-card form>button{margin:0 8px 10px 0}.consent{line-height:1.6;font-weight:400}.consent input{display:inline;width:auto;margin:0 8px 0 0}.account-help{font-size:13px;margin-bottom:0}#auth-status{font-size:14px}.auth-card p{margin-top:12px}@media(max-width:650px){.auth-card{padding:22px}.auth-card form>button{width:100%;margin-right:0}}
.account-entry .steps{margin-top:10px}.account-entry #status{margin:0 0 18px}

@media(max-width:650px){.steps{gap:12px;font-size:12px;justify-content:space-between}.steps li{gap:6px}.steps span{width:24px;height:24px;flex-shrink:0}}

.typing{background:#38254c}.typing .play-button{background:#ffd29d;color:#382114}@media(min-width:651px) and (max-width:900px){.choosing-game .game-copy{padding:15px}.choosing-game h2{font-size:23px}.choosing-game .play-button{font-size:16px;padding:13px}}

/* Loading has one clear status; account actions return with the next panel. */
[data-loading="true"] #status{display:flex;align-items:center;gap:12px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#0d1b30ed;max-width:580px}
[data-loading="true"] #status::before{content:"";width:22px;height:22px;flex-shrink:0;border:3px solid #b1f4d533;border-top-color:var(--mint);border-radius:50%;animation:crew-loading 1s linear infinite}
@keyframes crew-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){[data-loading="true"] #status::before{animation:none}}
/* Trophy avatars: Blender portraits of the trophies a player has earned. */
.avatar{overflow:hidden}
.avatar.trophy{background:#0b1426;box-shadow:0 0 0 2px #ffffff22,0 0 32px #ffd27a33}
.avatar.trophy img{width:100%;height:100%;object-fit:cover;display:block}
.selected-row .avatar{width:48px;height:48px;border-radius:16px;font-size:20px}
#avatar-dialog{max-height:calc(100dvh - 32px);overflow:hidden}
#avatar-dialog[open]{display:flex;flex-direction:column}
#avatar-dialog>*{flex:none}
#avatar-dialog .avatar-options{flex:1 1 auto;min-height:120px}
.avatar-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-content:start;grid-auto-rows:max-content;gap:12px;margin:8px 0 16px;overflow:auto;padding:2px}
.avatar-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;background:#0c1a30;border-color:var(--line);color:#f3f6ff;font-weight:700}
.avatar-option .avatar{width:84px;height:84px;flex:none}
.avatar-option[aria-pressed="true"]{border-color:var(--mint);box-shadow:0 0 0 2px var(--mint)}
.avatar-option:disabled{opacity:.45;cursor:not-allowed}
.avatar-option:disabled .avatar{filter:grayscale(1) brightness(.6)}
.avatar-option-name{font-size:14px;text-align:center}
.avatar-option-note{font-size:11px;color:var(--muted);font-weight:600}
.avatar-group{grid-column:1/-1;margin:10px 0 0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
