@font-face{font-family:Futura;src:url('/fonts/futura-book.woff2') format('woff2');font-display:swap}
@font-face{font-family:Cormorant;src:url('/fonts/cormorant-light.woff2') format('woff2');font-display:swap}
:root{--ink:#253b39;--paper:#f3f1e9;--line:#b9c4b9;--ease:cubic-bezier(.23,1,.32,1);font-family:Futura,sans-serif;color:var(--ink);background:#acc9cb;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,#map:focus-visible{outline:2px solid #92772c;outline-offset:5px}button:active{scale:.97}button{transition:background 180ms,scale 140ms var(--ease)}
#experience{position:relative;height:100svh;min-height:580px;overflow:hidden}#map,#building-stage{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}#map{transition:filter 350ms ease,opacity 350ms ease}body.selected #map{filter:blur(7px);opacity:.55}.map-ui{position:absolute;inset:0;pointer-events:none;transition:opacity 200ms}.map-ui a,.map-ui button{pointer-events:auto}body.selected .map-ui{opacity:0;visibility:hidden}header{position:absolute;top:28px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Cormorant,serif;font-size:30px;line-height:.8;letter-spacing:.025em}.brand span{display:block;font-family:Futura,sans-serif;font-size:9px;letter-spacing:.63em;margin-top:12px}.edition,.back{font-size:11px;letter-spacing:.12em}.back{border-bottom:1px solid #748885;padding-bottom:7px}.intro{position:absolute;left:42px;top:125px;max-width:350px;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:.14em;line-height:1.7;margin:0 0 13px}.intro h1{font-family:Cormorant,serif;font-weight:300;font-size:clamp(40px,4.3vw,72px);letter-spacing:-.03em;line-height:.95;margin:0 0 20px}.intro>p:last-child{font-size:13px;max-width:240px;line-height:1.6}
#pin{position:absolute;left:0;top:0;background:#f8f8f0ed;border:1px solid #ffffffa6;box-shadow:0 10px 28px #153a3b1c;border-radius:3px;padding:14px 17px;min-width:195px;text-align:left;will-change:transform;opacity:0;transition:opacity 200ms}#pin[data-visible=true]{opacity:1}.pin-top{display:flex;align-items:center;gap:11px;font-size:23px}.pin-top b{font-weight:400;font-size:19px;margin-left:auto}.pin-top i{width:7px;height:7px;border-radius:50%;background:#84926e;box-shadow:0 0 0 5px #82936920}.pin-facts{display:grid;grid-template-rows:0fr;max-height:0;overflow:hidden;opacity:0;transition:max-height 220ms var(--ease),opacity 180ms;margin-top:0;font-size:10px;line-height:1.9}.pin-facts span{display:block;white-space:nowrap}.pin-line{position:absolute;left:50%;top:100%;width:1px;height:30px;background:linear-gradient(#fafbf1,#fafbf130);pointer-events:none}#pin[data-hover=true] .pin-facts,#pin:focus-visible .pin-facts{max-height:48px;opacity:1;margin-top:9px}#pin[data-hover=true] .pin-top i{animation:pulse 1.6s ease infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px #82936908}}.location-label{position:absolute;top:0;left:0;font-size:9px;letter-spacing:.23em;pointer-events:none;color:#366669;opacity:.8}
.bottom-bar{position:absolute;left:42px;right:42px;bottom:70px;display:flex;align-items:flex-end;justify-content:space-between}.place{background:#f4f3e9ed;padding:16px 22px;border:1px solid #ffffff8c;min-width:310px}.place>.eyebrow{display:block;margin-bottom:4px;color:#66756d;font-size:8px}.place button{border:0;background:none;padding:0;text-align:left;font-family:Cormorant,serif;font-size:30px;display:flex;width:100%;justify-content:space-between;align-items:center;gap:35px;min-height:44px}.place button span{font:11px Futura,sans-serif}.map-controls{display:flex;gap:6px}.map-controls button{width:44px;height:44px;font-size:23px;border:1px solid #ffffffa0;border-radius:50%;background:#f4f3e9e8}footer{position:absolute;bottom:23px;left:42px;right:42px;display:flex;gap:18px;font-size:10px;color:#36565a;align-items:center}footer>span{margin-right:auto}footer button{font-size:10px;background:none;border:0;padding:5px}#loading{position:absolute;inset:0;padding:24px;background:#edece5;display:grid;place-items:center;font-size:16px;z-index:6;color:#294746}#loading[hidden]{display:none}
.map-load-view{width:min(460px,100%)}.load-eyebrow{font-size:10px;letter-spacing:.18em;margin:0 0 20px}.map-load-view h2{font:400 clamp(24px,3vw,34px)/1.2 Futura,sans-serif;letter-spacing:-.025em;margin:0;max-width:20ch}.load-number{display:flex;align-items:baseline;gap:5px;margin:28px 0 18px;font:400 clamp(54px,7vw,78px)/1 Futura,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.055em}.load-number>span:last-child{font-size:24px;letter-spacing:0}.load-track{height:2px;background:#29474626;width:100%;overflow:hidden}.load-track>span{display:block;width:0;height:100%;background:#294746;transition:width 140ms ease}#load-phase{font-size:14px;margin:20px 0 7px}#load-steps{font-size:12px;color:#586762;margin:0;min-height:18px}@media(prefers-reduced-motion:reduce){.load-track>span{transition:none}}
#detail{position:fixed;inset:0;border:0;margin:0;padding:0;width:100%;height:100%;max-width:none;max-height:none;background:transparent;color:var(--ink);overflow:hidden}#detail::backdrop{background:#edf1e522}#building-stage{pointer-events:none}.close{position:absolute;right:30px;top:26px;width:46px;height:46px;border:1px solid #9daa9e80;border-radius:50%;background:var(--paper);font-size:19px;z-index:3}.details{position:absolute;right:5vw;top:50%;transform:translateY(calc(-50% + 14px));width:min(380px,32vw);max-height:calc(100svh - 150px);overflow:auto;padding:0 8px 4px 0;opacity:0;transition:opacity 250ms,transform 300ms var(--ease);scrollbar-width:thin}#detail[data-revealed=true] .details{opacity:1;transform:translateY(-50%)}.details h2{font:300 clamp(54px,5.4vw,88px)/.95 Cormorant,serif;margin:0 0 15px;letter-spacing:-.04em}.lead{font:26px/1.05 Cormorant,serif;margin:0 0 22px}.details img{display:block;width:100%;height:150px;object-fit:cover;border-radius:2px}.description{font-size:12px;line-height:1.6;margin:20px 0}.details dl{margin:0 0 22px;font-size:11px}.details dl>div{padding:10px 0;border-bottom:1px solid #6a807a40;display:flex;gap:20px;justify-content:space-between}.details dt{color:#667770}.details dd{margin:0;text-align:right}.market-links{display:flex;gap:10px}.market-links a{flex:1;display:flex;justify-content:space-between;padding:15px 17px;border:1px solid var(--ink);border-radius:2px;font-size:13px}.market-links a:first-child{color:var(--paper);background:var(--ink)}.model-controls{position:absolute;left:15vw;bottom:13vh;display:flex;gap:9px;align-items:center}.model-controls span{font-size:10px;letter-spacing:.16em;margin-right:20px}.model-controls button{background:#f3f1e9d9;border:1px solid #97a79c;width:44px;height:44px;border-radius:50%;font-size:23px}
#about{max-width:480px;border:0;border-radius:var(--radius-panel,12px);background:var(--paper);color:var(--ink);padding:35px;line-height:1.6}#about::backdrop{background:#18323470;backdrop-filter:blur(5px)}#about h2{font:36px Cormorant,serif}#about p,#about a{font-size:13px}#about button{float:right;border:0;background:none;min-height:44px;min-width:44px}#about a{text-decoration:underline}
@media(hover:hover) and (pointer:fine){.map-controls button:hover,.close:hover,.model-controls button:hover{background:#dfe5d7}#pin:hover .pin-facts{max-height:48px;opacity:1;margin-top:9px}.market-links a:hover{background:#788064;color:white}}
@media(max-width:760px){#experience{min-height:620px}header{left:22px;right:22px;top:23px}.edition{display:none}.brand{font-size:25px}.back{font-size:10px}.intro{left:22px;top:115px;max-width:280px}.intro h1{font-size:48px}.intro .eyebrow{font-size:8px}.intro>p:last-child{font-size:12px}.bottom-bar{left:18px;right:18px;bottom:74px;gap:12px}.place{min-width:0;flex:1;padding:12px 14px}.place button{font-size:27px;gap:15px}.place button span{font-size:10px}.map-controls{flex-direction:column}.map-controls button{width:40px;height:40px}footer{left:20px;right:20px;bottom:18px;font-size:9px;gap:10px;flex-wrap:wrap}footer>span{flex-basis:100%;font-size:9px}footer button{font-size:9px}.details{left:20px;right:20px;top:auto;bottom:20px;width:auto;max-height:49svh;padding:23px;background:#f3f1e9f0;border-radius:5px;transform:translateY(15px)}#detail[data-revealed=true] .details{transform:translateY(0)}.details h2{font-size:49px;display:inline-block;margin:0 0 13px}.lead{display:none}.details img{float:right;width:36%;height:92px;margin:0 0 12px 16px}.description{font-size:11px;line-height:1.5;margin:0 0 14px}.details dl{clear:both;margin-bottom:18px}.details .eyebrow{font-size:8px;margin-bottom:8px}.model-controls{left:22px;bottom:auto;top:42svh}.model-controls span{font-size:9px}.model-controls button{width:38px;height:38px;min-height:38px}.close{right:20px;top:20px}.pin-top{font-size:21px}#pin{min-width:178px;padding:11px 14px}.pin-facts{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
body.keyboard *,body.keyboard *::before{transition:none!important;animation:none!important}
/* The guide stays below the exit control and can scroll in a short viewport. */
#loading{overflow-y:auto;align-items:safe center;padding:78px 24px 32px}
#loading.load-failed{display:flex;flex-direction:column;justify-content:center;gap:20px;text-align:center}
#loading.load-failed p{margin:0;max-width:32ch}
#loading.load-failed button{min-height:44px;padding:10px 20px;border:1px solid currentColor;border-radius:12px;background:transparent;font:inherit;color:inherit}
#map-graphics-status{position:absolute;z-index:30;left:50%;bottom:max(100px,env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);padding:12px 18px;border-radius:12px;background:#f4f3e9;color:#294746;box-shadow:0 6px 24px #29474620;text-align:center;font:14px Futura,sans-serif;pointer-events:none}
#map-graphics-status[hidden]{display:none}
@media(max-height:680px){#loading{align-items:start}.load-eyebrow{margin-bottom:12px}.load-number{margin-top:18px;margin-bottom:12px}#load-phase{margin-top:12px}}
@media(min-width:700px) and (max-height:500px){.map-load-view{width:min(800px,100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:28px}.map-load-view>*{grid-column:1}.map-load-view>[data-loading-guide-slot]{grid-column:2;grid-row:1/span 6}}
