@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#193b33;--muted:#6b7e74;--paper:#f7f7ef;--line:#dce2d5;--lime:#d7ed91}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #dba347;outline-offset:5px}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}header{height:90px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:10;background:var(--paper)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;font-weight:800;letter-spacing:2px;font-size:15px}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:500;margin-top:5px}.brand-mark{font:700 38px Georgia;position:relative}.brand-mark span{font:22px sans-serif;position:absolute;right:-8px;top:-2px}.header-middle{font-size:12px;color:var(--muted);display:flex;gap:9px;align-items:center}.live-dot{width:6px;height:6px;border-radius:50%;background:#699863}.demo-tag{font-size:9px;letter-spacing:1.6px;display:flex;gap:17px;align-items:center}.demo-tag span{border:1px solid var(--line);border-radius:30px;padding:7px 10px}#map-view{height:calc(100dvh - 90px);min-height:590px;position:relative;overflow:hidden}#scene{position:absolute;inset:0;background:radial-gradient(ellipse at 45% 45%,#e7eddb,#f4f5ed 75%);touch-action:none}canvas{display:block;width:100%;height:100%}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.map-label{position:absolute;pointer-events:auto;border:1px solid #ffffffaa;box-shadow:0 4px 18px #1c372522;border-radius:9px;background:#fffffff0;color:var(--ink);padding:9px 12px;white-space:nowrap;transform:translate(-50%,-100%);display:flex;gap:7px;align-items:center;font-size:11px;font-weight:700;transition:background .2s,box-shadow .2s}.map-label::after{content:'';position:absolute;bottom:-6px;left:calc(50% - 5px);border:6px solid transparent;border-bottom:0;border-top-color:#fffffff0}.map-label .label-dot{width:6px;height:6px;border-radius:50%;background:var(--dot)}.map-label.active{background:var(--ink);color:white;border-color:var(--ink);box-shadow:0 5px 22px #0b241a44}.map-label.active::after{border-top-color:var(--ink)}.map-intro{position:absolute;left:38px;top:32px;pointer-events:none}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px}.map-intro h1{font:600 clamp(24px,2.6vw,37px) 'Manrope',sans-serif;letter-spacing:-1.5px;margin:10px 0}.map-intro p{color:var(--muted);font-size:13px;margin:0}.north{position:absolute;left:42px;bottom:155px;display:grid;text-align:center;gap:2px;font-size:10px;color:#7a8b79}.north b{font-size:30px;font-weight:400}#destination{position:absolute;right:30px;top:32px;width:264px;background:#ffffffde;backdrop-filter:blur(16px);border:1px solid #fff;border-radius:18px;padding:23px;box-shadow:0 14px 50px #183b2b09}.panel-top{display:flex;justify-content:space-between;align-items:center}.panel-top .eyebrow{font-size:8px;letter-spacing:1.5px;color:var(--muted)}#close-panel{border:0;background:transparent;color:var(--muted);font-size:20px;padding:0}.panel-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#edf1e5;font-size:23px;margin-top:26px}#destination h2{font:700 25px 'Manrope',sans-serif;letter-spacing:-1px;margin:16px 0 10px}#destination p{font-size:12px;line-height:1.75;color:var(--muted);margin:0}#panel-meta{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:18px;font-size:11px;color:var(--muted)}#panel-meta span{font-size:23px;color:var(--ink)}.primary{border:0;background:var(--ink);color:white;border-radius:9px;padding:13px 15px;display:flex;width:100%;justify-content:space-between;margin-top:21px;font-size:12px}.primary:hover{background:#285345}.primary span{color:var(--lime)}.panel-note{font-size:9px;color:#89938b;margin-top:18px}.map-tools{position:absolute;bottom:150px;right:35px;display:flex;align-items:center;border:1px solid white;border-radius:12px;background:#ffffffe6;box-shadow:0 5px 22px #233c2410;padding:4px}.map-tools button{border:0;background:none;color:var(--ink);width:36px;height:36px;font-size:21px}.map-tools button:hover{background:#eef2e6;border-radius:8px}.map-tools i{height:20px;width:1px;background:var(--line);margin:0 5px}.bottom{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);width:min(830px,calc(100% - 75px))}.bottom-head{display:flex;justify-content:space-between;margin:0 2px 13px}.gesture{font-size:10px;color:var(--muted)}#destinations{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:7px;border-radius:17px;background:#ffffffc9;border:1px solid #fff;backdrop-filter:blur(16px);box-shadow:0 8px 30px #173c2410}.destination-chip{background:none;border:0;display:flex;text-align:left;align-items:center;gap:9px;padding:14px 10px;border-radius:11px;color:var(--ink);font-size:12px;font-weight:600}.destination-chip:hover{background:#eef3e5}.destination-chip.active{background:var(--ink);color:#fff}.destination-chip .chip-icon{font-size:20px;color:var(--dot)}.destination-chip small{display:block;font-weight:400;font-size:9px;margin-top:4px;opacity:.6}.map-caption{position:absolute;left:38px;bottom:9px;font-size:7px;letter-spacing:1.5px;color:#8a968b}.map-caption span{margin:0 7px}#fallback{position:absolute;top:45%;left:8%;max-width:400px;background:white;padding:22px;border:1px solid var(--line);border-radius:14px;line-height:1.6}#module-view{max-width:1100px;margin:0 auto;padding:45px 35px}.back{background:none;border:0;padding:0;color:var(--muted);font-size:12px}.module-heading{display:flex;align-items:center;justify-content:space-between;margin:60px 0 40px}.module-heading h1{font:600 clamp(35px,5vw,60px) Manrope,sans-serif;letter-spacing:-2px;margin:12px 0}.module-heading p{color:var(--muted);max-width:470px;line-height:1.7}#module-symbol{font-size:70px;background:#e9eedf;border-radius:30px;padding:24px}#module-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.module-option{text-align:left;border:1px solid var(--line);border-radius:15px;background:white;color:var(--ink);padding:24px;min-height:130px}.module-option:hover,.module-option.active{border-color:var(--ink);background:#edf2e2}.module-option b{font:700 18px Manrope;display:block;margin-bottom:14px}.module-option span{font-size:12px;color:var(--muted)}#section-preview{margin-top:22px;border-left:3px solid #b9d68c;padding:14px 20px;line-height:1.8;min-height:70px}#section-preview p{margin:0;color:var(--muted)}.module-foot{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted)}.module-foot a{color:var(--ink);font-weight:700;white-space:nowrap}@media(max-width:1050px){#destination{width:220px;padding:19px;right:20px}.map-intro{left:25px}.map-intro h1{font-size:28px}.bottom{width:calc(100% - 40px)}}@media(max-width:700px){header{height:70px;padding:0 20px}.header-middle{display:none}.brand{font-size:12px}.brand small{font-size:8px}.brand-mark{font-size:31px}.demo-tag{font-size:7px;letter-spacing:1px}.demo-tag span{display:none}#map-view{height:calc(100dvh - 70px);min-height:600px}.map-intro{top:22px;left:20px}.map-intro h1{font-size:25px;letter-spacing:-1px}.map-intro p{font-size:11px}.map-intro .eyebrow{font-size:8px}#destination{display:none}#destination.selected{display:block;top:auto;bottom:116px;right:14px;left:14px;width:auto;padding:16px 18px;border-radius:15px}.selected .panel-icon,.selected #panel-meta,.selected .panel-note,.selected .panel-top>.eyebrow{display:none}.selected .panel-top{position:absolute;right:16px;top:14px}.selected h2{font-size:20px!important;margin:0 0 5px!important}.selected p{font-size:11px!important;max-width:90%}.selected .primary{margin-top:12px;padding:10px 13px}.map-tools{right:16px;bottom:120px}.map-tools.obscured{display:none}.bottom{bottom:22px;width:calc(100% - 26px)}.bottom-head{margin-bottom:8px}.bottom .eyebrow{font-size:8px}.gesture{font-size:8px}#destinations{gap:2px;padding:5px;border-radius:14px}.destination-chip{display:flex;flex-direction:column;text-align:center;gap:5px;font-size:9px;padding:10px 2px}.destination-chip .chip-icon{font-size:19px}.destination-chip small{display:none}.map-label{font-size:9px;padding:7px 9px}.north{left:20px;bottom:130px}.map-caption{left:18px;bottom:6px;font-size:6px}#module-view{padding:25px 22px}.module-heading{margin:35px 0 25px}#module-symbol{font-size:35px;padding:15px;border-radius:18px}.module-heading h1{font-size:32px}#module-options{grid-template-columns:1fr;gap:9px}.module-option{min-height:auto;padding:20px}.module-option b{font-size:16px}.module-foot{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.estate-views{position:absolute;top:150px;left:38px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:330px}.estate-views button{background:#ffffffed;border:1px solid #cbd4bd;border-radius:20px;padding:10px 16px;color:var(--ink);font-weight:600;font-size:13px}.estate-views button:hover{background:#d7ed91}.estate-views span{flex-basis:100%;font-size:12px;color:var(--muted);margin:4px 5px}.map-label{font-size:12px}.map-intro p{font-size:14px}@media(max-width:700px){.estate-views{top:121px;left:18px;gap:6px}.estate-views button{font-size:12px;padding:8px 12px}.estate-views span{font-size:11px}.map-label{font-size:10px;padding:6px}.map-intro p{font-size:12px}}

