:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#e9ede9;background:#10191c;font-size:16px}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #e8b873;outline-offset:2px}.topbar{min-height:86px;padding:16px clamp(20px,3.2vw,54px);border-bottom:1px solid #344044;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;gap:14px;align-items:center}.brandmark{height:46px;width:46px;display:grid;place-items:center;border:1px solid #bfa878;border-radius:50%;color:#d8bc88;font-size:30px}.brand strong{font-size:1.15rem;letter-spacing:.01em}.brand span{display:block;color:#a7b0ad;font-size:.85rem;margin-top:2px}.concept-tag{border:1px solid #53605e;border-radius:100px;padding:9px 13px;color:#c3cbc7;font-size:.79rem;white-space:nowrap}.workspace{max-width:1780px;margin:auto;padding:28px clamp(16px,3.2vw,54px) 44px;display:grid;grid-template-columns:minmax(330px, .82fr) minmax(470px,1.18fr);gap:24px}.plan-panel,.detail-panel{background:#192326;border:1px solid #354145;border-radius:16px;overflow:hidden}.plan-panel{padding:26px}.detail-panel{padding:26px}.eyebrow,.metric-label{font-size:.72rem;letter-spacing:.15em;font-weight:750;color:#c2a77b}.section-head,.detail-top,.title-row,.gallery-head,.room-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head h1{font-size:2rem;line-height:1.1;margin:8px 0 0;letter-spacing:-.04em}.count{color:#aeb8b5;font-size:.9rem}.floor-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:24px 0 20px;padding:4px;border-radius:10px;background:#10191c}.floor-tabs button{border:0;background:transparent;color:#a7b0ad;border-radius:8px;padding:12px;font-weight:650}.floor-tabs button.active{background:#3c4b4d;color:#fff;box-shadow:0 1px 9px #0005}.plan-frame{height:min(57vh,645px);min-height:350px;background:#e8e8e3;border-radius:8px;overflow:hidden;display:grid;place-items:center}.plan-frame svg{height:100%;width:100%;display:block}.plan-image{pointer-events:none}.plan-room{fill:#dda969;fill-opacity:.08;stroke:transparent;stroke-width:7;stroke-linejoin:round;cursor:pointer;transition:fill-opacity .2s,stroke .2s}.plan-room:hover,.plan-room:focus{fill-opacity:.26;stroke:#996c2b}.plan-room.selected{fill:#d18a2a;fill-opacity:.38;stroke:#a56517}.plan-hit-label{pointer-events:none;fill:#172026;font-weight:800;font-size:27px;paint-order:stroke;stroke:#fff;stroke-width:7;stroke-linejoin:round}.plan-note,.asset-note{font-size:.83rem;line-height:1.5;color:#aab4b0}.plan-note{margin:14px 0 24px}.room-list-head{border-top:1px solid #384448;padding-top:16px}.room-list-head h2,.gallery-head h3{font-size:1.05rem;margin:0}.room-list-head span,.gallery-head span{color:#a3aeaa;font-size:.82rem}.room-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.room-item{min-height:60px;text-align:left;border:1px solid #3d4b4f;color:#dbe2df;background:#202c2f;border-radius:9px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}.room-item:hover,.room-item.active{border-color:#d9aa71;background:#34413f}.room-item strong{display:block;font-size:.91rem}.room-item small{display:block;color:#a8b2af;font-size:.78rem;margin-top:2px}.room-item b{font-size:.85rem;white-space:nowrap;color:#e2ca9e}.nav-arrows{display:flex;gap:7px}.nav-arrows button,.viewer-room-nav button{border:1px solid #506064;background:#202c2f;color:#e7eae7;border-radius:7px;padding:9px 13px}.title-row{margin:10px 0 19px;align-items:end}.title-row h2{font-size:2.8rem;letter-spacing:-.045em;line-height:1;margin:0}.title-row p{margin:9px 0 0;color:#a6b3af}.title-row>strong{color:#e4c590;font-size:1.35rem;white-space:nowrap}.hero{height:clamp(290px,39vw,620px);max-height:61vh;position:relative;border-radius:10px;overflow:hidden;background:#303536}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero-shade{position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#071114ac);pointer-events:none}.image-caption{position:absolute;left:20px;bottom:26px;color:#fff;font-size:.82rem;letter-spacing:.04em;text-shadow:0 2px 4px #000}.view-button{position:absolute;right:18px;bottom:17px;border:0;border-radius:7px;background:#edd0a2;color:#142022;font-weight:780;padding:15px 19px;box-shadow:0 4px 20px #0008}.view-button:hover{background:#fff0cf}.view-button span{margin-left:15px}.details-grid{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #3c484b;padding:22px 0}.details-grid>div{border-right:1px solid #3b494b;padding-left:20px}.details-grid>div:first-child{padding-left:0}.details-grid>div:last-child{border:0}.metric-label{display:block;color:#9caeaa;margin-bottom:6px}.details-grid strong{font-size:1rem}.gallery-head{margin:20px 0 12px}.gallery{display:flex;gap:10px;overflow-x:auto;padding-bottom:5px}.gallery button{padding:0;position:relative;border:2px solid #607073;background:#293436;border-radius:8px;color:white;flex:0 0 145px;height:88px;overflow:hidden;text-align:left}.gallery button.active{border-color:#e3b77d}.gallery img{width:100%;height:100%;object-fit:cover;opacity:.8}.gallery span{position:absolute;left:8px;bottom:6px;font-size:.75rem;text-shadow:0 1px 5px #000;background:#172026a6;padding:2px 4px;border-radius:2px}.asset-note{margin:18px 0 0}.tour-dialog{padding:0;border:1px solid #657274;color:#fff;background:#11191b;border-radius:12px;width:min(1400px,96vw);height:min(92dvh,980px);max-width:none;max-height:none}.tour-dialog::backdrop{background:#000c}.viewer-shell{display:flex;flex-direction:column;height:100%}.viewer-header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.viewer-header h2{margin:3px 0 0;font-size:1.35rem}.viewer-header button{width:42px;height:42px;border:1px solid #637275;background:#263235;color:#fff;border-radius:8px}.viewer-stage{position:relative;flex:1;min-height:0;touch-action:none;background:#070b0c}.viewer-stage canvas{width:100%;height:100%;display:block;touch-action:none}.viewer-hint{position:absolute;left:15px;bottom:15px;background:#111c1bcf;padding:7px 10px;border-radius:5px;font-size:.76rem;pointer-events:none}.viewer-controls{position:absolute;right:14px;bottom:15px;display:flex;gap:5px}.viewer-controls button,.nodes button{border:1px solid #b7bfba8c;background:#172522d8;color:#fff;border-radius:5px;min-width:39px;min-height:39px;padding:8px}.nodes button.active{background:#e6c897;color:#102022;border-color:#e6c897}.viewer-footer{padding:11px 16px;display:flex;gap:10px;align-items:center;justify-content:space-between}.nodes,.viewer-room-nav{display:flex;gap:7px;flex-wrap:wrap}.viewer-room-nav button{font-size:.83rem}.viewer-stage.loading::after{content:'Loading view…';position:absolute;inset:0;display:grid;place-items:center;background:#0c1719a8}.viewer-error{color:#fff;background:#142023;padding:12px;border-radius:6px}
@media(max-width:970px){.workspace{grid-template-columns:1fr;max-width:760px;padding:18px 14px 32px}.plan-panel,.detail-panel{padding:18px}.plan-frame{height:min(62vh,620px)}.hero{height:clamp(265px,54vw,480px)}.concept-tag{display:none}}
@media(max-width:540px){.topbar{min-height:68px;padding:10px 15px}.brandmark{width:38px;height:38px;font-size:24px}.brand strong{font-size:.99rem}.brand span{font-size:.76rem}.section-head h1{font-size:1.55rem}.count{font-size:.78rem}.floor-tabs{margin:18px 0 12px}.plan-frame{height:55vh;min-height:330px}.room-list{grid-template-columns:1fr 1fr;gap:6px}.room-item{padding:8px;min-height:60px}.room-item b{font-size:.75rem}.room-item small{font-size:.72rem}.detail-panel{padding:14px}.title-row h2{font-size:2rem}.hero{height:320px;max-height:none}.view-button{padding:12px;right:11px;bottom:11px}.image-caption{left:12px;bottom:66px}.details-grid>div{padding-left:9px}.details-grid strong{font-size:.85rem}.tour-dialog{width:100vw;height:100dvh;border:0;border-radius:0}.viewer-header{padding:12px}.viewer-footer{align-items:stretch;flex-direction:column}.viewer-hint{font-size:.7rem;bottom:65px}.viewer-room-nav{justify-content:space-between}}
#planMount{width:100%;height:100%;min-width:0;min-height:0}
.footprint-summary{display:flex;align-items:center;gap:16px;margin:15px 0 5px;padding:12px;border:1px solid #3c484b;border-radius:9px;background:#202b2d}.footprint-drawing{flex:0 0 90px;width:90px;height:90px;display:grid;place-items:center;border-radius:6px;background:#303739}.footprint-drawing svg{width:100%;height:100%}.footprint-summary strong{display:block;font-size:.91rem;color:#e9e4d9}.footprint-summary p{margin:6px 0 0;color:#9eaaa7;font-size:.78rem;line-height:1.4}.footprint-grid{stroke:#718081;stroke-width:.45;opacity:.33}.footprint-polygon{fill:#bda779;stroke:#f3d7a0;stroke-width:1.5;stroke-linejoin:round}.circulation-mark{font-size:2rem;color:#e5c38a}.compare-toggle{border:0;padding:7px 0 0;background:transparent;color:#eccd98;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}.compare-panel{padding:15px;margin:0 0 14px;border:1px solid #3c484b;border-radius:9px;background:#202b2d}.compare-panel[hidden]{display:none}.compare-panel label{font-size:.8rem;color:#c4cdca;margin-right:8px}.compare-panel select{max-width:100%;padding:8px 10px;border:1px solid #64716e;border-radius:6px;background:#121d20;color:#f2f2ef;font:inherit;font-size:.83rem}.compare-figures{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:13px 0}.compare-figures figure{margin:0;min-width:0;text-align:center}.compare-drawing{height:148px;display:grid;place-items:center;border:1px solid #465356;border-radius:6px;background:#303739}.compare-drawing svg{width:min(100%,148px);height:100%}.compare-figures figcaption{font-size:.8rem;color:#dfd5bf;margin-top:7px}.compare-panel>p{margin:0;font-size:.8rem;line-height:1.5;color:#bec9c3}
.plan-return{display:none;border:1px solid #59676a;background:#202c2f;color:#e7eae7;border-radius:7px;padding:8px 10px;font-size:.83rem}
@media(max-width:540px){.plan-frame{height:auto;min-height:0;aspect-ratio:1020/1990}.plan-return{display:inline-flex;align-items:center}.detail-top .eyebrow{font-size:.68rem}}

.plan-note a{color:#ebc690;text-underline-offset:3px}.corridor-reference{margin:2px 0 22px;border:1px solid #4c5b5d;border-radius:9px;padding:12px;background:#202b2d}.corridor-reference summary{cursor:pointer;color:#e8ca9b;font-size:.9rem;font-weight:650}.corridor-reference img{display:block;width:100%;height:auto;border-radius:5px;margin-top:12px}.corridor-reference p{margin:10px 0 4px;font-size:.83rem;color:#d6dfd9;line-height:1.4}.corridor-reference small{color:#aeb9b3;font-size:.76rem}.conflict-note{padding:10px 13px;margin:12px 0;background:#423429;border:1px solid #aa814c;color:#f2d6aa;border-radius:7px;font-size:.83rem;line-height:1.5}.conflict-note[hidden]{display:none}
.opening-note{padding:10px 13px;margin:12px 0;background:#243136;border:1px solid #53676a;color:#e0e9e4;border-radius:7px;font-size:.88rem;line-height:1.5}.opening-note[hidden]{display:none}
@media(max-width:540px){.details-grid{grid-template-columns:repeat(2,1fr);row-gap:16px}.details-grid>div:nth-child(3){padding-left:0}.details-grid>div:nth-child(2){border-right:0}}
.title-row .room-rent{margin:12px 0 0;color:#f0d19d;font-size:1.55rem;font-weight:750;line-height:1.15;letter-spacing:-.015em}
.title-row .rental-area-note{margin:6px 0 0;color:#bac7c1;font-size:.85rem;line-height:1.4}
.room-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.room-actions[hidden]{display:none}.enquiry-button,.share-button{display:inline-flex;align-items:center;justify-content:center;min-height:43px;border-radius:7px;padding:10px 14px;font-weight:730;font-size:.88rem;text-decoration:none}.enquiry-button{background:#e8c58f;color:#142022;border:1px solid #e8c58f}.enquiry-button:hover{background:#f5ddb7}.share-button{background:#202c2f;color:#e5eae6;border:1px solid #536367}.share-button:hover{border-color:#d8b47d}.copy-confirmation{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));z-index:20;transform:translateX(-50%);padding:11px 16px;border-radius:7px;background:#e8c58f;color:#142022;font-weight:750;box-shadow:0 7px 30px #0008}.copy-confirmation[hidden]{display:none}
.title-row .room-rent[hidden],.title-row .rental-area-note[hidden]{display:none}
@media(max-width:540px){.title-row{align-items:flex-start}.title-row>strong{font-size:1rem;white-space:normal;text-align:right;max-width:36%}}
@media(max-width:540px){.room-actions{width:calc(100vw - 56px)}.enquiry-button{flex:1 1 170px}.share-button{flex:0 1 auto}.title-row .room-rent{font-size:1.7rem}}
.plan-rent-tag{pointer-events:none}.plan-rent-bg{fill:#fffbeb;fill-opacity:.98;stroke:#b48b55;stroke-width:1.6}.plan-rent-text{fill:#1c2929;font-size:31px;font-weight:800;letter-spacing:-.03em}
.plan-room.corridor{fill:#e5a757;fill-opacity:.32;stroke:#9d661d;stroke-width:5}.plan-room.corridor:hover,.plan-room.corridor:focus{fill-opacity:.55;stroke:#714414}.plan-room.corridor.selected{fill:#e8af62;fill-opacity:.58;stroke:#714414}.plan-corridor-label{pointer-events:none;fill:#233033;font-size:21px;font-weight:850;letter-spacing:.04em;paint-order:stroke;stroke:#fffaf0;stroke-width:4;stroke-linejoin:round}.view-button[hidden],.room-rent[hidden]{display:none}

/* Octagon Studios brand treatment */
:root{font-family:Raleway,Arial,sans-serif;color:#fff;background:#111;font-size:16px}
body{background:#111;color:#fff}
.topbar{min-height:78px;background:#1a1a1a;border-bottom:3px solid #f26522;padding:12px clamp(20px,5vw,72px)}
.brand{color:#fff;text-decoration:none}
.brandmark{width:38px;height:48px;border:3px solid #fff;border-radius:50%;font-size:0;color:transparent;transform:skew(-3deg);box-shadow:none}
.brand strong{font-size:.82rem;letter-spacing:.18em;font-weight:800}
.brand span{color:#aaa;font-size:.78rem;letter-spacing:.02em}
.concept-tag{border:1px solid #f26522;border-radius:3px;color:#fff;background:#f26522;font-weight:800;letter-spacing:.08em;padding:9px 13px}
.workspace{max-width:1580px;gap:18px}
.plan-panel,.detail-panel{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px}
.eyebrow,.metric-label{color:#f26522}
.section-head h1,.title-row h2{font-weight:800}
.floor-tabs{background:#111;border-radius:3px}
.floor-tabs button{border-radius:2px}
.floor-tabs button.active{background:#f26522;color:#fff}
.plan-room:hover,.plan-room:focus{fill:#f26522;stroke:#d95015}
.plan-room.selected{fill:#f26522;stroke:#f26522}
.plan-rent-bg{fill:#111!important;stroke:#f26522}
.plan-rent-text{fill:#fff!important}
.room-item{border-color:#333;background:#202020;border-radius:3px}
.room-item:hover,.room-item.active{border-color:#f26522;background:#292929}
.room-item b,.title-row .room-rent{color:#f26522}
.nav-arrows button,.viewer-room-nav button{border-color:#444;background:#222;border-radius:3px}
.hero{border-radius:3px;touch-action:pan-y}
.hero img{touch-action:pan-y;user-select:none}
.view-button{border-radius:3px;background:#f26522;color:#fff;text-transform:uppercase;letter-spacing:.04em;z-index:3}
.view-button:hover{background:#ff7436}
.enquiry-button{background:#25d366;color:#07140c;border-color:#25d366;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}
.enquiry-button:hover{background:#38e278}
.share-button{border-radius:3px;background:#222;border-color:#444;text-transform:uppercase;letter-spacing:.03em}
.details-grid{border-color:#333}
.gallery button{border-radius:3px;border-color:#444;background:#222}
.gallery button.active{border-color:#f26522}
.footprint-summary,.compare-panel,.corridor-reference,.opening-note{background:#202020;border-color:#333;border-radius:3px}
.compare-toggle,.plan-note a{color:#f26522}
.tour-dialog{border-color:#f26522;background:#111;border-radius:3px}
.viewer-header,.viewer-footer{background:#1a1a1a}
.nodes button.active{background:#f26522;border-color:#f26522;color:#fff}
.copy-confirmation{background:#f26522;color:#fff;border-radius:3px}
.image-swipe-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;padding:0 12px;z-index:2}
.image-swipe-nav[hidden]{display:none}
.image-swipe-nav button{pointer-events:auto;width:42px;height:50px;border:1px solid #fff5;background:#111b;color:#fff;font-size:2rem;line-height:1;border-radius:2px;display:grid;place-items:center;text-shadow:0 1px 3px #000}
.image-swipe-nav button:hover{background:#f26522}
.image-dots{position:absolute;left:50%;bottom:17px;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.image-dots[hidden]{display:none}
.image-dots button{width:9px;height:9px;padding:0;border:1px solid #fff;background:#111a;border-radius:50%}
.image-dots button.active{background:#f26522;border-color:#f26522}
.image-caption{bottom:28px}
.plan-frame{background:#171717;border:1px solid #383838;border-radius:3px}
.plan-room{fill:#f26522;fill-opacity:0;stroke:transparent}
.plan-room:hover,.plan-room:focus{fill:#f26522;fill-opacity:.24;stroke:#f26522}
.plan-room.selected{fill:#f26522;fill-opacity:.22;stroke:#f26522}
.plan-room.corridor{fill:#f26522;fill-opacity:.14;stroke:#b85320}
.plan-room.corridor:hover,.plan-room.corridor:focus{fill-opacity:.32;stroke:#f26522}
.plan-room.corridor.selected{fill:#f26522;fill-opacity:.35;stroke:#f26522}
.plan-corridor-label{fill:#f8f8f8;stroke:#242424}
.plan-rent-bg{fill:#171717!important;stroke:#f26522;stroke-width:2.6}
.plan-rent-text{fill:#fff!important}
.plan-note{color:#b7b7b7}
.building-model{margin:14px 0 22px;padding:12px;border:1px solid #363636;background:#202020;border-radius:3px}
.building-model summary{cursor:pointer;color:#f26522;font-size:1rem;font-weight:700;min-height:32px}
.building-model img{display:block;width:100%;max-height:420px;object-fit:contain;margin:14px 0;background:#eef1ee;border-radius:2px}
.building-model p{color:#e0e0e0;line-height:1.5;margin:0 0 13px}
.building-model small{display:block;color:#b7b7b7;line-height:1.5;margin-top:13px}
.model-button,.model-room-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 13px;border:1px solid #f26522;color:#fff;background:#362117;text-decoration:none;border-radius:3px;font-size:.9rem;font-weight:700}
.model-actions{display:flex;flex-wrap:wrap;gap:8px}
.model-button:hover,.model-room-button:hover{background:#f26522;color:#fff}
.model-room-button{border-color:#555;background:#222;font-size:.8rem}
@media(max-width:540px){.topbar{border-bottom-width:2px}.brandmark{width:31px;height:39px}.brand strong{font-size:.72rem}.brand span{font-size:.7rem}.image-swipe-nav{padding:0 7px}.image-swipe-nav button{width:37px;height:45px}.image-dots{bottom:18px}.image-caption{bottom:70px}.concept-tag{display:none}}
