@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#42cbe1;color:#203e42;font-family:'Noto Sans JP',sans-serif}button{font:inherit;cursor:pointer;border:0;color:inherit;transition:transform .2s,background .2s}button:hover{transform:translateY(-2px)}button:focus-visible{outline:3px solid #e78d45;outline-offset:3px}#world{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:fixed;left:32px;right:32px;top:28px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center}.emblem{font-size:40px;background:#fff9e9;width:58px;height:58px;display:grid;place-items:center;border-radius:20px;color:#38705c;box-shadow:0 4px 20px #116e7020}small{font-size:10px;font-weight:800;letter-spacing:3px}h1{font-size:21px;margin:3px 0;letter-spacing:1px}.glass{background:#fffdf0ee;border:1px solid #ffffffa0;box-shadow:0 12px 35px #22585a15;backdrop-filter:blur(15px)}header button{padding:13px 18px;border-radius:30px;font-size:13px}header button span{margin-left:12px}.mode{position:fixed;right:32px;top:92px;font-size:12px;border-radius:30px;padding:8px 14px;display:flex;gap:8px;align-items:center}.mode i{width:6px;height:6px;background:#4d977b;border-radius:100%}.intro{position:fixed;bottom:116px;left:32px;padding:24px;width:294px;border-radius:22px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#64847a;font-weight:700}h2{font-size:22px;letter-spacing:-1px;margin:11px 0}p{font-size:13px;line-height:1.9;color:#678079;margin:10px 0 20px}#explore{display:flex;align-items:center;justify-content:space-between;background:#254f42;color:#fffdf0;width:100%;padding:15px 18px;border-radius:12px;font-size:19px;font-weight:600}#explore span{font-size:12px;font-weight:400}#walkTip{font-size:10px;text-align:center;margin-top:13px;color:#708078}nav{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:5px;background:#fffdf0ed;padding:7px;border:1px solid #fff9;border-radius:20px;box-shadow:0 10px 35px #24636326}nav button{background:transparent;border-radius:14px;padding:10px 17px;white-space:nowrap;font-size:12px}nav button b{display:block;font-size:22px;line-height:28px;font-weight:400;color:#719483}nav button.selected{background:#dfebd9;color:#244e3d}nav button.selected b{color:#385a39}.viewControls{position:fixed;right:32px;bottom:124px;display:flex;flex-direction:column;gap:8px}.viewControls button{width:42px;height:42px;border-radius:15px;background:#fffdf0e8;font-size:23px}#crosshair{display:none;position:fixed;left:50%;top:50%;width:6px;height:6px;background:white;border-radius:50%;box-shadow:0 0 3px #234}body.walking #crosshair{display:block}body.walking .intro{width:294px}body.walking .intro h2,body.walking .eyebrow{display:none}body.walking #description{margin-top:0}#notice{position:fixed;top:110px;left:50%;transform:translateX(-50%);background:#244e42ed;color:#fff;padding:12px 20px;border-radius:40px;font-size:13px;opacity:0;transition:opacity .3s;pointer-events:none}#notice.show{opacity:1}dialog{border:0;border-radius:22px;padding:16px;background:#fffdf0;width:min(1100px,94vw)}dialog::backdrop{background:#173c4a99;backdrop-filter:blur(10px)}dialog img{width:100%;display:block;border-radius:12px}dialog button{float:right;background:transparent;padding:5px 0 15px}dialog p{margin:10px 5px 0}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#7dd7e4;font-size:20px}#touchControls{display:none;position:fixed;right:20px;bottom:125px;text-align:center}#touchControls button{width:48px;height:48px;background:#fffcebd9;border-radius:15px;margin:3px;font-size:22px;touch-action:none}@media(pointer:coarse){body.walking #touchControls{display:block}body.walking .viewControls{display:none}}@media(max-width:700px){header{left:16px;right:16px;top:18px}h1{font-size:16px}small{font-size:8px;letter-spacing:2px}.emblem{width:45px;height:45px;font-size:30px}header button{font-size:11px;padding:11px}.mode{right:16px;top:80px}.intro{left:16px;bottom:112px;width:244px;padding:18px}.intro h2{font-size:19px}.intro p{font-size:12px}nav{left:16px;right:16px;bottom:16px;transform:none;overflow:auto;justify-content:flex-start}nav button{padding:9px 11px;font-size:11px}.viewControls{right:16px}body.walking .intro{width:215px}#notice{top:130px;max-width:90vw;width:max-content;font-size:12px}}
