@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#122033;--paper:#f7f2e9;--cream:#fffaf0;--muted:#697583;--line:#d8d0c2;--coral:#ef765f;--blue:#6d91a9;--dark:#101b2d;--gold:#e7b75b;--shadow:0 10px 30px #13233714}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk',system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}.screen{min-height:100dvh;padding:clamp(34px,9vh,90px) 22px 42px;max-width:680px;margin:auto;text-align:center}.kicker{font:12px 'DM Mono',monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral);margin:0 0 16px}.screen h1{font-size:clamp(42px,13vw,86px);line-height:.91;letter-spacing:-4px;margin:0}.screen h1 em{font-style:normal;color:var(--coral)}.race-title{font-size:clamp(23px,6vw,42px);font-weight:700;letter-spacing:2px;margin:26px 0 16px}.route{font:12px 'DM Mono',monospace;letter-spacing:1px}.route span{color:var(--coral);padding:0 5px}.landing-rule{height:1px;background:var(--line);margin:50px auto 34px;max-width:390px}.screen h2{font-size:13px;letter-spacing:2px;margin-bottom:18px}.team-grid{display:grid;gap:12px}.team-card{min-height:150px;text-align:left;border:1px solid var(--line);border-radius:20px;padding:20px 22px;display:grid;grid-template-columns:52px 1fr;grid-template-rows:1fr 1fr;align-items:center;box-shadow:var(--shadow);transition:transform .15s ease}.team-card:active{transform:scale(.98)}.team-card .cat{font-size:36px;grid-row:span 2}.team-card strong{font-size:21px;letter-spacing:1px}.team-card small{color:var(--muted)}.sadie{background:#dce3e5}.cannoli{background:#202c3a;color:#fff;border-color:#202c3a}.cannoli small{color:#cbd3dc}.fineprint{font:11px 'DM Mono',monospace;color:var(--muted);margin-top:25px}.narrow{text-align:left;max-width:470px}.back{background:transparent;color:var(--muted);padding:0;margin-bottom:70px}.narrow h1{font-size:42px;letter-spacing:-2px}.narrow>p:not(.kicker){color:var(--muted);line-height:1.5}.narrow form{margin-top:30px;display:grid;gap:12px}.narrow input{height:58px;border:1px solid var(--line);border-radius:12px;padding:0 16px;background:var(--cream)}.primary{height:58px;border-radius:12px;background:var(--dark);color:#fff;font-weight:700;letter-spacing:1px}.primary span{color:var(--gold);padding-left:10px}.error{color:#b53d2b;font-size:13px}.game-top{padding:max(18px,env(safe-area-inset-top)) 18px 16px;display:flex;justify-content:space-between;align-items:center;background:var(--dark);color:#fff}.game-top .kicker{color:var(--gold);margin-bottom:5px}.game-top h1{font-size:24px;letter-spacing:1px;margin:0}.icon-button{background:transparent;color:#fff;font-size:26px;padding:4px 0 4px 15px}.scoreboard{background:var(--dark);color:#fff;padding:8px 18px 24px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.score{border:1px solid #ffffff2e;border-radius:14px;padding:13px}.score.current{border-color:var(--gold);background:#ffffff0d}.score small{display:block;color:#b9c3ce;font:10px 'DM Mono',monospace;letter-spacing:1px}.score strong{font-size:38px;line-height:1.1}.score.current small{color:var(--gold)}.route-bar{display:flex;justify-content:space-between;gap:5px;padding:16px 18px;background:var(--cream);border-bottom:1px solid var(--line);font:10px 'DM Mono',monospace;color:var(--muted)}.route-stop{display:grid;gap:5px;text-align:center;flex:1}.route-stop.active{color:var(--coral);font-weight:700}.route-stop .dot{height:8px;width:8px;border:1px solid currentColor;border-radius:50%;margin:auto}.route-stop.active .dot{background:currentColor}.round{padding:25px 16px 0}.round-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.round-icon{font-size:25px}.round h2{font-size:18px;margin:0}.round p{margin:2px 0 0;color:var(--muted);font-size:12px}.challenge-list{display:grid;gap:10px}.challenge{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:16px;text-align:left;box-shadow:var(--shadow);width:100%;color:var(--ink)}.challenge.jackpot{border-color:var(--gold);background:#fff8e7}.challenge-top{display:flex;justify-content:space-between;gap:8px}.challenge h3{margin:0;font-size:17px}.points{font:700 14px 'DM Mono',monospace;color:var(--coral);white-space:nowrap}.challenge p{font-size:13px;color:var(--muted);line-height:1.4;margin:8px 0}.badges{display:flex;gap:6px;align-items:center}.badge{font:10px 'DM Mono',monospace;letter-spacing:.5px;background:#e7e1d7;padding:5px 7px;border-radius:5px}.badge.complete{background:#d2e8d9;color:#206039}.badge.jackpot{background:#f7dc9c;color:#77550f}.badge.versus{background:#d4e1ec;color:#2e5872}.progress{font:12px 'DM Mono',monospace;color:var(--muted);padding:20px 16px 0}.game-footer{padding:30px 16px calc(30px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;font:11px 'DM Mono',monospace;color:var(--muted)}.game-footer button{background:transparent;color:var(--coral);font:inherit}dialog{border:0;border-radius:20px;padding:0;width:min(94vw,560px);max-height:calc(100dvh - 30px);background:var(--cream);color:var(--ink);box-shadow:0 20px 70px #0004}dialog::backdrop{background:#102033aa}.sheet{padding:24px;max-height:calc(100dvh - 30px);overflow:auto}.sheet-close{float:right;background:transparent;font-size:25px}.sheet h2{font-size:28px;margin:16px 0 8px}.sheet .instructions{line-height:1.55;color:var(--muted);font-size:15px}.sheet label{display:grid;gap:6px;margin-top:16px;font-size:12px;font-weight:700}.sheet input,.sheet textarea{border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px}.sheet textarea{min-height:80px}.upload{margin-top:18px;border:1px dashed var(--coral);border-radius:12px;padding:18px;text-align:center}.upload input{width:100%;border:0;padding:0}.preview{max-width:100%;max-height:240px;border-radius:10px;margin-top:12px}.submit-button{width:100%;height:54px;border-radius:10px;background:var(--coral);color:#fff;font-weight:700;margin-top:18px}.success{text-align:center;padding:35px 10px}.success strong{display:block;font-size:30px}.success b{display:block;color:var(--coral);font:20px 'DM Mono',monospace;margin-top:12px}#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--dark);color:#fff;border-radius:10px;padding:12px 15px;font-size:13px;max-width:calc(100% - 30px);z-index:10}@media(min-width:700px){#game{max-width:760px;margin:auto;box-shadow:0 0 40px #13233712;min-height:100dvh}.game-top{padding-left:26px;padding-right:26px}.scoreboard{padding-left:26px;padding-right:26px}.round{padding-left:26px;padding-right:26px}}
