:root{
  --cream:#FBF7EF; --paper:#F6EFE2; --stone:#E6D9C2; --stone2:#D8C6A6; --sand:#C9B48E;
  --navy:#1B2A4A; --navy2:#13203B; --ink:#28303F; --muted:#6B6457;
  --brass:#B08D57; --gold:#C9A86A; --gold2:#E3CB93;
  --radius:16px; --shadow:0 10px 30px rgba(27,42,74,.12),0 2px 6px rgba(27,42,74,.08);
  --he:"Frank Ruhl Libre","Heebo",serif; --en:"Cormorant Garamond","Frank Ruhl Libre",Georgia,serif; --ui:"Heebo",system-ui,sans-serif;
}
@font-face{font-family:"Frank Ruhl Libre";src:url(assets/fonts/frank.woff2) format("woff2");font-weight:300 900;font-display:swap}
@font-face{font-family:"Heebo";src:url(assets/fonts/heebo.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(assets/fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-display:swap}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:16px;line-height:1.5;
  background-image:radial-gradient(1200px 600px at 80% -10%,rgba(201,168,106,.16),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(27,42,74,.07),transparent 60%);
  min-height:100vh;overflow-x:hidden}
[hidden]{display:none!important}
.skip{position:absolute;inset-inline-start:-999px;top:8px;background:var(--navy);color:var(--cream);padding:8px 12px;border-radius:8px;z-index:50}
.skip:focus{inset-inline-start:8px}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* masthead */
.masthead{position:relative;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);color:var(--cream);padding:22px 20px 26px;text-align:center;overflow:hidden}
.masthead::after{content:"";position:absolute;inset-inline:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.ornament{position:absolute;inset:0;background:url(assets/ornament.svg) repeat;background-size:44px 44px;opacity:.35;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 70%,transparent);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 70%,transparent)}
.mast-inner{position:relative;max-width:900px;margin:0 auto}
.eyebrow{margin:0 0 4px;font-family:var(--he);color:var(--gold2);letter-spacing:.06em;font-size:.95rem}
html[lang=en] .eyebrow{font-family:var(--en);text-transform:uppercase;letter-spacing:.22em;font-size:.82rem}
.title{margin:0;font-family:var(--en);font-weight:500;font-size:clamp(1.55rem,5.4vw,2.6rem);line-height:1.15;letter-spacing:.01em;direction:ltr}
.title .dot{color:var(--gold)}
.title .floor{font-style:italic;color:var(--gold2)}
.subtitle{margin:8px 0 0;font-family:var(--he);font-size:1rem;color:#D9D2C3}
html[lang=en] .subtitle{font-family:var(--en);font-size:1.1rem}
.lang{position:absolute;top:14px;inset-inline-end:14px;border:1px solid rgba(227,203,147,.55);background:rgba(255,255,255,.06);color:var(--gold2);
  border-radius:999px;padding:6px 14px;font-family:var(--en);font-weight:600;letter-spacing:.08em;min-width:52px;min-height:36px}
.lang:hover{background:rgba(255,255,255,.12)}

/* toolbar */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;padding:16px 14px 6px;max-width:1400px;margin:0 auto}
.seg{display:inline-flex;background:var(--cream);border:1px solid var(--stone2);border-radius:999px;padding:4px;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 2px 8px rgba(27,42,74,.06)}
.seg button{border:0;background:transparent;border-radius:999px;padding:9px 16px;font-family:var(--he);font-size:1rem;color:var(--navy);min-height:42px;white-space:nowrap}
html[lang=en] .seg button{font-family:var(--en);font-size:1.08rem;font-weight:600}
.seg button[aria-pressed=true]{background:var(--navy);color:var(--cream);box-shadow:0 2px 6px rgba(27,42,74,.25)}
.seg button[aria-pressed=true] span[aria-hidden]{color:var(--gold2)}
.seg.small button{padding:9px 13px}

