:root{--ink:#173d31;--green:#286b50;--gold:#c5a16a;--cream:#f4f2eb;--line:#dae0d7;--header:88px;color-scheme:light}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;color:var(--ink);background:var(--cream);font:14px/1.4 system-ui,-apple-system,sans-serif;overflow:hidden}
button,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}
button{cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;background:transparent;border-radius:8px;min-height:42px}
button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
svg,span[data-icon]{display:inline-flex;flex-shrink:0}h1,h2,p{margin:0}h1,h2{font-family:Georgia,serif;font-weight:400}
.app-header{height:var(--header);position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 30px;background:#fffdf7;border-bottom:1px solid var(--line)}
.wordmark{font:25px/1.05 Georgia,serif;letter-spacing:.045em}.wordmark small{display:block;font:10px/1.5 system-ui;letter-spacing:.1em;margin-top:6px;color:#788176}
.app-header nav{display:flex;gap:6px;padding:4px;border-radius:12px;background:#eeeee5}.app-header nav button{padding:10px 16px;font-weight:550;color:#657568}
.app-header nav button[aria-pressed=true]{background:var(--ink);color:#fffdf7;box-shadow:0 3px 9px #173d311c}.app-header nav b{min-width:21px;height:21px;line-height:21px;background:#d9ede0;color:#22603e;font-size:11px;border-radius:50%}
.icon-button{width:44px;height:44px;background:#fffdf7;border:1px solid var(--line);box-shadow:0 4px 12px #23433108}.icon-button:hover{background:#e7eee5}
#experience{position:relative;width:100vw;height:calc(100dvh - var(--header));isolation:isolate}
.stage,.context-view,.stage>iframe{position:absolute;inset:0;width:100%;height:100%}.context-view{background:#d6e1dd}
.context-view canvas{display:block;position:absolute;inset:0;touch-action:none;cursor:grab;outline-offset:-5px}.context-view canvas:active{cursor:grabbing}
.load-status{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:12px 20px;border:1px solid var(--line);background:#fffdf5ee;border-radius:9px;z-index:2;color:#526c5d}.load-status:empty{display:none}
.building-views{position:absolute;bottom:47px;left:50%;transform:translateX(-50%);display:flex;padding:4px;gap:3px;background:#fffdf5ed;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 25px #173d3112;z-index:2;max-width:calc(100% - 30px);overflow-x:auto;scrollbar-width:none}
.building-views button{padding:8px 12px;min-height:36px;font-size:12px;white-space:nowrap}.building-views button[aria-pressed=true]{background:#dce9da}
#experience[data-kind=apartment] .building-views{bottom:104px}
.stage-tools{position:absolute;left:24px;bottom:46px;display:flex;gap:6px;z-index:4}.light-switch{display:flex;margin-left:8px;background:#fffdf7;border:1px solid var(--line);border-radius:8px;padding:2px}
.light-switch button{width:39px;min-height:38px}.light-switch button[aria-pressed=true]{background:#dfeadb}
.scene-credit{position:absolute;bottom:10px;right:20px;z-index:3;color:#fff;font-size:9px;text-shadow:0 1px 4px #12372e;pointer-events:none}
.solar-panel{position:absolute;right:24px;top:24px;z-index:6;width:280px;padding:17px;background:#fffdf7f5;border:1px solid var(--line);border-radius:11px;box-shadow:0 8px 28px #173d3126;display:grid;grid-template-columns:1fr 1fr;gap:12px}.solar-panel header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.solar-panel h2{font-size:25px}.solar-panel label{display:grid;gap:6px;font-size:11px}.solar-panel input:not([type=range]){width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:9px 6px;color:var(--ink);background:#fff}.solar-panel input[type=range],.solar-panel output,.solar-panel p{grid-column:1/-1}.solar-panel input[type=range]{width:100%;accent-color:var(--green)}.solar-panel output{font-size:12px}.solar-panel p{font-size:10px;color:#788774}.solar-panel .icon-button{width:30px;height:30px;min-height:30px}.stage-tools>#solar-toggle[aria-pressed=true]{background:var(--ink);color:#fff}
.primary,.secondary{padding:12px 15px;gap:12px;justify-content:space-between;font-size:12px;border-radius:7px;min-height:44px;display:inline-flex;align-items:center}
.primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}.secondary{background:#fffdf5ed;border:1px solid #bbcbbb}
.places-toggle{position:absolute;top:24px;left:24px;z-index:4;box-shadow:0 4px 18px #173d311a}
.places-panel{position:absolute;left:24px;top:78px;width:260px;padding:16px;background:#fffdf5f5;border:1px solid #ffffff90;border-radius:11px;box-shadow:0 8px 28px #0b35232b;z-index:5;max-height:calc(100% - 180px);overflow:auto;scrollbar-width:thin}
.places-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.places-panel h2{font-size:23px}.places-panel .icon-button{width:32px;height:32px;min-height:32px;background:transparent;box-shadow:none;border:0}
#places-list{display:grid;gap:4px}#places-list button{justify-content:flex-start;text-align:left;padding:8px 7px;font-size:12px;min-height:43px;gap:10px}
#places-list button>span:first-child{color:#7b9582}#places-list button[aria-pressed=true]{background:#dfeada}#places-list small{display:block;color:#87907d;font-size:10px;margin-top:2px}
.point-card{position:absolute;left:24px;bottom:108px;z-index:3;background:#fffdf5f5;border:1px solid #ffffffb0;box-shadow:0 8px 28px #0b352328;border-radius:11px;padding:18px 38px 18px 18px;max-width:340px}
.point-card h2{font-size:25px;margin:0 0 10px}.point-card p{font-size:11px;color:#697b6a;margin-top:5px}.point-card p:nth-of-type(2){font-size:15px;color:var(--ink);font-weight:550}
.point-card a{display:inline-block;font-size:10px;text-decoration:underline;text-underline-offset:3px;margin-top:10px}.point-close{position:absolute;right:7px;top:7px;min-height:28px;width:28px;padding:3px}
.context-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.context-pin{position:absolute;left:0;top:0;transform:translate(-50%,-100%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:5px;padding:0;border:0;background:none;color:#244b39;min-height:0;will-change:left,top}
.pin-medallion{display:grid;place-items:center;width:47px;height:47px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);border:3px solid #fff;background:#f5f5ec;box-shadow:0 5px 15px #09251c42;transition:background .15s,scale .15s}
.pin-medallion svg{transform:rotate(45deg);width:24px;height:24px}.pin-name{white-space:nowrap;font-size:10px;font-weight:600;background:#fffdf5ed;border:1px solid #ffffffaa;border-radius:5px;padding:5px 9px;box-shadow:0 3px 12px #09251c28;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.context-pin[aria-pressed=true]{z-index:20!important}.context-pin[aria-pressed=true] .pin-medallion{background:var(--green);color:#fff;scale:1.1;border-color:#f5d9a9}.context-pin[aria-pressed=true] .pin-name{background:var(--ink);color:#fffdf5}
.context-pin:hover .pin-medallion{scale:1.08}.context-pin[data-home=true] .pin-medallion{background:var(--ink);color:#efd9b4}
.neighborhood-tour{position:absolute;right:24px;bottom:46px;background:#fffdf5f2;box-shadow:0 5px 16px #173d3120;z-index:4}.neighborhood-tour[aria-pressed=true]{background:var(--ink);color:#fff}
#experience[data-section=units] .context-view{right:350px;width:calc(100% - 350px)}#experience[data-section=units] .building-views{left:calc((100% - 350px)/2)}#experience[data-section=units] [data-building-view=surroundings]{display:none}
.unit-panel{position:absolute;right:0;top:0;bottom:0;width:350px;background:#fffdf7;border-left:1px solid var(--line);padding:23px 22px;overflow:auto;scrollbar-width:thin;z-index:5;box-shadow:-8px 0 28px #173d3108}
.availability-title{display:flex;align-items:center;gap:9px}.status-dot{width:9px;height:9px;border-radius:50%;background:#32a56f;box-shadow:0 0 0 4px #32a56f16;flex:none}.availability-title h1{font:26px Georgia}.availability-title strong{font-weight:400}
.source{font-size:11px;color:#7d8579;margin:7px 0 18px}.segmented{display:flex;border:1px solid var(--line);border-radius:8px;padding:3px;margin-bottom:13px}.segmented button{flex:1;min-height:34px;font-size:12px}.segmented button[aria-pressed=true]{background:#e0ecde;color:#20573c}
.unit-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-height:194px;overflow:auto;padding:2px 1px 5px}.unit-list button{display:flex;flex-direction:column;gap:2px;border:1px solid #bcd9bf;background:#edf5e9;min-height:51px;font-weight:650;font-size:15px}
.unit-list small{font-size:9px;font-weight:400;color:#74836e}.unit-list button[data-available=false]{background:#f1f2ed;border-color:#e1e4dc;color:#7d887b}.unit-list button[aria-current=true]{background:var(--green);color:white;border-color:var(--green)}.unit-list button[aria-current=true] small{color:#deebdc}
.selected-unit{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.selected-unit h2{font:37px/1.1 Georgia}.selected-unit small{font-size:10px;color:#899080}
.status-tag{justify-self:end;background:#e4f1df;border:1px solid #c8dfc0;border-radius:5px;padding:6px 8px;font-size:9px;font-weight:600;color:#327047}.status-tag[data-available=false]{background:#f1f1eb;color:#7d8276;border-color:#e3e4da}
.selected-unit p{grid-column:1/-1;font-size:12px;color:#6d7c6d;line-height:1.6}.floor-label{font-size:10px;color:#84907e}.floor-label select{display:block;width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:white;margin-top:4px}
.finals{display:flex;gap:4px;align-self:end}.finals button{flex:1;border:1px solid var(--line);border-radius:5px;min-height:36px;font-size:10px;padding:3px}.finals button[aria-pressed=true]{border-color:#8faf8b;background:#e7efe0}
.selected-unit>.primary,.selected-unit>.secondary{grid-column:1/-1;width:100%}.fine-print{font-size:9px;color:#8b9183;margin-top:16px;line-height:1.5}
.interior-panel{background:#101e17}.interior-panel iframe{border:0}
dialog{border:1px solid var(--line);border-radius:12px;background:#fffdf7;color:var(--ink);padding:24px;max-height:90dvh}dialog::backdrop{background:#15372de0;backdrop-filter:blur(4px)}
.materials-dialog{width:min(1100px,95vw)}.materials-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.materials-dialog h2{font-size:30px}.materials-dialog>a{margin-bottom:20px}
.materials-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.materials-gallery button{display:block;text-align:left;padding:0;border:1px solid var(--line);overflow:hidden;background:#f6f6ed}.materials-gallery img{display:block;width:100%;height:155px;object-fit:cover}
.materials-gallery strong,.materials-gallery small{display:block;margin:9px 12px}.materials-gallery small{font-size:10px;color:#8b9182}.project-info{margin-top:24px;font-size:11px;color:#81907e}.project-info summary{cursor:pointer}.project-info p{margin-top:10px}
.image-dialog{width:min(1200px,96vw);text-align:center}.image-dialog>.icon-button{position:sticky;top:0;float:right}.image-dialog img{display:block;max-width:100%;max-height:73dvh;margin:5px auto 16px}.image-dialog h2{font-size:26px}.image-dialog p{font-size:10px;margin-top:8px;color:#8b9182}
@media(max-width:1150px){#experience[data-section=units] .building-views{bottom:103px}}
@media(max-width:1000px){.app-header{padding:12px 18px;gap:10px}.app-header nav button{padding:10px}.wordmark{font-size:21px}.building-views{bottom:103px}.building-views button{font-size:11px;padding:7px 10px}.stage-tools{bottom:42px}.neighborhood-tour{bottom:42px}}
@media(max-width:650px){
 :root{--header:126px}.app-header{flex-wrap:wrap;padding:13px 16px 9px;height:126px}.wordmark{font-size:21px}.wordmark small{font-size:8px;margin-top:3px}.app-header>.icon-button{height:37px;width:38px}
 .app-header nav{order:3;flex-basis:100%;justify-content:space-between;border-radius:9px;padding:3px;gap:1px}.app-header nav button{flex:1;min-height:37px;font-size:10px;padding:6px;gap:5px}.app-header nav svg{width:18px;height:18px}.app-header nav b{min-width:17px;height:17px;line-height:17px;font-size:9px}
 .stage-tools{left:13px;bottom:37px;gap:4px}.stage-tools .icon-button{width:37px;height:38px}.light-switch{margin-left:4px;padding:1px}.light-switch button{width:33px;min-height:34px}.stage-tools svg{width:20px;height:20px}
 .solar-panel{right:12px;top:64px;width:min(300px,calc(100% - 24px));padding:15px}
 .building-views{bottom:91px;max-width:calc(100% - 24px);gap:1px}.building-views button{padding:6px 8px;font-size:10px;min-height:32px}.scene-credit{right:9px;font-size:8px;bottom:9px}
 .places-toggle{left:12px;top:13px;min-height:39px;font-size:11px;padding:9px 12px}.places-panel{top:61px;left:12px;width:245px;padding:13px;max-height:calc(100% - 170px)}.places-panel h2{font-size:22px}#places-list button{font-size:11px}
 .point-card{left:12px;bottom:145px;width:calc(100% - 24px);max-width:330px;padding:14px 35px 14px 14px}.point-card h2{font-size:22px;margin-bottom:7px}.point-card p{font-size:10px}.point-card p:nth-of-type(2){font-size:14px}
 .pin-medallion{width:38px;height:38px;border-width:2px}.pin-medallion svg{width:21px;height:21px}.pin-name{font-size:9px;max-width:130px;padding:4px 6px}.neighborhood-tour{right:13px;bottom:37px;padding:9px;width:39px;height:38px;min-height:38px;font-size:0;gap:0}.neighborhood-tour svg{width:20px;height:20px}
 #experience[data-section=units] .context-view{width:100%;right:0;height:42%}.unit-panel{top:42%;left:0;width:100%;bottom:0;border-left:0;border-top:1px solid var(--line);padding:16px 18px;box-shadow:0 -9px 25px #173d310c}
 .availability-title h1{font-size:23px}.source{margin-bottom:12px}.unit-list{grid-template-columns:repeat(5,1fr);max-height:136px}.unit-list button{font-size:13px;min-height:44px}.selected-unit{margin-top:14px;padding-top:14px}.selected-unit h2{font-size:30px}
 #experience[data-section=units] .stage-tools{top:8px;bottom:auto}#experience[data-section=units] .scene-credit,#experience[data-section=units] .building-views{display:none}
 .materials-gallery{grid-template-columns:1fr 1fr}.materials-gallery img{height:120px}.materials-dialog{padding:17px}.materials-dialog h2{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.pin-medallion{transition:none}}
