@font-face{font-family:CaminoSerif;src:local("Georgia");font-display:swap}
:root{color-scheme:light;--cream:#f6f1df;--ink:#233b2d;--line:#e3e1cc35;--muted:#d4d8c4;--green:#d2e1a1;--glass:#20372ed9;font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:#a5b8b5;font-synthesis:none}
*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:1px solid var(--line);background:transparent;border-radius:6px;transition:background .15s,opacity .15s;min-height:38px}button:hover{background:#f6f1df18}button:active{background:#f6f1df30}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e4b872;outline-offset:4px}a{color:inherit}button[aria-pressed=true]{color:var(--green)}[hidden]{display:none!important}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:0;cursor:grab}#scene:active{cursor:grabbing}.topbar{position:absolute;z-index:3;inset:max(24px,env(safe-area-inset-top)) max(32px,env(safe-area-inset-right)) auto max(32px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;pointer-events:none}.topbar>*{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;text-shadow:0 1px 8px #1e372844;font-family:Georgia,serif;font-size:27px;line-height:1}.wordmark svg{width:37px;height:34px;stroke:var(--cream);fill:none;stroke-width:1.7}.wordmark i{font-weight:normal}.wordmark small{display:block;font:8px Arial,sans-serif;letter-spacing:1.8px;margin-top:8px}.top-right{display:flex;align-items:center;gap:9px}.edition{font-size:10px;letter-spacing:2px;margin-right:12px}.icon-button{width:40px;height:40px;font-size:20px;background:#20372e70;backdrop-filter:blur(10px);border-color:#fff3}.screen{position:absolute;z-index:4;inset:0}#welcome{background:linear-gradient(90deg,#132d26cf 0%,#18392a85 34%,#1c362511 70%);display:flex;align-items:center;padding:110px 6vw 100px}.welcome-panel{max-width:630px;margin-top:0}.eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:600;letter-spacing:2.9px;color:var(--muted)}.eyebrow>span{width:28px;height:1px;background:var(--green)}h1{font-family:Georgia,CaminoSerif,serif;font-weight:400;font-size:clamp(44px,5.5vw,82px);letter-spacing:-2.5px;line-height:1.04;margin:31px 0 25px}h1 em{color:#d9e7b0;font-weight:400}p{line-height:1.65}.welcome-panel>p{font-size:16px;color:#e3e6d4;line-height:1.75;margin:0 0 32px}.primary{border:0;background:var(--cream);color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:35px;font-weight:600;padding:0 23px;min-height:53px;border-radius:4px}.primary:hover{background:#e2ebca}.primary>span:last-child{font-size:23px;font-weight:400}.welcome-options{font-size:11px;margin-top:18px;color:#d3d9c6;display:flex;flex-direction:column;gap:12px}.welcome-options label{display:flex;align-items:center;gap:7px}.welcome-options input{accent-color:#b9d382;margin:0;width:14px;height:14px}.welcome-options>span{color:#c0cbb880}.welcome-controls{display:flex;gap:18px;margin-top:40px;font-size:10px;align-items:center;color:#cbd4c1}.welcome-controls span{display:flex;align-items:center;gap:6px}kbd{font:9px Arial,sans-serif;border:1px solid #edeeda40;border-radius:3px;padding:3px 5px;white-space:nowrap;color:inherit}.welcome-caption{position:absolute;bottom:37px;right:40px;text-align:right;text-shadow:0 1px 10px #233b2d}.welcome-caption>span{font-size:9px;letter-spacing:2.4px}.welcome-caption p{font:24px/1.2 Georgia,serif;margin:15px 0 10px}.welcome-caption small{font-size:9px;opacity:.7}.topbar:has(+ #hud[hidden]){z-index:5}#hud{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#16342644,transparent 20%,transparent 64%,#142b2555)}#hud button,#hud input{pointer-events:auto}.location{position:absolute;left:35px;top:117px;text-shadow:0 1px 12px #1c382bcc}.location>*{display:block}.smallcaps{font-size:9px;letter-spacing:1.8px;font-weight:600}.location strong{font:32px Georgia,serif;margin:9px 0 6px}.location>span:last-child{font-size:11px;color:#e7e9d6}.dot{padding:0 5px}.compass{position:absolute;right:41px;top:114px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px;text-shadow:0 1px 8px #112b2c}#heading{font-size:11px;letter-spacing:2px}.compass i{font-style:normal;font-size:27px;line-height:35px}.compass small{font-size:8px;letter-spacing:2px}.hint{position:absolute;bottom:171px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;text-shadow:0 1px 6px #102420}.hint>span{padding:0 7px}.hint kbd{font-size:8px}.bottom-hud{position:absolute;left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));bottom:max(41px,calc(env(safe-area-inset-bottom) + 28px));display:grid;grid-template-columns:minmax(220px,1fr) minmax(270px,1fr) minmax(245px,1fr);gap:13px;max-width:1240px;margin:auto}.radio-card,.drive-card,.extras-card{background:var(--glass);backdrop-filter:blur(16px);border:1px solid #f2efd725;border-radius:9px;box-shadow:0 5px 35px #0c241820;height:114px;padding:15px 18px}.radio-header{display:flex;align-items:center;gap:7px}.radio-led{width:6px;height:6px;border-radius:50%;background:#9ba391}.radio-led.on{background:#d9e991;box-shadow:0 0 8px #c5db7960}#radio-status{margin-left:auto;font-size:8px;letter-spacing:1px;opacity:.65}.radio-track{font:17px Georgia,serif;margin:10px 0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.radio-actions{display:flex;align-items:center;gap:8px}.radio-actions button{border:0;min-height:24px;width:25px;padding:0;font-size:16px}.volume-label{display:flex;flex:1;align-items:center}.volume-label>span{display:none}input[type=range]{accent-color:#c9d3ac;width:100%;height:15px;cursor:pointer;min-width:40px}.equalizer{height:13px;display:flex;align-items:end;gap:2px;width:20px;margin-left:9px}.equalizer i{width:2px;height:3px;background:#c9d3ac}.radio-playing .equalizer i{animation:eq .8s ease-in-out infinite alternate}.equalizer i:nth-child(2){animation-delay:-.3s}.equalizer i:nth-child(3){animation-delay:-.5s}.equalizer i:nth-child(4){animation-delay:-.2s}.equalizer i:nth-child(5){animation-delay:-.7s}@keyframes eq{to{height:12px}}.drive-card{display:flex;align-items:center;gap:18px}.speed{display:flex;align-items:center;flex-direction:column;gap:5px;width:64px;flex-shrink:0}.speed strong{font:38px/1 Georgia,serif;font-variant-numeric:tabular-nums}.speed>span{font-size:8px;letter-spacing:2px;opacity:.7}.drive-actions{display:flex;flex-direction:column;gap:7px;flex:1}.blade-button{border:0;display:flex;gap:8px;align-items:center;padding:0;min-height:38px;text-align:left}.blade-button>span:nth-child(2){font-size:12px}.blade-button small{display:block;font-size:8px;letter-spacing:1px;margin-top:4px}.blade-icon{font-size:30px}.blade-button kbd{margin-left:auto}.cruise-button{min-height:22px;font-size:10px;text-align:left;padding:3px 5px;border-color:transparent}.cruise-button kbd{float:right;font-size:8px;padding:1px 3px}.cut-info{display:flex;flex-direction:column;gap:5px;text-align:right;min-width:60px}.cut-info>span{font:17px Georgia,serif;white-space:nowrap}.cut-info>small{font-size:8px;opacity:.6}.extras-card>.smallcaps{margin-bottom:8px;opacity:.7;font-size:8px}.extra-row{display:flex;align-items:center;gap:9px}.extra-row+ .extra-row{margin-top:5px}.toggle-button{border:0;display:flex;align-items:center;justify-content:space-between;flex:1;padding:0;font-size:12px;min-height:25px;gap:8px}.switch{width:23px;height:13px;border-radius:7px;background:#ffffff25;position:relative}.switch:after{content:"";position:absolute;width:9px;height:9px;left:2px;top:2px;background:#e4e6d6;border-radius:50%;transition:transform .18s}.toggle-button[aria-pressed=true] .switch{background:#a7c576}.toggle-button[aria-pressed=true] .switch:after{transform:translateX(10px);background:#233b2d}.gesture{min-height:27px;padding:2px 8px;font-size:10px;min-width:77px;text-align:left}.gesture kbd{border:0;padding:0;float:right;margin:2px 0 0 5px}.quiet-footer{position:absolute;bottom:max(13px,env(safe-area-inset-bottom));left:32px;right:32px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.3px;opacity:.75}.quiet-footer button{font-size:8px;min-height:0;border:0;padding:0;text-decoration:underline;text-underline-offset:2px}.modal-screen{z-index:8;background:#0e272b70;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px}.modal-panel{background:#243d32f5;width:480px;max-width:100%;border:1px solid #dee5c42e;border-radius:12px;padding:34px;max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 25px 100px #0c201655}.modal-panel h2{font:35px/1.12 Georgia,serif;letter-spacing:-.9px;margin:15px 0}.modal-panel p{color:#d0d8c5;font-size:12px;margin:15px 0 23px}.modal-panel>.primary{width:100%;margin:23px 0}.settings-row{display:flex;align-items:center;justify-content:space-between;min-height:45px;border-bottom:1px solid #ffffff12;font-size:12px}.settings-row select{background:#314b3d;color:var(--cream);padding:5px 7px;border:1px solid #dae6b930;border-radius:4px;font-size:12px}.settings-row input{accent-color:#bfd888;width:17px;height:17px}.modal-buttons{display:flex;gap:10px;margin-top:20px}.modal-buttons>button{flex:1;font-size:11px;padding:7px 9px}.modal-panel details{margin-top:23px;color:#d0d8c5;font-size:11px}.modal-panel summary{cursor:pointer}.compact{width:430px}.touch-controls{display:none}.touch .touch-controls{display:flex;position:absolute;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:168px;justify-content:space-between;pointer-events:none}.touch-controls button{background:#233b2d90;backdrop-filter:blur(8px);width:58px;height:58px;border-radius:50%;font-size:19px;touch-action:none;user-select:none;-webkit-user-select:none;border-color:#e5ecd540;pointer-events:auto}.touch-controls button.pressed{background:#d2e1a1;color:#233b2d}.steering-pad,.pedal-pad{display:flex;gap:10px}.touch .hint{display:none}#toast{position:absolute;z-index:12;bottom:190px;left:50%;transform:translate(-50%,10px);background:#f6f1df;color:#233b2d;border-radius:6px;padding:11px 17px;max-width:90%;font-size:12px;box-shadow:0 4px 25px #162e2640;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}#portrait-note{display:none}
.drive-card{align-self:end;height:78px;background:#20372eb0;backdrop-filter:blur(8px);padding:10px 16px}.bottom-hud{grid-template-columns:minmax(220px,1fr) minmax(270px,.95fr) minmax(245px,1fr);column-gap:30px}.hint{bottom:132px}
@media(max-width:1080px){.bottom-hud{gap:9px;left:18px;right:18px;grid-template-columns:1fr 1fr 1fr}.radio-card,.drive-card,.extras-card{padding:12px;height:105px}.drive-card{gap:8px;height:78px}.cut-info{min-width:48px}.cut-info>span{font-size:14px}.speed{width:51px}.speed strong{font-size:32px}.gesture{min-width:64px;padding:2px 5px}.gesture kbd{display:none}.hint{bottom:131px}.touch .touch-controls{bottom:155px}}
@media(max-height:600px) and (orientation:landscape){.topbar{inset:max(15px,env(safe-area-inset-top)) max(21px,env(safe-area-inset-right)) auto max(21px,env(safe-area-inset-left))}.wordmark{font-size:22px;gap:8px}.wordmark svg{width:28px}.wordmark small{font-size:6px;margin-top:5px;letter-spacing:1.4px}.edition{font-size:8px}.icon-button{height:35px;width:35px;min-height:35px}.location{top:77px;left:24px}.location strong{font-size:23px;margin:5px 0}.location .smallcaps{font-size:7px}.location>span:last-child{font-size:9px}.compass{top:78px;right:27px}.compass i{line-height:23px;font-size:21px}.compass small{display:none}.bottom-hud{bottom:max(23px,env(safe-area-inset-bottom));gap:8px;grid-template-columns:1fr 1fr 1.1fr}.radio-card,.drive-card,.extras-card{height:86px;padding:9px 12px}.radio-track{font-size:13px;margin:6px 0 3px}.smallcaps{font-size:7px}.radio-actions button{font-size:14px;min-height:24px}.extras-card>.smallcaps{display:none}.extra-row+.extra-row{margin-top:4px}.toggle-button{font-size:11px;min-height:29px}.gesture{min-height:29px}.cut-info{display:none}.drive-actions{max-width:140px}.blade-button{min-height:33px}.blade-icon{font-size:25px}.blade-button>span:nth-child(2){font-size:11px}.cruise-button{font-size:9px}.quiet-footer{bottom:6px;font-size:7px;left:21px;right:21px}.quiet-footer button{font-size:7px}.touch .touch-controls{bottom:120px}.touch-controls button{width:49px;height:49px;min-height:49px;font-size:17px}.hint{bottom:126px;font-size:9px}#welcome{padding:85px 6vw 28px}.welcome-panel{max-width:450px}.eyebrow{font-size:8px;letter-spacing:2px}h1{font-size:47px;line-height:1.02;margin:18px 0 12px;letter-spacing:-1.7px}.welcome-panel>p{font-size:12px;line-height:1.5;margin-bottom:18px}.primary{min-height:43px;font-size:12px;padding:0 17px}.welcome-options{margin-top:12px;font-size:9px;gap:6px}.welcome-controls{display:none}.welcome-caption{right:25px;bottom:26px}.welcome-caption p{font-size:20px}.welcome-caption small{font-size:8px}.welcome-caption>span{font-size:8px}#toast{bottom:125px;font-size:11px}.modal-panel{padding:24px}.modal-panel h2{font-size:28px}.modal-panel p{margin:12px 0}.modal-panel>.primary{margin:14px 0}}
@media(max-width:650px) and (orientation:portrait){#portrait-note{position:absolute;z-index:20;inset:0;background:#223b30f7;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;text-align:center}#portrait-note>span{font-size:60px;color:#cbdcac;margin-bottom:20px}#portrait-note strong{font:29px Georgia,serif}#portrait-note p{font-size:13px;color:#c7d3bb}.modal-screen{z-index:21}.bottom-hud{grid-template-columns:1fr;display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-height:600px) and (orientation:landscape){.extras-card{height:110px}.extra-row .toggle-button,.extra-row .gesture{min-height:42px}.touch .touch-controls{bottom:145px}}
@media(max-height:420px) and (orientation:landscape){#welcome{padding-top:70px;padding-bottom:15px}h1{font-size:38px;margin:12px 0}.welcome-panel>p{font-size:11px;margin-bottom:12px}.welcome-options>span{display:none}.welcome-caption p{font-size:17px}.welcome-caption small{max-width:170px;display:block}}

/* 0.8: separate desktop, phone and tablet layouts. Controls have their own
   safe-area lanes; radio/extras move into a deliberately opened touch panel. */
#comfort-dock{display:contents}.radio-card{order:1}.drive-card{order:2}.extras-card{order:3}.touch-only,#comfort-scrim{display:none}
.map-picker{display:grid;gap:8px;margin:0 0 18px;max-width:390px}.map-picker label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.map-picker select{width:100%;min-height:46px;padding:10px 35px 10px 12px;border:1px solid #d4e0b74d;border-radius:5px;background:#213c32;color:var(--cream);font-size:14px}.map-picker button{min-height:44px}
#welcome{overflow-y:auto;padding-top:100px;padding-bottom:35px;align-items:flex-start}.welcome-panel{margin-block:auto}.welcome-panel h1{font-size:clamp(40px,5.1vw,74px);margin:22px 0 16px}.welcome-panel>p{margin-bottom:22px}.welcome-options label{min-height:30px}.welcome-controls{margin-top:23px}
.modal-panel .map-picker{max-width:none;margin-top:22px}.settings-row input[type=range]{max-width:145px;height:44px}.settings-row label{display:flex;align-items:center;min-height:46px;flex:1}.text-button{margin-top:16px;width:100%;min-height:44px}.modal-panel summary{min-height:44px;padding-block:13px}.modal-panel a{display:inline-flex;align-items:center;min-height:34px}
.read-sign{position:absolute;left:50%;transform:translateX(-50%);bottom:170px;min-height:46px;padding:10px 20px;background:#f4eddb;color:#244033;box-shadow:0 4px 20px #11271a40;border:1px solid #c9d4b7;z-index:2;font-size:13px}.read-sign kbd{margin-left:12px;border-color:#24403350}.reading-panel{border:3px double #cfbd89}.reading-panel h2{font-size:30px;overflow-wrap:anywhere}.reading-panel #reading-text p{font:19px/1.5 Georgia,serif;margin:8px 0}.reading-panel .reading-note{opacity:.65;font-size:11px;margin-top:24px}
#portrait-note{display:none!important}
body.touch .edition,body.touch kbd{display:none}body.touch.started .touch-only{display:flex}body.touch .topbar{inset:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) auto max(12px,env(safe-area-inset-left))}
body.touch .wordmark{font-size:23px;min-height:48px;gap:8px}body.touch .wordmark small{font-size:6px;letter-spacing:1px}body.touch .wordmark svg{width:29px}body.touch .top-right{gap:6px}body.touch .icon-button{width:48px;height:48px;min-height:48px;align-items:center;justify-content:center;font-size:21px;border-radius:10px;background:#1c342de0;backdrop-filter:none}body.touch #comfort-toggle{font-size:17px}
body.touch .location{left:max(16px,env(safe-area-inset-left));top:77px}body.touch .location strong{font-size:24px;margin:5px 0}body.touch .location .smallcaps{font-size:8px}body.touch .location>span:last-child{font-size:10px}body.touch .compass{top:82px;right:max(20px,env(safe-area-inset-right))}body.touch .compass small{display:none}
body.touch .bottom-hud{display:contents}body.touch #comfort-dock{display:none}body.touch .drive-card{position:absolute;left:50%;transform:translateX(-50%);bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));width:224px;height:76px;max-width:none;gap:7px;padding:9px;z-index:2;backdrop-filter:none;background:#20372eed}
body.touch .drive-card .speed{width:38px}body.touch .speed strong{font-size:27px}body.touch .speed>span{font-size:7px;letter-spacing:1px}body.touch .drive-actions{flex-direction:row;align-items:center;gap:6px;max-width:none}body.touch .blade-button{min-height:54px;min-width:67px;display:flex;justify-content:center;padding:4px;border:1px solid #dae5c433;border-radius:7px}body.touch .blade-icon{display:none}body.touch .blade-button>span:nth-child(2){font-size:11px}body.touch .blade-button small{font-size:8px}body.touch .cruise-button{min-height:54px;min-width:72px;text-align:center;font-size:11px;padding:4px;border:1px solid #dae5c433;border-radius:7px}body.touch .cruise-button[aria-pressed=true]{background:#bad189;color:#243c2e}
body.touch .cut-info{display:flex;position:absolute;top:-24px;left:0;right:0;align-items:center;text-align:center;text-shadow:0 1px 5px #000}body.touch .cut-info>span{font:13px Arial,sans-serif}body.touch .cut-info>small{display:none}
body.touch .touch-controls{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));z-index:2}body.touch .steering-pad,body.touch .pedal-pad{gap:8px;align-items:end}body.touch .touch-controls button{width:60px;height:68px;min-height:68px;border-radius:15px;font-size:21px;background:#203b2edc;backdrop-filter:none;border:1px solid #d8e1c073;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px}body.touch .touch-controls button small{font:8px Arial,sans-serif;letter-spacing:.45px}body.touch .touch-controls button.pressed{background:#d2e1a1;color:#203b2e;box-shadow:inset 0 0 0 2px #fff5}body.touch [data-drive=brake]{border-color:#e0bf8999}
body.touch .quiet-footer{left:16px;right:16px;bottom:4px;font-size:7px;pointer-events:none}body.touch .quiet-footer>span:last-child{display:none}body.touch .read-sign{bottom:max(132px,calc(env(safe-area-inset-bottom) + 124px));font-size:12px;min-height:48px;max-width:260px}body.touch #toast{bottom:154px;font-size:12px;max-width:75%;width:max-content}
body.touch.comfort-open #comfort-scrim{display:block;position:absolute;inset:0;z-index:6;background:#071e2065;border:0;border-radius:0;pointer-events:auto;cursor:default}
body.touch.comfort-open #comfort-dock{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:absolute;z-index:7;left:50%;top:max(20px,env(safe-area-inset-top));transform:translateX(-50%);width:min(650px,calc(100% - 48px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:16px;background:#1e372ff5;border:1px solid #e5e4cc55;border-radius:14px;box-shadow:0 14px 70px #0007;pointer-events:auto}
body.touch .comfort-heading{grid-column:1/-1;align-items:center;justify-content:space-between;font:22px Georgia,serif;order:0}body.touch .comfort-heading button{width:48px;height:48px;font-size:19px}body.touch #comfort-dock .radio-card,body.touch #comfort-dock .extras-card{height:auto;min-height:154px;padding:12px;background:#2d493d;backdrop-filter:none;box-shadow:none}body.touch .radio-card .smallcaps{font-size:9px}body.touch .radio-track{font-size:20px;margin:15px 0 8px}body.touch .radio-actions{gap:6px}body.touch .radio-actions button{min-width:48px;width:48px;height:48px;min-height:48px;border:1px solid #f4edcf33;border-radius:8px;font-size:20px}body.touch .radio-actions input{height:48px;min-width:50px}body.touch .equalizer{display:none}body.touch .extras-card>.smallcaps{display:block;font-size:9px;margin-bottom:14px}body.touch .extra-row{gap:8px}body.touch .extra-row+.extra-row{margin-top:10px}body.touch .toggle-button{min-height:48px;font-size:13px}body.touch .gesture{min-height:48px;min-width:73px;font-size:12px;padding:8px}body.touch .switch{width:29px;height:17px;border-radius:9px}body.touch .switch:after{width:13px;height:13px}body.touch .toggle-button[aria-pressed=true] .switch:after{transform:translateX(12px)}
body.touch .modal-screen{padding:16px}body.touch .modal-panel{max-height:calc(100dvh - 32px);padding:22px}body.touch .modal-panel button{min-height:48px;font-size:13px}body.touch .modal-panel select,body.touch .map-picker select{min-height:48px;font-size:16px}body.touch .settings-row{min-height:56px;font-size:13px;gap:12px}body.touch .settings-row label{min-height:56px}body.touch input[type=checkbox]{width:44px;height:44px;flex-shrink:0;accent-color:#b9d382}body.touch .welcome-options label{min-height:48px;font-size:12px}body.touch .primary{min-height:50px;font-size:14px}body.touch .modal-panel summary{min-height:48px;font-size:13px}body.touch .modal-panel a{min-height:44px}body.touch .modal-panel details p{font-size:13px}
body.touch[data-device=tablet] .touch-controls button{width:76px;height:84px;min-height:84px;font-size:26px}body.touch[data-device=tablet] .touch-controls button small{font-size:10px}body.touch[data-device=tablet] .steering-pad,body.touch[data-device=tablet] .pedal-pad{gap:12px}body.touch[data-device=tablet] .touch-controls{left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));bottom:max(32px,calc(env(safe-area-inset-bottom) + 20px))}body.touch[data-device=tablet] .drive-card{bottom:max(32px,calc(env(safe-area-inset-bottom) + 20px));height:84px;width:252px;gap:14px;padding:12px}body.touch[data-device=tablet] .blade-button,body.touch[data-device=tablet] .cruise-button{min-height:58px}body.touch[data-device=tablet] .read-sign{bottom:160px}body.touch[data-device=tablet] .location strong{font-size:31px}
body.touch[data-device=tablet][data-orientation=portrait] .drive-card{bottom:max(145px,calc(env(safe-area-inset-bottom) + 130px));width:280px}body.touch[data-device=tablet][data-orientation=portrait] .read-sign{bottom:269px}body.touch[data-device=tablet][data-orientation=portrait] .location{top:100px}body.touch[data-device=tablet][data-orientation=portrait] #toast{bottom:280px}
body.touch[data-device=phone][data-orientation=portrait] #portrait-note{display:flex!important;position:absolute;z-index:30;inset:0;background:#223b30f7;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px}body.touch[data-device=phone][data-orientation=portrait] #portrait-note>span{font-size:60px}body.touch[data-device=phone][data-orientation=portrait] #portrait-note strong{font:29px Georgia,serif}body.touch[data-device=phone][data-orientation=portrait] .modal-screen{visibility:hidden}#inapp-hinweis{margin-top:22px;max-width:330px;display:flex;flex-direction:column;align-items:center;gap:10px}#inapp-hinweis[hidden]{display:none}#inapp-hinweis p{font-size:15px;line-height:1.4;color:#f6f1df;margin:0 0 4px}#inapp-hinweis button{font:600 16px system-ui,sans-serif;min-width:230px;max-width:100%;padding:12px 20px;border-radius:999px;border:0;background:#f6f1df;color:#233b2d;overflow-wrap:anywhere;-webkit-touch-callout:none}#inapp-hinweis button+button{background:transparent;color:#f6f1df;border:1px solid #f6f1df99}#inapp-hinweis small{font-size:12px;color:#c7d3bb}
@media(max-height:600px) and (orientation:landscape){#welcome{padding:78px max(5vw,env(safe-area-inset-right)) 18px max(5vw,env(safe-area-inset-left))}.welcome-panel{max-width:790px;width:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;column-gap:32px;row-gap:12px;margin-block:auto}.welcome-panel .eyebrow{grid-column:1;grid-row:1;font-size:9px}.welcome-panel h1{grid-column:1;grid-row:2;font-size:44px;margin:0}.welcome-panel>p{grid-column:1;grid-row:3;margin:0;font-size:12px;line-height:1.5}.welcome-panel .map-picker{grid-column:2;grid-row:1;margin:0;gap:5px}.welcome-panel #start-button{grid-column:2;grid-row:2;width:100%;min-height:50px}.welcome-panel .welcome-options{grid-column:2;grid-row:3;margin:0;gap:2px}.welcome-options>span{display:none}.welcome-caption,.welcome-controls{display:none}.welcome-panel .map-picker select{min-height:44px}.welcome-panel .welcome-options label{min-height:44px}.welcome-panel input[type=checkbox]{width:24px;height:24px}body.touch .welcome-panel input[type=checkbox]{width:44px;height:44px}body.touch .location>span:last-child{display:none}body.touch .location strong{font-size:19px}.read-sign{bottom:154px}}
@media(max-height:370px) and (orientation:landscape){#welcome{padding-top:71px;padding-bottom:8px}.welcome-panel{column-gap:24px;row-gap:6px}.welcome-panel h1{font-size:35px}.welcome-panel>p{font-size:11px}.welcome-panel .map-picker label{font-size:8px}.welcome-panel .map-picker select{font-size:13px}.welcome-panel .welcome-options label{font-size:11px}.welcome-panel #start-button{min-height:45px}body.touch .wordmark small{display:none}body.touch .location{top:70px}body.touch .compass{top:70px}body.touch .read-sign{bottom:117px}body.touch #toast{bottom:124px}}
@media(max-width:740px) and (orientation:landscape){body.touch .wordmark{font-size:20px}body.touch .wordmark small{display:none}body.touch .touch-controls button{width:54px;height:62px;min-height:62px}body.touch .pedal-pad,body.touch .steering-pad{gap:6px}body.touch .drive-card{width:212px;height:70px;padding:7px;gap:5px}body.touch .blade-button{min-width:63px}body.touch .cruise-button{min-width:68px}.welcome-panel .map-picker select{font-size:13px}}
/* Keep a generous checkbox hit area without drawing a giant check mark. */
body.touch input[type=checkbox]{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='4' fill='%23374c3e' stroke='%23c9d7b7'/%3E%3C/svg%3E") center/24px 24px no-repeat}
body.touch input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='1' width='22' height='22' rx='4' fill='%23bdd48d'/%3E%3Cpath d='M6 12l4 4 8-9' fill='none' stroke='%23233b2d' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
body.touch #welcome{background:linear-gradient(90deg,#132d26cd,#18392a68)}
/* 0.9.2: a usable slider track, separate from the checkbox sizing rule. */
.settings-row .range-setting{display:flex;align-items:center;gap:8px;flex:0 0 190px;max-width:52%}
.settings-row input[type=range]{width:145px;min-width:100px;max-width:100%;height:44px;flex:1;touch-action:pan-y}
.range-setting output{min-width:38px;text-align:right;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}
.modal-panel .setting-help{font-size:11px;margin:8px 0 14px;line-height:1.5;color:#c8d5be}
/* 1.0: Veroeffentlichung - Spielhallen-Links, OSM-Hinweis auch am Handy, iOS-Feinheiten. */
.portal-links{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:18px;font-size:12px;letter-spacing:.2px}
.portal-links a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}
.portal-links a:hover{color:var(--cream)}body.touch .portal-links a{min-height:40px}
.modal-panel .portal-links{margin-top:18px;padding-top:10px;border-top:1px solid var(--line)}
.credits-version{font-size:11px;color:var(--muted)}.credits-version a{color:inherit}
body.touch .quiet-footer>span:last-child{display:inline}body.touch .quiet-footer #credits-open,body.touch .quiet-footer .dot{display:none}
body.no-volume .volume-label{display:none}
button,a,select,summary{touch-action:manipulation}
@supports not (height:100dvh){.modal-panel{max-height:calc(100vh - 48px)}body.touch .modal-panel{max-height:calc(100vh - 32px)}body.touch.comfort-open #comfort-dock{max-height:calc(100vh - 40px)}}
@supports not (backdrop-filter:blur(1px)){.icon-button{-webkit-backdrop-filter:blur(10px)}.radio-card,.drive-card,.extras-card{-webkit-backdrop-filter:blur(16px)}.drive-card{-webkit-backdrop-filter:blur(8px)}.modal-screen{-webkit-backdrop-filter:blur(8px)}.touch-controls button{-webkit-backdrop-filter:blur(8px)}body.touch .icon-button,body.touch .drive-card,body.touch .touch-controls button,body.touch #comfort-dock .radio-card,body.touch #comfort-dock .extras-card{-webkit-backdrop-filter:none}}
@media(max-height:600px) and (orientation:landscape){.welcome-panel .portal-links{grid-column:1/-1;grid-row:4;margin-top:2px;font-size:11px;gap:0 14px}body.touch .welcome-panel .portal-links a{min-height:36px}}
/* 1.0: Wunsch-Box im Pausenmenue (Charly 02.10.) */
.wunsch-box{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.wunsch-box h3{font:20px/1.2 Georgia,serif;margin:0 0 6px}
.wunsch-box>p{font-size:12px;line-height:1.5;color:#d0d8c5;margin:0 0 10px}#wunsch-form{display:flex;gap:8px}
#wunsch-text{flex:1;min-width:0;min-height:40px;padding:8px 12px;border-radius:8px;border:1px solid #dee5c440;background:#1d3329;color:var(--cream);font-size:13px}
#wunsch-text::placeholder{color:#c8d5be99}#wunsch-text:disabled{opacity:.6}#wunsch-senden{flex:0 0 auto;font-size:12px;padding:7px 12px}
.wunsch-status{min-height:1.2em;font-size:12px;color:var(--green);margin:8px 0 4px}.wunsch-box .setting-help a{color:inherit}
body.touch #wunsch-text{min-height:48px;font-size:16px}
.wunsch-box .setting-help{line-height:1.45;margin:4px 0 0}
/* 1.0.1 (Charly 02.10.): Schluck/Zug statt Bremse in der Touch-Fahransicht; nur sichtbar, wenn Bier bzw. Zigarre an ist */
.gesture-pad{display:flex;flex-direction:column;justify-content:flex-end;gap:6px}.touch-gesture[hidden],body.gesten-keine .gesture-pad{display:none!important}
body.touch.gesten-zwei .gesture-pad .touch-gesture{height:46px;min-height:46px;font-size:18px;gap:0}body.touch.gesten-zwei .gesture-pad .touch-gesture small{display:none}
body.touch[data-device=tablet].gesten-zwei .gesture-pad .touch-gesture{height:52px;min-height:52px}
/* 1.0.3 (Charly 02.10.): Wunsch-Box als eigenes Fenster - Link im Startbildschirm unter der Kulissenwahl, Knopf im Pausenmenue */
.wunsch-link{justify-self:start;align-self:start;background:none;border:0;padding:2px 0;min-height:0;color:var(--green);font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
body.touch .wunsch-link{min-height:32px;font-size:12px}.wunsch-box #wunsch-open-pause{width:100%}
.wunsch-panel h2{margin-bottom:8px}.wunsch-panel>p{margin:0 0 14px}.wunsch-panel #wunsch-close{margin-top:14px;width:100%}
.wunsch-panel .setting-help{line-height:1.45;margin:6px 0 0}
@media(max-height:420px) and (orientation:landscape){#welcome{padding-top:64px}.welcome-panel{row-gap:6px}body.touch .welcome-panel .wunsch-link{min-height:26px;padding:0}.welcome-panel .map-picker{gap:3px}}
/* 1.0.4 (Charly 02.10.): Luftbild der ganzen Wiese zum Teilen – Knopf oben rechts, Eintrag im Pausenmenü, Vorschau-Fenster, Blitz */
#luftbild-blitz{position:fixed;inset:0;z-index:30;background:#fff;opacity:0;pointer-events:none}
#luftbild-blitz.an{animation:luftbild-blitz .8s ease-out}
@keyframes luftbild-blitz{0%{opacity:.92}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){#luftbild-blitz.an{animation-duration:.01s}}
.icon-button.luftbild-icon{font-size:19px;line-height:1}
.luftbild-pause{width:100%;margin:-8px 0 8px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:14px;background:#d2e1a114;border-color:#d2e1a155;color:var(--cream)}
.luftbild-pause:hover{background:#d2e1a126}
.modal-panel.luftbild-panel{width:min(860px,100%);display:flex;gap:28px;align-items:center}
.luftbild-panel img{display:block;flex:0 0 auto;width:min(460px,52%,calc((100dvh - 130px)*.8));height:auto;aspect-ratio:4/5;border-radius:10px;box-shadow:0 18px 50px #0007;background:#11211a}
.luftbild-text{flex:1;min-width:0}
.luftbild-text h2{margin:12px 0 10px}.luftbild-text>p{margin:0}
.luftbild-text .primary{margin:18px 0 0;width:100%}
#luftbild-zurueck{width:100%;margin-top:10px;min-height:42px}
.luftbild-status{min-height:1.2em;font-size:12px;color:var(--green);margin:8px 0 0!important}
.luftbild-hinweis{font-size:11px;color:var(--muted);opacity:.8;margin:14px 0 0!important}
@media(orientation:portrait){.modal-panel.luftbild-panel{flex-direction:column;width:min(480px,100%);gap:14px}.luftbild-panel img{width:min(100%,calc(54dvh*.8));margin:0 auto}}
@media(max-height:520px) and (orientation:landscape){.modal-panel.luftbild-panel{gap:18px;padding:16px}.luftbild-panel img{width:calc((100dvh - 82px)*.8)}.luftbild-text h2{font-size:22px;margin:6px 0}.luftbild-text>p{font-size:12px}.luftbild-text .primary{margin-top:10px}.luftbild-hinweis{margin-top:8px!important}}
.luftbild-speichern{display:block;margin:10px auto 0;font-size:12px;min-height:30px;background:none;border:0;color:var(--green);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.luftbild-speichern[hidden]{display:none}
/* 1.0.5: Fahrknöpfe – kein iOS-Callout, nichts markieren beim langen Drücken */
.touch-controls,.touch-controls button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
