*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,Segoe UI,Arial,sans-serif;background:#c4d3d7;color:#e6ebed}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #efcc88;outline-offset:4px}#app,#viewport{position:absolute;inset:0}#viewport{left:318px}canvas{display:block;width:100%;height:100%;touch-action:none}#panel{position:absolute;left:18px;top:18px;bottom:18px;width:282px;background:#172329f5;backdrop-filter:blur(12px);border:1px solid #ffffff14;border-radius:18px;box-shadow:0 18px 55px #17232938;padding:26px 22px 16px;display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;scrollbar-color:#536064 transparent}.eyebrow{font-size:9px;letter-spacing:2px;color:#d5b67b;font-weight:700}h1{font-family:Georgia,serif;font-weight:400;font-size:31px;line-height:1.1;margin:13px 0 24px;letter-spacing:-.7px}h1 span{display:block;font-family:Segoe UI,Arial,sans-serif;font-size:12px;font-weight:400;color:#a8b4b8;letter-spacing:0;margin-top:12px}.section-label{font-size:9px;color:#9facb1;letter-spacing:1.6px;font-weight:700;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.text-button{border:0;background:none;color:#edc776;font-size:11px;padding:3px 0;letter-spacing:0}#villas{display:grid;gap:5px}.villa{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #ffffff09;border-radius:8px;color:#c8d1d4;background:#ffffff03;text-align:left;font-size:12px}.villa:hover{background:#ffffff0c}.villa strong{font-size:11px;letter-spacing:1px;color:#819398;font-weight:600}.villa[aria-pressed=true]{color:#f5e5c2;background:#b5996130;border-color:#d6b46b50}.villa[aria-pressed=true] strong{color:#edc776}#selection{padding:18px 0 16px;border-bottom:1px solid #ffffff12}.selection-line{display:flex;align-items:center;gap:12px}#selection-number{color:#edc776;font-size:11px;letter-spacing:1px}#selection-name{font-size:12px}#selection p{font-size:11px;line-height:1.6;color:#9dacb2;margin:9px 0 12px}.facts{display:flex;gap:26px}.facts span{font-size:9px;color:#97a8ae}.facts strong{display:block;font-size:17px;color:#e6ebed;margin-bottom:4px;font-weight:500}.layers{padding:17px 0 10px;border-bottom:1px solid #ffffff12}.toggle{display:flex;align-items:center;justify-content:space-between;position:relative;margin:12px 0;color:#c3cdd1;font-size:12px;cursor:pointer}.toggle input{position:absolute;right:0;opacity:0;width:36px;height:22px;cursor:pointer}.toggle i{width:31px;height:17px;border-radius:12px;background:#526064;padding:3px;pointer-events:none}.toggle i:before{content:"";display:block;border-radius:50%;width:11px;height:11px;background:#fff;transition:transform .15s}.toggle input:checked+i{background:#b79b62}.toggle input:checked+i:before{transform:translateX(14px)}.toggle input:focus-visible+i{outline:2px solid #edc776;outline-offset:3px}.sun{padding-top:18px}.sun input{width:100%;accent-color:#edc776;height:15px;margin:0}.sun output{color:#d8be90;letter-spacing:0;font-size:10px}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:#9eadb1;margin-top:5px}.sun p{font-size:9px;color:#7f939b;line-height:1.5;margin:10px 0}footer{margin-top:auto;padding-top:14px;font-size:9px;color:#83959d;display:flex;flex-direction:column;gap:6px}#viewbar{position:absolute;top:24px;left:calc(50% + 150px);transform:translateX(-50%);display:flex;align-items:center;gap:4px;background:#18262aef;padding:5px;border-radius:10px;box-shadow:0 6px 30px #17303725;white-space:nowrap}#viewbar button{background:transparent;border:0;color:#b9c7cb;font-size:12px;padding:10px 15px;border-radius:6px}#viewbar button.active{color:#162126;background:#edc776}#viewbar button:not(.active):hover{background:#ffffff10}#viewbar span{height:20px;width:1px;background:#ffffff20;margin:0 5px}#hint{position:absolute;bottom:26px;left:calc(50% + 150px);transform:translateX(-50%);color:#263e47;background:#eaf0f1d9;padding:10px 18px;border-radius:20px;font-size:11px;white-space:nowrap}#hint b{margin:0 9px;font-weight:normal;color:#82979f}#quality-note{position:absolute;right:22px;bottom:25px;font-size:9px;color:#506970;letter-spacing:.4px}#menu-toggle{display:none;position:absolute;right:15px;top:16px;background:#172329;color:#efcc88;border:1px solid #ffffff30;border-radius:8px;padding:10px 14px;font-size:12px}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.marker{position:absolute;left:0;top:0;pointer-events:auto;width:33px;height:33px;border:1px solid #ffffffbc;border-radius:50%;background:#19352ecc;color:white;box-shadow:0 2px 12px #152c3850;font-size:11px;transition:background .15s;transform:translate(-50%,-50%)}.marker.selected{background:#edc776;color:#19282b;border-color:#f5deaf}.marker:hover{background:#edc776;color:#19282b}#loading{position:absolute;inset:0;background:#15272cf7;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10}#loading[hidden]{display:none}.loader-mark{border:1px solid #bda169;border-radius:15px;width:64px;height:64px;display:grid;place-items:center;font-family:Georgia,serif;font-size:25px;color:#edc776}#loading h2{font-family:Georgia,serif;font-weight:400;font-size:31px;margin:25px 0 10px}#loading p{font-size:12px;color:#b4c4ca;max-width:400px;text-align:center;line-height:1.5}.track{width:240px;height:3px;margin:12px 0;background:#ffffff15;overflow:hidden}.track i{display:block;width:10%;height:100%;background:#edc776;transition:width .2s}#retry{margin:20px;background:#edc776;border:0;border-radius:6px;padding:10px 25px}#retry[hidden]{display:none}@media(max-height:810px) and (min-width:761px){#panel{padding:18px 20px 14px}h1{margin:9px 0 16px;font-size:28px}.villa{padding:8px}#selection{padding:12px 0}.layers{padding:13px 0 5px}.sun{padding-top:13px}.facts{display:none}footer{padding-top:9px}}@media(max-width:760px){#viewport{left:0}#panel{top:62px;left:10px;bottom:62px;width:257px;padding:20px;z-index:3;transition:transform .2s}#app.panel-closed #panel{transform:translateX(-285px)}#menu-toggle{display:block;z-index:4}#viewbar{top:15px;left:14px;transform:none;right:110px;justify-content:center}#viewbar button{font-size:10px;padding:9px 8px}#viewbar #focus,#viewbar span{display:none}#hint{left:50%;bottom:17px;font-size:9px;padding:9px 12px}#hint b{margin:0 4px}#quality-note{display:none}h1{font-size:29px}.villa{padding:9px}.facts{display:none}#selection{padding:12px 0}.marker{width:29px;height:29px;font-size:10px}}
[hidden]{display:none!important}
#room-section{padding:16px 0 5px;border-bottom:1px solid #ffffff12}#room-plan{width:100%;background:#b89b632b;border:1px solid #d5b67b55;color:#f0d394;border-radius:7px;padding:10px 8px;font-size:11px}#room-section summary{font-size:11px;color:#adbdc3;padding:11px 0;cursor:pointer}#room-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:210px;overflow:auto;padding-bottom:10px}.room-link{border:1px solid #ffffff12;border-radius:5px;background:#ffffff04;color:#c7d3d7;font-size:10px;text-align:left;display:flex;gap:6px;padding:8px 5px}.room-link span{color:#edc776;font-size:9px}.room-link:hover{background:#ffffff16}#room-markers{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.room-marker{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:36px;height:36px;padding:3px;border-radius:50%;border:2px solid #f9e7bc;background:#29483de8;box-shadow:0 2px 9px #0005;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.room-marker span{font-size:11px;font-weight:700}.room-marker small{font-size:8px;color:#edcf93}.room-marker em{display:none;position:absolute;bottom:43px;left:50%;transform:translateX(-50%);font-size:11px;font-style:normal;background:#172329;color:#fff;padding:7px 10px;border-radius:5px;white-space:nowrap}.room-marker:hover,.room-marker:focus-visible{background:#b89954;z-index:4}.room-marker:hover em,.room-marker:focus-visible em{display:block}.room-marker:hover small{color:#fff}
#viewbar #room-tour-start{color:#edc776;border:1px solid #d5b67b30}
.room-view #viewport{left:0}.room-view #panel,.room-view #viewbar,.room-view #hint,.room-view #menu-toggle,.room-view #labels,.room-view #room-markers,.room-view #quality-note{display:none}
#tour-ui{position:absolute;inset:0;pointer-events:none;z-index:5}.tour-top{position:absolute;top:22px;left:22px;display:flex;gap:18px;align-items:flex-start;pointer-events:auto}.tour-top>button,.tour-nav{background:#172329f2;border:1px solid #ffffff25;border-radius:10px;box-shadow:0 5px 25px #0002}.tour-top>button{color:#edc776;padding:13px 18px;font-size:12px}.tour-top>div{background:#172329ed;border:1px solid #ffffff18;border-radius:10px;padding:13px 20px;color:#fff}.tour-top span{font-size:9px;letter-spacing:1.8px;color:#edc776}.tour-top h2{font-family:Georgia,serif;font-weight:400;margin:7px 0;font-size:25px}.tour-top small{font-size:10px;color:#acbcc3}.tour-nav{pointer-events:auto;position:absolute;bottom:53px;left:50%;transform:translateX(-50%);display:flex;gap:12px;padding:9px;align-items:center}.tour-nav button{padding:10px 15px;border:0;border-radius:6px;background:#edc776;color:#19292c;font-size:12px}.tour-nav select{max-width:270px;width:250px;background:#23363d;color:#f3eee2;border:1px solid #ffffff25;border-radius:6px;font-size:12px;padding:9px}.tour-nav span{color:#99aeb6;font-size:11px;white-space:nowrap}.tour-help{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#172329cb;color:#d3dee2;border-radius:20px;padding:8px 15px;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){#viewbar{gap:1px;right:103px;left:8px;padding:4px}#viewbar button{padding:8px 5px;font-size:9px}#viewbar #room-tour-start{font-size:9px}#viewbar #reset{display:none}#menu-toggle{right:9px;padding:10px}#panel{top:64px}.room-marker{width:29px;height:29px}.room-marker span{font-size:10px}.room-marker small{font-size:7px}.tour-top{left:12px;top:12px;gap:8px}.tour-top>button{padding:12px 10px;font-size:10px}.tour-top>div{padding:11px 14px}.tour-top h2{font-size:22px}.tour-nav{bottom:55px;gap:5px;padding:6px;width:calc(100% - 24px);justify-content:center}.tour-nav select{width:175px;min-width:0;font-size:10px;padding:9px 3px}.tour-nav button{font-size:10px;padding:10px 8px}.tour-nav span{display:none}.tour-help{font-size:9px;padding:8px 10px;width:max-content;max-width:calc(100% - 20px)}}

