:root{--bg:rgba(255,255,255,.8);--fg:#1d2530;--mut:#5b6675;--ac:#2f6fed;--r:14px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;color:var(--fg);background:#dfe9f3}
#viewer{position:fixed;inset:0}#viewer canvas{display:block;touch-action:none}
#panel,#hint,#walkHint,#colHide,#specsBtn,#compass{background:var(--bg);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.6);box-shadow:0 8px 30px rgba(20,40,70,.15);border-radius:var(--r)}
#panel{position:fixed;top:16px;left:16px;bottom:16px;width:270px;padding:14px 16px;overflow:auto;z-index:3;transition:transform .25s}
body.hid #panel{transform:translateX(-310px)}
#panel h1{margin:0;font-size:18px;font-weight:650}#panel .sub{font-size:12.5px;color:var(--mut);margin:4px 0 6px;line-height:1.45}
#panel h2{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--mut);margin:4px 0 6px;display:flex;justify-content:space-between;align-items:center}
#panel section{margin-top:14px}#panel label{display:flex;gap:8px;align-items:center;font-size:14px;padding:3px 0;cursor:pointer}
#panel label .as{font-size:10px;font-weight:700;color:#b45f06;background:#fff1de;border-radius:4px;padding:1px 4px;margin-left:auto}
input[type=checkbox]{accent-color:var(--ac);width:17px;height:17px;flex:none}
.mini button{font-size:11px;padding:2px 7px;margin-left:4px;border-radius:7px;text-transform:none;letter-spacing:0}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:6px}
button,#specsBtn{font:inherit;font-size:13px;padding:8px 10px;border-radius:10px;border:1px solid #d6dde6;background:#fff;color:var(--fg);cursor:pointer;transition:.15s;text-decoration:none}
button:hover{border-color:var(--ac);color:var(--ac)}button.accent{grid-column:span 2;background:var(--ac);color:#fff;border-color:var(--ac)}button.accent:hover{filter:brightness(1.1);color:#fff}
a{color:var(--ac)}
.assume p,.assume li{font-size:12.5px;color:var(--mut);line-height:1.45}.assume ul{padding-left:18px;margin:4px 0}.assume b{color:#b45f06}
#colHide{position:fixed;top:16px;left:302px;z-index:4;padding:7px 12px;font-size:13px;transition:left .25s}body.hid #colHide{left:16px}
#specsBtn{position:fixed;top:16px;right:16px;z-index:4;font-weight:600}
#hint{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);padding:8px 14px;font-size:12px;color:var(--mut);white-space:nowrap}
#walkHint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 18px;font-size:14px;pointer-events:none}
#compass{position:fixed;right:16px;bottom:16px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center}
#needle{display:flex;flex-direction:column;align-items:center;line-height:1;font-size:12px;color:#c0392b}#needle b{color:var(--fg);font-size:12px}
.lbl{background:rgba(29,37,48,.86);color:#fff;padding:3px 8px;border-radius:999px;font-size:11px;white-space:nowrap}.lbl i{color:#ffc27a;font-style:normal;font-weight:700}
.dim{background:rgba(255,255,255,.9);color:#1d2530;padding:2px 7px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid #cfd8e3}
@media (max-width:700px){#panel{width:auto;right:16px;bottom:auto;max-height:55%}#colHide{left:auto;right:16px;top:auto;bottom:80px}body.hid #colHide{left:auto}#hint{display:none}#specsBtn{top:auto;bottom:16px;right:84px}body.hid #panel{transform:translateY(-120%)}}
