.plan-peek{position:absolute;z-index:3;width:130px;height:160px;transform:translateX(-50%);border:1px solid #e8dfc855;background:#eee6d5e8;border-radius:3px;padding:6px;cursor:pointer;color:#282019;box-shadow:0 4px 24px #0003}
.plan-peek img{width:100%;height:128px;object-fit:contain;display:block}
.plan-peek span{font:10px 'IBM Plex Mono',monospace}
.plan-dialog{margin:auto;border:1px solid #bca373;border-radius:4px;padding:14px;background:#eee6d5;color:#282019;width:min(900px,94vw);max-width:94vw;max-height:94dvh}
.plan-dialog::backdrop{background:#100c08bb;backdrop-filter:blur(8px)}
.plan-dialog .plan-viewport img{position:absolute;left:50%;top:50%;max-width:none;object-fit:contain;transform-origin:center;user-select:none;pointer-events:none}
.plan-dialog button{min-width:44px;min-height:44px;background:transparent;border:1px solid #756141;cursor:pointer;color:#282019;font:12px 'IBM Plex Mono',monospace}
.plan-dialog button:disabled{opacity:.35;cursor:default}
.plan-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.plan-toolbar output{font:12px 'IBM Plex Mono',monospace;min-width:48px;text-align:center}
.plan-close{margin-left:auto}
.plan-viewport{position:relative;height:65dvh;overflow:hidden;touch-action:none;border:1px solid #75614144;background:#f7f1e5;cursor:default}
.plan-viewport.is-zoomed{cursor:grab}
.plan-viewport.is-zoomed:active{cursor:grabbing}
.plan-dialog :focus-visible,.about-dialog :focus-visible,.lobby-about:focus-visible{outline:2px solid #a78342;outline-offset:3px}
.plan-dialog p{font:12px 'IBM Plex Mono',monospace;margin-top:12px;max-width:76vw;line-height:1.5}
.lobby-about{position:absolute;z-index:3;transform:translate(-50%,-50%);width:44px;height:44px;border:1px solid #e8dfc8aa;border-radius:50%;background:#211b1599;color:#fff0cd;font:italic 23px 'Cormorant Garamond',serif;cursor:pointer;box-shadow:0 0 0 6px #e8dfc812;backdrop-filter:blur(4px)}
.lobby-about span{position:absolute;top:54px;right:0;white-space:nowrap;font:10px 'IBM Plex Mono',monospace;padding:8px 10px;background:#211b15d9;color:#e8dfc8}
.lobby-about:hover{background:#7a5f2e}
.lobby-about[hidden]{display:none}
.lobby-mission{position:absolute;z-index:3;right:2%;top:50%;transform:translateY(-50%);box-sizing:border-box;width:clamp(245px,24vw,300px);min-height:390px;max-height:calc(100dvh - 180px);overflow:auto;padding:30px 25px;display:flex;align-items:center;background:rgba(43,25,15,.88);border:1px solid #a7834244;color:var(--gold);box-shadow:0 5px 24px #0002;font:400 13px/1.85 'IBM Plex Mono',monospace}
.lobby-mission p{margin:0}
.lobby-mission[hidden]{display:none}
@media(max-width:640px){.lobby-mission{right:10px;width:210px;min-height:340px;padding:22px 18px;font-size:11px;line-height:1.8}}
@media(max-height:560px){.lobby-mission{min-height:0;display:block;top:85px;transform:none;max-height:calc(100dvh - 185px)}}
.instagram-link{position:fixed;z-index:60;left:50%;bottom:max(5px,env(safe-area-inset-bottom));transform:translateX(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--gold);opacity:.8;filter:drop-shadow(0 1px 3px #000);transition:opacity .2s}
.instagram-link svg{width:19px;height:19px}
.instagram-link:hover,.instagram-link:focus-visible{opacity:1}
.instagram-link:focus-visible{outline:1px solid var(--gold);outline-offset:1px}
.tour-footer{bottom:58px}
.about-dialog{margin:auto;width:min(490px,90vw);padding:32px;border:1px solid #b89b62;background:#191d17;color:#e8dfc8;max-height:90dvh;overflow:auto}
.about-dialog::backdrop{background:#100c08bb;backdrop-filter:blur(7px)}
.about-dialog button{display:block;margin-left:auto;width:44px;height:44px;border:1px solid #b89b6277;background:transparent;color:#e8dfc8;font-size:23px;cursor:pointer}
.about-eyebrow{font:10px/1.6 'IBM Plex Mono',monospace;letter-spacing:.15em;text-transform:uppercase;color:#c5aa75;margin:24px 0 12px}
.about-dialog h2{font:400 clamp(30px,6vw,42px)/1.1 'Cormorant Garamond',serif}
.about-note{font:23px/1.5 'Cormorant Garamond',serif;margin:22px 0 12px}
.materials-book{position:absolute;z-index:3;left:4%;bottom:95px;width:190px;background:#17120de8;border:1px solid #c2a06b66;padding:12px;color:#eadcc3;box-shadow:0 10px 40px #0004}
.materials-book h3{font:11px 'IBM Plex Mono',monospace;letter-spacing:.12em;margin:0 0 10px}
.material-texture{width:100%;height:180px;background-repeat:no-repeat;touch-action:pan-y;transition:opacity .25s ease}
.material-name{font:12px 'Cormorant Garamond',serif;min-height:36px;margin-top:10px;line-height:1.4}
.material-controls{display:flex;align-items:center;justify-content:space-between;font:10px 'IBM Plex Mono',monospace}
.material-controls button{width:44px;height:44px;background:transparent;border:1px solid #c2a06b66;color:#eadcc3;cursor:pointer}
.material-hint{font:9px 'IBM Plex Mono',monospace;color:#c9baa0;margin-top:8px}
.plan-peek[hidden],.materials-book[hidden]{display:none}
@media(max-width:640px){.plan-peek{width:105px;height:130px}.plan-peek img{height:100px}.materials-book{left:14px;width:155px;padding:10px;bottom:88px}.material-texture{height:130px}}