.room-leaders{position:absolute;width:100%;height:100%;inset:0;overflow:visible;pointer-events:none}.room-leaders line{stroke:#e7cb85;stroke-width:1.5;filter:drop-shadow(0 1px 1px #172329)}@media(max-width:760px){#viewbar button,#viewbar #room-tour-start{font-size:10px}}

@media(max-width:760px){.tour-top{right:12px;flex-wrap:wrap}.tour-top>div{flex:1;min-width:180px}.tour-top small{display:block;max-width:245px}}

.tour-top select{max-width:100%;align-self:center;font:inherit;font-size:12px;color:#e6eddf;background:#22372f;border:1px solid #ffffff35;padding:12px;border-radius:10px}.tour-top select[hidden]{display:none}

.marker svg,.villa strong svg,#selection-number svg{display:block;margin:auto}.marker{display:grid;place-items:center}.villa strong{display:grid;place-items:center}

/* Named room callouts remain available while roofs are visible. */
.room-marker{width:auto;min-width:146px;height:44px;padding:9px 13px;border-radius:24px;border:1px solid #eddfbd;flex-direction:row;gap:13px;white-space:nowrap;background:#203e34f2}
.room-marker span{font-size:12px;font-weight:500}.room-marker small{font-size:10px}
@media(max-width:760px){.room-marker{min-width:126px;height:42px;padding:8px 10px;gap:10px}.room-marker span{font-size:11px}.room-marker small{font-size:9px}}