/* layout */
.layout{display:grid;grid-template-columns:1fr;gap:14px;max-width:1400px;margin:0 auto;padding:8px 14px 18px}
@media (min-width:980px){.layout{grid-template-columns:minmax(0,1fr) 360px;padding:10px 24px 24px;gap:20px}}
.stage{position:relative;background:var(--cream);border:1px solid var(--stone2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;
  height:min(72vh,820px);min-height:420px;touch-action:none}
@media (max-width:979px){.stage{height:calc(100svh - 250px);min-height:400px;max-height:640px}}
.stage::before{content:"";position:absolute;inset:8px;border:1px solid rgba(176,141,87,.35);border-radius:calc(var(--radius) - 6px);pointer-events:none;z-index:3}
.plan2d,.view3d{position:absolute;inset:0}
.plan2d svg{width:100%;height:100%;display:block;cursor:grab}
.plan2d svg.dragging{cursor:grabbing}
.view3d canvas{display:block;width:100%!important;height:100%!important}
.room-hit{fill:rgba(201,168,106,0);stroke:none;transition:fill .18s;cursor:pointer}
.room-hit:hover,.room-hit.hover{fill:rgba(201,168,106,.20)}
.room-hit.sel{fill:rgba(201,168,106,.30);stroke:var(--brass);stroke-width:.7}
.room-hit.outdoor:hover,.room-hit.outdoor.sel{fill:rgba(120,140,110,.16)}
.rlabel{pointer-events:none;text-anchor:middle;fill:var(--navy)}
.rlabel .n{font-family:var(--he);font-weight:600}
html[lang=en] .rlabel .n{font-family:var(--en);font-weight:700}
.rlabel .c{font-family:var(--ui);fill:var(--brass);font-weight:500}
.annot{font-family:var(--ui);fill:#8C8272;pointer-events:none}
.annot.off{display:none}

.labels3d{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.l3{position:absolute;transform:translate(-50%,-50%);background:rgba(251,247,239,.92);border:1px solid rgba(176,141,87,.6);color:var(--navy);
  border-radius:999px;padding:2px 10px;font-family:var(--he);font-size:.82rem;font-weight:600;white-space:nowrap;pointer-events:auto;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.12)}
html[lang=en] .l3{font-family:var(--en);font-size:.9rem}
.l3.sel{background:var(--navy);color:var(--cream);border-color:var(--gold)}
.l3.small{font-size:.7rem;padding:1px 7px;opacity:.9}

.stage-tools{position:absolute;inset-inline-end:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:4}
.stage-tools button{width:42px;height:42px;border-radius:12px;border:1px solid var(--stone2);background:rgba(251,247,239,.95);color:var(--navy);font-size:1.25rem;line-height:1;box-shadow:0 2px 6px rgba(27,42,74,.12)}
.stage-tools button.wide{width:auto;min-width:42px;padding:0 10px;font-size:.85rem;font-family:var(--he)}
html[lang=en] .stage-tools button.wide{font-family:var(--en);font-weight:700;font-size:.95rem}
.stage-tools button[aria-pressed=true]{background:var(--navy);color:var(--cream);border-color:var(--navy)}
.hud{position:absolute;top:18px;inset-inline-start:18px;z-index:4;background:rgba(19,32,59,.86);color:var(--cream);border:1px solid rgba(227,203,147,.5);
  border-radius:999px;padding:6px 14px;font-family:var(--he);font-size:.95rem;backdrop-filter:blur(4px)}
.hud strong{color:var(--gold2);font-weight:600}
html[lang=en] .hud{font-family:var(--en);font-size:1.02rem}
.hint{position:absolute;bottom:16px;inset-inline-start:16px;inset-inline-end:76px;z-index:4;pointer-events:none;color:var(--muted);font-size:.8rem;text-align:start}
.hint span{display:inline-block;background:rgba(251,247,239,.92);padding:3px 10px;border-radius:12px;border:1px solid var(--stone);line-height:1.4}
@media (max-width:560px){.hint{font-size:.72rem;bottom:14px}}
.view-eve .hint span{background:rgba(19,32,59,.8);color:#E9E1CF;border-color:rgba(227,203,147,.4)}
.compass{position:absolute;top:18px;inset-inline-end:18px;z-index:4;width:34px;height:34px;border-radius:50%;border:1px solid var(--brass);display:grid;place-items:center;
  font-family:var(--en);font-weight:700;color:var(--brass);background:rgba(251,247,239,.85);font-size:.95rem}
.compass::before{content:"";position:absolute;top:-6px;width:0;height:0;border:5px solid transparent;border-bottom:7px solid var(--brass);border-top:0}
.joy{position:absolute;bottom:22px;left:22px;width:120px;height:120px;border-radius:50%;z-index:5;
  background:radial-gradient(circle,rgba(251,247,239,.30),rgba(19,32,59,.35));border:1.5px solid rgba(227,203,147,.75);touch-action:none}
.knob{position:absolute;left:50%;top:50%;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;background:var(--gold);box-shadow:0 3px 10px rgba(0,0,0,.3);border:2px solid var(--cream)}

/* panel */
.panel{display:flex;flex-direction:column;gap:14px}
.panel-empty,.room-card{background:var(--cream);border:1px solid var(--stone2);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);position:relative}
.room-card::before{content:"";position:absolute;inset-inline:20px;top:0;height:3px;background:linear-gradient(90deg,var(--brass),var(--gold2),var(--brass));border-radius:0 0 3px 3px}
.panel h2{margin:0;font-family:var(--he);font-weight:700;color:var(--navy);font-size:1.6rem;line-height:1.2}
html[lang=en] .panel h2{font-family:var(--en);font-size:1.85rem;font-weight:600}
.panel-empty p{margin:6px 0 0;color:var(--muted)}
.rc-plan{margin:0 0 4px;font-family:var(--en);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);direction:ltr;text-align:start}
.rc-sub{margin:2px 0 10px;color:var(--muted);font-family:var(--he)}
html[lang=en] .rc-sub{font-family:var(--en);font-size:1.08rem;font-style:italic}
.rc-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}
.rc-facts div{background:var(--paper);border:1px solid var(--stone);border-radius:12px;padding:9px 12px}
.rc-facts dt{font-size:.78rem;color:var(--muted)}
.rc-facts dd{margin:2px 0 0;font-family:var(--en);font-weight:600;font-size:1.22rem;color:var(--navy);direction:ltr;text-align:start;line-height:1.25}
.rc-facts dd small{font-family:var(--ui);font-size:.75rem;font-weight:400;color:var(--muted);display:block}
.rc-notes{margin:0 0 12px;padding:0;list-style:none}
.rc-notes li{position:relative;padding-inline-start:18px;margin:5px 0;color:var(--ink);font-size:.95rem}
.rc-notes li::before{content:"";position:absolute;inset-inline-start:2px;top:.62em;width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--brass)}
.walk-here{width:100%;border:0;background:var(--navy);color:var(--cream);border-radius:12px;padding:11px 14px;font-family:var(--he);font-size:1rem;min-height:46px}
html[lang=en] .walk-here{font-family:var(--en);font-size:1.1rem;font-weight:600}
.walk-here:hover{background:#24375f}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chips button{border:1px solid var(--stone2);background:var(--cream);border-radius:999px;padding:6px 12px;font-family:var(--he);font-size:.9rem;color:var(--navy);min-height:36px}
html[lang=en] .chips button{font-family:var(--en);font-size:1rem;font-weight:600}
.chips button.sel{background:var(--navy);color:var(--cream);border-color:var(--navy)}
.chips button.unl{border-style:dashed;color:var(--muted)}
@media (max-width:979px){
  .chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .chips::-webkit-scrollbar{display:none}
  .chips button{flex:0 0 auto}
  .panel{order:0}
}
.foot{position:relative;text-align:center;padding:22px 16px 30px;color:var(--muted);overflow:hidden}
.foot .ornament.thin{position:static;height:14px;background-size:14px 14px;opacity:.55;-webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);max-width:420px;margin:0 auto 12px}
.credit{margin:0;font-family:var(--en);font-size:1.05rem;color:var(--navy);letter-spacing:.03em;direction:ltr}
.fine{margin:4px 0 0;font-size:.82rem}
.noscript{text-align:center;padding:20px}
.loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-family:var(--he)}

