/* Final responsive layer. Keep touch targets usable; reveal details on demand. */
[hidden]{display:none!important}
button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #dcbf77;outline-offset:3px}
.title-quality{display:flex;justify-content:center;align-items:center;gap:12px;font-size:12px;color:#f7ead0}
.title-quality select{min-height:40px;border:1px solid #ab936a;border-radius:10px;background:#20303b;color:#fff;padding:6px 12px}
#title-status{font-size:11px;color:#efdfbf;margin:8px 0}
#btnStartExplore:disabled{opacity:.55;cursor:wait}
#recovery-panel{position:fixed;z-index:100000;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;background:#172531f2;color:#f7ead0;padding:24px;text-align:center}
#recovery-panel p{max-width:30em}#recovery-panel button{min-height:46px;padding:10px 22px;border-radius:10px}
#update-notice{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 12px);left:50%;transform:translateX(-50%);z-index:9000;background:#213641;color:#fff;border:1px solid #c7ab70;border-radius:14px;padding:12px;display:flex;align-items:center;gap:12px;max-width:90vw}
#update-notice button{white-space:nowrap;min-height:44px}
#menu-settings fieldset{border:1px solid #ccb98e;border-radius:12px;padding:12px;margin-top:14px}
#menu-settings fieldset label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
#menu-settings input[type=range]{width:65%;accent-color:#9e7540}
#watch-hud{padding:9px 12px;background:#243c45ed;color:#f7e6bd;border:1px solid #b8a271;border-radius:12px;font-size:12px;line-height:1.5}
#watch-interact{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 140px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid #c8ad70;border-radius:22px;color:#f8edce;background:#253b46;pointer-events:auto;z-index:45;white-space:nowrap;font-size:12px}
#watch-interact svg{width:18px;height:18px}
#watch-board{width:min(440px,90vw);border:1px solid #b5a17b;border-radius:18px;padding:24px;background:#f8f2e5;color:#273b43}
#watch-board p{font-size:14px;line-height:1.8}#watch-board button{display:block;width:100%;min-height:44px;margin:10px 0;border-radius:10px}
#watch-board{box-sizing:border-box;max-height:82dvh;overflow:auto}
#guardian-chapter h3{font-size:17px;margin:12px 0 6px}
#guardian-progress{background:#e8e1d1;padding:9px 12px;border-radius:9px;font-size:12px!important}
#watch-regular{border-top:1px solid #cdbd9e;margin-top:15px;padding-top:8px}
#watch-regular summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}
@media(max-width:650px){#watch-board{padding:16px}#watch-board p{font-size:12px;line-height:1.6}}
#training-hud{position:absolute;top:calc(env(safe-area-inset-top) + 76px);right:12px;max-width:210px;padding:12px;background:#edf3e9ed;border:1px solid #789c97;border-radius:12px;color:#233b42;z-index:40;font-size:12px;pointer-events:auto}
#training-hud button{min-height:40px;border-radius:8px}
body.is-training #festival-hud,body.is-training #town-hud,body.is-training #watch-hud{display:none!important}
body.has-watch:not(.hud-expanded) #festival-hud,body.has-watch:not(.hud-expanded) #town-hud{display:none!important}
body:not(.hud-expanded) #festival-hint,body:not(.hud-expanded) #festival-progress,body:not(.hud-expanded) #minimap>span{display:none}
body:not(.hud-expanded) #festival-hud{padding:8px 10px;font-size:11px}
body:not(.hud-expanded) .hud-controls-help{display:none}
.hud-speech-bubble{transition:opacity .3s}
body.speech-quiet:not(.hud-expanded) .hud-speech-bubble{opacity:0;pointer-events:none}
#map-expand{position:absolute;right:2px;bottom:2px;width:32px;height:32px;border:0;border-radius:8px;background:#233c45;color:#eed7a0;pointer-events:auto;padding:5px}
#map-expand svg{width:19px;height:19px}
#hud-left-stack #minimap{position:relative!important}
#map-dialog{width:min(620px,92vw);padding:20px;border:1px solid #c4b080;border-radius:16px;background:#f7f0e0;color:#203741}
#map-dialog canvas{width:100%;height:auto;display:block;border-radius:10px}#map-dialog button{min-height:44px;width:100%;margin-top:12px}
body.is-racing #watch-hud{display:none!important}
@media(max-width:650px){
 #hud-left-stack{width:96px;top:calc(var(--safe-t) + 70px)}
 #hud-right-stack{width:min(180px,50vw);top:calc(var(--safe-t) + 70px)}
 #survival-tip{display:none}#survival-hud{opacity:.95}
 .hud-speech-bubble small{display:none!important}
 .hud-speech-bubble{font-size:11px;line-height:1.5;max-height:4.5em;overflow:hidden}
 #transient-objective{font-size:11px;padding:5px 10px}
 .title-main{font-size:clamp(26px,7vw,38px)!important}.title-desc{font-size:12px}
 .title-footer{bottom:calc(env(safe-area-inset-bottom) + 12px)!important}
 #training-hud{max-width:180px;font-size:11px;top:calc(var(--safe-t) + 70px)}
}
@media(max-height:500px){.title-footer{position:static!important}.title-desc,.title-footer small,#title-status{display:none}.title-header{padding:8px!important}.title-main{font-size:25px!important}.title-quality{font-size:11px}.title-quality select{min-height:32px}#training-hud{top:60px;font-size:11px;max-width:240px}#watch-interact{bottom:125px}.hud-speech-bubble{max-width:45vw}}
