:root{font-family:Tahoma,system-ui,sans-serif;color:#fff3d7;background:#182f3d;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas{display:block;width:100vw;height:100dvh;touch-action:none}button,input{font:inherit}button{color:inherit;background:#133e48dd;border:1px solid #fff5;border-radius:16px;min-height:48px;padding:10px 18px;cursor:pointer;touch-action:none}button:focus-visible,input:focus-visible{outline:3px solid #ffdb8c;outline-offset:4px}button:disabled{opacity:.6}button:active{background:#a55f38}header{position:fixed;top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:flex;align-items:start;justify-content:space-between;text-shadow:0 2px 6px #123}header b{letter-spacing:.06em}header span{font-size:.75rem;color:#ffe1a0}header small{display:block;margin-top:8px}.panel{position:fixed;left:6vw;top:50%;transform:translateY(-46%);max-height:79dvh;overflow:auto;width:min(420px,88vw);padding:28px;background:linear-gradient(140deg,#163d4ded,#143c44e8);border:1px solid #d5efd94d;border-radius:28px;box-shadow:0 16px 65px #1128;backdrop-filter:blur(10px)}.eyebrow{font-size:.75rem;letter-spacing:.12em;color:#ffcf7d}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.4;margin:12px 0}h2{font-size:1.9rem}p{line-height:1.8;color:#e4efed}.panel label{display:flex;gap:10px;align-items:center;margin:14px 0}.panel button{display:block;width:100%;margin:12px 0}.primary{background:#ffdb94;color:#1e3e45;border:0;font-weight:bold}.panel small{font-size:.82rem;line-height:1.8}.note{font-size:.8rem;margin:14px 0 0;color:#b6d7d8}.journey{position:fixed;top:90px;left:24px;width:210px;text-shadow:0 2px 5px #123;pointer-events:none}.journey span,.journey small{display:block}progress{width:100%;height:6px;accent-color:#ffd28a;margin:8px 0}.journey small{font-size:.75rem}#toast{position:fixed;top:22%;left:50%;transform:translateX(-50%);text-align:center;max-width:80vw;text-shadow:0 2px 4px #123;background:#1237;border-radius:20px;padding:6px 14px;pointer-events:none}#toast:empty{display:none}.controls{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;justify-content:space-between;align-items:end;gap:12px}.steer,.actions{display:flex;gap:10px}.steer button{width:66px;height:66px;font-size:1.5rem}.actions button{min-width:64px}#item{max-width:170px}input{width:20px;height:20px;accent-color:#ffd28a}[hidden]{display:none!important}@media(max-width:600px){header{left:14px;right:14px}header b{font-size:.8rem}.journey{left:14px;top:82px;width:150px}.panel{padding:22px}.controls{left:12px;right:12px;bottom:14px;align-items:end}.steer{gap:6px}.steer button{width:48px;height:60px;padding:8px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.actions button{padding:8px;font-size:.85rem}#item{grid-column:1/3;max-width:none}.panel h1{font-size:2rem}#toast{top:27%;font-size:.9rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
#drift-status{position:fixed;bottom:150px;left:50%;transform:translateX(-50%);font-size:.85rem;color:#ffe2a4;text-shadow:0 2px 5px #123;pointer-events:none;white-space:nowrap}#drift-status:empty{display:none}
button.input-held{background:#ffdb94;color:#1e3e45;box-shadow:inset 0 -3px 0 #cfaa61}canvas:focus-visible{outline:2px solid #ffdb8c;outline-offset:-2px}
.header-actions{display:flex;gap:6px}#sound{font-size:.8rem;padding:8px;min-width:48px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#world-return{min-width:44px;padding:8px}#world-return-dialog{width:min(440px,90vw);max-height:80dvh;overflow:auto;color:#fff3d7;background:#163d4d;border:1px solid #d5efd966;border-radius:24px;padding:24px}#world-return-dialog::backdrop{background:#142f3da6}#world-return-dialog h2{font-size:1.6rem;line-height:1.5}#world-return-dialog button,#world-return-dialog a{display:block;width:100%;margin:12px 0;text-align:center;padding:14px;border-radius:16px;text-decoration:none;min-height:48px}#world-return-dialog a:focus-visible{outline:3px solid #ffdb8c;outline-offset:4px}@media(max-width:600px){body:has(#world-return) header b{font-size:.7rem}body:has(#world-return) header small{font-size:.7rem}}
.ghost-panel{margin-top:12px;border-top:1px solid #fff3;padding-top:10px}.ghost-label{display:block;font-size:.7rem;color:#d4f4ff;margin-top:8px;line-height:1.5}#ghost-saved{display:block;margin-top:8px;color:#c5e6eb}
.course-choice{border:1px solid #c9efe533;border-radius:16px;margin-top:12px;padding:0 12px 10px}.course-choice label{justify-content:space-between}.course-choice small{display:block;color:#d7e7e4}#course-map{display:block;width:100%;height:64px}#course{max-width:65%}
#drive-coach{position:fixed;top:95px;right:24px;width:min(310px,48vw);padding:12px 15px;border-radius:18px;background:#143b46d9;border:1px solid #c6f0d955;font-size:.83rem}#drive-coach strong{color:#ffe1a0;font-size:.85rem}#drive-coach p{margin:8px 0;line-height:1.6}#drive-coach button{padding:7px 12px;min-height:44px;font-size:.8rem}.guide-target{outline:3px solid #ffd98c;outline-offset:3px;box-shadow:0 0 0 6px #ffeeac20}#drift-charge{position:fixed;bottom:137px;left:50%;transform:translateX(-50%);width:145px;height:7px;margin:0;pointer-events:none}@media(max-width:600px){#drive-coach{top:100px;left:14px;right:auto;width:min(285px,calc(100vw - 28px))}#drive-coach strong{font-size:.8rem}#drive-coach p{font-size:.8rem}}
#rival-toy{display:block;color:#d1f6e1;margin-top:8px;font-size:.75rem;max-width:190px}#rival-toy:empty{display:none}
details{margin-top:14px;border-top:1px solid #fff3;padding-top:12px;font-size:.82rem}summary{cursor:pointer;min-height:32px}select{font:inherit;max-width:100%;padding:6px;border-radius:8px;background:#edf4e4;color:#173f47}.performance-report{font:12px/1.7 Tahoma,system-ui,sans-serif;white-space:pre-wrap;border-top:1px solid #fff3;padding-top:12px;color:#d9efde}
#finish-compact{position:fixed;left:18px;right:18px;bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;text-shadow:0 2px 5px #123}#finish-compact span{font-size:.85rem;max-width:50%}#finish-compact button{flex-shrink:0}
#race-info{position:fixed;right:24px;top:92px;text-align:right;pointer-events:none;text-shadow:0 2px 5px #123;max-width:240px}#race-info strong{display:block;font-size:2rem;color:#ffe0a5}#race-info span{display:block;font-size:.85rem}#warning{display:block;color:#ffe5b9;margin-top:10px;max-width:210px}.panel h1{font-size:clamp(1.9rem,3.3vw,2.6rem);line-height:1.3}.panel p{margin:10px 0}.panel label{font-size:.9rem}#mission-results{font-size:.85rem}@media(max-width:600px){#race-info{right:14px;top:150px;max-width:185px}#race-info strong{font-size:1.55rem}#race-info span{font-size:.76rem}#warning{font-size:.73rem}.panel{max-height:76dvh;padding:20px}.panel h1{font-size:1.9rem}}
:root { --challenge-edge: #99c4c0; }
#challenge-choice summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
#challenge-choice[hidden]{display:none}
#challenge-list{border:0;padding:0;margin:0}
#challenge-list legend{font-size:.76rem;line-height:1.5;color:#bcdcd8;margin:0 0 8px}
.panel label.challenge-card{border:1px solid var(--challenge-edge);border-radius:12px;min-height:48px;padding:9px 10px;margin:8px 0;gap:10px;cursor:pointer}
.challenge-card:has(input:checked){background:#214f50;border-color:#ffdb89}
.challenge-card:focus-within{outline:3px solid #ffdb89;outline-offset:2px}
.challenge-card span{min-width:0}.challenge-card b{display:block;font-size:.88rem}
.panel .challenge-card small{display:block;line-height:1.45;margin:3px 0 0;font-size:.75rem}
#challenge-result{border-left:3px solid #ffdb89;padding-left:12px;white-space:pre-line;font-size:.9rem}
/* Keep short-lived item feedback away from rival cues and above drift/controls. */
@media(max-width:600px) and (min-height:540px){#toast{top:auto;bottom:calc(206px + env(safe-area-inset-bottom,0px));width:max-content;max-width:calc(100vw - 40px)}}
.sound-dialog{box-sizing:border-box;width:min(430px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;margin:auto;padding:22px;border:1px solid #d5efd966;border-radius:24px;color:#fff3d7;background:#163d4d;box-shadow:0 16px 65px #1128}
.sound-dialog::backdrop{background:#142f3dbb}.sound-dialog h2{font-size:1.55rem;margin:10px 0}.sound-dialog p{font-size:.88rem;line-height:1.6;margin:10px 0}
.sound-check{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:10px}.sound-level{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.87rem;margin-top:12px}
.sound-dialog input[type=range]{width:100%;height:44px;margin:0;accent-color:#ffd28a}.sound-dialog .sound-help,.sound-dialog small{font-size:.75rem;line-height:1.55;color:#c5e1dd}
#audio-live{display:block;font-size:.84rem;color:#ffe0a0}#audio-diagnostics{white-space:pre-wrap;font:12px/1.65 Tahoma,system-ui}#audio-close{width:100%;margin-top:16px;min-height:48px}.sound-dialog summary{min-height:44px;padding:10px 0}
