:root{--game-pink:#fd70bc;--game-cyan:#87e7ff;--safe-bottom:env(safe-area-inset-bottom,0px)}.game-page{margin:0;background:#092148;overflow:hidden;overscroll-behavior:none;color:#f2f7ff;user-select:none;-webkit-user-select:none;touch-action:manipulation}.game-page button{touch-action:none}.game-page #game-root{position:fixed;inset:0;overflow:hidden;isolation:isolate}.game-page canvas#race-canvas{width:100%;height:100%;display:block;position:absolute;inset:0;z-index:-3}.game-vignette{pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,#07205477,transparent 35%,transparent 70%,#0b25513d),radial-gradient(ellipse,transparent 50%,#13335528);z-index:-1}.game-top{position:absolute;top:max(22px,env(safe-area-inset-top));left:30px;right:30px;display:flex;align-items:start;justify-content:space-between;gap:20px;z-index:10;pointer-events:none}.game-wordmark{width:143px;filter:drop-shadow(0 4px 10px #16335955);pointer-events:auto;margin-top:-5px}.game-tools{display:flex;gap:8px;pointer-events:auto;align-items:center}.game-icon{height:37px;min-width:37px;border:1px solid #d2f4ff57;background:#13346488;color:#e8f4ff;border-radius:12px;font-size:18px;backdrop-filter:blur(12px);box-shadow:0 5px 15px #0001}.game-icon:hover{background:#315288b3}.race-hud{display:flex;gap:9px;margin-left:auto;margin-right:12px;pointer-events:none}.hud-chip{display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 16px;border:1px solid #b2e2fb55;border-radius:14px;background:linear-gradient(135deg,#193362ae,#1e337778);box-shadow:inset 0 1px #ffffff15,0 6px 20px #07224613;backdrop-filter:blur(12px);min-height:58px}.heart-glyph{font-size:34px;color:#ff8fcd;filter:drop-shadow(0 0 7px #fc7ecb55);line-height:1}.heart-chip strong{font-size:23px;font-weight:850;line-height:1.15;display:block}.hud-chip small{font-size:7px;letter-spacing:1px;color:#bed7f4;display:block}.position-chip{gap:12px}.position-chip>strong{font-size:27px;font-weight:900;font-style:italic;color:#ffd4ee;display:flex;align-items:baseline;gap:2px}.position-chip strong small{font-size:16px;color:#d9e5f5;letter-spacing:0}.position-chip>span{font-size:9px;font-weight:700;color:#d3e0f4}.time-chip{flex-direction:column;gap:1px;min-width:98px}.time-chip>span{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:#faf0d5}.time-chip>small{font-size:9px;letter-spacing:0}.next-stop{position:absolute;left:30px;top:118px;display:flex;align-items:center;gap:12px;z-index:5;background:linear-gradient(100deg,#112c6399,#1d387566);border:1px solid #acd7ff38;border-radius:14px;padding:12px 16px;backdrop-filter:blur(14px);min-width:220px;max-width:340px;box-shadow:0 7px 18px #10275018}.location-glyph{font-size:32px;color:#fa9ed6;line-height:1}.next-stop small{font-size:7px;color:#bad0ed;letter-spacing:1.4px;display:block}.next-stop strong{font-size:12px;font-weight:600;display:block;margin-top:3px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-stop>span:last-child{font-size:10px;color:#9ec7ef;margin-left:6px;white-space:nowrap}#minimap{position:absolute;right:30px;top:105px;width:165px;height:131px;opacity:.88;filter:drop-shadow(0 2px 7px #16346122)}.game-overlay{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;padding:30px;overflow:auto;touch-action:pan-y}.intro-overlay{justify-content:flex-start;align-items:center;padding-left:7.5vw;background:linear-gradient(90deg,#0c255baa 0,#0c255b65 31%,transparent 67%);z-index:7}.intro-card{padding:20px 0;max-width:430px;width:40vw;position:relative}.game-eyebrow{font-size:9px;font-weight:750;letter-spacing:2px;color:#a0d6f6;display:block;margin-bottom:15px}.intro-card h1{color:#fff;font-size:clamp(32px,3.9vw,58px);line-height:1.08;letter-spacing:-2.3px;margin-bottom:22px;text-shadow:0 5px 20px #14376a30}.intro-card h1 em{font-style:normal;color:#ffc1e4}.intro-message{font-size:13px;color:#d3e4fa;line-height:1.75;max-width:340px;white-space:pre-line}.gift-signature{display:flex;align-items:center;gap:10px;color:#dfebfb;font-size:10px;margin:25px 0;flex-wrap:wrap}.gift-signature>span{font-size:7px;letter-spacing:1px;color:#95b6d9}.gift-signature>strong{font-size:11px;font-weight:600;margin-right:7px}.racer-choice{border-top:1px solid #bedafa36;padding-top:20px;margin-top:22px}.racer-choice>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.racer-choice .game-eyebrow{font-size:7px;letter-spacing:1.7px;margin:0}.racer-choice strong{font-size:10px;color:#e7cde7;max-width:150px;overflow:hidden;text-overflow:ellipsis}.racer-options{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:23px}.racer-option{padding:0;background:#183d7266;border:1px solid #b3d4ef48;border-radius:12px;position:relative;overflow:hidden;transition:.2s;box-shadow:0 4px 13px #1732602e}.racer-option img{width:100%;aspect-ratio:100/110}.racer-option.selected{border-color:#ffb2e4;box-shadow:0 0 0 2px #ff8fc14a,0 0 15px #f96bb71a;transform:translateY(-3px)}.racer-option.selected:after{content:'✓';position:absolute;bottom:4px;right:4px;background:#fa8ec9;color:#fff;border-radius:50%;width:13px;height:13px;font-size:8px;line-height:13px;text-align:center}.game-button{display:flex;justify-content:center;align-items:center;gap:18px;border:1px solid #ffe0f6ad;background:linear-gradient(110deg,#dc6bb8,#dd6bc5 55%,#b577dd);color:#fff;border-radius:15px;padding:15px 22px;min-height:51px;font-size:12px;font-weight:800;box-shadow:0 0 0 4px #e581c015,inset 0 2px 2px #ffc9f06b,0 9px 22px #3e256129;transition:.18s}.game-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.game-button:disabled{background:linear-gradient(100deg,#5476a4,#8278b5);border-color:#b6c3e052;opacity:.65}.game-button.secondary{background:#f1f5ff;border-color:#d9e3f2;color:#5e749f;font-weight:600;box-shadow:none;font-size:11px}.start-button{width:100%;font-size:14px;min-height:54px}.start-button>span{font-size:20px;margin-left:auto}.keyboard-help,.touch-help{font-size:8px;line-height:1.85;color:#94b5da;margin:17px 0 0;letter-spacing:.15px}.touch-help{display:none}.demo-note{margin-top:20px;color:#82a7d2;font-size:8px;line-height:1.8}.demo-note a{color:#b8d3f5;text-decoration:underline;text-underline-offset:3px}.loading-screen{position:absolute;z-index:60;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 60% 40%,#345282,#0d2249 65%);transition:opacity .55s}.loading-screen.finished{opacity:0;pointer-events:none}.loading-screen>img{width:min(330px,70vw);margin-bottom:40px;animation:float-logo 3s ease-in-out infinite}.loading-screen>p{font-size:11px;color:#9ab5dd;margin-top:20px}.loading-track{height:5px;width:200px;background:#6f8daf2e;overflow:hidden;border-radius:9px}.loading-track>span{height:100%;width:40%;background:linear-gradient(90deg,#8ccbff,#e49bd7);display:block;border-radius:9px;animation:load-progress 1.4s ease-in-out infinite}.game-page #countdown{position:absolute;z-index:35;top:40%;left:50%;transform:translate(-50%,-50%);font-size:clamp(70px,12vw,150px);font-weight:950;font-style:italic;line-height:1;color:#fff;text-shadow:0 5px #538abe,0 0 50px #96daff88;pointer-events:none}.game-page #race-announcement{position:absolute;top:30%;left:50%;transform:translate(-50%,10px);z-index:25;font-size:clamp(17px,3vw,28px);font-weight:900;font-style:italic;color:#fbe4fa;text-shadow:0 3px 4px #354971;text-align:center;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}.game-page #race-announcement.visible{opacity:1;transform:translate(-50%,0)}#race-bottom{position:absolute;inset:auto 0 0;z-index:8;pointer-events:none;padding:0 30px calc(16px + var(--safe-bottom))}.race-progress{display:flex;align-items:center;justify-content:center;gap:10px;margin:auto auto 13px;max-width:420px;font-size:7px;color:#c1ddf6;letter-spacing:1px;font-weight:700}.progress-track{height:3px;position:relative;background:#a8c9ee35;border-radius:4px;flex:1}.progress-track>div:first-child{height:100%;width:0;background:linear-gradient(90deg,#9cddff,#fb93d4);border-radius:4px}.progress-stop{position:absolute;top:50%;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid #c5dcf5;background:#29466b;box-shadow:0 0 0 3px #162f622b;border-radius:2px}.progress-stop.done{background:#ef96cd;border-color:#ffe6f4}.turbo-display{display:flex;align-items:center;gap:8px;width:310px;max-width:54vw;margin:0 auto 10px;padding:7px 11px;background:#19386694;border:1px solid #99d7ff78;border-radius:12px;box-shadow:0 0 13px #6acaf01c;backdrop-filter:blur(9px)}.turbo-display>span{font-size:11px;font-style:italic;font-weight:850;color:#c9efff}.turbo-display>div{flex:1;height:9px;background:#627dbe39;border-radius:3px;overflow:hidden;transform:skewX(-12deg)}.turbo-display i{width:30%;height:100%;display:block;background:repeating-linear-gradient(90deg,#80ddfa 0px,#80ddfa 14px,transparent 14px,transparent 17px);transition:width .1s}.turbo-display>b{font-size:18px;line-height:1;color:#99e8ff}.touch-controls{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;pointer-events:none}.direction-pad,.action-pad{display:flex;align-items:center;gap:12px;pointer-events:auto}.touch-controls button{position:relative;width:66px;height:66px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;border-radius:50%;border:1.5px solid #abdff2b5;background:radial-gradient(ellipse at 40% 30%,#386bab9c,#183761b0 76%);box-shadow:0 5px 13px #0c234533,inset 0 1px 4px #87c3ff49,0 0 18px #72d7ff13;color:#d1f1ff;backdrop-filter:blur(10px);outline:none;-webkit-touch-callout:none;touch-action:none}.touch-controls button>span{font-size:36px;line-height:1;font-weight:800}.touch-controls button>small{font-size:5px;font-weight:800;letter-spacing:.5px;line-height:1;position:absolute;bottom:10px}.touch-controls button.pressed,.touch-controls button:active{background:#81beee8c;transform:scale(.93);box-shadow:0 0 20px #81deff75,inset 0 0 20px #b2deff77}.touch-controls .turbo-control{width:85px;height:85px;background:radial-gradient(ellipse at 40% 30%,#ee9feb,#b459b2ad);border:2px solid #ffe1ff;box-shadow:0 0 0 5px #dc77d720,0 0 20px #ff8fde66,inset 0 0 17px #ffe0ff70;color:white;margin:0 3px}.touch-controls .turbo-control>span{font-size:54px;transform:skew(-8deg)}.touch-controls .turbo-control small{font-size:8px;bottom:11px}.touch-controls .reverse-control{border-color:#e194c7b3;color:#f3bfdf}.touch-controls .jump-control{width:48px;height:48px;align-self:flex-start;opacity:.85}.touch-controls .jump-control>span{font-size:27px}.touch-controls .jump-control>small{bottom:6px;font-size:5px}.desktop-help{text-align:center;margin-top:10px;font-size:7px;letter-spacing:.7px;color:#b5d1eb;pointer-events:none}.desktop-help b{font-weight:400;color:#83a9cd;letter-spacing:0}.desktop-help>span{padding:0 7px;color:#83a9cd}.modal-overlay{background:#1125537d;backdrop-filter:blur(8px);z-index:40;padding:24px}.memory-card,.pause-card,.finish-card{background:linear-gradient(155deg,#f9fcff,#f9f1fb);color:#274063;border:1px solid #dff3ffab;border-radius:25px;padding:29px 31px;width:min(440px,100%);box-shadow:0 20px 70px #0c1b5144;position:relative;max-height:calc(100dvh - 40px);overflow:auto;touch-action:pan-y;user-select:text;-webkit-user-select:text}.memory-card .game-eyebrow,.pause-card .game-eyebrow,.finish-card .game-eyebrow{color:#a27aaf;font-size:8px;text-align:center;margin-bottom:10px}.memory-card h2{font-size:24px;text-align:center;letter-spacing:-.8px;color:#294368;margin-bottom:21px;line-height:1.2}.memory-photo{position:relative;background:white;padding:8px 8px 22px;transform:rotate(-2deg);box-shadow:0 7px 17px #465c7a20;margin:0 0 22px}.memory-photo>img{width:100%;max-height:245px;aspect-ratio:1.5;object-fit:contain;background:#f1f1f7;display:block}.photo-tape{position:absolute;top:-11px;left:calc(50% - 35px);width:70px;height:24px;background:#e3c4ee7a;transform:rotate(5deg);backdrop-filter:blur(3px)}.memory-card>p{font-size:13px;line-height:1.85;color:#667997;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;text-align:center}.memory-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:13px 2px 17px;color:#a389b3}.memory-footer>span:first-child{font-size:9px}.memory-footer>span:last-child{font-size:25px}.memory-card .game-button{width:100%;font-size:11px;min-height:46px}.memory-pause-note{display:block;font-size:8px;color:#9ba9bd;text-align:center;margin-top:15px}.pause-card{text-align:center;padding:37px}.pause-card h2{font-size:27px;margin-bottom:25px}.pause-card .game-button{width:100%;margin-bottom:12px}.pause-card p{font-size:11px;line-height:1.8;color:#8395af}.pause-card .text-link{font-size:11px;margin-top:15px}.pause-options{margin:24px 0 18px}.pause-options label{text-align:left;color:#7184a7;font-size:10px}.pause-options select{font-size:11px}.finish-card{width:min(580px,100%);text-align:center;padding:40px}.finish-card h2{font-size:39px;line-height:1.13;letter-spacing:-1.4px;margin:19px 0 25px;background:linear-gradient(100deg,#617dc5,#c278ae);color:transparent;background-clip:text}.finish-names{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:23px}.finish-names>span{font-size:15px;font-weight:650;overflow-wrap:anywhere}.finish-names>b{font-size:28px;color:#cc86b8;font-weight:400}.finish-card>p{font-size:13px;color:#7890ac;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;max-height:33vh;overflow:auto;padding:0 3px}.finish-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #dfe6f0;padding:18px 0;margin:25px 0}.finish-stats strong{display:block;font-size:22px;color:#6582ab;line-height:1.3}.finish-stats span{font-size:8px;color:#99a8ba}.finish-card .button-row{justify-content:center}.finish-card .game-button{font-size:11px}.finish-card>small{font-size:8px;color:#a5b1c4;display:block;margin-top:21px}#speed-lines{position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .2s;pointer-events:none;background:repeating-conic-gradient(from 0deg at 50% 45%,transparent 0deg 13deg,#bcf2ff33 13.1deg 13.3deg,transparent 13.5deg 24deg);mask-image:radial-gradient(ellipse,transparent 32%,black 95%)}#speed-lines.boosting{opacity:.65}#performance-panel{position:absolute;z-index:70;left:12px;bottom:175px;background:#001527dc;color:#a4e0d1;border-radius:8px;font:10px/1.8 monospace;padding:8px 12px;pointer-events:none;white-space:pre}#engine-error-message{overflow-wrap:anywhere}
@keyframes float-logo{50%{transform:translateY(-10px) rotate(-2deg)}}@keyframes load-progress{from{transform:translateX(-100%)}to{transform:translateX(350%)}}
@media(hover:hover) and (pointer:fine){.touch-controls button{opacity:.85;width:50px;height:50px}.touch-controls .turbo-control{width:64px;height:64px}.touch-controls .turbo-control>span{font-size:42px}.touch-controls .turbo-control>small{font-size:6px;bottom:8px}.touch-controls button>span{font-size:29px}.touch-controls button>small{font-size:4px;bottom:6px}.touch-controls .jump-control{width:38px;height:38px}.direction-pad,.action-pad{gap:9px}.touch-controls{max-width:1080px;margin:auto}.turbo-display{margin-bottom:-20px}.race-progress{margin-bottom:13px}.game-page.playing .game-wordmark{width:135px}}
@media(max-width:1050px){.intro-card{width:45vw;max-width:400px}.intro-overlay{padding-left:5vw}.intro-card h1{font-size:44px}.race-hud{gap:6px;margin-right:0}.hud-chip{padding:9px 12px}.game-top{left:23px;right:23px}.game-wordmark{width:130px}.next-stop{left:23px;top:107px}#minimap{right:20px}.game-tools{gap:6px}}
@media(max-width:720px) and (orientation:portrait){.game-top{top:max(15px,env(safe-area-inset-top));left:15px;right:15px;gap:10px}.game-wordmark{width:116px}.game-tools{margin-left:auto;gap:6px}.game-icon{height:31px;min-width:31px;border-radius:10px;font-size:15px}.game-tools #fullscreen-button{display:none}.race-hud{position:absolute;top:82px;left:0;right:0;justify-content:space-between;margin:0;gap:6px}.hud-chip{min-height:48px;padding:7px 11px;border-radius:11px;gap:7px}.heart-glyph{font-size:27px}.heart-chip strong{font-size:21px}.hud-chip small{font-size:6px}.position-chip{gap:9px}.position-chip>strong{font-size:22px}.position-chip strong small{font-size:12px}.position-chip>span{font-size:7px}.time-chip{min-width:83px;gap:2px}.time-chip>span{font-size:11px}.time-chip small{font-size:8px}.next-stop{left:15px;top:164px;padding:10px;gap:8px;border-radius:11px;min-width:0;max-width:66vw}.next-stop small{font-size:6px}.next-stop strong{font-size:9px;max-width:145px}.next-stop>span:last-child{font-size:8px;margin-left:4px}.location-glyph{font-size:24px}#minimap{top:153px;right:12px;width:99px;height:80px}.intro-overlay{align-items:flex-end;justify-content:center;padding:90px 22px 25px;background:linear-gradient(0deg,#092151e3, #0b245aad 36%,transparent 77%)}.intro-card{max-width:440px;width:100%;padding:0}.intro-card h1{font-size:38px;letter-spacing:-1.7px;margin-bottom:12px}.intro-card>.game-eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:12px}.intro-message{font-size:11px;line-height:1.7;max-width:330px;margin-bottom:12px}.gift-signature{margin:15px 0;gap:7px}.gift-signature>span{font-size:6px}.gift-signature>strong{font-size:10px}.racer-choice{padding-top:15px;margin-top:13px}.racer-options{gap:8px;margin-bottom:16px}.racer-option{border-radius:10px;max-height:69px}.racer-choice>div:first-child{margin-bottom:10px}.racer-choice strong{font-size:9px}.start-button{min-height:49px;font-size:12px;padding:13px 19px;border-radius:13px}.keyboard-help{display:none}.touch-help{display:block;font-size:8px;margin-top:14px}.demo-note{font-size:7px;margin-top:12px}#race-bottom{padding:0 13px calc(20px + var(--safe-bottom))}.touch-controls{gap:6px}.direction-pad,.action-pad{gap:8px;align-items:flex-end}.touch-controls button{width:47px;height:47px}.touch-controls button>span{font-size:29px}.touch-controls button>small{font-size:4px;bottom:6px;letter-spacing:0}.touch-controls .turbo-control{width:66px;height:66px;margin:0 1px}.touch-controls .turbo-control>span{font-size:44px}.touch-controls .turbo-control>small{font-size:6px;bottom:9px}.touch-controls .jump-control{position:absolute;right:78px;bottom:calc(118px + var(--safe-bottom));width:36px;height:36px}.touch-controls .jump-control>span{font-size:23px}.touch-controls .jump-control>small{font-size:4px;bottom:4px}.touch-controls .reverse-control{width:38px;height:38px}.touch-controls .reverse-control>span{font-size:25px}.turbo-display{width:275px;max-width:75vw;margin-bottom:20px;padding:6px 10px}.turbo-display>span{font-size:10px}.turbo-display>div{height:8px}.race-progress{margin-bottom:12px;font-size:6px;max-width:300px}.desktop-help{display:none}.modal-overlay{padding:18px}.memory-card{padding:24px 23px 22px;border-radius:23px;max-height:calc(100dvh - 32px)}.memory-card h2{font-size:22px;margin-bottom:19px}.memory-card>p{font-size:12px}.memory-photo{margin-bottom:17px}.memory-photo>img{max-height:230px}.memory-card .game-button{font-size:10px}.pause-card{padding:30px 26px}.finish-card{padding:30px 24px}.finish-card h2{font-size:33px}.finish-names{gap:13px}.finish-names>span{font-size:13px}.finish-card>p{font-size:12px}.finish-stats strong{font-size:20px}.finish-card .game-button{font-size:10px}}
@media(max-height:700px) and (orientation:portrait){.intro-card h1{font-size:31px}.intro-message{font-size:10px;line-height:1.6;max-height:50px;overflow:auto}.intro-card>.game-eyebrow{margin-bottom:9px}.gift-signature{margin:10px 0}.racer-choice{margin-top:10px;padding-top:12px}.racer-option{max-height:55px}.intro-overlay{padding-bottom:18px}.touch-help,.keyboard-help{margin-top:10px;font-size:7px}.demo-note{margin-top:8px}.game-wordmark{width:99px}.race-hud{top:69px}.next-stop{top:146px}#minimap{top:140px}}
@media(max-height:600px) and (orientation:landscape){.game-top{top:max(12px,env(safe-area-inset-top));left:20px;right:20px}.game-wordmark{width:90px;margin-top:0}.game-icon{height:30px;min-width:30px;border-radius:9px;font-size:15px}.race-hud{gap:6px}.hud-chip{min-height:43px;padding:5px 10px;border-radius:10px}.heart-glyph{font-size:25px}.heart-chip strong{font-size:20px}.position-chip>strong{font-size:21px}.position-chip>span{font-size:7px}.position-chip strong small{font-size:12px}.hud-chip small{font-size:5px}.time-chip>span{font-size:10px}.time-chip>small{font-size:7px}.time-chip{min-width:76px}.next-stop{top:77px;left:20px;padding:8px 11px;gap:8px;border-radius:10px;max-width:280px;min-width:0}.next-stop strong{font-size:10px}.next-stop small{font-size:5px}.location-glyph{font-size:24px}.next-stop>span:last-child{font-size:8px}#minimap{width:105px;height:83px;top:72px;right:17px}#race-bottom{padding:0 21px calc(9px + var(--safe-bottom))}.touch-controls button{width:45px;height:45px}.touch-controls button>span{font-size:27px}.touch-controls button>small{font-size:4px;bottom:6px}.touch-controls .turbo-control{width:65px;height:65px}.touch-controls .turbo-control>span{font-size:44px}.touch-controls .turbo-control>small{font-size:6px;bottom:9px}.touch-controls .jump-control{width:33px;height:33px}.touch-controls .jump-control>span{font-size:21px}.touch-controls .jump-control>small{font-size:4px;bottom:4px}.direction-pad,.action-pad{gap:8px}.desktop-help{display:none}.turbo-display{margin-bottom:-35px;width:210px;max-width:35vw;padding:5px 9px}.turbo-display>span{font-size:9px}.turbo-display>div{height:7px}.race-progress{font-size:5px;max-width:260px;margin-bottom:6px}.intro-overlay{padding:68px 0 12px 40px;align-items:center}.intro-card{width:43vw;max-width:400px;padding:0}.intro-card h1{font-size:28px;letter-spacing:-1px;margin-bottom:9px}.intro-card>.game-eyebrow{font-size:6px;margin-bottom:8px}.intro-message{font-size:9px;line-height:1.5;max-height:38px;overflow:auto;margin-bottom:7px}.gift-signature{display:none}.racer-choice{margin-top:9px;padding-top:9px}.racer-options{margin-bottom:11px;gap:7px}.racer-option{max-height:52px}.racer-choice>div:first-child{margin-bottom:8px}.racer-choice .game-eyebrow{font-size:6px}.racer-choice strong{font-size:8px}.start-button{min-height:39px;padding:9px 14px;font-size:11px;border-radius:11px}.keyboard-help{font-size:6px;line-height:1.6;margin-top:8px}.touch-help{font-size:6px;margin-top:8px}.demo-note{font-size:6px;margin-top:5px}.modal-overlay{padding:12px}.memory-card{width:580px;display:grid;grid-template-columns:200px 1fr;gap:0 22px;padding:23px;max-height:calc(100dvh - 24px);border-radius:20px}.memory-card>.game-eyebrow,.memory-card>h2{grid-column:1/-1}.memory-card h2{font-size:20px;margin:0 0 17px}.memory-photo{grid-column:1;grid-row:3/6;padding:6px 6px 16px;margin:0}.memory-photo>img{aspect-ratio:1.3;max-height:160px}.memory-card>p{grid-column:2;font-size:10px;text-align:left;max-height:80px;overflow:auto;line-height:1.8}.memory-footer{grid-column:2;margin:6px 0}.memory-card>.game-button{grid-column:2;min-height:36px;font-size:9px;padding:8px}.memory-pause-note{grid-column:1/-1;font-size:7px;margin-top:13px}.pause-card{padding:24px;max-height:calc(100dvh - 20px)}.pause-card h2{font-size:24px;margin-bottom:17px}.pause-card .game-button{min-height:38px;padding:10px;font-size:10px}.pause-options{margin:15px 0}.pause-card p{font-size:9px;margin-bottom:0}.finish-card{padding:25px;max-height:calc(100dvh - 22px)}.finish-card h2{font-size:29px;margin:12px 0}.finish-names{margin-bottom:9px}.finish-card>p{font-size:10px;max-height:15vh;margin-bottom:9px}.finish-stats{margin:13px 0;padding:9px}.finish-stats strong{font-size:19px}.finish-card .game-button{min-height:39px;padding:9px 15px;font-size:10px}.finish-card>small{margin-top:12px;font-size:7px}}
@media(prefers-reduced-motion:reduce){.loading-screen>img{animation:none}#speed-lines{display:none}}

#race-canvas{touch-action:none}.memory-card,.finish-card,.pause-card{touch-action:pan-y}.memory-card>p,.finish-card>p{user-select:text;-webkit-user-select:text}
.game-page #countdown.resume-countdown{font-size:clamp(27px,6vw,68px);white-space:nowrap;text-align:center}.finish-love-portrait{width:116px;height:116px;margin:0 auto 12px;border-radius:50%;position:relative;background:linear-gradient(145deg,#f7d4eb,#ccecff);border:3px solid #fff;box-shadow:0 10px 30px #944f8b38;overflow:visible}.finish-love-portrait img{width:100%;height:100%;object-fit:contain;border-radius:50%}.finish-love-portrait span{position:absolute;right:-10px;bottom:-6px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f178b8;color:#fff;font-size:21px;border:3px solid #fff;box-shadow:0 5px 14px #7e3d7440}.mode-friendship .finish-love-portrait span{display:none}
.finish-heart-action{position:absolute;left:31px;top:82px;width:105px;height:105px;border:0;background:transparent;color:#ef6dad;display:grid;place-items:center;filter:drop-shadow(0 13px 13px #993b8550);perspective:300px}.finish-heart-action>span{font-size:96px;line-height:.8;display:block;text-shadow:inset 0 2px #fff;animation:finish-heart-beat 1.35s ease-in-out infinite;transform:rotateY(-14deg) rotateX(7deg)}.finish-heart-action>small{position:absolute;top:104px;width:130px;color:#916a99;font-size:8px;font-weight:800;letter-spacing:.7px}.finish-heart-action.burst>span{animation:finish-heart-burst .6s ease-out}.finish-rival-result{display:block;margin:-10px -12px 12px;padding:12px 18px;border-radius:13px;background:linear-gradient(110deg,#422554,#9d3d75);color:#fff;font-size:13px;letter-spacing:1.4px;box-shadow:0 9px 25px #652f6740}#finish-screen.lost .finish-card{border:2px solid #b85d94}#finish-screen.lost .finish-card h2{background:linear-gradient(100deg,#9b3f78,#5f67bd);background-clip:text}.mode-friendship .finish-heart-action{display:none}@keyframes finish-heart-beat{0%,100%{transform:rotateY(-14deg) rotateX(7deg) scale(.92)}45%{transform:rotateY(12deg) rotateX(2deg) scale(1.12)}}@keyframes finish-heart-burst{0%{transform:scale(.8)}45%{transform:scale(1.5) rotate(12deg)}100%{transform:scale(1)}}
@media(max-width:720px){.finish-heart-action{position:relative;left:auto;top:auto;margin:0 auto 14px;width:80px;height:80px}.finish-heart-action>span{font-size:72px}.finish-heart-action>small{top:77px}.finish-love-portrait{width:92px;height:92px}}
#finish-screen{align-items:flex-end;justify-content:center;padding:0 24px 22px;background:linear-gradient(0deg,#071936b8 0,transparent 46%);backdrop-filter:none;pointer-events:none;overflow:hidden}.finish-scene-word{position:absolute;top:13%;left:50%;transform:translateX(-50%);font-size:clamp(48px,10vw,128px);font-weight:950;font-style:italic;letter-spacing:.04em;color:#fff;text-shadow:0 5px 0 #567fc2,0 0 35px #b4e8ff;animation:finish-word-in .7s cubic-bezier(.2,.9,.2,1) both}#finish-screen.lost .finish-scene-word{color:#ffb0c9;text-shadow:0 5px 0 #7a3158,0 0 38px #ff397e}.finish-card{pointer-events:auto;width:min(1100px,calc(100vw - 48px));max-height:none;overflow:visible;border-radius:18px;padding:12px 18px;display:grid;grid-template-columns:minmax(170px,1.4fr) minmax(210px,2fr) minmax(250px,1.5fr) auto;align-items:center;gap:8px 22px;text-align:left;background:linear-gradient(100deg,#102956e8,#1c376ee8);color:#fff;border:1px solid #aee6ff80;box-shadow:0 12px 38px #00122e99;backdrop-filter:blur(12px)}.finish-card .game-eyebrow{grid-column:1;color:#9edbff;text-align:left;margin:0}.finish-card h2{grid-column:1/3;grid-row:2;font-size:clamp(18px,2.2vw,30px);margin:0;background:none;color:#fff;letter-spacing:-.5px}.finish-card .finish-names{grid-column:1;grid-row:3;margin:0;justify-content:flex-start;gap:9px}.finish-card>p{grid-column:2;grid-row:1/4;margin:0;color:#d6e8ff;font-size:11px;line-height:1.5;max-height:74px;text-align:left}.finish-card .finish-stats{grid-column:3;grid-row:1/4;margin:0;padding:4px 14px;border:0;border-inline:1px solid #b8dfff45}.finish-card .finish-stats strong{color:#fff}.finish-card .finish-stats span{color:#b8d6f4}.finish-card .button-row{grid-column:4;grid-row:1/4;margin:0}.finish-card .game-button{white-space:nowrap}.finish-rival-result{grid-column:1/3;grid-row:1;margin:0;padding:8px 12px;background:#a3386b;color:#fff}.finish-card>small,.finish-heart-action,.finish-love-portrait{display:none!important}@keyframes finish-word-in{from{opacity:0;transform:translate(-50%,-35px) scale(.72)}to{opacity:1;transform:translateX(-50%) scale(1)}}
@media(max-width:720px){#finish-screen{padding:0 12px calc(12px + var(--safe-bottom))}.finish-scene-word{top:10%;font-size:clamp(46px,18vw,82px)}.finish-card{width:100%;display:grid;grid-template-columns:1fr 1fr;padding:12px;gap:7px 10px}.finish-card .game-eyebrow,.finish-rival-result{grid-column:1/-1;grid-row:auto}.finish-card h2{grid-column:1/-1;grid-row:auto;font-size:19px}.finish-card .finish-names{grid-column:1;grid-row:auto}.finish-card>p{grid-column:1/-1;grid-row:auto;max-height:43px;overflow:auto;font-size:9px}.finish-card .finish-stats{grid-column:1/-1;grid-row:auto;border:0;border-top:1px solid #b8dfff45;padding:6px 0}.finish-card .button-row{grid-column:2;grid-row:3;justify-content:flex-end}.finish-card .game-button{min-height:38px;padding:8px 11px;font-size:9px}}

/* v0.2: a restrained chapter marker and a real-time guided world inspection. */
.district-badge{position:absolute;right:28px;top:246px;display:flex;align-items:center;gap:10px;border:1px solid #c1dfff38;border-radius:100px;background:#0d2b5799;backdrop-filter:blur(12px);color:#fff;padding:10px 15px;font:600 12px system-ui;pointer-events:none}
.district-dot{width:7px;height:7px;border-radius:50%;background:var(--district-color,#94dfff);box-shadow:0 0 12px var(--district-color,#94dfff)}
.tour-entry{margin-top:10px!important;min-height:42px!important;font-size:13px!important;background:#ffffff12!important;color:#d5edff!important}
.tour-panel{position:absolute;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(1000px,calc(100% - 40px));padding:23px;border:1px solid #bddfff42;border-radius:24px;background:#102954e8;backdrop-filter:blur(18px);color:#eff7ff;box-shadow:0 15px 70px #10213e40;z-index:8}
.tour-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.tour-heading h2{font-size:clamp(18px,2.5vw,28px);margin:6px 0;letter-spacing:-.5px}.tour-heading p{font-size:13px;color:#c0d5eb;margin:0}.tour-heading .game-button{width:auto;min-height:42px;padding:10px 18px;white-space:nowrap;font-size:13px}
.tour-districts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:20px 0 16px}.tour-districts button{color:#c7d8ec;display:flex;align-items:center;gap:10px;padding:12px 10px;border:1px solid #c6dfff20;background:#86adf311;border-radius:12px;text-align:left;cursor:pointer;font:500 11px system-ui;min-width:0}.tour-districts button span{font-size:15px;color:#8ccdfa}.tour-districts button.active{border-color:#83ccff;background:#5ba9e933;color:#fff}.tour-districts strong{font-weight:600}
.tour-actions{display:flex;align-items:center;gap:16px;font:500 11px system-ui;color:#a8c3df}.tour-actions button,.tour-actions select{border:1px solid #aac9ef40;border-radius:8px;padding:7px 10px;background:#173d65;color:#fff;font:600 11px system-ui;cursor:pointer}.tour-actions>span{margin-left:auto}.tour-actions label{display:flex;gap:8px;align-items:center}
@media(max-width:640px){.district-badge{top:259px;right:12px;font-size:10px;padding:7px 11px;max-width:60vw}.tour-panel{width:calc(100% - 20px);padding:15px;bottom:max(10px,env(safe-area-inset-bottom));border-radius:18px}.tour-heading{gap:10px}.tour-heading p{font-size:11px;max-width:210px}.tour-heading .game-button{font-size:10px;padding:8px 10px;min-height:36px}.tour-districts{gap:5px;margin:14px 0}.tour-districts button{display:block;padding:8px 4px;text-align:center;font-size:9px}.tour-districts button span{display:block;margin-bottom:5px;font-size:13px}.tour-districts strong{display:block;line-height:1.35}.tour-actions{gap:8px;flex-wrap:wrap}.tour-actions>span{display:none}.tour-panel .game-eyebrow{font-size:8px;letter-spacing:1px}}
@media(max-height:560px) and (orientation:landscape){.tour-panel{bottom:10px;padding:12px;width:calc(100% - 80px)}.tour-heading p,.tour-actions>span{display:none}.tour-heading h2{font-size:18px}.tour-districts{margin:8px 0}.tour-districts button{padding:7px}.district-badge{top:165px;font-size:10px;padding:7px 10px}.tour-panel .game-eyebrow{font-size:8px}}

@media(max-height:700px) and (orientation:portrait){.district-badge{top:234px}}
@media(max-height:560px) and (orientation:landscape){.tour-entry{min-height:31px!important;padding:6px 12px!important;margin-top:6px!important;font-size:10px!important}}
/* Dual-mode finishing, 0.4 */
.game-page{--mode-primary:#78b7f0;--mode-secondary:#bfacff;--mode-accent:#f3a9ce;--game-pink:var(--mode-primary);--game-cyan:var(--mode-secondary)}
.game-page.mode-friendship{--mode-primary:#28c7e0;--mode-secondary:#4487ef;--mode-accent:#ffb254}
.game-page .heart-glyph,.game-page .location-glyph,.game-page .memory-footer>span:last-child,.game-page .finish-names>b{color:var(--mode-primary);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--mode-primary),transparent 55%))}
.game-page .game-button:not(.secondary){background:linear-gradient(120deg,color-mix(in srgb,var(--mode-primary),#183451 25%),color-mix(in srgb,var(--mode-secondary),#1e315f 35%));border:1px solid color-mix(in srgb,var(--mode-primary),white 30%);box-shadow:0 5px 24px color-mix(in srgb,var(--mode-primary),transparent 79%)}
.game-page .turbo-control{background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--mode-primary),white 20%),color-mix(in srgb,var(--mode-primary),#213165 55%));border-color:var(--mode-primary);box-shadow:0 0 18px color-mix(in srgb,var(--mode-primary),transparent 58%),inset 0 0 12px #ffffff28}
.game-page #turbo-fill,.game-page #progress-fill{background:linear-gradient(90deg,var(--mode-secondary),var(--mode-primary))}
.game-page .game-eyebrow,.game-page .intro-card h1 em{color:color-mix(in srgb,var(--mode-primary),white 30%)}
.game-page .memory-photo{border:1px solid #fff9;box-shadow:0 9px 28px #04173640,inset 0 0 0 5px #ffffff08}.game-page .memory-card{border-color:color-mix(in srgb,var(--mode-primary),transparent 55%)}
.game-page.mode-friendship .photo-tape{background:#7ccbe867;transform:rotate(4deg)}.game-page.mode-friendship .memory-card{border-radius:21px}.game-page .finish-card{border-color:color-mix(in srgb,var(--mode-accent),transparent 60%)}
.finish-postcard{position:absolute;right:clamp(18px,5vw,72px);top:19%;width:min(390px,42vw);margin:0;padding:12px;display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;gap:8px;background:#fff;border-radius:17px;box-shadow:0 20px 55px #03112788;transform:rotate(1.5deg);color:#425577;animation:finish-postcard-in .75s cubic-bezier(.2,.9,.2,1) both}.finish-postcard[hidden]{display:none}.finish-postcard>div{position:relative;background:#edf2f8;border-radius:10px;overflow:hidden;aspect-ratio:4/3}.finish-postcard img{width:100%;height:100%;display:block;object-fit:cover}.finish-postcard div>span{position:absolute;left:6px;bottom:6px;padding:4px 7px;border-radius:6px;background:#102957d9;color:#fff;font-size:7px;font-weight:850;letter-spacing:.8px}.finish-postcard>b{text-align:center;color:#bf76aa;font-size:25px}.finish-postcard figcaption{grid-column:1/-1;text-align:center;font-size:10px;font-weight:750;letter-spacing:.5px}.finish-postcard:before{content:'';position:absolute;top:-10px;left:43%;width:62px;height:22px;background:#e1c5ea9c;transform:rotate(-4deg)}@keyframes finish-postcard-in{from{opacity:0;transform:translateY(30px) rotate(-4deg) scale(.82)}to{opacity:1;transform:rotate(1.5deg) scale(1)}}
@media(max-width:720px){.finish-postcard{top:17%;left:50%;right:auto;transform:translateX(-50%) rotate(1deg);width:min(350px,88vw);padding:9px;gap:6px}.finish-postcard figcaption{font-size:8px}@keyframes finish-postcard-in{from{opacity:0;transform:translate(-50%,24px) rotate(-3deg) scale(.84)}to{opacity:1;transform:translateX(-50%) rotate(1deg) scale(1)}}}
.intro-map-label{display:inline-flex;align-items:center;gap:7px;font-size:10px;border:1px solid #ffffff36;padding:6px 10px;border-radius:20px;margin-bottom:15px;background:#0d2b4d66;color:#d6e9fa}
.demo-selector{display:flex;align-items:center;gap:7px;margin:10px 0 4px}.demo-selector select{background:#0c2a4fcf;border:1px solid #cee6fd36;border-radius:8px;color:#e8f4ff;padding:7px;min-width:0;max-width:63%;font:10px system-ui}.demo-selector a{font:10px system-ui;color:var(--mode-accent);text-decoration:none}
@media(max-width:560px){.intro-map-label{font-size:8px;margin-bottom:10px;padding:5px 8px}.demo-selector select,.demo-selector a{font-size:8px}.demo-selector{margin-top:8px}}
@media(max-height:650px){.intro-map-label{display:none}.demo-selector{display:none}}

@media(prefers-reduced-motion:reduce){#speed-lines{display:none!important}.game-page *{scroll-behavior:auto!important}.game-page .loading-track span{animation-duration:3s}}
