/* Plan scenes: a larger physical township model and furnished vector floor plans. */
.stage[data-show="plan"] #gl{opacity:1}
html:not(.master-ready) .stage[data-show="plan"] #gl{opacity:0}
html:not(.master-ready) .master-tools{visibility:hidden}
.nogl .stage[data-show="plan"]{background:var(--bg)}
.stage[data-show="plan"]::after{background:linear-gradient(90deg,rgba(var(--bgr),.93) 0%,rgba(var(--bgr),.82) 16%,rgba(var(--bgr),0) 37%)}
#mplan{inset:0;width:100%;height:100%;transform:none;perspective:none;overflow:hidden}
.master-fallback{position:absolute;left:31%;top:23%;width:67%;height:65%;object-fit:contain;filter:drop-shadow(0 24px 30px #0003)}
.master-ready .master-fallback{display:none}
.mp-pin{position:absolute;left:0;top:0;max-width:180px;padding:9px 12px;background:rgba(var(--bgr),.93);border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);border-radius:11px;color:var(--ink);box-shadow:0 5px 16px #00000012;white-space:nowrap;z-index:1;font:600 11px/1.45 var(--f)}
.mp-pin b,.mp-pin small{display:block}.mp-pin b{font-size:13px;letter-spacing:-.02em}.mp-pin small{font-size:10px;color:var(--mute)}
.mp-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.mp-leaders line{stroke:color-mix(in srgb,var(--ink) 40%,transparent);stroke-width:1}.mp-leaders line.active{stroke:var(--acc);stroke-width:1.5}
.mp-pin.now{background:var(--acc);color:var(--on-acc);border-color:var(--acc);box-shadow:0 7px 24px color-mix(in srgb,var(--acc) 26%,transparent)}
.mp-pin.now small{color:inherit}.mp-pin.now::after{background:var(--acc);width:2px}
.mp-pin[hidden]{display:none}
#masterplan{position:relative;padding-left:clamp(24px,4vw,90px);padding-right:24px}
#masterplan .tx{width:clamp(270px,24vw,370px);padding-top:20px}
#masterplan h2{font-size:clamp(2rem,3.05vw,3.35rem);line-height:1.07}
#masterplan .sub{font-size:clamp(.88rem,1.1vw,1.05rem)}
#masterplan .note{font-size:.77rem;line-height:1.5}
#masterplan .facts{gap:20px;margin-top:25px}#masterplan .facts b{font-size:1.45rem}
.master-tools{position:absolute;top:90px;right:4vw;display:flex;gap:5px;border:1px solid var(--line);background:rgba(var(--bgr),.94);padding:5px;border-radius:999px;box-shadow:0 6px 25px #0000000c}
.master-tools button{border:0;padding:9px 16px;background:transparent;border-radius:999px;font:600 .82rem var(--f);color:var(--mute);cursor:pointer}
.master-tools button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.master-legend{position:absolute;bottom:105px;right:4vw;display:flex;align-items:center;gap:20px;font:500 .7rem var(--f);color:var(--mute)}
.master-legend span{display:flex;align-items:center;gap:7px}.master-legend i{display:block;width:9px;height:9px;border-radius:50%;background:var(--acc)}
.master-legend .green{background:#819d67}.master-legend .grey{background:#9da49a}
.master-legend a{color:var(--mute);text-underline-offset:3px}
.plans{--fp-paper:#f8f7f2;--fp-ink:#32434c;--fp-wall:#32434c;--fp-line:#87908e;--fp-floor:#eeede5;--fp-wood:#e8dcc6;--fp-bath:#d8e6e6;--fp-porch:#e0e3dc}
.plans .wrap{max-width:1080px}.plans .lead{max-width:750px}
.plans .plan-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.plan-facts span{font:600 .78rem var(--f);padding:8px 13px;border:1px solid var(--line);border-radius:999px}
.plans .pair{grid-template-columns:1fr 1fr;gap:24px;align-items:start;margin-top:30px}
.plans figure.floor-card{display:block;padding:0;overflow:hidden;background:var(--fp-paper);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:20px;box-shadow:0 16px 50px #00000006}
.plans .floor-card figcaption{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:space-between;gap:15px;margin:0;padding:18px 22px 14px;color:var(--fp-ink);border-bottom:1px solid color-mix(in srgb,var(--fp-ink) 12%,transparent)}
.floor-card figcaption b{display:block;font-size:1.1rem;letter-spacing:-.02em}
.floor-card figcaption small{display:block;font-size:.72rem;font-weight:400;color:var(--fp-line);margin-top:5px}
.floor-card .floor-number{font-size:1.6rem;font-weight:400;letter-spacing:-.08em;opacity:.35}
.floor-drawing{width:100%;max-width:330px;height:auto;display:block;margin:0 auto}   /* a 18 x 65 ft strip: full card width made each card taller than the screen */
.floor-drawing path,.floor-drawing rect,.floor-drawing circle,.floor-drawing ellipse,.floor-drawing text{pointer-events:none}
.floor-drawing .room-hit rect{pointer-events:all}
.floor-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 25px;background:color-mix(in srgb,var(--fp-ink) 3%,var(--fp-paper));border-top:1px solid color-mix(in srgb,var(--fp-ink) 12%,transparent)}
.floor-actions button,.floor-actions a{font:600 .78rem var(--f);color:var(--fp-ink);border:0;background:transparent;cursor:pointer;text-underline-offset:4px;padding:5px 0}
.room-selection{margin:0;padding:0 25px 17px;background:color-mix(in srgb,var(--fp-ink) 3%,var(--fp-paper));font-size:.72rem;color:var(--fp-line);min-height:2em}
.plan-footnote{margin-top:20px;font-size:.75rem;line-height:1.5;color:var(--mute);max-width:860px}
.plan-dialog{position:fixed;margin:auto;max-width:min(920px,96vw);width:920px;max-height:94dvh;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--fp-paper,#f8f7f2);color:var(--ink);overscroll-behavior:contain}
.plan-dialog::backdrop{background:#09121ddd;backdrop-filter:blur(8px)}
.plan-dialog header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;background:var(--bg);padding:17px 22px;border-bottom:1px solid var(--line)}
.plan-dialog header button{border:1px solid var(--line);background:var(--bg);color:var(--ink);font:600 .8rem var(--f);border-radius:999px;padding:8px 14px;cursor:pointer}
.plan-dialog .dialog-art{max-width:780px;margin:auto}.plan-dialog .floor-drawing{min-width:460px;max-width:none}.plan-dialog .dialog-scroll{overflow:auto;max-height:calc(94dvh - 70px)}
html:not([data-theme="white"]):not([data-theme="day"]) .plans,
html:not([data-theme="white"]):not([data-theme="day"]) .plan-dialog{--fp-paper:#1d272d;--fp-ink:#e4eae9;--fp-wall:#bdcbd0;--fp-line:#8d9c9f;--fp-floor:#293941;--fp-wood:#4d493c;--fp-bath:#35515a;--fp-porch:#364342;--fp-grid:#50605f;--fp-grain:#aaa186;--fp-oak:#a7977e;--fp-rug:#687872;--fp-glass:#71919b}
@media(max-width:820px){
  .stage[data-show="plan"]::after{background:linear-gradient(0deg,rgba(var(--bgr),1) 0%,rgba(var(--bgr),.96) 33%,rgba(var(--bgr),0) 64%)}
  #masterplan{padding-left:20px;padding-right:20px}#masterplan .tx{width:100%;padding-top:0}
  #masterplan h2{font-size:clamp(1.7rem,7.4vw,2.35rem)}#masterplan .sub{font-size:.87rem;line-height:1.48;margin-top:10px}
  #masterplan .facts{margin-top:16px;gap:20px}#masterplan .facts b{font-size:1.26rem}#masterplan .facts span{font-size:.76rem}
  #masterplan .note{font-size:.66rem;line-height:1.4;margin-top:13px}
  .master-tools{top:76px;right:16px;left:16px;justify-content:center;width:max-content;margin:auto;padding:4px}.master-tools button{font-size:.72rem;padding:7px 13px}
  .master-legend{display:none}.mp-pin{padding:6px 8px;border-radius:8px}.mp-pin b{font-size:11px}.mp-pin small{font-size:8.5px}.mp-pin:not(.mobile-pin){display:none}
  .master-fallback{left:1%;top:18%;width:98%;height:36%}
  .plans .pair{grid-template-columns:1fr;gap:24px}.floor-card figcaption{padding:20px 22px}.floor-card figcaption b{font-size:1rem}
  .plans .wrap{padding:0 16px}.floor-actions{padding:16px 21px}.room-selection{padding-left:21px}.plan-facts span{font-size:.69rem}
  .plan-dialog .floor-drawing{min-width:540px}.plan-dialog .dialog-art{width:540px}
}
