@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Inter:wght@400;500;600&display=swap');
*{box-sizing:border-box}body{margin:0;background:#080e20;color:#e9efff;font-family:Inter,Arial,sans-serif;overflow:hidden}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;border:1px solid #91a3d35c;background:#111d35cc;border-radius:12px;padding:12px 18px;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #dcb4ff;outline-offset:3px}a{color:#e8c489;text-decoration:none}button:disabled{opacity:.55}[hidden]{display:none!important}#race{width:100vw;height:100dvh;display:block;touch-action:none}.shade{position:fixed;inset:0;background:linear-gradient(#17354d33,transparent 20%,transparent 75%,#10243d55);pointer-events:none}header{position:fixed;top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:flex;justify-content:space-between;align-items:center}header a{font-family:Georgia,serif;font-size:27px;letter-spacing:.15em}header small{display:block;font:10px Inter,sans-serif;letter-spacing:.15em;margin-top:7px}header button{padding:9px 14px;font-size:20px}.score{position:fixed;left:26px;top:106px;display:flex;gap:26px}.score div{display:flex;flex-direction:column;gap:4px}.score strong{font:54px Georgia,serif}.score span{font-size:11px;letter-spacing:.12em;color:#aabedb}#map{position:fixed;right:22px;top:100px;width:160px;height:136px;background:#050c1a99;border:1px solid #8ba9dd30;border-radius:20px}.speed{position:fixed;bottom:62px;left:28px;display:flex;align-items:baseline;gap:8px}.speed strong{font-size:38px}.speed span{font-size:11px;color:#abbed8}.speed i{position:absolute;top:100%;left:0;height:4px;background:#ac84ff;box-shadow:0 0 15px #8272ff;width:0}.item{position:fixed;right:26px;bottom:64px;width:240px;display:grid;grid-template-columns:48px 1fr;text-align:left;gap:6px;background:#091428df}.item b{grid-row:span 2;font-size:36px;color:#e8c489}.item span{font-size:14px}.item small{font-size:10px;color:#b9c9e0}.desktop-help{position:fixed;bottom:12px;left:0;right:0;text-align:center;font-size:12px;color:#a9b9d1}.modal{position:fixed;inset:0;background:#030817ad;backdrop-filter:blur(7px);display:grid;place-items:center;padding:22px;z-index:10}.card{width:min(590px,100%);max-height:90dvh;overflow:auto;padding:34px;background:linear-gradient(145deg,#17213bed,#090e20f5);border:1px solid #b7a2e44f;border-radius:20px;box-shadow:0 25px 100px #0008}.eyebrow{font-size:11px;letter-spacing:.18em;color:#c5adf1}h1{font:64px/.95 'Cormorant Garamond',Georgia,serif;margin:20px 0}h1 em{color:#d9bfff;font-style:normal}h2{font:42px/1.1 Georgia,serif}.card p{font-size:15px;line-height:1.75;color:#c7d2e6}.card .instructions{font-size:12px;color:#e0c99d}.primary{display:block;width:100%;margin:20px 0 10px;background:linear-gradient(100deg,#d7b4ff,#8caeff);color:#102039;font-weight:600;border:0;min-height:50px}.card a{display:block;text-align:center;margin-top:18px}.touch{display:none}#count{position:fixed;top:35%;left:0;right:0;text-align:center;font:100px Georgia,serif;color:#fff0c4;text-shadow:0 0 35px #8a82ff;pointer-events:none}#notice{position:fixed;top:25%;left:50%;transform:translateX(-50%);background:#0b173ddd;padding:10px 18px;border-radius:30px;font-size:14px;text-align:center;pointer-events:none}#notice:empty{display:none}@media(pointer:coarse){.touch{display:flex;position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:18px;right:18px;justify-content:space-between;gap:12px}.touch>div{display:flex;gap:8px}.touch button{touch-action:none;min-height:58px;min-width:54px;padding:10px;font-size:11px;background:#192c4ecc}.touch button.pressed{background:#8974c9}.desktop-help{display:none}.item{bottom:100px;width:210px}.speed{bottom:107px}}@media(max-width:600px){header{left:16px;right:16px}.score{left:18px;top:95px;gap:20px}.score strong{font-size:38px}#map{top:95px;right:12px;width:120px;height:102px}.card{padding:24px}h1{font-size:50px}.card p{font-size:14px}.touch{left:10px;right:10px}.touch button{min-width:43px;padding:8px;font-size:10px}.speed{left:18px}.item{right:14px;width:188px}#notice{top:28%;width:max-content;max-width:85vw}}@media(max-height:550px){.card{padding:20px}h1{font-size:36px;margin:8px 0}.card p{font-size:13px;line-height:1.5}.score{top:72px}.score strong{font-size:30px}#map{top:65px;width:100px;height:85px}header{top:10px}.item{bottom:90px}.speed{bottom:95px}}

/* Native dialogs live above the WebGL canvas, including in embedded views. */
html,body{width:100%;height:100%;overscroll-behavior:none}
#race{position:fixed;inset:0;z-index:0}
header,#hud,#count,#notice,.shade{z-index:1}
.race-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;border:0;color:#e9efff;background:#030817ad;overflow:auto;z-index:100}
.race-dialog:not([open]){display:none!important}
.race-dialog[open]{display:flex;align-items:center;justify-content:center}
.race-dialog::backdrop{background:#03081766}
.race-dialog .card{margin:auto;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;min-height:0}
.race-dialog .primary{flex-shrink:0;position:sticky;bottom:0}
@media(max-height:550px){.race-dialog .eyebrow{margin:0}.race-dialog h1{font-size:30px}.race-dialog .card p{margin:8px 0}.race-dialog .primary{margin:8px 0 0}}
