@font-face{font-family:Space;src:url('assets/space.ttf') format('truetype');font-weight:300 700;font-display:swap}
@font-face{font-family:Plex;src:url('assets/plex.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Pixel;src:url('assets/pixel.ttf') format('truetype');font-weight:400;font-display:swap}

:root{--paper:#eae6d7;--ink:#242e28;--muted:#697167;--orange:#df6749;--yellow:#eab957;--line:#bfc1b1;--mono:Plex,'Courier New',monospace;--sans:Space,Arial,sans-serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#94a194;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border-radius:0}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.scene{position:fixed;inset:0;width:100%;height:100%;height:100dvh;overflow:hidden}.scene canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.scene-grain{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#121e190b 0px,#121e190b 1px,transparent 1px,transparent 4px);opacity:.45}.street-controls{position:absolute;top:max(22px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));display:flex;gap:10px;z-index:3}.street-control{display:grid;place-items:center;width:43px;height:43px;background:#263b32da;border:1px solid #eae6d74a;color:var(--paper);box-shadow:3px 3px 0 #20332b55}.street-control:hover{background:#354d3e}.street-control svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}.street-control[aria-pressed=false] .sound-waves{opacity:.2}.start-gate{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);z-index:3}.start-gate .button{font-size:16px;padding:20px 26px;min-width:215px;min-height:65px;box-shadow:5px 5px 0 #263b32}
.speech{position:absolute;left:50%;top:var(--bubble-y,48%);transform:translate(-50%,-100%);width:min(470px,calc(100% - 40px));background:var(--paper);border:3px solid #26332b;padding:17px 20px 19px;box-shadow:5px 5px 0 #1a292b55;z-index:2}.speech:after{content:'';position:absolute;bottom:-13px;left:56%;width:16px;height:16px;background:var(--paper);border-bottom:3px solid #26332b;border-right:3px solid #26332b;transform:skewY(35deg)}.speech-name{font:9px var(--mono);letter-spacing:.8px;text-transform:uppercase;color:#7a4d37}.speech p{font-size:21px;line-height:1.35;font-weight:600;letter-spacing:-.4px;margin:9px 0 0}.speech.is-refusal{background:var(--yellow)}.speech.is-refusal:after{background:var(--yellow)}.speech.is-refusal .ride-actions{display:none}.ride-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.button{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:45px;padding:12px 15px;font-size:12px;font-weight:600;border:1px solid var(--ink);transition:background .16s,transform .16s,box-shadow .16s;text-decoration:none}.button-primary{background:var(--yellow);box-shadow:3px 3px 0 var(--ink)}.button-primary:hover:not(:disabled){background:#f6c66a;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.button-primary:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.button-primary:disabled{opacity:.6;box-shadow:none}.button-secondary{background:transparent;box-shadow:none;border:0;padding:8px 0;font-size:11px;line-height:1.4;text-align:left}.button-secondary:hover:not(:disabled){color:#a23c27;text-decoration:underline}.button-secondary:disabled{opacity:.45}
.now-playing{position:absolute;bottom:max(66px,calc(env(safe-area-inset-bottom) + 54px));left:max(28px,env(safe-area-inset-left));display:flex;align-items:center;gap:13px;width:360px;height:78px;max-width:calc(100% - 56px);padding:11px 15px 11px 11px;background:#263b32dd;color:var(--paper);border:1px solid #eae6d724;box-shadow:3px 3px 0 #20332b55}.now-playing img{display:block;width:52px;height:52px;object-fit:cover;flex-shrink:0}.now-playing-copy{min-width:0;flex:1}.now-playing h2{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 0 6px;font-size:16px;line-height:1.2;font-weight:500;letter-spacing:-.3px}.audio-line{display:grid;grid-template-columns:10px minmax(0,1fr) 5ch;gap:7px;align-items:center;font:8px var(--mono);line-height:1.5;letter-spacing:.2px;color:#cbd1bb}#current-track{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#audio-status{width:5ch;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.equalizer{display:flex;align-items:center;gap:2px;height:10px}.equalizer i{display:block;width:2px;height:4px;background:var(--yellow)}.equalizer i:nth-child(2){height:9px}.equalizer i:nth-child(3){height:6px}.equalizer.active i{animation:equalize .7s steps(3) infinite alternate}.equalizer.active i:nth-child(2){animation-delay:-.3s}.equalizer.active i:nth-child(3){animation-delay:-.6s}@keyframes equalize{to{height:2px}}.progress-rail{height:2px;background:#7e8c6c;margin-top:7px;max-width:240px}.progress-rail span{height:100%;width:0;display:block;background:var(--yellow);transition:none}.scene[data-phase=ready] .now-playing{display:none}.site-footer{position:absolute;bottom:max(19px,env(safe-area-inset-bottom));left:0;width:100%;text-align:center;font:9px var(--mono);line-height:1.5;color:#c9cebb;text-shadow:1px 1px #1f352b}.site-footer strong{font-weight:400;color:var(--paper)}.eyebrow{font-family:var(--mono);font-size:9px;line-height:1.7;letter-spacing:.8px;margin:0}
dialog{padding:28px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);width:min(660px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:8px 8px 0 #111a2260;overflow-y:auto}dialog::backdrop{background:#19291de0;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.dialog-top .eyebrow{font-size:8px;letter-spacing:.7px;color:var(--muted)}.dialog-top h2{margin:9px 0 0;font-size:34px;letter-spacing:-1.2px;line-height:1.1}.icon-button{background:none;border:1px solid var(--line);font:26px var(--mono);width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;line-height:1}.icon-button:hover{background:var(--yellow)}.playlist-list{margin-top:25px;border-top:1px solid var(--line)}.playlist-row{display:grid;grid-template-columns:58px 1fr 30px;align-items:center;gap:16px;padding:15px 3px;border:0;border-bottom:1px solid var(--line);background:none;width:100%;text-align:left}.playlist-row:hover{background:#dcdcc9}.playlist-row img{display:block;width:58px;height:58px;object-fit:cover}.playlist-row h3{font-size:16px;line-height:1.2;letter-spacing:-.3px;margin:0 0 5px}.playlist-row p{margin:0;font:9px var(--mono);color:var(--muted)}.playlist-row>span{font-size:25px;color:var(--orange)}.dialog-footnote,.player-note{font:8px var(--mono);color:var(--muted);line-height:1.7;margin:22px 0 0}.player-dialog{width:min(640px,calc(100% - 32px))}.player-intro{font-size:13px;line-height:1.6;margin:14px 0 23px}.spotify-frame{height:clamp(352px,calc(100dvh - 310px),560px);min-height:0;background:#28352c;border:1px solid var(--ink)}.spotify-frame iframe{display:block;width:100%;height:100%;border:0}.player-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:23px}.player-bottom a{font:10px var(--mono);white-space:nowrap;text-underline-offset:4px}.player-note{margin-top:18px;font-size:8px}.noscript{padding:20px;text-align:center;border-top:1px solid var(--ink)}

@media(max-width:600px){.street-controls{top:max(16px,env(safe-area-inset-top));right:16px;gap:8px}.street-control{width:39px;height:39px}.speech{padding:14px 15px 16px;width:calc(100% - 32px)}.speech p{font-size:18px}.speech-name{font-size:8px}.ride-actions{gap:12px;margin-top:15px}.ride-actions .button-primary{font-size:11px;padding:11px 12px;gap:12px;flex:1}.button-secondary{font-size:10px;max-width:43%}.now-playing{height:68px;left:16px;bottom:max(59px,calc(env(safe-area-inset-bottom) + 49px));max-width:calc(100% - 32px);gap:10px;padding:9px 12px 9px 9px}.now-playing img{width:42px;height:42px}.now-playing h2{font-size:14px}.audio-line{font-size:7px}.site-footer{font-size:8px}dialog{padding:20px}.dialog-top h2{font-size:27px}.dialog-top .eyebrow{font-size:7px}.playlist-row{grid-template-columns:50px 1fr 20px;gap:12px}.playlist-row img{width:50px;height:50px}.playlist-row h3{font-size:14px}.playlist-row p{font-size:8px}.player-bottom{flex-direction:column;align-items:stretch;gap:20px}.player-bottom a{text-align:center}.player-intro{font-size:12px}.spotify-frame{min-width:280px;height:clamp(300px,calc(100dvh - 340px),520px)}.player-dialog{padding:20px;width:min(640px,calc(100% - 20px))}}
@media(max-width:380px){.player-dialog{padding:10px;width:calc(100% - 16px)}.speech p{font-size:16px}.ride-actions{flex-wrap:wrap}.ride-actions .button-primary{font-size:10px}.button-secondary{font-size:9px}}
@media(max-height:550px) and (min-width:601px){.speech{padding:10px 14px 12px;width:420px}.speech p{font-size:17px;margin-top:5px}.ride-actions{margin-top:10px}.button{min-height:37px;padding:9px 12px;font-size:10px}.now-playing{height:52px;bottom:39px;padding:6px 10px 6px 6px;gap:8px}.now-playing img{width:34px;height:34px}.now-playing h2{font-size:12px}.audio-line{font-size:7px}.site-footer{bottom:10px}.street-controls{top:12px;right:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.scene-grain{display:none}}
