:root{--ink:#2b1d10;--parch:#efe0bd;--brass:#b8893a;--brass2:#e8c675;--dark:#0b0705}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--dark);font-family:'EB Garamond',serif;color:var(--parch)}
canvas#canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
#placard{position:fixed;top:14px;left:50%;transform:translateX(-50%);text-align:center;padding:10px 26px 12px;
 background:linear-gradient(180deg,#d9b066,#9c6f28 55%,#c99a4c);color:#2a1806;border-radius:6px;
 box-shadow:0 0 0 2px #5a3c12,0 8px 30px #000a,inset 0 1px 0 #fff6;min-width:260px;max-width:92vw;pointer-events:none;animation:drop .8s ease-out}
#roomName{font-family:'IM Fell English SC',serif;font-size:26px;line-height:1.05;text-shadow:0 1px 0 #f3d999}
#roomAddr{font-size:13px;letter-spacing:.12em;font-weight:800;opacity:.75}
#flavor{font-style:italic;font-size:15px;margin-top:3px}
#rare{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#fff8d0;text-shadow:0 0 8px #fff}
#placard.gold{animation:shimmer 1.6s infinite alternate}
.hidden{display:none!important}
#stats{position:fixed;top:14px;right:14px;font-size:13px;font-style:italic;opacity:.7}
#minimap{position:fixed;left:14px;bottom:40px;width:160px;height:160px;border:2px solid var(--brass);background:#120c07cc;border-radius:4px}
#controls{position:fixed;right:14px;bottom:40px;display:flex;flex-direction:column;gap:8px}
#controls button,#panel button.act{font-family:'IM Fell English SC',serif;font-size:17px;padding:8px 16px;background:#1d140b;color:var(--brass2);
 border:1.5px solid var(--brass);border-radius:3px;cursor:pointer;transition:.2s}
#controls button:hover{background:var(--brass);color:#1d140b}
#hint{position:fixed;bottom:42px;left:50%;transform:translateX(-50%);font-size:13px;opacity:.5;font-style:italic;text-align:center;pointer-events:none;width:50vw}
#panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,92vw);max-height:75vh;overflow:auto;
 background:var(--parch);color:var(--ink);padding:22px 24px;border:3px double #7a5420;box-shadow:0 10px 60px #000;animation:drop .3s}
#panel h2{font-family:'IM Fell English SC',serif;margin:0 0 8px;font-size:26px}
#panel input{width:100%;font:inherit;font-size:17px;padding:8px;border:1px solid #7a5420;background:#fff8e6}
#panel .item{padding:7px 4px;border-bottom:1px dotted #7a5420;cursor:pointer}
#panel .item:hover{background:#e3cf9f}
#panel button.act{background:#2b1d10;margin-top:10px}
#panelClose{position:absolute;right:8px;top:4px;background:none;border:none;font-size:26px;cursor:pointer;color:var(--ink)}
#panel img{width:100%;image-rendering:pixelated;margin-top:10px;border:2px solid #2b1d10}
footer{position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:13px;padding:6px;background:#0b0705cc;color:#b9a27a}
footer a{color:var(--brass2)}
@keyframes drop{from{opacity:0;transform:translate(-50%,-20px)}}
@keyframes shimmer{to{box-shadow:0 0 0 2px #fff3b0,0 0 40px #ffd76a,inset 0 1px 0 #fff}}
@media(max-width:640px){#hint{display:none}#minimap{width:110px;height:110px}#roomName{font-size:20px}#controls button{font-size:14px;padding:6px 10px}#stats{top:auto;bottom:160px;right:14px}}