@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Crimson+Text:ital,wght@0,400;0,600;1,400&family=Fira+Sans:wght@400;500;600&display=swap";.p-root{--p-bg:#0a0a0a;--p-bg-raised:#111;--p-bg-card:#161616;--p-bg-card-hover:#1c1c1c;--p-border:#222;--p-border-light:#333;--p-text:#f0f0f0;--p-text-dim:#888;--p-text-muted:#555;--p-accent:#3b82f6;--p-accent-hover:#60a5fa;--p-gold:#d4a843;--p-gold-dim:#a07830;background:var(--p-bg);color:var(--p-text);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.7}.p-nav{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--p-border);background:#0a0a0ad9;position:fixed;top:0;left:0;right:0}.p-nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:64px;margin:0 auto;padding:0 2rem;display:flex}.p-nav-brand{color:var(--p-text);letter-spacing:.02em;align-items:center;gap:.6rem;font-family:Cinzel,serif;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.p-brand-icon{object-fit:cover;border-radius:4px;width:28px;height:28px}.p-nav-links{align-items:center;gap:.3rem;display:flex}.p-nav-link{color:var(--p-text-dim);border-radius:6px;padding:.4rem .8rem;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .15s}.p-nav-link:hover{color:var(--p-text);background:#ffffff0d}.p-nav-link.active{color:var(--p-text)}.p-nav-wiki{border:1px solid var(--p-gold-dim);color:var(--p-gold);margin-left:.5rem;padding:.3rem .7rem;font-size:.75rem}.p-nav-wiki:hover{color:var(--p-gold);background:#d4a8431a}.p-hero{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.p-hero-bg{filter:brightness(.3)saturate(.6);background-position:50%;background-size:cover;position:absolute;inset:0}.p-hero-overlay{background:linear-gradient(#0a0a0a66 0%,#0a0a0ad9 80%,#0a0a0a 100%);position:absolute;inset:0}.p-hero-content{text-align:center;max-width:700px;padding:2rem;position:relative}.p-hero-title{color:var(--p-text);letter-spacing:.04em;margin-bottom:.3rem;font-family:Cinzel,serif;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:700;line-height:1.1}.p-hero-subtitle{color:var(--p-text-dim);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.5rem;font-size:1.1rem;font-weight:500}.p-hero-desc{color:var(--p-text-dim);max-width:550px;margin-bottom:2rem;margin-left:auto;margin-right:auto;font-size:1.15rem;line-height:1.7}.p-hero-actions{justify-content:center;gap:1rem;margin-bottom:2.5rem;display:flex}.p-dm-badge{color:var(--p-gold);border:1px solid var(--p-gold-dim);border-radius:999px;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.p-dm-badge:hover{background:#d4a8431a}.p-dm-dot{background:var(--p-gold);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.p-btn{cursor:pointer;border:none;border-radius:8px;padding:.7rem 1.8rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.p-btn-primary{background:var(--p-accent);color:#fff}.p-btn-primary:hover{background:var(--p-accent-hover);transform:translateY(-1px)}.p-btn-ghost{color:var(--p-text-dim);border:1px solid var(--p-border-light);background:0 0}.p-btn-ghost:hover{color:var(--p-text);border-color:var(--p-text-dim)}.p-section{padding:4rem 0}.p-section-inner{max-width:1200px;margin:0 auto;padding:0 2rem}.p-section-title{color:var(--p-text);letter-spacing:.02em;margin-bottom:2rem;font-family:Cinzel,serif;font-size:1.6rem;font-weight:600}.p-main{padding-top:64px}.p-categories{flex-wrap:wrap;justify-content:center;gap:3rem;display:flex}.p-category-card{color:var(--p-text-dim);flex-direction:column;align-items:center;gap:.8rem;text-decoration:none;transition:all .2s;display:flex}.p-category-card:hover{color:var(--p-text);transform:translateY(-3px)}.p-category-icon{border:2px solid var(--p-border-light);border-radius:16px;width:80px;height:80px;transition:border-color .2s;overflow:hidden}.p-category-card:hover .p-category-icon{border-color:var(--p-accent)}.p-category-img{object-fit:cover;width:100%;height:100%}.p-category-label{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600}.p-project-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.p-project-card{background:var(--p-bg-card);border:1px solid var(--p-border);color:var(--p-text);border-radius:12px;text-decoration:none;transition:all .25s;overflow:hidden}.p-project-card:hover{border-color:var(--p-border-light);transform:translateY(-4px);box-shadow:0 12px 40px #0006}.p-card-image{background:var(--p-bg-raised);width:100%;height:200px;overflow:hidden}.p-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.p-project-card:hover .p-card-image img{transform:scale(1.05)}.p-card-placeholder{background:linear-gradient(135deg, var(--p-bg-raised), var(--p-bg-card));justify-content:center;align-items:center;display:flex}.p-placeholder-text{color:var(--p-border-light);font-family:Cinzel,serif;font-size:3rem;font-weight:700}.p-card-body{padding:1.3rem 1.5rem 1.5rem}.p-card-category{text-transform:uppercase;letter-spacing:.1em;color:var(--p-accent);font-size:.7rem;font-weight:600}.p-card-title{color:var(--p-text);margin:.3rem 0 .4rem;font-family:Cinzel,serif;font-size:1.15rem;font-weight:600}.p-card-tagline{color:var(--p-text-dim);margin-bottom:.8rem;font-size:.9rem;line-height:1.5}.p-card-meta{color:var(--p-text-muted);justify-content:space-between;font-size:.75rem;display:flex}.p-page-title{color:var(--p-text);margin-bottom:.5rem;font-family:Cinzel,serif;font-size:2rem;font-weight:700}.p-page-desc{color:var(--p-text-dim);max-width:600px;margin-bottom:2rem;font-size:1.05rem}.p-filter-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.p-filter-btn{border:1px solid var(--p-border);color:var(--p-text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:.4rem 1rem;font-size:.8rem;font-weight:500;transition:all .15s}.p-filter-btn:hover{border-color:var(--p-text-dim);color:var(--p-text)}.p-filter-btn.active{border-color:var(--p-accent);color:var(--p-accent);background:#3b82f614}.p-back-link{color:var(--p-text-dim);margin-bottom:1.5rem;font-size:.85rem;text-decoration:none;transition:color .15s;display:inline-block}.p-back-link:hover{color:var(--p-accent)}.p-detail-hero{border:1px solid var(--p-border);border-radius:12px;width:100%;max-height:400px;margin-bottom:2rem;overflow:hidden}.p-detail-hero img{object-fit:cover;width:100%;height:100%}.p-detail-header{margin-bottom:2.5rem}.p-detail-title{color:var(--p-text);margin:.3rem 0 .5rem;font-family:Cinzel,serif;font-size:2.2rem;font-weight:700}.p-detail-tagline{color:var(--p-text-dim);margin-bottom:1.5rem;font-size:1.15rem}.p-detail-meta{flex-wrap:wrap;gap:2.5rem;display:flex}.p-detail-meta-item{flex-direction:column;gap:.2rem;display:flex}.p-meta-label{text-transform:uppercase;letter-spacing:.1em;color:var(--p-text-muted);font-size:.7rem;font-weight:600}.p-detail-body{max-width:720px;margin-bottom:2.5rem}.p-detail-body p{color:var(--p-text-dim);margin-bottom:1.2rem;font-size:1.05rem;line-height:1.8}.p-detail-highlights{margin-bottom:2.5rem}.p-detail-section-title{color:var(--p-text);margin-bottom:1rem;font-family:Cinzel,serif;font-size:1.2rem;font-weight:600}.p-detail-highlights ul{padding:0;list-style:none}.p-detail-highlights li{color:var(--p-text-dim);margin-bottom:.6rem;padding-left:1.5rem;position:relative}.p-detail-highlights li:before{content:"";background:var(--p-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.6rem;left:0}.p-detail-gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:2.5rem;display:grid}.p-gallery-item{border:1px solid var(--p-border);border-radius:8px;overflow:hidden}.p-gallery-item img{width:100%;height:auto;display:block}.p-detail-tags{flex-wrap:wrap;gap:.5rem;display:flex}.p-tag{color:var(--p-accent);background:#3b82f614;border:1px solid #3b82f626;border-radius:999px;padding:.3rem .8rem;font-size:.72rem;font-weight:500}.p-about-grid{grid-template-columns:1fr 320px;align-items:start;gap:3rem;display:grid}.p-about-lead{color:var(--p-text);margin-bottom:1.5rem;font-size:1.25rem;font-weight:500;line-height:1.7}.p-about-main p{color:var(--p-text-dim);margin-bottom:1.2rem;font-size:1.02rem;line-height:1.8}.p-about-section{color:var(--p-text);margin:2.5rem 0 1.2rem;font-family:Cinzel,serif;font-size:1.2rem;font-weight:600}.p-skill-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.p-skill-card{background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:10px;padding:1.3rem 1.5rem}.p-skill-card h3{color:var(--p-text);margin-bottom:.5rem;font-family:Cinzel,serif;font-size:.95rem;font-weight:600}.p-skill-card p{color:var(--p-text-dim);margin:0;font-size:.88rem;line-height:1.6}.p-about-sidebar{flex-direction:column;gap:1.2rem;display:flex}.p-about-card{background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:10px;padding:1.3rem 1.5rem}.p-about-card h3{color:var(--p-text);margin-bottom:.6rem;font-family:Cinzel,serif;font-size:.95rem;font-weight:600}.p-about-card p{color:var(--p-text-dim);margin:0;font-size:.88rem;line-height:1.6}.p-about-list{margin:0;padding:0;list-style:none}.p-about-list li{color:var(--p-text-dim);border-bottom:1px solid var(--p-border);padding:.3rem 0;font-size:.88rem}.p-about-list li:last-child{border-bottom:none}.p-footer{border-top:1px solid var(--p-border);margin-top:4rem;padding:2.5rem 0}.p-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;padding:0 2rem;display:flex}.p-footer p{color:var(--p-text-muted);margin:0;font-size:.85rem}.p-footer-links{gap:1.5rem;display:flex}.p-footer-links a{color:var(--p-text-dim);font-size:.85rem;text-decoration:none;transition:color .15s}.p-footer-links a:hover{color:var(--p-text)}@media (width<=768px){.p-nav-inner{padding:0 1rem}.p-nav-links{gap:0}.p-nav-link{padding:.4rem .5rem;font-size:.78rem}.p-nav-wiki{display:none}.p-hero-title{font-size:2.5rem}.p-hero-actions{flex-direction:column;align-items:center}.p-project-grid,.p-about-grid{grid-template-columns:1fr}.p-categories{gap:1.5rem}.p-section-inner{padding:0 1rem}.p-footer-inner{text-align:center;flex-direction:column}}.wiki-root{--bg-deep:#1a1510;--bg-panel:#221d15;--bg-card:#2a2318;--bg-card-hover:#332b1f;--bg-input:#1e1912;--border:#3d3425;--border-light:#4a3f30;--border-accent:#6b5a3a;--text:#d4c8a8;--text-dim:#9e9478;--text-bright:#f0e8cc;--accent:#c9a84c;--accent-dim:#8a7434;--accent-glow:#e0c060;--red:#a04040;--green:#508050;--blue:#506880;--purple:#6a5080;--sidebar-w:250px;background:var(--bg-deep);color:var(--text);min-height:100vh;font-family:Crimson Text,Georgia,serif;font-size:16px;line-height:1.6}.wiki-shell{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-panel);border-right:1px solid var(--border);z-index:100;flex-direction:column;transition:transform .3s;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);padding:1.2rem 1rem .8rem}.sidebar-title{color:var(--accent);letter-spacing:.04em;font-family:Cinzel,serif;font-size:1.1rem;font-weight:700}.sidebar-subtitle{color:var(--text-dim);margin-top:.1rem;font-size:.72rem;font-style:italic}.sidebar-nav{flex:1;padding:.4rem 0;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.nav-section{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);padding:.7rem 1rem .2rem;font-family:Fira Sans,sans-serif;font-size:.6rem;font-weight:600}.nav-item{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;border-left:2px solid #0000;align-items:center;gap:.45rem;padding:.3rem 1rem;font-family:Fira Sans,sans-serif;font-size:.78rem;transition:all .15s;display:flex}.nav-item:hover{color:var(--text);background:var(--bg-card)}.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:#c9a84c14;font-weight:500}.nav-item.sub{padding-left:2rem;font-size:.74rem}.nav-icon{text-align:center;flex-shrink:0;width:1.2rem;font-size:.95rem}.mobile-toggle{z-index:200;background:var(--bg-panel);border:1px solid var(--border);color:var(--accent);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:none;position:fixed;top:.6rem;left:.6rem}.mobile-overlay{z-index:99;background:#0009;display:none;position:fixed;inset:0}@media (width<=720px){.mobile-toggle{display:flex}.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-overlay.open{display:block}.main-content{padding:3.2rem 1rem 1rem!important}}.main-content{flex:1;padding:1.8rem 2.5rem 4rem;overflow-y:auto}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.page-title{color:var(--accent);letter-spacing:.02em;margin-bottom:.2rem;font-family:Cinzel,serif;font-size:1.7rem;font-weight:600}.page-rule{background:linear-gradient(90deg,var(--accent-dim),transparent 70%);height:1px;margin-bottom:1.3rem}.page-desc{color:var(--text-dim);margin-bottom:1.3rem;font-size:.92rem;font-style:italic}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;margin-bottom:.9rem;padding:1.1rem 1.3rem;transition:border-color .2s}.card:hover{border-color:var(--border-light)}.card.clickable{cursor:pointer}.card-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.card-icon{font-size:1.1rem}.card-title{color:var(--text-bright);font-family:Cinzel,serif;font-size:1rem;font-weight:600}.card-subtitle{color:var(--text-dim);margin-left:auto;font-family:Fira Sans,sans-serif;font-size:.72rem}.card-meta{grid-template-columns:auto 1fr;gap:.1rem .9rem;margin-bottom:.4rem;font-size:.85rem;display:grid}.meta-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-family:Fira Sans,sans-serif;font-size:.74rem;font-weight:500}.meta-value{color:var(--text)}.card-notes{color:var(--text-dim);font-size:.88rem;font-style:italic}.card.pc-accent{border-left:3px solid var(--blue)}.card.npc-accent{border-left:3px solid var(--accent-dim)}.card.npc-accent.myconid{border-left-color:var(--green)}.card.location-accent{border-left:3px solid var(--purple)}table.wiki-table{border-collapse:collapse;width:100%;margin-top:.4rem;font-size:.85rem}.wiki-table thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);text-align:left;border-bottom:1px solid var(--border-accent);padding:.35rem .5rem;font-family:Fira Sans,sans-serif;font-size:.68rem;font-weight:600}.wiki-table tbody td{border-bottom:1px solid var(--border);vertical-align:top;padding:.3rem .5rem}.wiki-table tbody tr:last-child td{border-bottom:none}.wiki-table tbody tr:hover{background:var(--bg-card-hover)}.empty-row td{color:var(--text-dim);text-align:center;padding:.7rem .5rem;font-style:italic}.inline-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:3px;width:100%;padding:.2rem .35rem;font-family:Crimson Text,serif;font-size:16px;transition:border-color .2s}.inline-input:focus{border-color:var(--accent-dim);outline:none}.inline-input::placeholder{color:var(--text-dim);font-style:italic}textarea.inline-input{resize:vertical;min-height:300px;line-height:1.5}.btn{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);background:var(--bg-card);color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;padding:.35rem .8rem;font-family:Fira Sans,sans-serif;font-size:.72rem;font-weight:500;transition:all .15s}.btn:hover{background:var(--bg-card-hover);color:var(--text);border-color:var(--border-light)}.btn-accent{border-color:var(--accent-dim);color:var(--accent)}.btn-accent:hover{border-color:var(--accent);color:var(--accent-glow);background:#c9a84c1a}.btn-danger{color:var(--red);border-color:#a040404d}.btn-danger:hover{border-color:var(--red);background:#a040401a}.btn-row{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.wiki-back-btn{letter-spacing:.04em;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;margin-bottom:.6rem;padding:.3rem .6rem;font-family:Fira Sans,sans-serif;font-size:.75rem;font-weight:500;transition:color .15s;display:inline-flex}.wiki-back-btn:hover{color:var(--accent-glow)}.overview-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin-bottom:1.3rem;display:grid}.overview-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.8rem 1rem}.stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.15rem;font-family:Fira Sans,sans-serif;font-size:.64rem;font-weight:600}.stat-value{color:var(--text-bright);font-family:Cinzel,serif;font-size:.95rem}.facility-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem;display:grid}.facility-chip{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:5px;align-items:center;gap:.4rem;padding:.5rem .8rem;font-family:Fira Sans,sans-serif;font-size:.78rem;transition:all .15s;display:flex}.facility-chip:hover{border-color:var(--accent-dim);background:var(--bg-card-hover);color:var(--accent)}.status-construction{color:var(--accent);font-style:italic}.status-construction:before{content:"🔨 "}.section-header{color:var(--text-bright);border-bottom:1px solid var(--border);margin:1.5rem 0 .6rem;padding-bottom:.3rem;font-family:Cinzel,serif;font-size:1.05rem;font-weight:600}.tab-bar{border-bottom:1px solid var(--border);gap:0;margin-bottom:1.2rem;display:flex}.tab{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-family:Fira Sans,sans-serif;font-size:.76rem;font-weight:500;transition:all .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.2s ease-out fadeIn}.field-static{color:var(--text);white-space:pre-wrap;word-break:break-word;min-height:1.4em;padding:.2rem .35rem;font-family:Crimson Text,serif;font-size:1rem;display:block}.inline-input[readonly]{cursor:default;background:0 0;border-color:#0000}.inline-input[readonly]:focus{border-color:#0000}.sidebar-footer{border-top:1px solid var(--border);padding:.6rem 1rem}.readonly-note{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);text-align:center;margin-bottom:.4rem;font-family:Fira Sans,sans-serif;font-size:.62rem;font-weight:600}.facility-rules{color:var(--text-dim);border-top:1px solid var(--border);margin-top:.5rem;padding-top:.5rem;font-family:Fira Sans,sans-serif;font-size:.74rem;line-height:1.5}.bmap{--thread:#8fa79a;--moon:#b9c6d8;--moon-line:#8ea2bd;--moon-bg:#202733;--moon-hover:#28303e;--moon-text:#e6edf6;--grove:#6f9a6f;--grove-text:#b4c4a8;--grove-bg:#1f2a1e;--grove-hover:#273425;margin-bottom:1.3rem;container-type:inline-size}.bmap-tabs{gap:.5rem;margin-bottom:.6rem;display:none}.bmap-tab{background:var(--bg-panel);border:1px solid var(--border);min-height:44px;color:var(--text-dim);cursor:pointer;border-radius:5px;flex:1 1 0;font-family:Fira Sans,sans-serif;font-size:.82rem;font-weight:500}.bmap-tab[aria-pressed=true]{background:var(--bg-card-hover);border-color:var(--accent);color:var(--text-bright)}.bmap-stage{--s:34px;gap:var(--s);display:flex;overflow-x:auto}@supports (width:1cqw){.bmap-stage{--s:min(calc((100cqw - 1px) / 28),38px);overflow-x:visible}}.bmap-floor{width:calc(var(--cols)*var(--s));flex:none}.bmap-floor-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .6rem;min-height:32px;margin-bottom:.3rem;display:flex}.bmap-floor-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-family:Fira Sans,sans-serif;font-size:.69rem;font-weight:600}.bmap-walls-btn{border:1px dashed var(--accent-dim);min-height:32px;color:var(--accent-glow);cursor:pointer;background:0 0;border-radius:4px;padding:.15rem .6rem;font-family:Fira Sans,sans-serif;font-size:.72rem;font-weight:500}.bmap-walls-btn:hover{background:var(--bg-card)}.bmap-walls-btn[aria-pressed=true]{border-color:var(--accent-glow);color:var(--text-bright);border-style:solid}.bmap-plan{height:calc(var(--rows)*var(--s));background-color:var(--bg-deep);background-image:linear-gradient(var(--bg-card) 1px,transparent 1px),linear-gradient(90deg,var(--bg-card) 1px,transparent 1px);background-size:var(--s) var(--s);position:relative}.bmap-at{box-sizing:border-box;left:calc(var(--x)*var(--s));top:calc(var(--y)*var(--s));width:calc(var(--w)*var(--s));height:calc(var(--h)*var(--s));position:absolute}.bmap-slab{background:var(--bg-input);border:1px solid var(--border)}.bmap-ring{border:3px dashed var(--accent);pointer-events:none;position:absolute;inset:2px}.bmap-ring--built{border-style:solid}.bmap-ring--selected{border-color:var(--accent-glow);box-shadow:0 0 0 1px var(--accent-glow)}.bmap-threads{fill:none;width:100%;height:100%;stroke:var(--thread);stroke-width:1.5px;stroke-linecap:round;opacity:.55;pointer-events:none;position:absolute;inset:0}.bmap-threads path{vector-effect:non-scaling-stroke}.bmap-vestibule{background:var(--bg-card);border-top:2px dashed var(--accent);border-bottom:2px dashed var(--accent);pointer-events:none;justify-content:center;align-items:center;display:flex}.bmap-vestibule span{writing-mode:vertical-rl;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-glow);font-family:Fira Sans,sans-serif;font-size:.58rem;font-weight:600;transform:rotate(180deg)}.bmap-portal{background:var(--accent-glow);pointer-events:none}.bmap-stairs{border:1px solid var(--border-light);background-image:repeating-linear-gradient(to bottom,var(--border) 0 1px,transparent 1px calc(var(--s)*.35));color:var(--text-dim);align-items:flex-end;padding:.25rem;font-family:Fira Sans,sans-serif;font-size:.69rem;display:flex}.bmap-stairs span{background:var(--bg-input);padding:0 .15rem}.bmap-room{padding:calc(var(--s)*.26);background:var(--bg-card);border:2px solid var(--border-accent);text-align:left;font:inherit;cursor:pointer;border-radius:0;flex-direction:column;align-items:flex-start;gap:.2rem;transition:background-color .12s,border-color .12s;display:flex}.bmap-room:hover{background:var(--bg-card-hover)}.bmap-room[aria-pressed=true]{border-color:var(--accent-glow);box-shadow:0 0 0 1px var(--accent-glow);z-index:1}.bmap-room:focus-visible,.bmap-tab:focus-visible,.bmap-walls-btn:focus-visible,.bmap-open:focus-visible{outline:2px solid var(--accent-glow);outline-offset:2px}.bmap-room--open{background:var(--moon-bg);border-color:var(--moon-line)}.bmap-room--open:hover{background:var(--moon-hover)}.bmap-room--garden{background:var(--grove-bg);border-color:var(--green)}.bmap-room--garden:hover{background:var(--grove-hover)}.bmap-room--building{border-style:dashed;border-color:var(--accent)}.bmap-room--small{justify-content:flex-end;padding:.25rem}.bmap-glyph{fill:none;width:100%;max-height:55%;stroke:var(--border-accent);stroke-width:1.5px;flex:none}.bmap-room--open .bmap-glyph{stroke:var(--moon)}.bmap-room--garden .bmap-glyph{stroke:var(--grove)}.bmap-glyph-dots{stroke-width:5px;stroke-linecap:round;stroke-dasharray:1 12}.bmap-glyph-orbit{stroke-dasharray:3 6}.bmap-glyph-moon{fill:var(--moon);fill-opacity:.22}.bmap-label{min-width:0;margin-top:auto;display:block}.bmap-name{color:var(--text-bright);font-family:Cinzel,serif;font-size:.875rem;font-weight:600;line-height:1.15;display:block}.bmap-sub{color:var(--text-dim);font-family:Fira Sans,sans-serif;font-size:.69rem;line-height:1.25;display:block}.bmap-room--open .bmap-name{color:var(--moon-text)}.bmap-room--open .bmap-sub{color:var(--moon)}.bmap-room--garden .bmap-sub{color:var(--grove-text)}.bmap-room--small .bmap-name{font-family:Fira Sans,sans-serif;font-size:.69rem}.bmap-room--small .bmap-sub{font-size:.62rem}.bmap-door{background:var(--bg-input);position:absolute}.bmap-door--n{width:30%;height:2px;top:-2px;left:35%}.bmap-door--s{width:30%;height:2px;bottom:-2px;left:35%}.bmap-door--e{width:2px;height:30%;top:35%;right:-2px}.bmap-door--w{width:2px;height:30%;top:35%;left:-2px}.bmap-door--portal{background:var(--accent-glow)}.bmap-legend{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;margin-top:.6rem;font-family:Fira Sans,sans-serif;font-size:.75rem;display:flex}.bmap-key{align-items:center;gap:.4rem;display:inline-flex}.bmap-swatch{box-sizing:border-box;background:var(--bg-card);border:2px solid var(--border-accent);width:18px;height:12px;display:inline-block}.bmap-swatch--open{background:var(--moon-bg);border-color:var(--moon-line)}.bmap-swatch--building{border:2px dashed var(--accent);background:0 0}.bmap-swatch--thread{border:0;border-top:2px solid var(--thread);background:0 0;height:0}.bmap-swatch--door{background:var(--accent-glow);border:0;width:6px}.bmap-details{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:1rem 2rem;margin-top:.8rem;padding:1rem 1.2rem;display:flex}.bmap-details-main,.bmap-details-meta{flex:320px;min-width:0}.bmap-details-title{color:var(--accent);margin:.1rem 0 .4rem;font-family:Cinzel,serif;font-size:1.3rem;font-weight:600}.bmap-details-notes{white-space:pre-wrap;color:var(--text);margin:0 0 .5rem;font-size:1rem;line-height:1.45}.bmap-open{min-height:32px;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-family:Fira Sans,sans-serif;font-size:.82rem;font-weight:500}.bmap-open:hover{color:var(--accent-glow)}.bmap-details-meta{grid-template-columns:6rem minmax(0,1fr);align-content:start;gap:.35rem .75rem;margin:0;font-family:Fira Sans,sans-serif;font-size:.82rem;line-height:1.45;display:grid}.bmap-details-meta dt{color:var(--text-dim)}.bmap-details-meta dd{color:var(--text);margin:0}@container (width<=759px){.bmap-tabs{display:flex}.bmap-stage{--s:min(calc((100cqw - 1px) / 21),34px)}.bmap-floor{margin-inline:auto;display:none}.bmap-floor--upper{--s:min(calc((100cqw - 1px) / 8),30px)}.bmap-stage[data-floor=ground] .bmap-floor--ground,.bmap-stage[data-floor=upper] .bmap-floor--upper{display:block}.bmap-floor-label{display:none}.bmap-walls-btn{flex:100%;min-height:44px}.bmap-open{min-height:44px}.bmap-floor--upper .bmap-floor-head{display:none}}@container (width<=559px){.bmap-floor--ground .bmap-glyph,.bmap-floor--ground .bmap-sub{display:none}.bmap-floor--ground .bmap-room{justify-content:flex-end;padding:3px}.bmap-floor--ground .bmap-name{font-family:Fira Sans,sans-serif;font-size:.66rem;font-weight:500}.bmap-vestibule span{display:none}}@container (width<=320px){.bmap-floor--ground .bmap-room{padding:2px}.bmap-floor--ground .bmap-name{font-size:.56rem}}@media (prefers-reduced-motion:reduce){.bmap-room{transition:none}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0a}a{color:inherit}img{max-width:100%;display:block}
