:root{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#f8f1db;background:#141a16}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer;background:none;border:1px solid #fff5cf70;border-radius:3px;min-height:38px}button:hover{background:#fff8d81a}button:focus-visible{outline:2px solid #ffe9ac;outline-offset:5px}.shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(0deg,#0d120f70,transparent 27%,transparent 80%,#0d120f30);box-shadow:inset 0 0 150px #171b1425}header{position:fixed;top:25px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;font-family:serif;font-size:14px;letter-spacing:.12em;text-shadow:0 2px 8px #000}header i{font-size:10px;font-style:normal;opacity:.8;margin-left:12px}header>div{display:flex;gap:8px}header button{font-size:10px;letter-spacing:0;min-width:40px;background:#131e1840}#loading{position:fixed;inset:0;z-index:20;background:#182119;display:grid;place-items:center;text-align:center}#loading h1,#opening h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:70px;font-weight:500;letter-spacing:.22em;margin:18px 0}#loading span{font-size:12px;letter-spacing:.3em}#loading p{font-size:12px;letter-spacing:.05em}#loading small{font-size:9px;opacity:.45}.load-track{height:2px;background:#fff3cb22;width:250px;margin:25px auto}.load-track i{display:block;height:100%;background:#dccc91;transition:width .3s;width:0}#opening{position:fixed;left:7%;top:27%;text-shadow:0 3px 20px #071308;background:linear-gradient(90deg,#172016a0,transparent);padding:25px 50px 25px 0}#opening>span{font-family:serif;font-size:12px;letter-spacing:.18em}#opening p{font-size:12px;letter-spacing:.05em}#opening button{margin-top:23px;min-width:235px;padding:13px 20px;text-align:left;background:#eee1b9;color:#293422;border:0;font-weight:600;font-size:13px}#opening b{float:right}#opening small{display:block;font-size:9px;margin-top:15px;opacity:.75}#mission{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);text-align:center;text-shadow:0 2px 5px #000,0 0 12px #000b;white-space:nowrap}#mission>span{font-size:10px;letter-spacing:.15em;color:#e4d2a2}#mission p{font-size:17px;letter-spacing:.07em;margin:8px 0;font-weight:600}#compass{position:fixed;top:30px;left:50%;transform:translateX(-50%);display:flex;gap:30px;align-items:center;font-size:11px;text-shadow:0 1px 6px #000}#compass i{width:5px;height:5px;background:#fff1c9;transform:rotate(45deg)}#status{position:fixed;left:28px;bottom:35px;width:178px}.map{width:170px;height:170px;border-radius:50%;border:2px solid #ccb784a0;overflow:hidden;box-shadow:0 1px 15px #0004;background:#635e4155;position:relative;margin-bottom:14px}.map canvas{width:100%;height:100%;opacity:.8}.map>span{position:absolute;bottom:13px;text-align:center;left:0;right:0;letter-spacing:.12em;font-family:serif;font-size:9px;color:#ffefbd}.bar{display:flex;gap:7px;align-items:center;margin-top:4px}.bar>span{font-size:12px;width:12px;text-shadow:0 1px 4px #000}.bar>div{height:6px;flex:1;background:#261a16a0;box-shadow:0 1px 4px #0004}.bar i{display:block;height:100%;width:100%;background:#ba6a4e;transition:width .2s}.bar.stamina i{background:#778c48}.bar.stamina>div{height:4px}#hint{position:fixed;left:50%;top:60%;transform:translate(-50%,-50%);display:flex;gap:11px;align-items:center;font-size:19px;letter-spacing:.1em;text-shadow:0 2px 6px #000}.key{display:grid;place-items:center;border:2px solid #fff0c7;outline:1px solid #fff0c780;outline-offset:4px;border-radius:50%;width:34px;height:34px;font-size:16px;background:#1f271350}#help{position:fixed;right:25px;bottom:27px;display:flex;flex-wrap:wrap;gap:10px;max-width:330px;justify-content:flex-end;font-size:8px;color:#e9e5d0bd;text-shadow:0 1px 5px #000}kbd{font:8px monospace;border:1px solid #fff6d45a;padding:2px 4px;margin-right:3px}#toast{position:fixed;top:15%;left:50%;transform:translateX(-50%);padding:11px 20px;background:#172217bb;border-left:2px solid #d9c88b;max-width:85%;font-size:12px;opacity:0;transition:opacity .2s;text-align:center;pointer-events:none}#toast.show{opacity:1}#boss{position:fixed;top:78px;left:50%;transform:translateX(-50%);width:300px;text-align:center;text-shadow:0 2px 5px #000}#boss>span{font-size:13px}#boss>div{height:5px;background:#331f17b0;margin:8px 0}#boss i{display:block;background:#c98561;height:100%;width:100%}#boss small{font-size:9px}#modal{position:fixed;inset:0;display:grid;place-items:center;background:#10170f96;backdrop-filter:blur(5px);z-index:15;padding:24px}#modal>div{width:420px;max-width:100%;background:#e9e1c9;color:#30382b;padding:35px;border-radius:3px}#modal span{font-size:10px;color:#7b785d;letter-spacing:.18em}#modal h2{font-family:serif;font-size:25px;line-height:1.6}#modal p{font-size:12px;line-height:2;white-space:pre-line}#modal button{width:100%;background:#3e4b32;color:#f3eace;border:0;margin-top:15px;padding:14px;font-size:13px}#touch{display:none}body.damage .shade{box-shadow:inset 0 0 90px #a6352988}
@media(max-width:760px){header{top:16px;left:18px;right:18px}header i{display:none}#compass{top:26px}#opening{top:22%;left:9%;right:5%;padding-right:0}#opening h1{font-size:62px}#opening small{font-size:8px}#status{left:15px;bottom:145px;width:113px}.map{height:100px;width:100px;margin-bottom:10px}#mission{bottom:155px;left:auto;right:16px;transform:none;text-align:right;max-width:220px;white-space:normal}#mission p{font-size:12px;line-height:1.7}#mission>span{font-size:8px}#hint{top:52%;font-size:16px}#help{display:none!important}#touch:not(.hidden){display:flex;position:fixed;bottom:max(23px,env(safe-area-inset-bottom));left:22px;right:18px;justify-content:space-between;align-items:center;pointer-events:none}#joystick{pointer-events:auto;touch-action:none;width:90px;height:90px;border:1px solid #e3d9b850;background:#1a241950;border-radius:50%;position:relative}#joystick i{position:absolute;top:24px;left:24px;width:40px;height:40px;border-radius:50%;background:#ece3c188;border:1px solid #fff3c9a0;pointer-events:none}.touch-actions{display:flex;gap:9px;align-items:flex-end}.touch-actions button{pointer-events:auto;touch-action:none;font-size:9px;white-space:nowrap;border-radius:50%;background:#20281d8a;width:52px;height:52px}.touch-actions #touch-action{width:65px;height:65px;background:#ddd0a7;color:#333e2a;border-color:#ddd0a7}#boss{top:85px;width:250px}#toast{top:180px;font-size:10px;max-width:90%;width:max-content}#modal>div{padding:25px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
