/* Plan / layered coastal studio. All image layers share the same 1672 × 941 camera. */
.plan-scene-hero{background:#181818;min-height:calc(100svh - var(--ph-header));overflow:hidden;isolation:isolate}.plan-scene{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none}.plan-scene-stage{position:absolute;left:50%;top:50%;width:max(100%,calc((100svh - var(--ph-header))*1.777));height:100%;min-height:calc(100vw / 1.777);aspect-ratio:1672/941;transform:translate(-50%,-50%) scale(1.12);transform-origin:center;will-change:transform}.plan-scene-stage>img,.plan-live-layers,.plan-live-layers>img,.plan-distance-layer,.plan-distance-layer>img,.plan-sky-mask,.plan-sky-mask>img,.plan-outdoor-window,.plan-water-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;max-width:none;margin:0}.plan-scene-poster{z-index:8;opacity:1;transition:opacity .55s ease}.plan-live-layers{opacity:0}.plan-scene-ready .plan-live-layers{opacity:1}.plan-scene-ready .plan-scene-poster{opacity:0}.plan-room-layer{z-index:0}.plan-outdoor-window{clip-path:polygon(35.25% 10.8%,97.45% .1%,97.45% 54.1%,35.25% 50.6%);overflow:hidden;z-index:1}.plan-distance-layer{will-change:transform;transform-origin:70% 35%}.plan-sky-mask{clip-path:polygon(38% 12%,96% 2%,96% 23%,80% 25%,65% 24%,55% 26%,45% 27%,38% 25%);mask-image:linear-gradient(90deg,transparent 35%,#000 43%,#000 91%,transparent 98%);-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 43%,#000 91%,transparent 98%);opacity:.75}.plan-cloud-layer{will-change:transform}.plan-water-layer{z-index:2;pointer-events:none}.plan-fog{position:absolute;width:73%;height:13%;left:29%;top:25%;pointer-events:none;z-index:3;mask-image:radial-gradient(ellipse at center,#000 0%,#0008 36%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at center,#000 0%,#0008 36%,transparent 70%);will-change:transform,opacity;opacity:.28}.plan-fog-near{width:83%;height:12%;top:32%;left:32%;opacity:.12}.plan-fog-texture{display:block;width:100%;height:100%;overflow:visible}.plan-daylight{position:absolute;inset:0;z-index:2;clip-path:polygon(30% 59%,100% 52%,100% 100%,0 100%);background:linear-gradient(120deg,transparent 30%,#fff 50%,transparent 72%);opacity:.025;mix-blend-mode:soft-light;pointer-events:none}.plan-foreground-layer{z-index:4;will-change:transform;transform-origin:80% 88%}.plan-scene-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.40) 35%,rgba(0,0,0,.09) 62%,rgba(0,0,0,.015)),linear-gradient(0deg,rgba(0,0,0,.43),transparent 28%,transparent 88%,rgba(0,0,0,.14))}.plan-scene-hero .ph-shell{min-height:calc(100svh - var(--ph-header));padding-block:25px 24px}.plan-scene-content{flex:1;display:flex;align-items:center;padding-block:40px 45px}.plan-scene-content .ph-copy{max-width:620px;width:49%}.plan-scene-content .ph-identity{margin-bottom:20px}.plan-scene-content .ph-identity .ph-mono{font-size:13px;line-height:1.6}.parent-plan .plan-scene-content .ph-copy h1{font-size:31px;margin-bottom:21px;font-weight:400}.parent-plan .plan-scene-content .ph-copy h2{font-size:clamp(45px,4.1vw,68px);line-height:1.035;font-weight:600;letter-spacing:-.05em}.plan-scene-content .ph-copy>p{font-size:17px;line-height:1.75;max-width:44ch;margin:27px 0 30px;color:#ededed}.plan-scene-content .ph-actions{gap:22px 28px}.plan-scene-content .ph-actions .button{min-height:50px;padding:15px 20px;font-size:13px;gap:28px}.plan-scene-content .ph-text-link{font-size:13px}.plan-scene-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px}.plan-scroll-cue{display:flex;align-items:center;gap:17px;min-height:44px;font:13px/1.5 'Courier New',Courier,monospace;letter-spacing:.025em;color:#fff}.plan-scroll-cue svg{flex-shrink:0}.plan-scene-bottom nav{display:flex;align-items:center;gap:30px;margin-left:auto}.plan-scene-bottom nav>a{font-size:12px;line-height:1.5;color:#f3f3f3;padding:10px 0}.plan-scene-bottom nav>a:hover,.plan-scroll-cue:hover{color:#bbb}.plan-motion-toggle{display:flex;align-items:center;gap:10px;border:1px solid #ffffff70;background:#17171738;color:#fff;min-height:42px;padding:11px 13px;font:11px/1.4 'Courier New',Courier,monospace;cursor:pointer;white-space:nowrap}.plan-motion-toggle[hidden]{display:none}.plan-motion-toggle:hover{background:#ffffff20}.plan-motion-toggle[aria-pressed=true] .plan-pause-icon{clip-path:polygon(12% 0,100% 50%,12% 100%);background:currentColor}.plan-motion-toggle[aria-pressed=true] .plan-pause-icon>path{display:none}.plan-scene-hero :is(a,button):focus-visible{outline:2px solid #fff;outline-offset:5px}.plan-enquiry-dialog:not([open]){display:none}.plan-enquiry-dialog{position:fixed;inset:0;margin:auto;width:min(650px,calc(100% - 40px));max-width:650px;max-height:calc(100dvh - 40px);padding:0;border:1px solid #777;border-radius:0;background:#f5f5f5;color:#171717;box-shadow:none;overflow-y:auto;overscroll-behavior:contain}.plan-enquiry-dialog::backdrop{background:rgba(0,0,0,.73)}.plan-enquiry-top{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:19px 28px;border-bottom:1px solid #c5c5c5;background:#efefef}.plan-enquiry-top>.ph-mono{font-size:12px;color:#666}.plan-enquiry-top>button{display:flex;gap:23px;align-items:center;border:0;background:transparent;font:13px Helvetica,Arial,sans-serif;color:#222;cursor:pointer;min-height:30px;padding:0}.plan-enquiry-top>button>span{font-size:26px;font-weight:300}.plan-enquiry-dialog .ph-form-card{border:0;background:#f5f5f5;padding:29px;max-width:none;margin:0}.plan-enquiry-dialog .ph-form-card>.ph-mono{font-size:12px;color:#666}.parent-plan .plan-enquiry-dialog .ph-form-card h2{font-size:36px;color:#171717;font-weight:500;letter-spacing:-.04em;line-height:1.12;margin-top:12px}.plan-enquiry-dialog .ph-form-card>p{font-size:15px;line-height:1.7;max-width:48ch;margin-block:14px 23px}.plan-enquiry-dialog .ph-form-grid{gap:17px 20px}.plan-enquiry-dialog .ph-form-grid input,.plan-enquiry-dialog .ph-form-grid textarea{font-size:16px;min-height:45px;background:white}.plan-enquiry-dialog .ph-form-grid textarea{min-height:96px}.plan-enquiry-dialog .ph-preview-note{font-size:11px;line-height:1.6}.plan-enquiry-dialog :is(a,button,input,textarea):focus-visible{outline:2px solid #333;outline-offset:3px}body.plan-enquiry-open{overflow:hidden}.plan-scene-hero [hidden],.plan-enquiry-dialog [hidden]{display:none!important}
@media(min-width:1800px){.plan-scene-content .ph-copy{width:46%}.parent-plan .plan-scene-content .ph-copy h2{font-size:72px}.plan-scene-content .ph-copy>p{font-size:18px}.plan-scene-content .ph-actions .button{font-size:14px}}
@media(max-width:1100px){.plan-scene-content .ph-copy{width:58%;max-width:570px}.parent-plan .plan-scene-content .ph-copy h2{font-size:clamp(44px,5.4vw,60px)}.plan-scene-content .ph-copy>p{font-size:16px}.plan-scene-bottom nav{gap:18px}.plan-scene-bottom{gap:20px}.plan-scene-bottom nav>a{font-size:11px}.plan-motion-toggle{font-size:10px;padding:10px}.plan-scene-content .ph-identity .ph-mono{font-size:12px}}
@media(max-width:760px){.plan-scene-stage{left:43%}.plan-scene-hero .ph-shell{padding-block:20px 22px}.plan-scene-content{padding-block:30px;align-items:center}.plan-scene-content .ph-copy{width:100%;max-width:490px}.plan-scene-content .ph-identity{margin-bottom:16px}.plan-scene-content .ph-identity .ph-mono{font-size:11px}.parent-plan .plan-scene-content .ph-copy h1{font-size:26px;margin-bottom:19px}.parent-plan .plan-scene-content .ph-copy h2{font-size:clamp(39px,8.4vw,58px);line-height:1.05}.plan-scene-content .ph-copy>p{font-size:15px;line-height:1.75;max-width:38ch;margin:22px 0 26px}.plan-scene-content .ph-actions{gap:18px 24px}.plan-scene-content .ph-actions .button{font-size:12px;padding:14px 17px;gap:25px;min-height:48px}.plan-scene-content .ph-text-link{font-size:12px;max-width:none}.plan-scene-bottom nav{display:none}.plan-scene-bottom{gap:15px}.plan-scroll-cue{font-size:12px;gap:12px;min-height:44px}.plan-scroll-cue svg{width:21px;height:21px}.plan-motion-toggle{font-size:10px;min-height:40px;gap:8px;padding:10px}.plan-scene-shade{background:linear-gradient(90deg,#000b,#0006 70%,#0003),linear-gradient(0deg,#0005,transparent 40%)}.plan-enquiry-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.plan-enquiry-top{padding:15px 22px}.plan-enquiry-dialog .ph-form-card{padding:23px}.parent-plan .plan-enquiry-dialog .ph-form-card h2{font-size:32px}.plan-enquiry-dialog .ph-form-grid{gap:16px}.plan-enquiry-dialog .ph-form-card>p{font-size:14px}.plan-enquiry-dialog .ph-form-grid label{font-size:13px}}
@media(max-width:480px){.parent-plan .plan-scene-content .ph-copy h2{font-size:39px}.plan-scene-content .ph-copy>p{font-size:15px}.plan-scene-content .ph-actions{gap:17px}.plan-scene-content .ph-text-link{font-size:12px}.plan-scene-content .ph-actions .button{font-size:12px}.plan-scene-bottom{gap:12px}.plan-scroll-cue{font-size:11px;gap:8px}.plan-motion-toggle{font-size:10px;padding:9px}.plan-enquiry-dialog .ph-form-grid{grid-template-columns:1fr}}
@media(max-height:660px){.plan-scene-hero .ph-shell{padding-block:17px}.plan-scene-content{padding-block:24px}.parent-plan .plan-scene-content .ph-copy h2{font-size:clamp(36px,4vw,52px)}.plan-scene-content .ph-copy>p{font-size:14px;line-height:1.6;margin-block:19px 23px}.plan-scene-content .ph-identity{margin-bottom:13px}.parent-plan .plan-scene-content .ph-copy h1{font-size:25px;margin-bottom:16px}.plan-scene-content .ph-actions .button{min-height:44px;padding-block:12px}}
@media(max-height:560px) and (max-width:900px){.plan-scene-content .ph-copy>p{display:none}.plan-scene-content .ph-actions{margin-top:23px}.plan-scene-content{padding-block:18px}.plan-scene-content .ph-identity .ph-mono{font-size:10px}.plan-scroll-cue{font-size:11px}}
@media(prefers-reduced-motion:reduce){.plan-scene-poster{transition:none}.plan-fog,.plan-cloud-layer,.plan-foreground-layer,.plan-distance-layer{will-change:auto}}

/* V43 / perspective motion belongs to the scene, never to the readable HTML. */
.plan-scene{perspective:1200px}
.plan-scene-stage{backface-visibility:hidden}
.plan-foreground-depth,.plan-distance-depth{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.plan-foreground-depth{z-index:4}
.plan-foreground-depth>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;max-width:none}
.plan-distance-depth{transform:scale(1.045);transform-origin:70% 35%}
.plan-scene-hero{touch-action:pan-y;cursor:grab}
.plan-scene-hero :is(a,button,input,textarea){cursor:pointer}
.plan-is-dragging{cursor:grabbing;user-select:none}
.plan-drag-cue{margin-left:auto;font-size:12px;color:#ddd;letter-spacing:.02em}
@media(max-width:760px){.plan-drag-cue{display:none}.plan-scene{perspective:1500px}}
@media(prefers-reduced-motion:reduce){.plan-drag-cue{display:none}.plan-scene-hero{cursor:auto}.plan-foreground-depth,.plan-distance-depth{will-change:auto}}

/* V45 / an intact landscape, with cloud texture confined to the sky. */
.plan-sky-clouds{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:hidden;clip-path:polygon(35.25% 10.8%,97.45% .1%,97.45% 24%,35.25% 24%);mask-image:linear-gradient(180deg,transparent 7%,#000 12%,#000 19%,transparent 24%);-webkit-mask-image:linear-gradient(180deg,transparent 7%,#000 12%,#000 19%,transparent 24%);pointer-events:none}
.plan-sky-clouds .plan-fog-far{top:10%;height:14%}
.plan-sky-clouds .plan-fog-near{top:16%;height:10%}
/* Matte enquiry panel: strong outer frame and clear field boundaries. */
.plan-enquiry-dialog{border:1px solid #666;background:#141414;color:#f5f5f5;color-scheme:dark;box-shadow:none}
.plan-enquiry-dialog::backdrop{background:rgba(0,0,0,.8)}
.plan-enquiry-top{background:#1b1b1b;border-bottom:1px solid #646464;color:#fff}
.plan-enquiry-top>.ph-mono{color:#ccc}
.plan-enquiry-top>button{color:#fff}
.plan-enquiry-dialog .ph-form-card{background:#141414;color:#f5f5f5}
.plan-enquiry-dialog .ph-form-card>.ph-mono{color:#bbb}
.parent-plan .plan-enquiry-dialog .ph-form-card h2{color:#fff}
.plan-enquiry-dialog .ph-form-card>p{color:#ccc}
.plan-enquiry-dialog .ph-form-grid label{color:#eee}
.plan-enquiry-dialog .ph-form-grid label small,.plan-enquiry-dialog .ph-form-submit>small,.plan-enquiry-dialog .ph-form-card .ph-preview-note{color:#bbb}
.plan-enquiry-dialog .ph-form-grid input,.plan-enquiry-dialog .ph-form-grid textarea{background:#202020;color:#fff;border:1px solid #696969;box-shadow:none}
.plan-enquiry-dialog .ph-form-grid input::placeholder,.plan-enquiry-dialog .ph-form-grid textarea::placeholder{color:#bcbcbc;opacity:1}
.plan-enquiry-dialog .ph-form-grid input:focus,.plan-enquiry-dialog .ph-form-grid textarea:focus{border-color:#fff;outline:1px solid #fff;outline-offset:2px}
.plan-enquiry-dialog .ph-form-submit .button{background:#f2f2f2;color:#141414;border:1px solid #f2f2f2}
.plan-enquiry-dialog .ph-form-submit .button:hover{background:#ccc;border-color:#ccc}
.plan-enquiry-dialog .ph-form-card .ph-form-status{background:#242424;color:#fff;border:1px solid #888}
.plan-enquiry-dialog :is(a,button,input,textarea):focus-visible{outline-color:#fff}

/* V46 / fine borders and a quiet geometric surround, confined to the outer rim. */
.plan-enquiry-dialog{padding:10px;background-color:#1a1a1a;background-image:repeating-linear-gradient(45deg,transparent 0 9px,rgba(255,255,255,.085) 9px 10px,transparent 10px 20px),repeating-linear-gradient(-45deg,transparent 0 9px,rgba(255,255,255,.055) 9px 10px,transparent 10px 20px);background-size:28px 28px}
.plan-enquiry-top{border:1px solid #3c3c3c;background:#191919}
.plan-enquiry-dialog .ph-form-card{border:1px solid #3c3c3c;border-top:0;background:#141414}
.plan-enquiry-dialog .ph-form-grid :is(input,textarea):focus,.plan-enquiry-dialog .ph-form-grid :is(input,textarea):focus-visible{border-color:#c2c2c2;outline:none;background:#252525}
@media(max-width:480px){.plan-enquiry-dialog{padding:7px}.plan-enquiry-dialog .ph-form-card{padding-inline:20px}.plan-enquiry-top{padding-inline:20px}}

/* V46 / softly animated environment and restrained perspective; the copy is selectable. */
.plan-environment-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;pointer-events:none;object-fit:fill}
.plan-environment-ready .plan-environment-canvas{opacity:1}
.plan-environment-ready .plan-room-layer{opacity:0}
.plan-scene-hero .ph-copy{cursor:text;user-select:text;-webkit-user-select:text;touch-action:pan-y}
#plan-enquiry-dialog .ph-form-card{border:1px solid #3c3c3c!important;border-top:0!important}

/* V48 / the original photograph is remapped once; no foliage or cloud cutouts. */
.plan-environment-ready .plan-room-layer{opacity:0}
.plan-scene-content .ph-identity .service-icon{color:inherit;flex-shrink:0}

/* V49 / touch devices use the intact still photo; native scrolling never captures the scene. */
@media(max-width:1100px),(hover:none),(pointer:coarse){
 .plan-scene-hero{cursor:auto;touch-action:pan-y pinch-zoom}
 .plan-scene-stage{transform:translate(-50%,-50%) scale(1.12)!important;will-change:auto}
 .plan-scene-hero .plan-scene-poster{opacity:1!important;transition:none;visibility:visible}
 .plan-scene-hero .plan-live-layers{display:none!important}
 .plan-scene-hero .plan-motion-toggle,.plan-scene-hero .plan-drag-cue{display:none!important}
}
