:root{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#252a28;background:#252a28;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation;min-height:44px}button:focus-visible{outline:3px solid #849387;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}#view,#welcome{position:absolute;inset:0;width:100%;height:100%;height:100dvh}#view canvas{display:block;width:100%;height:100%;touch-action:none}#welcome{background:#252a28;color:white;display:flex;align-items:flex-end;overflow:hidden}#welcome>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% center;opacity:.9}#welcome:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,18,17,.85),transparent 80%)}.intro{z-index:1;padding:0 28px 110px;max-width:560px}.intro h1{font-size:32px;font-weight:500;letter-spacing:.04em;margin:0 0 14px}.intro p{font-size:14px;line-height:1.8;opacity:.85}.intro button{margin:20px 0 8px;width:180px;padding:16px 28px;background:#f5f5f2;border-radius:6px;font-size:16px}#loading{min-height:26px;font-size:12px}#welcome small{z-index:1;position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:28px;font-size:10px;opacity:.6}#hud{position:absolute;inset:0;pointer-events:none}#hud button,#map-panel{pointer-events:auto;background:rgba(247,247,244,.88);backdrop-filter:blur(10px);border-radius:9px}header{display:flex;justify-content:space-between;align-items:center;padding:calc(16px + env(safe-area-inset-top)) 16px 0;gap:12px}.brand{padding:13px 14px;background:rgba(247,247,244,.88);border-radius:9px;font-size:13px}header button{padding:0 14px;font-size:12px}aside{position:absolute;top:calc(82px + env(safe-area-inset-top));right:16px;width:164px}#map-toggle{width:100%;padding:0 14px;font-size:12px;text-align:left}#map-toggle span{float:right}#map-panel{margin-top:6px;padding:5px}#map{display:block;width:100%;height:auto;border-radius:5px}#rooms{position:absolute;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:5px;white-space:nowrap}#rooms button{font-size:12px;min-width:54px;padding:0 12px;background:rgba(247,247,244,.78)}#rooms button.active{background:#252a28;color:#fff;box-shadow:0 0 0 1px #ffffff55}#pad{position:absolute;bottom:calc(92px + env(safe-area-inset-bottom));left:16px;display:grid;grid-template-columns:44px 44px 44px;gap:4px}#pad button{font-size:23px;width:44px;height:44px;touch-action:none;background:#f7f7f0bd}#pad button:first-child{grid-column:2}#pad button:nth-child(2){grid-column:1}#pad button.pressed{background:#849387;color:white}#tip{position:absolute;left:50%;top:calc(76px + env(safe-area-inset-top));transform:translateX(-50%);padding:8px 12px;border-radius:5px;background:#252a28b0;color:white;font-size:11px;white-space:nowrap;transition:opacity .5s;opacity:0;max-width:90vw}#tip.show{opacity:1}#fatal{position:fixed;inset:20%;background:#f5f5f2;padding:30px;z-index:9;border-radius:12px}#fatal button{padding:8px 18px;background:#252a28;color:white}@media(min-width:700px){.intro{padding:0 7vw 16vh}.intro h1{font-size:44px}aside{width:210px}#pad{bottom:28px}#tip{top:auto;bottom:85px}}@media(max-height:500px){#pad{bottom:16px}#rooms{bottom:16px}aside{width:120px}.intro{padding-bottom:55px}.intro h1{font-size:26px}.intro button{margin:5px 0}.intro p{margin:4px 0}#welcome small{bottom:8px}}
#map-panel small{display:block;padding:7px 3px 3px;font-size:10px;line-height:1.4;color:#52605a}#map{cursor:crosshair;touch-action:manipulation}#orientation-tip{display:none;position:absolute;bottom:calc(206px + env(safe-area-inset-bottom));left:16px;align-items:center;gap:10px;padding:3px 8px 3px 12px;border-radius:8px;background:#172b34db;color:white;font-size:12px;pointer-events:auto}#orientation-tip button{min-height:32px;width:28px;background:transparent;color:#fff;font-size:20px;padding:0}@media(max-width:600px) and (orientation:portrait){#orientation-tip{display:flex}#tip{top:auto;bottom:calc(72px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}aside{width:166px}}@media(orientation:landscape) and (max-height:500px){header{padding-top:calc(10px + env(safe-area-inset-top))}aside{top:64px;right:12px;width:145px}#map-panel small{font-size:9px}#map-toggle{min-height:36px}#tip{bottom:70px;top:auto}}
.intro button{color:#252a28}
