
:root{--bg:#ece8e3;--panel:#fff;--ink:#171313;--muted:#746b68;--line:rgba(23,19,19,.10);--rose:#ad586b;--sand:#c49a67;--dark:#171313;--green:#587366;--shadow:0 18px 55px rgba(45,28,32,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--dark);color:#fff;padding:24px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:45px;height:45px;border-radius:15px;background:#fff;color:var(--dark);display:grid;place-items:center;font:700 28px Georgia}.brand strong,.brand small{display:block}.brand small{font-size:10px;color:#c8bdc0;margin-top:4px;letter-spacing:.08em;text-transform:uppercase}.side-nav{display:grid;gap:7px;margin-top:32px}.side-nav button{border:0;background:transparent;color:#c0b5b8;border-radius:14px;padding:13px;text-align:left;font-weight:800;cursor:pointer}.side-nav button:hover,.side-nav button.active{background:rgba(255,255,255,.09);color:#fff}.sidebar-boundary{margin-top:auto;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:14px;background:rgba(255,255,255,.05)}.sidebar-boundary i{display:block;width:9px;height:9px;border-radius:50%;background:#e19aa7;animation:pulse 2s infinite}.sidebar-boundary strong{display:block;margin:10px 0 5px}.sidebar-boundary p{font-size:12px;color:#c9bec1}.sidebar-actions{display:flex;justify-content:space-between;margin-top:17px}.sidebar-actions button,.sidebar-actions a{border:0;background:none;color:#d4c8cb;font-size:11px;text-decoration:none;cursor:pointer}
.workspace{padding:28px;min-width:0}.workspace-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.eyebrow,.section-label{font-size:10px;letter-spacing:.16em;color:var(--sand);font-weight:900}.workspace-header h1{font:700 clamp(42px,5vw,72px)/1 Georgia;margin:10px 0 16px;letter-spacing:-.045em}.workspace-header h1 span{color:var(--rose)}.headline-copy{max-width:760px;color:var(--muted);font-size:18px}.header-actions{display:flex;gap:8px}.primary-btn,.soft-btn{border:0;border-radius:999px;padding:12px 17px;font-weight:900;cursor:pointer}.primary-btn{background:var(--ink);color:#fff}.soft-btn{background:rgba(255,255,255,.8);color:var(--ink);border:1px solid var(--line)}.app-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.72fr);grid-template-areas:"map moments" "map experiences" "membership membership" "boundaries boundaries";gap:14px}.panel{background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.7);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}.map-panel{grid-area:map}.moments-panel{grid-area:moments}.experience-panel{grid-area:experiences}.membership-panel{grid-area:membership}.boundaries-panel{grid-area:boundaries}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px}.panel-head h2{font-size:22px;margin:5px 0 0}.panel-head em{display:flex;align-items:center;gap:7px;font-style:normal;font-size:10px;color:var(--green);background:#e8f0eb;border-radius:999px;padding:7px 10px}.panel-head em i{width:7px;height:7px;border-radius:50%;background:#7ba08c;animation:pulse 2s infinite}
.map-stage{position:relative;min-height:640px;overflow:hidden}.map-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.72) brightness(.48)}.map-overlay{position:absolute;inset:0;background:linear-gradient(145deg,rgba(27,21,22,.25),rgba(27,21,22,.72)),radial-gradient(circle at center,rgba(201,105,124,.18),transparent 28%)}.map-lines{position:absolute;inset:0;width:100%;height:100%}.map-lines path{fill:none;stroke:rgba(255,255,255,.18);stroke-width:2;stroke-dasharray:8 12;animation:dash 15s linear infinite}.world-pin{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer}.world-pin:before{content:"";display:block;width:16px;height:16px;border-radius:50%;background:#e49ca8;border:4px solid #fff;box-shadow:0 0 0 0 rgba(228,156,168,.75);animation:pin 2.1s infinite}.world-pin.active:before{width:22px;height:22px;background:#fff;border-color:#e49ca8}.map-center{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);width:160px;height:160px;border-radius:50%;background:rgba(24,19,20,.58);border:1px solid rgba(255,255,255,.17);display:grid;place-items:center;text-align:center;color:#fff;box-shadow:0 0 0 22px rgba(255,255,255,.025)}.map-center strong,.map-center small{display:block}.map-center small{font-size:11px;color:#d3c7ca}.pulse-ring{position:absolute;inset:-20px;border:1px solid rgba(232,157,170,.25);border-radius:50%;animation:ring 2.8s infinite}.map-card{position:absolute;left:24px;bottom:22px;width:min(330px,calc(100% - 48px));padding:14px 16px;border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 20px 50px rgba(0,0,0,.2)}.map-card span{font-size:9px;font-weight:900;color:var(--rose);text-transform:uppercase}.map-card strong,.map-card small{display:block}.map-card strong{font-size:17px;margin:5px 0}.map-card small{color:var(--muted)}.featured-bar{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-top:1px solid var(--line)}.featured-bar span{font-size:10px;color:var(--sand);font-weight:900}.featured-bar strong,.featured-bar small{display:block}.featured-bar small{color:var(--muted)}
.moments-scroll{height:330px;overflow:hidden;padding:0 12px 14px}.moment-card{display:grid;grid-template-columns:105px 1fr;gap:12px;border:1px solid var(--line);border-radius:17px;padding:9px;margin-bottom:9px;background:#fbf9f6}.moment-card img{width:105px;height:100px;object-fit:cover;border-radius:12px}.moment-copy h3{font-size:16px;margin:5px 0}.moment-copy p{font-size:12px;color:var(--muted);margin:0}.moment-copy small{font-size:9px;color:var(--rose);font-weight:900}.moment-card.animate{animation:scrollMoment 18s linear infinite}
.experience-list{display:grid;gap:9px;padding:0 12px 14px;max-height:430px;overflow:auto}.experience-card{position:relative;min-height:175px;border-radius:18px;overflow:hidden;color:#fff}.experience-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.experience-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,11,12,.88),rgba(16,11,12,.08) 70%)}.experience-content{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:14px}.experience-topline,.experience-meta{display:flex;justify-content:space-between;gap:8px}.tier-pill,.seat-pill{font-size:9px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px)}.experience-content h3{font:700 20px Georgia;margin:8px 0}.experience-meta{font-size:10px;color:rgba(255,255,255,.8);align-items:center}.book-button{border:0;border-radius:999px;background:#fff;color:var(--ink);font-weight:900;padding:8px 11px;cursor:pointer}
.membership-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 16px 17px}.membership-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;padding:17px;background:#fff;min-height:320px}.membership-card.featured{background:var(--ink);color:#fff}.tier-name{font-size:9px;letter-spacing:.15em;color:var(--sand);font-weight:900;text-transform:uppercase}.membership-card h3{font:700 24px Georgia;margin:8px 0}.membership-price{font-size:36px;font-weight:900}.membership-price small{font-size:10px;color:var(--muted)}.membership-card p,.membership-card li{font-size:12px;color:var(--muted)}.membership-card.featured p,.membership-card.featured li,.membership-card.featured small{color:#c9bec1}.membership-card ul{padding-left:17px}.membership-card button{margin-top:auto;border:0;border-radius:999px;padding:11px;font-weight:900;cursor:pointer}.membership-card:not(.featured) button{background:var(--ink);color:#fff}
.boundary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:0 16px 17px}.boundary-grid>div{border:1px solid var(--line);border-radius:17px;padding:14px;background:#fbf9f6}.boundary-grid b{font-size:9px;color:var(--sand)}.boundary-grid strong{display:block;margin:7px 0}.boundary-grid p{font-size:12px;color:var(--muted)}
.mobile-nav{display:none}
dialog{width:min(640px,calc(100% - 24px));border:0;border-radius:25px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(13,9,10,.7);backdrop-filter:blur(8px)}.dialog-body{position:relative;padding:25px}.dialog-close{position:absolute;right:14px;top:14px;border:0;width:35px;height:35px;border-radius:50%;cursor:pointer}.dialog-body h2{font:700 33px Georgia;margin:7px 0}.dialog-body>p{color:var(--muted)}label{display:block;font-size:12px;font-weight:800;margin:11px 0}input,select,textarea{width:100%;padding:11px;border:1px solid #cec3bc;border-radius:12px;background:#fff}textarea{min-height:85px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.consent-row{display:flex;gap:8px;line-height:1.45}.consent-row input{width:auto;margin-top:4px}.primary-wide{width:100%;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:13px;font-weight:900;cursor:pointer}.completion{text-align:center}.reference-code{font-size:22px;font-weight:900;background:#f3ebe6;border-radius:14px;padding:13px;margin:13px 0}.payment-box,.status-box,.selected-experience{border:1px solid var(--line);border-radius:15px;padding:13px;margin:11px 0;text-align:left}.payment-link{display:block;border-radius:999px;background:var(--ink);color:#fff;padding:12px;text-decoration:none;text-align:center;font-weight:900}.payment-qr{display:block;width:170px;max-width:100%;margin:10px auto;border-radius:13px}.lookup-tabs{display:flex;gap:8px;margin:13px 0}.lookup-tabs button{border:0;border-radius:999px;padding:9px 12px;cursor:pointer}.lookup-tabs button.active{background:var(--ink);color:#fff}.form-boundary{font-size:11px;color:var(--muted);background:#f5f0eb;padding:10px;border-radius:12px}.error-message{color:#a63f50;font-size:12px;margin-top:8px}.success-message{color:#426657;background:#e9f1ed;border-radius:13px;padding:11px;margin-top:10px}
@keyframes pulse{70%{box-shadow:0 0 0 14px rgba(225,154,167,0)}}@keyframes pin{70%{box-shadow:0 0 0 20px rgba(228,156,168,0)}}@keyframes ring{70%{transform:scale(1.16);opacity:0}}@keyframes dash{to{stroke-dashoffset:-220}}@keyframes scrollMoment{0%,20%{transform:translateY(0)}70%,100%{transform:translateY(-45px)}}
@media(max-width:1050px){.app-shell{grid-template-columns:88px 1fr}.brand div,.side-nav span,.sidebar-boundary,.sidebar-actions{display:none}.brand{justify-content:center}.side-nav button{text-align:center}.app-grid{grid-template-columns:1fr 330px}.boundary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body{padding-bottom:72px}.app-shell{display:block}.sidebar{display:none}.workspace{padding:15px 12px}.workspace-header{display:block}.workspace-header h1{font-size:47px}.header-actions{margin-bottom:12px}.app-grid{grid-template-columns:1fr;grid-template-areas:"map" "moments" "experiences" "membership" "boundaries"}.map-stage{min-height:480px}.membership-list{grid-template-columns:1fr}.boundary-grid{grid-template-columns:1fr}.mobile-nav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:60;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.94);backdrop-filter:blur(16px);padding:8px}.mobile-nav button{border:0;background:none;display:grid;place-items:center}.mobile-nav span{font-size:9px}.form-grid{grid-template-columns:1fr}}

.city-map-base{position:absolute;inset:0;background:#d9d1c8}
.city-map-svg{width:100%;height:100%;display:block;filter:saturate(.85) contrast(.98)}
.city-map-svg .park{fill:#b8c4ab;stroke:#aab79e;stroke-width:3}
.city-map-svg .water{fill:#a9bdc4}
.city-map-svg .blocks path{fill:#e9e2da;stroke:#c8bdb3;stroke-width:2;filter:url(#softShadow)}
.city-map-svg .road-major path{fill:none;stroke:#fff;stroke-width:24;stroke-linecap:round}
.city-map-svg .road-major path:nth-child(odd){stroke:#f9f4ef}
.city-map-svg .road-minor path{fill:none;stroke:#f5efe9;stroke-width:11}
.city-map-svg .map-labels text{font-size:16px;fill:#776d68;font-weight:750;letter-spacing:.02em}
.city-map-svg .transit circle{fill:#ad586b;stroke:#fff;stroke-width:4}
.map-light-sweep{position:absolute;inset:-35%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.32) 50%,transparent 58%);animation:mapSweep 8s ease-in-out infinite;pointer-events:none}
.world-pin{z-index:5}
.world-pin:after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%);border:1px solid rgba(173,88,107,.34);border-radius:50%;animation:ring 2.4s infinite}
.map-card{z-index:7}
.map-center{z-index:6}
.install-banner{position:fixed;z-index:150;right:18px;bottom:18px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:17px;background:rgba(23,19,19,.94);color:#fff;box-shadow:0 18px 55px rgba(0,0,0,.25)}
.install-banner button{border:0;border-radius:999px;background:#fff;color:#171313;padding:8px 12px;font-weight:850;cursor:pointer}
.update-toast{position:fixed;z-index:151;left:50%;bottom:20px;transform:translateX(-50%);padding:11px 15px;border-radius:999px;background:#171313;color:#fff;box-shadow:0 16px 45px rgba(0,0,0,.25)}
@keyframes mapSweep{0%,20%{transform:translateX(-35%)}70%,100%{transform:translateX(35%)}}

.starter-card:before{content:"STARTER";position:absolute;z-index:4;right:12px;top:12px;padding:5px 8px;border-radius:999px;background:rgba(23,19,19,.74);color:#fff;font-size:8px;font-weight:900;letter-spacing:.12em}
.starter-note{display:block;margin-top:8px;color:rgba(255,255,255,.68);font-size:9px;line-height:1.35}
.starter-card .seat-pill{background:rgba(196,154,103,.26)}
