:root{--navy: #0a1929;--navy-2: #122436;--sand: #e8c547;--paper: #f8f6f1;--ink: #0d1825;--muted: #94a3b8;--green: #16a34a;--amber: #d97706;--red: #dc2626;--line: #1c2c40;--line-strong: #3f5878;--focus: #93c5fd}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--navy);color:var(--paper);font:16px/1.5 Spline Sans,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:400}button,input,select,textarea{font:inherit}a{color:var(--sand)}a:hover{text-decoration:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.skip-link{position:absolute;left:-9999px;top:8px;background:var(--paper);color:var(--navy);padding:8px 12px;border-radius:6px;font-weight:700;z-index:1000}.skip-link:focus{left:8px}.shell{min-height:100vh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.container{max-width:720px;margin:0 auto;padding:16px}h1,h2,h3,.h1,.h2{font-family:Fraunces,Georgia,Times New Roman,serif;font-weight:600;letter-spacing:-.015em}.h1{font-size:30px;line-height:1.05;margin:0 0 12px}.h2{font-size:21px;line-height:1.15;margin:16px 0 8px}.muted{color:var(--muted)}.card{background:var(--navy-2);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.race-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.race-name{font-weight:600}.race-date{font-size:13px;color:var(--muted)}.rsvp{display:inline-flex;gap:6px}.rsvp button{border:1px solid var(--line-strong);background:transparent;color:var(--paper);border-radius:8px;padding:8px 12px;font-weight:700;font-size:13px;cursor:pointer;min-height:44px}.rsvp button[aria-pressed=true].y,.rsvp button.active.y{background:var(--green);border-color:var(--green)}.rsvp button[aria-pressed=true].m,.rsvp button.active.m{background:var(--amber);border-color:var(--amber)}.rsvp button[aria-pressed=true].n,.rsvp button.active.n{background:var(--red);border-color:var(--red)}.btn-primary{background:var(--sand);color:var(--navy);border:none;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer;width:100%;min-height:44px}.btn-primary:disabled,.btn-primary[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--paper);border:1px solid var(--line-strong);border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer;min-height:44px}.link-back{background:transparent;border:none;color:var(--muted);font-size:14px;cursor:pointer;padding:4px 0}.link-back:hover{color:var(--paper)}.banner{background:#e8c5471f;color:var(--sand);border:1px solid rgba(232,197,71,.3);border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:12px}.banner.offline{background:#d977062e;color:#fcd34d;border-color:#d9770673}.input{display:block;width:100%;background:var(--navy);color:var(--paper);border:1px solid var(--line-strong);border-radius:8px;padding:12px 14px;font-size:16px;margin:6px 0 12px;min-height:44px}.input::placeholder{color:var(--muted);opacity:1}.input:focus-visible{border-color:var(--focus)}.label{font-size:13px;color:var(--paper);margin-top:8px;font-weight:600}input[type=checkbox]{accent-color:var(--sand)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--navy-2);color:var(--paper);border:1px solid var(--line-strong);border-radius:10px;padding:10px 14px;box-shadow:0 8px 24px #00000059;z-index:100}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