.layout>*{min-width:0}
.title .addr,.title .floor{white-space:nowrap}
@media (max-width:560px){.title .dot{display:none}.title .floor{display:block;font-size:.82em}.masthead{padding:18px 64px 22px}.lang{top:12px;inset-inline-end:10px}}

@media (max-width:979px){
  .stage.is-2d{height:auto;aspect-ratio:1/1.2;min-height:0;max-height:none}
  .stage.is-3d,.stage.is-walk{height:calc(100svh - 230px);min-height:420px;max-height:680px}
}
@media (max-width:560px){
  .masthead{padding:14px 60px 16px}
  .eyebrow{font-size:.82rem;margin-bottom:2px}
  .subtitle{font-size:.88rem;margin-top:4px}
  .toolbar{gap:6px;padding:12px 10px 4px;flex-wrap:nowrap}
  .seg button{padding:8px 11px;font-size:.92rem;min-height:40px}
  html[lang=en] .seg button{font-size:.98rem;padding:8px 10px}
  #lightSeg button{padding:8px 11px}
  #lightSeg button span[data-i18n]{display:none}
  .layout{padding:8px 10px 14px;gap:12px}
  .stage-tools{flex-direction:row;bottom:12px;inset-inline-end:12px;gap:6px}
  .stage-tools button{width:38px;height:38px;font-size:1.1rem}
  .hint{bottom:58px;inset-inline-end:12px;inset-inline-start:12px}
  .compass{top:14px;inset-inline-end:14px;width:30px;height:30px}
  .hud{top:14px;inset-inline-start:14px;font-size:.88rem}
  .panel-empty,.room-card{padding:14px 16px}
  .panel h2{font-size:1.4rem}
}

html[dir=rtl] .rc-facts dd{text-align:right;direction:rtl}
.rc-facts dd .x{color:var(--brass)}
.rc-facts dd small{margin-top:2px}
.rc-facts dd small{margin-top:3px;line-height:1.35}

.rc-facts dd,.rlabel,.credit,.title,.l3,.chips button{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.title{font-variant-numeric:lining-nums}

@media (min-width:980px){.panel .chips{order:2}.panel-empty,.room-card{order:1}}

.stage.is-walk .hint{top:62px;bottom:auto;inset-inline-start:18px;inset-inline-end:18px}
