:root{--ink:#23201c;--mid:#6d665c;--paper:#f7f5f0;--amber:#f0b429;--line:#e4ddce}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);
     font:15px/1.55 Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}
header{padding:clamp(14px,2.4vw,26px) clamp(14px,3vw,30px) 2px}
h1{margin:0;font-size:clamp(17px,2.4vw,22px)}
header p{margin:6px 0 0;color:var(--mid);font-size:13.5px;max-width:80ch}
.wrap{display:flex;gap:clamp(14px,2.4vw,24px);align-items:flex-start;
      padding:12px clamp(14px,3vw,30px) 40px;flex-wrap:wrap}

/* plan keeps its aspect and never outgrows the viewport height */
.planbox{position:relative;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.13);
         flex:1 1 460px;max-width:min(100%,calc(86vh * 0.7261));
         user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#plan{display:block;width:100%;height:auto;pointer-events:none}
#markers{position:absolute;inset:0;width:100%;height:100%}
.st{cursor:pointer}
.st:hover .dot,.st:focus .dot{stroke-width:3.4}
.st:focus{outline:none}

aside{flex:1 1 250px;max-width:340px;font-size:13px}
aside h2{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
         color:var(--mid);margin:0 0 9px}
.room{margin-bottom:13px}
.room b{display:block;font-size:11.5px;letter-spacing:.06em;color:var(--mid);
        text-transform:uppercase;margin-bottom:3px}
.room button{display:block;width:100%;text-align:left;background:none;border:0;
  border-left:3px solid var(--line);padding:5px 0 5px 9px;cursor:pointer;
  font:13px Helvetica,Arial,sans-serif;color:var(--ink)}
.room button:hover{border-left-color:var(--amber);background:#efe9dc}
.room button span{color:var(--mid);font-size:11.5px}
.credit{border-top:1px solid var(--line);margin-top:18px;padding-top:12px;
        color:var(--mid);font-size:12px}
.credit a{color:#3b6ea5}
.credit b{color:var(--ink)}

/* pop-in viewer */
#shade{position:fixed;inset:0;background:rgba(16,14,12,.93);display:none;
       align-items:center;justify-content:center;z-index:40;
       padding:clamp(10px,2.5vw,26px);user-select:none;-webkit-user-select:none}
#shade.on{display:flex}
.card{width:min(1080px,100%);max-height:100%;display:flex;flex-direction:column}
#vc{width:100%;height:auto;max-height:66vh;object-fit:contain;background:#000;
    -webkit-touch-callout:none}
.cap{color:#efe9dd;padding:10px 2px 0;display:flex;gap:14px;
     align-items:flex-start;flex-wrap:wrap;overflow-y:auto}
.cap h3{margin:0 0 4px;font-size:15.5px;color:#fff;font-weight:600}
.cap p{margin:0;font-size:12.5px;color:#c9c2b4;max-width:76ch}
.cap .who{flex:1 1 240px;min-width:0}
.cap .tag{flex:0 0 auto;background:var(--amber);color:#2a2008;font-size:11.5px;
  font-weight:700;padding:3px 9px;border-radius:11px;white-space:nowrap}
.nav{margin-left:auto;display:flex;gap:8px;flex:0 0 auto}
.nav button,#x{background:#3a352d;color:#efe9dd;border:0;border-radius:3px;
  padding:8px 13px;cursor:pointer;font-size:13px}
.nav button:hover,#x:hover{background:#514a3f}
#x{position:absolute;top:10px;right:12px;padding:6px 11px;z-index:2}
#spin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
      color:#c9c2b4;font-size:13px;display:none}
#spin.on{display:block}

@media(max-width:860px){
 .wrap{flex-direction:column}
 .planbox{flex:none;width:100%;max-width:100%}
 aside{flex:none;width:100%;max-width:none}
}
@media(max-width:700px){
 .st{transform:scale(1.7)}
 #vc{max-height:52vh}
 .nav{margin-left:0;width:100%}
 .nav button{flex:1 1 auto}
}
@media(hover:none){.st{transform:scale(1.35)}}
