:root{color-scheme:dark;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;background:#0d090c;color:#f3e8df;--safe-t:max(10px,env(safe-area-inset-top));--safe-r:max(10px,env(safe-area-inset-right));--safe-b:max(10px,env(safe-area-inset-bottom));--safe-l:max(10px,env(safe-area-inset-left));--panel:#171016eF;--line:#b88b62;--accent:#e3bd84;--danger:#d56f69}
*{box-sizing:border-box}html,body,#app,#game-shell{width:100%;height:100%;min-height:100vh;min-height:100svh;min-height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;background:#0d090c}button,input,select{font:inherit;color:inherit}button{min-height:44px;border:1px solid #81664f;border-radius:7px;padding:.65rem 1rem;background:linear-gradient(#413039,#241a20);touch-action:manipulation;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2cf94;outline-offset:2px}button:disabled{opacity:.48;cursor:not-allowed}.hidden{display:none!important}
#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;background:#17131d}#hud{position:absolute;inset:0;pointer-events:none;z-index:5}#top-hud{position:absolute;top:var(--safe-t);left:50%;transform:translateX(-50%);display:flex;gap:.55rem;align-items:center;padding:.4rem .75rem;border:1px solid #8f6d4d66;border-radius:999px;background:#09070aca;backdrop-filter:blur(5px);font:600 12px/1 system-ui,sans-serif;white-space:nowrap}#quality-hud{opacity:.68}#crosshair{position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:"";position:absolute;background:#f7ead3aa}#crosshair:before{left:6px;top:0;width:2px;height:14px}#crosshair:after{top:6px;left:0;width:14px;height:2px}.interaction-prompt{position:absolute;left:50%;top:calc(50% + 25px);transform:translateX(-50%);display:flex;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:#0c090dcc;font:600 13px/1 system-ui,sans-serif}.interaction-prompt[hidden]{display:none}#status{position:absolute;left:50%;bottom:calc(var(--safe-b) + 92px);transform:translateX(-50%);max-width:60vw;text-align:center;font:600 13px/1.4 system-ui,sans-serif;text-shadow:0 2px 4px #000}#toast{position:absolute;left:50%;top:calc(var(--safe-t) + 48px);transform:translate(-50%,-12px);opacity:0;transition:.18s;padding:.55rem .9rem;border:1px solid #87684e;border-radius:7px;background:#120d12ed;font:600 13px/1.35 system-ui,sans-serif}#toast.visible{opacity:1;transform:translate(-50%,0)}#toast[data-kind=error]{border-color:#c56b65;color:#ffd3ce}#toast[data-kind=warning]{border-color:#c79d5b;color:#ffe4a8}#toast[data-kind=success]{border-color:#6f9d75;color:#d9f7dd}#mirror-room-hint{position:absolute;left:50%;bottom:calc(var(--safe-b) + 145px);transform:translateX(-50%);opacity:0;transition:.2s;padding:.45rem .8rem;border:1px solid #94735877;background:#0e0a0dd9;font:600 12px/1.3 system-ui,sans-serif}#mirror-room-hint.visible{opacity:1}
#title-screen{position:absolute;inset:0;z-index:25;display:grid;place-items:center;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);background:radial-gradient(circle at 68% 42%,#3a22254d,transparent 38%),linear-gradient(115deg,#0a070a 15%,#1d1118 62%,#0b080b)}.title-vignette{position:absolute;inset:0;box-shadow:inset 0 0 13vw 4vw #000;pointer-events:none}.title-content{position:relative;width:min(760px,92vw);max-height:94dvh;overflow:auto;padding:1.2rem;text-align:center}.title-kicker,.panel-kicker{margin:.2rem 0;letter-spacing:.24em;font:600 11px/1.2 system-ui,sans-serif;color:#dcb985}.title-content h1{margin:.25rem 0;font-size:clamp(2.4rem,8vw,5.6rem);font-weight:500;letter-spacing:.12em;text-shadow:0 7px 22px #000}.title-subtitle{margin:.2rem 0 1rem;color:#d8c9c8}.title-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.title-menu button{min-height:52px}.menu-primary{border-color:#d3a66f;background:linear-gradient(#724936,#44271f);box-shadow:0 8px 24px #0008}.ranking-fixed-note,.title-footnote{font:12px/1.45 system-ui,sans-serif;opacity:.72}.ranking-fixed-note{margin:.8rem 0 .2rem;color:#e2c695}
.screen-panel{position:absolute;inset:0;z-index:40;display:grid;place-items:center;padding:calc(var(--safe-t) + 8px) calc(var(--safe-r) + 8px) calc(var(--safe-b) + 8px) calc(var(--safe-l) + 8px);background:#09070bcc;backdrop-filter:blur(5px)}#system-overlay{pointer-events:none;opacity:0;transition:.15s;font:600 17px/1.5 system-ui,sans-serif;text-align:center}#system-overlay.visible{opacity:1;pointer-events:auto}.panel-card{width:min(760px,94vw);max-height:92dvh;overflow:auto;display:grid;gap:.75rem;padding:1.25rem;border:1px solid #9e7857;background:linear-gradient(#251820,#110c10);box-shadow:0 22px 75px #000}.panel-card.compact{width:min(430px,90vw);text-align:center}.panel-card h2{margin:.15rem 0 .65rem;letter-spacing:.12em}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #a47c5555}.icon-button{width:44px;height:44px;padding:0;border-radius:50%;font-size:1.4rem}.menu-panel{min-height:220px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.settings-grid fieldset{display:grid;gap:.6rem;margin:0;padding:.85rem;border:1px solid #9c765455}.settings-grid label{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.instructions{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.instructions article,.credits{padding:.9rem;border:1px solid #9c765444;background:#08060966}.instructions p,.credits p{font:13px/1.65 system-ui,sans-serif;color:#ddd0d0}.ranking-summary{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.ranking-summary span{padding:.25rem .5rem;border:1px solid #9c765455;border-radius:999px;font:11px/1 system-ui,sans-serif}.ranking-nickname{display:grid;gap:.3rem;max-width:340px}#ranking-list{list-style:none;margin:.2rem 0 0;padding:0;max-height:45dvh;overflow:auto;border:1px solid #9c765444;background:#08060977;font:13px/1.4 system-ui,sans-serif}#ranking-list li{display:grid;grid-template-columns:54px 1fr auto;gap:.55rem;padding:.55rem .65rem;border-bottom:1px solid #9c765422}#ranking-list li:last-child{border-bottom:0}#ranking-list time{font-family:ui-monospace,monospace;color:#f0d09b}
#touch-controls{position:absolute;inset:0;z-index:11;display:none;pointer-events:none}#touch-controls.active{display:block}.touch-action{position:absolute;pointer-events:auto;width:68px;height:68px;min-width:56px;min-height:56px;padding:.25rem;border-radius:18px;display:grid;place-items:center;gap:.05rem;background:#1a1419d9;backdrop-filter:blur(5px);touch-action:none;user-select:none}.touch-action .touch-icon{font-size:1.08rem}.touch-action span:last-child{font:600 10px/1 system-ui,sans-serif}.touch-action.pressed{transform:scale(.94);filter:brightness(1.25)}.touch-action.active,.touch-action.available{border-color:#efca8d;box-shadow:0 0 0 3px #e1b87822}#investigate{right:calc(var(--safe-r) + 74px);bottom:calc(var(--safe-b) + 74px)}#turn-back{right:var(--safe-r);bottom:calc(var(--safe-b) + 74px)}#crouch{right:calc(var(--safe-r) + 74px);bottom:var(--safe-b)}#use-item{right:var(--safe-r);bottom:var(--safe-b)}#pause{right:var(--safe-r);top:var(--safe-t);width:48px;height:48px;min-width:48px;padding:0;border-radius:50%}
.touch-zone{position:absolute;bottom:0;width:50%;height:78%;z-index:3;display:none;pointer-events:none}.touch-zone.enabled{display:block}.touch-zone span{position:absolute;bottom:var(--safe-b);font:10px/1 system-ui,sans-serif;opacity:.32}#move-zone{left:0}#move-zone span{left:var(--safe-l)}#look-zone{right:0}#look-zone span{right:var(--safe-r)}
#joystick-base{position:absolute;left:calc(var(--safe-l) + 74px);bottom:calc(var(--safe-b) + 64px);z-index:10;width:144px;height:144px;display:none;border:1px solid #efd19a66;border-radius:50%;background:#0a080b66;pointer-events:none;touch-action:none}#joystick-base.enabled{display:block}.joystick-walk-ring,.joystick-run-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}.joystick-walk-ring{width:96px;height:96px;border:1px dashed #d8b98044}.joystick-run-ring{width:136px;height:136px;border:1px solid #d8b98022}#joystick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;transform:translate(-50%,-50%);border:1px solid #f3d29caa;border-radius:50%;background:#795047d9;box-shadow:0 6px 18px #000b;transition:background .08s,box-shadow .08s}#joystick-base.running #joystick-knob{background:#aa6548;box-shadow:0 0 0 5px #d98a5430,0 6px 18px #000b}
#quick-inventory{position:absolute;left:50%;bottom:var(--safe-b);z-index:12;display:none;grid-template-columns:repeat(4,58px);gap:6px;transform:translateX(-50%);pointer-events:none}#quick-inventory.active{display:grid}.inventory-slot{position:relative;width:58px;height:58px;min-height:58px;padding:3px;display:grid;place-items:center;border-radius:8px;background:#141015dc;pointer-events:auto;touch-action:manipulation}.inventory-slot.selected{border:3px solid #f1cf91;transform:scale(1.06);box-shadow:0 0 0 2px #000,0 0 16px #e2b87255}.inventory-slot.empty{opacity:.62}.item-icon{width:34px;height:34px;color:#f0d6ab}.slot-number{position:absolute;left:3px;top:2px;font:600 9px/1 system-ui,sans-serif;opacity:.7}.slot-count{position:absolute;right:3px;bottom:2px;font:700 10px/1 system-ui,sans-serif;text-shadow:0 1px 2px #000}.slot-empty{font:11px/1 system-ui,sans-serif;opacity:.6}.slot-cooldown{position:absolute;inset:0;display:grid;place-items:center;border-radius:6px;background:#050407b8;font:700 12px/1 ui-monospace,monospace}.inventory-slot.cooldown .item-icon{opacity:.35}
#inventory-swap-modal{z-index:70}.swap-card{width:min(760px,96vw)}#swap-new-item{padding:.6rem;border:1px solid #c89b6266;background:#0b080b99}.swap-current{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.swap-slot{min-height:108px;padding:.45rem}.inventory-card{display:grid;grid-template-columns:60px 1fr;gap:.7rem;align-items:center;text-align:left}.inventory-card.compact{grid-template-columns:40px 1fr}.inventory-card .item-icon{width:54px;height:54px}.inventory-card.compact .item-icon{width:36px;height:36px}.inventory-card p{margin:.2rem 0;font:12px/1.35 system-ui,sans-serif;opacity:.72}.inventory-card span{font:11px/1.3 system-ui,sans-serif;color:#e2c99e}
#mirror-fade{position:absolute;inset:0;z-index:60;background:#060406;opacity:0;pointer-events:none;transition:opacity .18s}#mirror-fade.visible{opacity:1}.clear-result{width:min(520px,94vw);display:grid;gap:.75rem;padding:1.3rem;border:1px solid #ae8056;background:linear-gradient(#2b1b21,#100b0f);text-align:center}.clear-result>strong{font:700 clamp(2rem,7vw,4rem) ui-monospace,monospace;color:#f0cd91}.clear-result label{display:grid;gap:.3rem;text-align:left}.clear-actions{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.boot-error{display:grid;gap:.7rem;width:min(760px,94vw);padding:1rem;border:1px solid #c25b5b;background:#190d11;text-align:left}.boot-error strong{color:#ffb6ad}.boot-error pre{max-height:42vh;overflow:auto;white-space:pre-wrap;background:#080507;padding:.6rem;font:12px/1.35 ui-monospace,monospace}
#phase5-map{position:absolute;right:var(--safe-r);top:calc(var(--safe-t) + 48px);z-index:15;width:min(42vw,520px);height:auto;border:1px solid #b78a5f88;background:#0d0a0edc;pointer-events:none}#debug{display:none;position:absolute;left:var(--safe-l);top:var(--safe-t);z-index:90;max-width:48vw;max-height:82vh;overflow:hidden;margin:0;padding:.5rem;background:#000c;color:#baf6c7;font:11px/1.25 ui-monospace,monospace;pointer-events:none}.debug-enabled #debug{display:block}
@media(pointer:fine){#touch-controls,#joystick-base,.touch-zone{display:none!important}#quick-inventory{bottom:12px}}
@media(max-width:932px){.title-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid,.instructions{grid-template-columns:1fr}.swap-current{grid-template-columns:repeat(2,1fr)}#status{bottom:calc(var(--safe-b) + 76px);max-width:45vw}#quick-inventory{grid-template-columns:repeat(4,52px);gap:4px}.inventory-slot{width:52px;height:52px;min-height:52px}.touch-action{width:62px;height:62px}#investigate{right:calc(var(--safe-r) + 66px);bottom:calc(var(--safe-b) + 66px)}#turn-back{bottom:calc(var(--safe-b) + 66px)}#crouch{right:calc(var(--safe-r) + 66px)}#joystick-base{left:calc(var(--safe-l) + 67px);bottom:calc(var(--safe-b) + 57px);width:132px;height:132px}.joystick-run-ring{width:124px;height:124px}.joystick-walk-ring{width:88px;height:88px}}
@media(max-height:450px){.title-content{padding:.4rem}.title-content h1{font-size:2.25rem}.title-subtitle,.ranking-fixed-note{margin:.15rem}.title-menu button{min-height:42px;padding:.4rem}.title-footnote{margin:.2rem}.panel-card{max-height:96dvh}.touch-action{width:58px;height:58px}#investigate{right:calc(var(--safe-r) + 62px);bottom:calc(var(--safe-b) + 62px)}#turn-back{bottom:calc(var(--safe-b) + 62px)}#crouch{right:calc(var(--safe-r) + 62px)}#joystick-base{width:124px;height:124px;left:calc(var(--safe-l) + 62px);bottom:calc(var(--safe-b) + 50px)}.joystick-run-ring{width:116px;height:116px}.joystick-walk-ring{width:80px;height:80px}#quick-inventory{grid-template-columns:repeat(4,48px)}.inventory-slot{width:48px;height:48px;min-height:48px}.item-icon{width:30px;height:30px}}
@media(orientation:portrait){#game-canvas{filter:brightness(.3)}#touch-controls,#quick-inventory,#joystick-base{opacity:.3}}
/* Phase 10 reference-image mobile HUD override */
:root{
  --yhr-ui-line:rgba(244,245,242,.9);
  --yhr-ui-line-soft:rgba(244,245,242,.48);
  --yhr-ui-panel:linear-gradient(145deg,rgba(24,28,29,.78),rgba(4,6,7,.68));
  --yhr-ui-shadow:0 10px 28px rgba(0,0,0,.52),inset 0 0 18px rgba(255,255,255,.025);
  --yhr-joystick-size:clamp(148px,19vw,224px);
  --yhr-action-size:clamp(72px,8.2vw,104px);
  --yhr-action-gap:clamp(8px,1vw,14px);
  --yhr-action-step:calc(var(--yhr-action-size) + var(--yhr-action-gap));
  --yhr-slot-size:clamp(58px,6.8vw,82px);
  --yhr-slot-gap:clamp(7px,1vw,12px);
}
#hud{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;text-shadow:0 2px 5px #000}
#top-hud{top:calc(var(--safe-t) + clamp(4px,1vw,16px));left:calc(var(--safe-l) + clamp(4px,1vw,16px));transform:none;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(8px,1vw,14px);padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;font:inherit;white-space:normal}
.reference-hud-card{border:2px solid var(--yhr-ui-line);border-radius:clamp(5px,.6vw,9px);background:var(--yhr-ui-panel);box-shadow:var(--yhr-ui-shadow);overflow:hidden;backdrop-filter:blur(5px)}
#fragment-hud-card{width:clamp(96px,11.8vw,142px);min-height:clamp(78px,9vw,112px);display:grid;grid-template-rows:auto 1fr;place-items:center;padding:clamp(8px,1vw,14px)}
.hud-card-title{display:block;font-size:clamp(18px,2.2vw,31px);line-height:1.05;letter-spacing:.08em}
#objective-hud{display:block;font-size:clamp(34px,4.1vw,58px);font-weight:400;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.02em}
#objective-card{width:clamp(245px,30vw,410px);min-height:clamp(68px,8vw,104px);display:grid;grid-template-rows:auto 1fr}
#objective-card .hud-card-title{padding:clamp(8px,1vw,13px) clamp(14px,1.5vw,22px) clamp(6px,.7vw,10px);border-bottom:1px solid var(--yhr-ui-line-soft);font-size:clamp(17px,1.9vw,27px)}
#status{position:static;left:auto;bottom:auto;transform:none;max-width:none;min-height:clamp(34px,4vw,56px);display:flex;align-items:center;padding:clamp(7px,.8vw,12px) clamp(14px,1.5vw,22px);text-align:left;font:clamp(12px,1.3vw,18px)/1.35 "Yu Mincho","Hiragino Mincho ProN",serif;text-shadow:0 2px 4px #000;color:#f4f2ee}
#technical-hud{display:none}.debug-enabled #technical-hud{display:flex;gap:.4rem;padding:.25rem .45rem;border:1px solid #fff5;background:#000a;font:10px/1 system-ui,sans-serif}
#crosshair{opacity:.46}
.interaction-prompt{left:50%;top:auto;bottom:calc(var(--safe-b) + var(--yhr-slot-size) + clamp(18px,2vw,28px));width:clamp(286px,36vw,570px);min-height:clamp(48px,6vw,76px);transform:translateX(-50%);display:grid;place-items:center;padding:clamp(8px,1vw,14px) clamp(18px,2vw,30px);border:2px solid var(--yhr-ui-line);border-radius:clamp(4px,.5vw,8px);background:var(--yhr-ui-panel);box-shadow:var(--yhr-ui-shadow);font:clamp(18px,2.2vw,33px)/1.1 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.08em;text-align:center}
#mirror-room-hint{bottom:calc(var(--safe-b) + var(--yhr-slot-size) + clamp(82px,9vw,120px));border-color:#fff7;background:#07090ac7;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
#toast{top:calc(var(--safe-t) + 12px);font-family:system-ui,sans-serif}
.touch-zone span{display:none}
#joystick-base{left:calc(var(--safe-l) + clamp(18px,3vw,48px));bottom:calc(var(--safe-b) + clamp(35px,4.5vw,62px));width:var(--yhr-joystick-size);height:var(--yhr-joystick-size);border:2px solid var(--yhr-ui-line);background:radial-gradient(circle,rgba(28,32,33,.44),rgba(5,7,8,.7));box-shadow:0 0 0 4px rgba(255,255,255,.16),inset 0 0 0 6px rgba(0,0,0,.35),var(--yhr-ui-shadow)}
.joystick-walk-ring{width:67%;height:67%;border:1px solid rgba(255,255,255,.16);background:radial-gradient(circle,rgba(255,255,255,.04),transparent 70%)}
.joystick-run-ring{width:93%;height:93%;border:1px solid rgba(255,255,255,.25)}
#joystick-knob{width:42%;height:42%;border:2px solid rgba(255,255,255,.88);background:radial-gradient(circle at 40% 34%,rgba(238,238,235,.78),rgba(154,157,155,.62) 45%,rgba(68,73,74,.82));box-shadow:0 0 0 4px rgba(255,255,255,.12),0 8px 24px #000c;transition:background .08s,box-shadow .08s,filter .08s}
#joystick-base.running #joystick-knob{background:radial-gradient(circle at 40% 34%,rgba(255,255,252,.9),rgba(189,191,187,.74) 45%,rgba(83,88,88,.88));box-shadow:0 0 0 6px rgba(255,255,255,.16),0 8px 24px #000c;filter:brightness(1.08)}
.joystick-caption{position:absolute;left:-8%;top:calc(100% + clamp(8px,1vw,14px));width:116%;display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(8px,1vw,14px);align-items:center;color:#f5f3ef;font:clamp(17px,2vw,27px)/1 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.08em;text-shadow:0 2px 5px #000}
.joystick-caption span{height:1px;background:linear-gradient(90deg,transparent,var(--yhr-ui-line))}.joystick-caption span:last-child{background:linear-gradient(90deg,var(--yhr-ui-line),transparent)}.joystick-caption b{font-weight:400;white-space:nowrap}
#quick-inventory{bottom:calc(var(--safe-b) + clamp(5px,.8vw,12px));grid-template-columns:repeat(4,var(--yhr-slot-size));gap:var(--yhr-slot-gap)}
.inventory-slot{width:var(--yhr-slot-size);height:var(--yhr-slot-size);min-height:var(--yhr-slot-size);padding:5px;border:2px solid var(--yhr-ui-line);border-radius:clamp(3px,.45vw,7px);background:var(--yhr-ui-panel);box-shadow:var(--yhr-ui-shadow);transition:transform .12s,filter .12s,border-color .12s,box-shadow .12s}
.inventory-slot.empty{opacity:1}.inventory-slot.selected{border:3px solid #fff;transform:translateY(-3px) scale(1.04);filter:brightness(1.16);box-shadow:0 0 0 2px rgba(255,255,255,.2),0 8px 24px #000b,inset 0 0 16px rgba(255,255,255,.08)}
.inventory-slot .item-icon{width:62%;height:62%;color:#f2f0eb}.slot-number{left:6px;top:5px;font:600 clamp(8px,.75vw,11px)/1 system-ui,sans-serif;opacity:.42}.slot-count{right:5px;bottom:4px;font-size:clamp(9px,.9vw,13px)}.slot-empty{display:none}
.touch-action{width:var(--yhr-action-size);height:var(--yhr-action-size);min-width:var(--yhr-action-size);min-height:var(--yhr-action-size);padding:.3rem;border:2px solid var(--yhr-ui-line);border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(42,47,48,.72),rgba(5,7,8,.84));box-shadow:0 0 0 4px rgba(255,255,255,.12),inset 0 0 0 3px rgba(255,255,255,.06),var(--yhr-ui-shadow);backdrop-filter:blur(6px);font:clamp(17px,2vw,29px)/1 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.02em;color:#f5f4f0;text-shadow:0 2px 5px #000;transition:transform .1s,filter .1s,box-shadow .1s}
.touch-action span{font:inherit!important}.touch-action.pressed{transform:scale(.93);filter:brightness(1.3)}.touch-action.active,.touch-action.available{border-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.15),inset 0 0 20px rgba(255,255,255,.08),var(--yhr-ui-shadow)}
#investigate{right:calc(var(--safe-r) + var(--yhr-action-step) + var(--yhr-action-step));bottom:calc(var(--safe-b) + var(--yhr-action-step))}
#use-item{right:calc(var(--safe-r) + var(--yhr-action-step));bottom:calc(var(--safe-b) + var(--yhr-action-step) + var(--yhr-action-step))}
#crouch{right:var(--safe-r);bottom:calc(var(--safe-b) + var(--yhr-action-step))}
#turn-back{right:calc(var(--safe-r) + var(--yhr-action-step));bottom:var(--safe-b)}
#pause{right:calc(var(--safe-r) + clamp(3px,.5vw,8px));top:calc(var(--safe-t) + clamp(3px,.5vw,8px));width:clamp(58px,6vw,76px);height:clamp(58px,6vw,76px);min-width:clamp(58px,6vw,76px);min-height:clamp(58px,6vw,76px);border-radius:clamp(7px,.8vw,12px);padding:0;background:linear-gradient(145deg,rgba(25,30,31,.82),rgba(5,7,8,.78))}
.hamburger-lines{width:48%;display:grid;gap:clamp(5px,.6vw,8px)}.hamburger-lines i{display:block;width:100%;height:clamp(3px,.35vw,5px);border-radius:999px;background:#f6f5f0;box-shadow:0 1px 3px #000}
@media(pointer:fine){#quick-inventory{bottom:12px}}
@media(max-width:932px){
  :root{--yhr-action-size:clamp(68px,8.3vw,78px);--yhr-slot-size:clamp(54px,6.7vw,64px)}
  #fragment-hud-card{width:clamp(94px,11.5vw,112px);min-height:clamp(72px,8.5vw,88px)}
  #objective-card{width:clamp(238px,29vw,292px);min-height:64px}
  .hud-card-title{font-size:clamp(17px,2vw,22px)}#objective-hud{font-size:clamp(32px,4vw,42px)}
  #objective-card .hud-card-title{font-size:clamp(16px,1.8vw,20px)}#status{font-size:clamp(11px,1.25vw,14px)}
}
@media(max-height:450px){
  :root{--yhr-joystick-size:clamp(136px,18vw,162px);--yhr-action-size:clamp(66px,8vw,76px);--yhr-slot-size:clamp(52px,6.4vw,62px)}
  #top-hud{gap:7px}.reference-hud-card{border-width:1.5px}#fragment-hud-card{min-height:70px;padding:6px}#objective-card{min-height:58px}.hud-card-title{font-size:17px}#objective-hud{font-size:32px}#objective-card .hud-card-title{padding:6px 12px 4px;font-size:16px}#status{min-height:28px;padding:5px 12px;font-size:11px}
  .interaction-prompt{min-height:46px;font-size:18px;bottom:calc(var(--safe-b) + var(--yhr-slot-size) + 16px)}
  #joystick-base{bottom:calc(var(--safe-b) + 34px)}.joystick-caption{font-size:17px;top:calc(100% + 7px)}
  .touch-action{font-size:17px}#pause{width:58px;height:58px;min-width:58px;min-height:58px}
}
@media(max-width:720px){
  #objective-card{width:220px}.interaction-prompt{width:270px}
}
@media(orientation:portrait){#touch-controls,#quick-inventory,#joystick-base{opacity:.35}}

/* User-requested title/difficulty/HUD/mirror-room update */
#top-hud{display:none!important}
.joystick-caption{display:none!important}
.interaction-prompt{bottom:calc(var(--safe-b) + var(--yhr-slot-size) + clamp(4px,.7vw,9px))!important}
#mirror-room-hint{bottom:calc(var(--safe-b) + var(--yhr-slot-size) + clamp(62px,7vw,88px))}
.difficulty-card{width:min(760px,94vw);text-align:center}
.difficulty-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.2vw,16px)}
.difficulty-options button{min-height:clamp(110px,18vh,170px);display:grid;align-content:center;gap:.6rem;padding:1rem}
.difficulty-options strong{font-size:clamp(1.35rem,3vw,2.2rem);font-weight:500;letter-spacing:.08em}
.difficulty-options span{font:12px/1.55 system-ui,sans-serif;opacity:.76}
@media(max-width:760px){.difficulty-options{grid-template-columns:1fr}.difficulty-options button{min-height:68px;grid-template-columns:90px 1fr;align-items:center;text-align:left}.difficulty-options strong{font-size:1.2rem}}


/* Phase 10 follow-up: circular tap feedback, floating joystick, objective HUD and save UI */
html,body,#app,#game-shell,*{-webkit-tap-highlight-color:transparent}
.touch-action{appearance:none;-webkit-appearance:none;outline:none;overflow:hidden;isolation:isolate}
.touch-action:focus,.touch-action:focus-visible{outline:none}
.touch-action:focus-visible{box-shadow:0 0 0 5px rgba(255,255,255,.18),inset 0 0 18px rgba(255,255,255,.08),var(--yhr-ui-shadow)}
.touch-action.pressed{border-radius:50%;background:radial-gradient(circle at 42% 38%,rgba(92,105,112,.82),rgba(8,11,13,.91));box-shadow:0 0 0 5px rgba(255,255,255,.14),inset 0 0 24px rgba(153,190,210,.12),var(--yhr-ui-shadow)}
#current-objective-card{position:absolute;left:calc(var(--safe-l) + clamp(5px,1vw,16px));top:calc(var(--safe-t) + clamp(5px,1vw,16px));max-width:min(42vw,430px);display:none;padding:clamp(8px,1vw,13px) clamp(12px,1.4vw,20px);border:1.5px solid var(--yhr-ui-line);border-radius:clamp(4px,.5vw,8px);background:var(--yhr-ui-panel);box-shadow:var(--yhr-ui-shadow);backdrop-filter:blur(5px);text-align:left}
#current-objective-card span{display:block;margin-bottom:4px;font:600 clamp(9px,.85vw,12px)/1 system-ui,sans-serif;letter-spacing:.16em;opacity:.72}
#current-objective-card strong{display:block;font:400 clamp(13px,1.45vw,20px)/1.35 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.04em}
#app[data-game-state="Playing"] #current-objective-card,#app[data-game-state="MirrorRoom"] #current-objective-card{display:block}
.interaction-prompt{transform:translate(-50%,-0.3mm)!important}
#joystick-base{left:0;top:0;bottom:auto!important;display:block!important;opacity:0;visibility:hidden;transform:translate(-50%,-50%) scale(.92);transition:opacity .08s,transform .08s;pointer-events:none}
#joystick-base.enabled.visible{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
#move-zone{left:0;width:46%;height:62%}
.save-load-card button{display:grid;gap:.25rem;text-align:left}.save-load-card button strong{font-size:1.05rem}.save-load-card button small{font:11px/1.3 system-ui,sans-serif;opacity:.72}
#pause-save-status{min-height:1.4em;margin:-.25rem 0 .1rem;font:12px/1.4 system-ui,sans-serif;opacity:.78}
@media(max-height:450px){#current-objective-card{max-width:38vw;padding:7px 11px}#current-objective-card strong{font-size:12px}}

/* Phase 10 micro-adjustment: remove mirror instruction hint completely. */
#mirror-room-hint,#mirror-room-hint.visible{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* Phase10 World Integrity: pause menu route map */
#phase5-map{position:absolute;left:50%;top:50%;right:auto;transform:translate(-50%,-50%);z-index:120;width:min(76vw,620px);height:auto;max-height:82dvh;border:2px solid #d8b581;background:#0d0a0ef5;box-shadow:0 18px 60px #000c;pointer-events:none}