#club-weather{position:absolute;left:38px;top:235px;display:grid;gap:6px;padding:12px 15px;background:#ffffffed;border:1px solid #cbd4bd;border-radius:12px;font-size:13px;max-width:310px}#club-weather span{font-size:12px;color:#61756e}.weather-credit{position:absolute;right:25px;bottom:8px;font-size:10px;color:#658077}.night{--paper:#17262b;--ink:#e4edde;--muted:#a1b7b5;--line:#3c5357}.night #destination,.night #destinations,.night .map-tools{background:#203339ee;border-color:#405457}.night .map-label{color:#183b33}.night .map-label.active,.night .destination-chip.active{background:#d7ed91;color:#193b33}.night .map-intro,.night .north,.night .gesture,.night .map-caption{color:#d6e0dc}.night #club-weather,.night .estate-views button{background:#203339;color:#e4edde;border-color:#405457}.night #club-weather span{color:#aac1be}.night .primary{background:#d7ed91;color:#193b33}.night .panel-icon{background:#3c5357}@media(max-width:700px){#club-weather{top:203px;left:18px;padding:9px 12px;font-size:12px;max-width:275px}.weather-credit{font-size:9px;bottom:7px;right:12px}}
.night .module-option{background:#203339;color:#e4edde}.night .module-option:hover,.night .module-option.active{background:#3c5357}.night #module-symbol{background:#3c5357}.night .primary span{color:#193b33}.night #destination .panel-icon{color:#e4edde}

.estate-views{max-width:400px}.estate-views button[aria-pressed="true"]{background:#d7ed91;color:#193b33}@media(max-width:700px){.estate-views{max-width:calc(100% - 36px)}.estate-views button{padding:8px 10px}}

.simulation-control{display:flex;align-items:center;gap:8px;font-size:12px;background:#ffffffed;border:1px solid #cbd4bd;border-radius:20px;padding:7px 12px;color:#193b33}.simulation-control select{font:inherit;font-weight:600;border:0;background:transparent;color:inherit;max-width:145px;padding:3px;cursor:pointer}.simulation-control select:focus-visible{outline:2px solid #dba347;outline-offset:3px}.simulation-control option{color:#193b33;background:#fff}.estate-views{max-width:490px}.night .simulation-control{background:#203339;color:#e4edde;border-color:#405457}@media(max-width:700px){.estate-views{max-width:calc(100% - 36px)}.simulation-control{font-size:11px;padding:6px 10px;flex-basis:100%;max-width:260px}.estate-views>span{font-size:10px}#club-weather{top:247px}}
#club-weather{top:275px}@media(max-width:700px){#club-weather{top:247px}}
/* Keep the map actions in one responsive row, with the course legend below. */
.estate-views{display:grid;grid-template-columns:auto auto minmax(0,1fr);width:min(620px,calc(100% - 76px));max-width:none;align-items:stretch}.estate-views>button{white-space:nowrap;min-width:0}.estate-views>.simulation-control{min-width:0;max-width:none;flex-basis:auto;gap:6px}.simulation-control select{min-width:0;width:100%;max-width:none}.estate-views>span{grid-column:1/-1}.simulation-control{flex-direction:column;align-items:flex-start;justify-content:center;gap:0!important;font-size:10px;padding:5px 12px}.simulation-control select{font-size:12px;padding:0}
@media(max-width:700px){.estate-views{width:calc(100% - 36px);max-width:none;grid-template-columns:1fr .9fr 1.3fr;gap:6px}.estate-views>button{font-size:11px;padding:8px 6px}.estate-views>.simulation-control{padding:5px 8px;font-size:9px}.simulation-control select{font-size:11px}.estate-views>span{margin-top:4px}}
#destination:not(.selected){display:none}

/* Transparent map header: brand left, course controls right. */
header{position:absolute;inset:0 0 auto;height:auto;min-height:96px;padding:20px 32px;gap:24px;background:transparent;border:0;align-items:flex-start;pointer-events:none}
header>*{pointer-events:auto}
.brand{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:180px}
.brand-logo{display:block;width:180px;height:auto;object-fit:contain}
.brand small{font-size:8px;letter-spacing:3px;margin:0 0 0 12px}
header .estate-views{position:static;width:min(560px,calc(100% - 210px));margin-left:auto;grid-template-columns:auto auto minmax(140px,1fr);gap:8px}
header .estate-views>span{text-align:right;margin:3px 5px;font-size:10px}
#map-view{height:100dvh;min-height:650px}
.map-intro{top:100px}
#destination{top:124px}
#module-view{padding-top:140px}
body:has(#map-view[hidden]) header .estate-views{display:none}
@media(max-width:700px){
 header{padding:14px 18px;gap:12px;flex-wrap:wrap;min-height:0}
 .brand,.brand-logo{width:138px}
 .brand small{font-size:7px;letter-spacing:2px;margin-left:9px}
 header .estate-views{width:100%;grid-template-columns:1fr .9fr 1.3fr;gap:6px}
 header .estate-views>span{font-size:9px}
 .map-intro{top:142px;left:20px}
 .map-intro h1{margin:7px 0}
 #map-view{height:100dvh;min-height:710px}
 #destination.selected{top:auto}
 #module-view{padding-top:110px}
}
.brand-logo{filter:drop-shadow(0 1px 1px #193b33aa) drop-shadow(0 0 2px #193b3355)}
.simulation-control select:focus,.simulation-control select:focus-visible{outline:none;box-shadow:none}.simulation-control{justify-content:center}.simulation-control select{min-height:28px}

header .estate-views{width:min(450px,calc(100% - 210px));grid-template-columns:auto minmax(140px,1fr)}
@media(max-width:700px){header .estate-views{width:100%;grid-template-columns:1fr 1.4fr}}

.parking-label{font-weight:700;border-color:#83af8d}
.parking-panel{position:absolute;right:30px;top:112px;z-index:12;width:300px;padding:22px;border-radius:18px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 40px #0002}
.parking-panel small{font-size:9px;letter-spacing:1.4px;color:var(--muted)}
.parking-panel h2{font-size:20px;margin:14px 0}.parking-panel p{font-size:12px;line-height:1.6;color:var(--muted)}.parking-panel .parking-count{font-weight:700;color:var(--ink);font-size:14px}
.parking-close{position:absolute;right:12px;top:8px;border:0;background:none;color:inherit;font-size:24px}
.parking-actions{display:flex;gap:8px}.parking-actions button{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;background:transparent;color:inherit;font-size:11px}
@media(max-width:700px){.parking-panel{top:auto;bottom:120px;left:14px;right:14px;width:auto;padding:18px}}
