:root{color-scheme:dark;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#f7edde;background:#060403;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #eed2a0;outline-offset:5px}button:disabled{opacity:.4;cursor:wait}[hidden]{display:none!important}#game{position:relative;width:100vw;height:100dvh;overflow:hidden;background:#080503}#stage{position:absolute;width:min(100vw,177.77778dvh);height:min(100dvh,56.25vw);left:50%;top:50%;translate:-50% -50%;overflow:hidden}#world{position:absolute;inset:0;transform:translate(var(--x,0px),var(--y,0px)) rotate(var(--r,0deg)) scale(var(--scale,1.015));will-change:transform}#still,video{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}video{visibility:hidden}video.active{visibility:visible}.target{position:absolute;background:transparent;border:1px solid transparent;border-radius:50%;z-index:3}.target:hover,.target:focus-visible{border-color:#f6d18c75;box-shadow:0 0 35px #e8c18330}.vignette,#flash{position:absolute;inset:0;pointer-events:none}.vignette{background:radial-gradient(ellipse at 50% 48%,transparent 50%,#0702005c);box-shadow:inset 0 0 25px #0003}#flash{background:#fff8e5;opacity:0;mix-blend-mode:screen}header{position:absolute;left:28px;right:28px;top:max(24px,env(safe-area-inset-top));z-index:5;display:flex;align-items:center;gap:18px;justify-content:space-between;font-size:10px;letter-spacing:.08em;text-shadow:0 1px 8px #000}header a{color:#d4c3aa;text-decoration:none;white-space:nowrap}header span{margin-right:auto}nav{display:flex;gap:8px}nav button{padding:9px;background:#160e0870;backdrop-filter:blur(6px);font-size:10px;border-radius:2px}.overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:#100905c9;backdrop-filter:blur(5px);padding:32px;z-index:10}.eyebrow{font-family:ui-monospace,monospace;color:#c5a779;font-size:10px;letter-spacing:.30em;margin:0 0 24px}h1{font-size:clamp(32px,6.5vw,88px);font-weight:400;letter-spacing:.10em;margin:0 0 24px}h2{font-size:clamp(25px,3.8vw,48px);font-weight:400;line-height:1.65;margin:0 0 22px}.lead{font-size:12px;line-height:2.25;color:#d3c5b0;letter-spacing:.08em;margin:0 0 34px}.primary{padding:16px 34px;background:#e8d1a9;color:#25180c;font-size:12px;letter-spacing:.12em;border-radius:2px;box-shadow:0 4px 24px #0003}.primary:hover{background:#f7e1ba}.small{margin-top:20px;font-size:10px;color:#b19c7a}#playUI{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:50%;translate:-50% 0;text-align:center;z-index:4}#playUI p{font-size:10px;letter-spacing:.12em;color:#b7a38a;margin:12px 0 0}#hint{position:absolute;width:100%;text-align:center;bottom:117px;font-size:11px;letter-spacing:.16em;color:#e0caa4;pointer-events:none;text-shadow:0 2px 8px #000;z-index:4}#callCaption{position:absolute;width:100%;text-align:center;top:18%;font-size:clamp(14px,2.2vw,27px);font-weight:600;letter-spacing:.14em;color:#ffe4ae;text-shadow:0 2px 13px #000,0 0 30px #000;pointer-events:none;z-index:4}.back{display:block;color:#bca583;font-size:11px;text-decoration:none;margin-top:24px}.credits{position:absolute;right:14px;bottom:8px;font-size:8px;color:#b59a733b;z-index:6}.credits p{max-width:340px;padding:12px;background:#100c09ec;color:#aa967c}.credits a{color:#c7ac7a}#result{background:#0a0503b8;backdrop-filter:blur(3px)}@media(max-width:650px){header{left:14px;right:14px;top:18px;gap:10px;font-size:9px}header span{font-size:9px;max-width:130px;line-height:1.6}nav{gap:4px}nav button{font-size:9px;padding:7px}#callCaption{top:calc(50% - 28vw);font-size:14px}#hint{bottom:123px;font-size:10px}.lead{font-size:11px}#playUI{bottom:32px}}@media(prefers-reduced-motion:reduce){#world{will-change:auto}}
#stage{inset:0;width:100%;height:100%;left:0;top:0;translate:none}#scene{display:block;width:100%;height:100%;touch-action:none}#playUI{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;width:min(580px,90vw)}#progress{width:100%;font-size:12px;color:#efdbba;font-variant-numeric:tabular-nums}#playUI p{width:100%;margin:0}#hint{bottom:145px;background:#09040366;padding:8px}#crosshair{position:absolute;left:50%;top:50%;translate:-50% -50%;font:20px monospace;color:#fff9;pointer-events:none;z-index:3;text-shadow:0 1px 3px #000}#lookLock{position:absolute;right:28px;top:82px;z-index:5;padding:10px;background:#140b0877;border:1px solid #d5b16b44;font-size:10px}#joystick{position:absolute;left:24px;bottom:62px;width:108px;height:108px;border:1px solid #eac99166;border-radius:50%;background:#12090777;z-index:5;touch-action:none;display:grid;place-items:center}#joystick i{width:44px;height:44px;border-radius:50%;background:#bba37577}#callCaption{top:15%}.credits{bottom:6px}@media(pointer:coarse){#lookLock{display:none}#playUI{width:58vw;left:auto;right:12px;translate:none;bottom:40px}#playUI .primary{padding:14px 22px}#hint{bottom:190px;font-size:9px}#callCaption{top:18%}}
#scene,#crosshair,#progress,#joystick{user-select:none;-webkit-user-select:none}#push{touch-action:none}#lookLock{max-width:155px}

body[data-look="follow"] #scene{cursor:none}#equip{background:#273027;color:#e6d8b8;border:1px solid #98845d}#equip[aria-pressed="true"]{background:#73592d}#lookLock{max-width:200px;min-width:140px}#playUI{width:min(660px,96vw)}@media(max-width:650px){#playUI{gap:8px;right:8px;width:64vw}#playUI .primary{font-size:10px;padding:12px 15px}#hint{bottom:185px;font-size:8px}#joystick{width:88px;height:88px;left:12px;bottom:50px}}

#healthHUD{position:absolute;left:28px;top:78px;width:220px;z-index:5;background:#120907bb;padding:12px 14px;border:1px solid #dec9a14a;pointer-events:none}#healthHUD>div:first-child{display:flex;justify-content:space-between;font:12px ui-monospace,monospace}#danger{color:#ff6a61}#hpBar{height:8px;margin-top:9px;background:#483330;border-radius:2px;overflow:hidden}#hpFill{display:block;height:100%;width:100%;background:#bbd69b;transition:width .15s}body[data-hp-low="true"] #hpFill{background:#f16d57}#whiteStatus{font-size:10px;color:#d6c1a0;line-height:1.5;margin:8px 0 0}body[data-outcome="defeat"] #result{background:#240603cc}@media(max-width:650px){#healthHUD{left:14px;top:68px;width:172px;padding:9px 10px}#healthHUD>div:first-child{font-size:11px}#whiteStatus{font-size:9px}#callCaption{top:23%}}

/* 視点操作はドラッグ中だけ。操作ボタンへ自由にカーソルを移せる。 */
body[data-look="drag"] #scene{cursor:grab}body[data-look="drag"] #scene:active{cursor:grabbing}
#viewControls{position:absolute;right:28px;top:82px;z-index:5;display:flex;gap:8px}
#viewControls button{position:static;min-width:0;max-width:none;padding:10px 12px;background:#140b08bb;border:1px solid #d5b16b66;font-size:11px;color:#efdbba}
#joystick::after{content:"移動";position:absolute;bottom:-22px;color:#dec7a4;font-size:11px;pointer-events:none}
@media(pointer:coarse),(max-width:650px){
 #viewControls{right:12px;top:72px}#viewControls #lookLock{display:none}
 #viewControls button{padding:12px;font-size:11px}#callCaption{top:25%}
 #playUI{left:auto;right:12px;translate:none;width:58vw;bottom:max(36px,env(safe-area-inset-bottom));gap:8px}
 #playUI #push{min-height:62px;min-width:92px;font-size:16px}#equip{min-height:48px}
 #hint{bottom:210px;font-size:10px;letter-spacing:.05em;padding:8px 4px}
 #joystick{bottom:max(64px,env(safe-area-inset-bottom));width:100px;height:100px}
}
