:root{color-scheme:dark;--ink:#fff4df;--pink:#ffabb3;--deep:#112e37;--muted:#cae3dd;--line:#fff3d430;--panel:#122e38f5;font-family:'DM Sans',sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#438f98;color:var(--ink)}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;border:0}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffc98f;outline-offset:5px}button:active{transform:translateY(1px)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:24px;z-index:100;background:var(--ink);color:var(--deep);padding:14px}.skip-link:focus{top:12px}
#world{position:fixed;inset:0}#city{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#city:active{cursor:grabbing}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#061e3744,transparent 20%,transparent 74%,#08272d8c),linear-gradient(90deg,#0d384f75,transparent 35%)}
.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:27px 38px;pointer-events:none;z-index:5}.topbar>*{pointer-events:auto}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:var(--ink);font-size:12px;font-weight:700;line-height:1.25;letter-spacing:.12em}.brand-symbol{display:inline-flex;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:42px;letter-spacing:-.08em;line-height:1}.brand-symbol span{color:var(--pink);font-size:29px;align-self:center}.top-caption{font-size:12px;letter-spacing:.2em;font-weight:600;text-shadow:0 1px 6px #123849}.join-button{background:var(--ink);color:var(--deep);border-radius:6px;padding:14px 20px;font-size:14px;font-weight:700;box-shadow:0 5px 25px #1336411a}.join-button span{margin-left:20px;font-size:18px}
.intro{position:absolute;left:40px;top:calc(50% - 165px);max-width:350px;z-index:2;pointer-events:none;transition:opacity .4s,transform .4s}.intro button{pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;line-height:1.5}.intro .eyebrow{display:flex;gap:9px;align-items:center;color:#ffe0b4}.intro .eyebrow span{width:22px;height:1px;background:currentColor}.intro h1{margin:15px 0 21px;display:flex;flex-direction:column}.pocket{font-family:'Barlow Condensed',sans-serif;font-size:clamp(55px,5.5vw,86px);letter-spacing:.075em;font-weight:800;line-height:.9;text-shadow:0 5px 22px #143a5144}.miami{font-family:'Yellowtail',cursive;font-size:clamp(91px,9vw,142px);font-weight:400;color:var(--pink);line-height:.82;transform:rotate(-9deg);transform-origin:left;margin-top:8px;margin-left:-6px;text-shadow:0 4px 0 #295466,0 7px 30px #25354d25}.intro p{font-size:15px;line-height:1.7;margin:25px 0 20px;text-shadow:0 1px 10px #183d51}.explore-button{background:var(--pink);color:#263044;font-size:14px;font-weight:700;padding:15px 20px;border-radius:5px}.explore-button span{padding-left:29px;font-size:18px}.intro-note{display:block;font-size:10px;letter-spacing:.13em;margin-top:16px;color:var(--muted)}body.viewing .intro,body.driving .intro{opacity:0;transform:translateX(-30px);pointer-events:none}body.viewing .intro button,body.driving .intro button{pointer-events:none}
.world-tools{position:absolute;right:36px;bottom:124px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:13px}.lighting-switch{display:flex;background:#153845ca;border:1px solid var(--line);padding:4px;border-radius:7px;backdrop-filter:blur(12px)}.lighting-switch button{background:transparent;padding:10px 13px;border-radius:4px;font-size:12px;font-weight:600;color:#f5e9d7}.lighting-switch button.selected{background:#fff1d8;color:#294248}.utility-buttons{display:flex;gap:6px}.utility-buttons button{background:#123441b8;border:1px solid var(--line);border-radius:5px;min-width:40px;height:40px;font-size:21px;backdrop-filter:blur(10px)}.utility-buttons #sound-toggle{font-size:12px;padding:0 12px;min-width:86px}.utility-buttons #motion-toggle{font-size:15px}
.bottom-bar{position:absolute;bottom:0;left:0;right:0;z-index:4;padding:23px 38px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px}.map-caption{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.13em;min-width:176px}.coordinate{font-size:10px;color:var(--muted);letter-spacing:.04em}#destinations{display:flex;gap:6px;padding:6px;background:#123541c7;border:1px solid var(--line);border-radius:9px;backdrop-filter:blur(18px)}#destinations button{display:flex;align-items:center;gap:8px;white-space:nowrap;background:transparent;border-radius:4px;padding:12px 13px;font-size:12px;font-weight:600}#destinations button:hover,#destinations button.active{background:var(--ink);color:var(--deep)}.destination-number{font-family:'Barlow Condensed',sans-serif;font-size:14px;opacity:.65}.map-help{font-size:12px;line-height:1.8;min-width:116px}.map-help>span{margin-left:24px;font-size:11px;color:var(--muted)}
#markers{position:absolute;inset:0;pointer-events:none;overflow:hidden}.map-marker{position:absolute;left:0;top:0;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:8px;background:#fff4dfed;color:#22414a;border-radius:5px;padding:8px 12px 8px 8px;white-space:nowrap;box-shadow:0 4px 18px #072d3b44;border:1px solid #fff;transition:opacity .3s;font-size:12px;font-weight:700}.map-marker:after{content:'';position:absolute;left:16px;bottom:-7px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fff4df}.marker-number{background:#f4acb4;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:11px}.map-marker.active{background:#f5aab4;border-color:#f5aab4}.map-marker.active:after{border-top-color:#f5aab4}.map-marker.active .marker-number{background:var(--ink)}.map-marker.occluded{opacity:0;pointer-events:none}
.loading{position:absolute;left:50%;bottom:128px;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:12px;padding:13px 18px;background:#183c48ed;color:var(--ink);border-radius:6px;font-size:13px;box-shadow:0 8px 30px #17334422}.loading-dot{height:7px;width:7px;background:var(--pink);border-radius:50%}.map-error{position:absolute;top:30%;left:50%;max-width:320px;padding:24px;border-radius:8px;background:var(--panel);z-index:8}.map-error p{font-size:14px;line-height:1.6}.map-error button{background:var(--pink);color:var(--deep);padding:12px 18px;border-radius:5px}
.place-panel{position:absolute;right:35px;top:105px;width:345px;max-height:calc(100dvh - 230px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:28px;z-index:7;box-shadow:0 20px 60px #072a343d;backdrop-filter:blur(18px)}.close-button{position:absolute;right:12px;top:10px;width:38px;height:38px;font-size:27px;font-weight:400;background:transparent;border-radius:50%;color:inherit}.close-button:hover{background:#ffffff16}.panel-index{font-family:'Barlow Condensed',sans-serif;font-size:50px;font-weight:700;color:var(--pink);display:block;margin-bottom:17px;line-height:1}.place-panel .eyebrow{font-size:10px;color:#c6d7ca}.place-panel h2{font-family:'Barlow Condensed',sans-serif;font-size:40px;font-weight:600;line-height:1;margin:10px 0 17px;letter-spacing:.01em}.place-panel p{font-size:14px;line-height:1.65;color:#dae4d8}.place-detail{border-top:1px solid var(--line);margin-top:22px;padding-top:17px}.place-detail strong{display:block;font-size:14px;line-height:1.5;font-weight:600}.place-detail small{font-size:12px;line-height:1.6;display:block;color:#c6d7ca;margin-top:5px}.place-detail ul{padding-left:17px;font-size:14px;line-height:1.8;color:#dae4d8}.panel-action{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:23px;padding:15px 18px;background:var(--pink);color:#23343c;font-size:14px;font-weight:700;border-radius:5px}details{font-size:13px;line-height:1.6;margin-top:17px}summary{cursor:pointer}details p{font-size:13px!important}
.drive-hud{position:absolute;bottom:127px;left:38px;z-index:7;background:var(--panel);padding:22px 24px;border:1px solid var(--line);border-radius:8px;max-width:380px}.drive-hud .eyebrow{font-size:10px;color:var(--pink)}.drive-hud strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:30px;margin-top:5px;font-weight:600}.drive-hud p{font-size:12px;color:var(--muted);margin:9px 0 16px}.drive-hud>button{font-size:13px;font-weight:700;background:var(--ink);color:var(--deep);padding:11px 16px;border-radius:4px}.drive-touch{display:none;gap:8px;margin-top:15px}.drive-touch button{min-height:48px;min-width:49px;border-radius:6px;background:#fff4df22;color:var(--ink);font-size:23px;touch-action:none;user-select:none}.drive-touch button.pressed{background:var(--pink);color:var(--deep)}body.driving .map-marker{opacity:0;pointer-events:none}
dialog{color:var(--ink);background:#143740;width:min(440px,calc(100vw - 30px));max-height:90dvh;border:1px solid var(--line);border-radius:11px;padding:36px;box-shadow:0 30px 150px #0007}dialog::backdrop{background:#062b356b;backdrop-filter:blur(7px)}dialog>.eyebrow{color:var(--pink);font-size:11px}dialog h2{font-family:'Barlow Condensed',sans-serif;font-size:57px;font-weight:600;line-height:.99;margin:23px 0}dialog h2 em{font-family:'Yellowtail',cursive;font-weight:400;color:var(--pink);font-style:normal;font-size:64px}dialog p{font-size:14px;line-height:1.65;color:var(--muted)}dialog label{display:block;margin:19px 0 8px;font-size:13px}dialog input{width:100%;font:inherit;font-size:16px;padding:13px 14px;border:1px solid #bce1d442;color:var(--ink);background:#092933;border-radius:5px}dialog input::placeholder{color:#8caca9}#signup-status:empty{display:none}#signup-status.error{color:#ffc2b7}.noscript{position:absolute;inset:25% 20%;background:var(--deep);padding:35px;z-index:30}
@media(min-width:1600px){.intro{left:65px}.topbar{padding:33px 55px}.bottom-bar{padding:30px 55px}#destinations button{font-size:14px;padding:14px 20px}.world-tools{right:55px}.intro p{font-size:16px}}
@media(max-width:1100px){.map-caption,.map-help,.top-caption{display:none}.bottom-bar{justify-content:center}.intro{left:28px;max-width:285px;top:calc(50% - 155px)}.pocket{font-size:63px}.miami{font-size:110px}.intro p{font-size:14px}.topbar{padding:23px 28px}.world-tools{right:25px;bottom:113px}.place-panel{right:24px;width:320px}}
@media(max-width:700px){.topbar{padding:18px;gap:12px}.brand{font-size:10px;gap:9px}.brand-symbol{font-size:35px}.brand-symbol span{font-size:25px}.join-button{font-size:12px;padding:12px 13px}.join-button span{margin-left:10px}.intro{left:23px;top:95px;max-width:240px}.intro .eyebrow{font-size:10px}.intro h1{margin:12px 0 0}.pocket{font-size:45px}.miami{font-size:78px;margin-top:4px}.intro p{font-size:12px;line-height:1.5;margin:12px 0 13px}.intro-note{display:none}.explore-button{font-size:12px;padding:11px 13px}.explore-button span{padding-left:12px}.world-tools{right:15px;bottom:163px;gap:8px}.lighting-switch button{font-size:11px;padding:9px 10px}.utility-buttons button{min-width:34px;height:37px}.utility-buttons{gap:4px}.utility-buttons #sound-toggle{font-size:10px;min-width:67px;padding:0 9px}.bottom-bar{padding:12px 14px max(15px,env(safe-area-inset-bottom));display:block}#destinations{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:6px}#destinations button{padding:12px 9px;font-size:12px;white-space:normal;min-height:43px;justify-content:flex-start}.map-marker{font-size:10px;padding:5px 7px 5px 5px;gap:5px;min-height:33px}.marker-number{width:20px;height:20px;font-size:10px}.map-marker:after{left:10px}.loading{bottom:288px;max-width:85vw;white-space:nowrap;font-size:12px}.place-panel{left:14px;right:14px;top:auto;bottom:133px;width:auto;max-height:min(54dvh,455px);padding:23px}.panel-index{font-size:36px;margin-bottom:10px}.place-panel h2{font-size:33px;margin:8px 0 10px}.place-detail{margin-top:14px;padding-top:13px}.panel-action{margin-top:17px}.drive-hud{left:14px;right:14px;bottom:132px;max-width:none;padding:18px}.drive-hud strong{font-size:27px}.drive-hud p{display:none}.drive-hud>button{position:absolute;right:17px;top:23px;font-size:11px;padding:9px 11px}.drive-touch{display:flex;justify-content:space-between}.drive-touch button{width:22%;min-height:53px}body.driving .world-tools{bottom:333px}body.viewing .world-tools{opacity:0;pointer-events:none}.map-error{left:20px;right:20px;top:38%;max-width:none}dialog{padding:30px}.vignette{background:linear-gradient(180deg,#092f4955,transparent 40%,transparent 65%,#09303b8c)}}
@media(pointer:coarse){.drive-touch{display:flex}.map-marker{min-height:44px}.utility-buttons button{min-width:44px;min-height:44px}}
@media(max-height:600px) and (min-width:701px){.intro{top:100px}.pocket{font-size:46px}.miami{font-size:81px}.intro p{margin-top:13px;font-size:13px}.intro-note{display:none}.world-tools{bottom:92px}.bottom-bar{padding-bottom:16px}.place-panel{top:83px;max-height:calc(100dvh - 183px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.tour-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.06em;color:var(--muted)}.tour-controls button{background:transparent;padding:10px 0;color:var(--ink);font-size:13px;font-weight:600;min-height:44px}
.map-attribution{position:absolute;right:38px;bottom:9px;color:#e6efebbb;font-size:10px;text-decoration:none;z-index:5}.map-attribution:hover{text-decoration:underline}.intro{max-width:315px}.intro .pocket{font-size:clamp(52px,4.9vw,73px)}.intro .miami{font-size:clamp(86px,8vw,127px)}
@media(max-width:700px){.map-attribution{right:16px;bottom:135px;font-size:9px}.intro .pocket{font-size:40px}.intro .miami{font-size:70px}.intro{max-width:250px}.intro p{max-width:215px}.world-tools{bottom:174px}}
@media(max-width:700px){.map-marker{font-size:0;gap:0;padding:6px}.marker-number{font-size:11px;width:28px;height:28px}.map-marker:after{left:13px}.intro p{font-size:14px}.intro-note,.top-caption,.coordinate{font-size:12px}}

/* Meetup identity and event information stay on the opening screen. */
.brand{font-size:11px;letter-spacing:.07em}.brand-meetup{font-size:10px;letter-spacing:.18em;color:var(--pink)}.top-caption{font-size:11px}
.intro{left:38px;top:112px;max-width:325px;width:calc(100vw - 76px);max-height:calc(100dvh - 218px);overflow:auto;pointer-events:auto;padding:0 3px 4px 0;scrollbar-width:thin;scrollbar-color:#fff4df55 transparent}
.intro .eyebrow{font-size:12px;letter-spacing:.12em}.intro h1.meetup-logo{margin:15px 0 23px;gap:0;font-family:'Barlow Condensed',sans-serif;font-weight:700;line-height:.9;text-shadow:0 3px 18px #15354280}
.logo-mobile{font-size:60px;letter-spacing:.01em}.logo-mobile>span{font-size:29px;font-weight:500}.logo-spatial{font-size:80px;letter-spacing:.025em}.logo-meetup{font-family:'Yellowtail',cursive;color:var(--pink);font-size:67px;font-weight:400;line-height:.9;margin:1px 0 0 64px;transform:rotate(-7deg);transform-origin:left}
.intro p.mission{font-size:16px;line-height:1.5;margin:0 0 21px;color:#fff5e4;max-width:320px;text-shadow:0 1px 12px #092839}
.next-meetup{background:#0b2937e8;border:1px solid #fbb0b354;border-top:2px solid var(--pink);border-radius:8px;padding:17px 18px;box-shadow:0 12px 30px #08243622;backdrop-filter:blur(14px)}.next-meetup>.eyebrow{color:var(--pink)}
.next-meetup h2{font-size:18px;line-height:1.3;margin:7px 0 8px;font-weight:600}.intro .meetup-date{font-size:15px;line-height:1.4;margin:0 0 13px;color:var(--ink)}.next-meetup address{font-style:normal;display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.4;color:var(--muted)}.next-meetup address strong{font-weight:600;color:var(--ink)}
.meetup-locate{margin-top:13px;padding:0;min-height:30px;display:flex;align-items:center;gap:8px;background:transparent;font-size:14px;font-weight:600;color:var(--pink)}.meetup-locate>span:last-child{margin-left:6px}.event-pin-icon{font-size:24px;line-height:1}.intro-tour{font-size:13px;font-weight:500;background:transparent;margin:14px 0 0;padding:5px 0;min-height:32px;color:var(--muted)}.intro-tour>span{margin-left:10px}
body.viewing .intro,body.driving .intro{visibility:hidden}
.map-marker{min-height:44px;z-index:1}.map-marker:active{transform:translate(-50%,-100%);filter:brightness(.95)}.map-marker:after{left:50%;transform:translateX(-50%)}.map-marker.active{z-index:3}
.map-marker.meetup-marker{z-index:2;gap:10px;padding:10px 13px 10px 9px;background:#ffc3bb;border-color:#ffe0d0;box-shadow:0 6px 24px #082a4266}.map-marker.meetup-marker:after{border-top-color:#ffc3bb}.meetup-marker .marker-number{background:#183a47;color:#fff4df;width:32px;height:32px;font-size:14px}.marker-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.marker-copy strong{font-size:14px;line-height:1.2}.marker-copy small{font-size:12px;font-weight:500;line-height:1.2}.meetup-marker.active{box-shadow:0 0 0 3px #fff4df88,0 6px 24px #082a4266}
@media(min-width:1600px){.intro{left:55px;top:130px;max-width:360px}.intro p.mission{max-width:350px}.logo-mobile{font-size:68px}.logo-spatial{font-size:90px}.logo-meetup{font-size:74px}}
@media(min-width:701px) and (max-height:760px){.intro{top:95px;max-height:calc(100dvh - 188px)}.intro h1.meetup-logo{margin:10px 0 15px}.logo-mobile{font-size:43px}.logo-mobile>span{font-size:24px}.logo-spatial{font-size:59px}.logo-meetup{font-size:50px;margin-left:60px}.intro p.mission{font-size:15px;margin-bottom:14px}.next-meetup{padding:12px 15px}.next-meetup h2{font-size:16px}.intro .meetup-date{margin-bottom:9px}.intro-tour{margin-top:5px}.next-meetup address{font-size:13px}}
@media(max-width:700px){.topbar{padding:15px 18px}.brand{font-size:10px;letter-spacing:.03em;gap:8px}.brand-symbol{font-size:31px}.brand-meetup{font-size:9px;letter-spacing:.12em}.join-button{font-size:12px;padding:11px}.join-button span{display:none}.intro{top:79px;left:18px;right:18px;width:auto;max-width:none;max-height:calc(100dvh - 250px);padding:0;overflow:auto}.intro>.eyebrow{display:none}.intro h1.meetup-logo{display:block;margin:0 0 13px;line-height:1}.logo-mobile,.logo-spatial{display:inline;font-size:38px;letter-spacing:.01em}.logo-mobile>span{font-size:24px}.logo-meetup{display:inline-block;margin:0 0 0 7px;font-size:40px;line-height:1;transform:rotate(-7deg)}.intro p.mission{font-size:16px;line-height:1.4;max-width:none;margin:0 0 13px}.next-meetup{padding:11px 14px;border-radius:7px}.next-meetup h2{font-size:16px;margin:4px 0 5px}.intro .meetup-date{font-size:16px;margin:0 0 9px}.next-meetup address{font-size:14px;gap:2px}.meetup-locate{margin-top:7px;font-size:13px;min-height:30px}.next-meetup>.eyebrow{font-size:11px}.intro-tour{display:none}.meetup-marker .marker-copy{display:flex}.map-marker.meetup-marker{padding:7px 10px 7px 7px;gap:7px}.meetup-marker .marker-number{width:30px;height:30px;font-size:13px}.marker-copy strong{font-size:12px}.marker-copy small{font-size:11px}.world-tools{bottom:167px}.map-attribution{bottom:135px}.map-marker:after{left:50%}}
@media(max-width:380px){.logo-mobile,.logo-spatial{font-size:32px}.logo-mobile>span{font-size:21px}.logo-meetup{font-size:35px;margin-left:5px}.brand{font-size:9px}.brand-symbol{font-size:28px}.intro{top:76px}.intro p.mission{font-size:15px}}
.meetup-dismiss,.meetup-reopen{display:none}
@media(max-width:700px){
  .next-meetup{position:relative}.next-meetup>.eyebrow,.next-meetup h2{padding-right:35px}
  .meetup-dismiss{display:grid;place-items:center;position:absolute;top:3px;right:3px;width:44px;height:44px;padding:0;background:transparent;color:var(--ink);border-radius:6px;font-size:28px;line-height:1;z-index:1}.meetup-dismiss:hover{background:#ffffff16}
  body.meetup-dismissed .intro{display:none}
  .meetup-reopen{display:flex;align-items:center;gap:14px;position:absolute;top:82px;left:18px;z-index:5;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:7px;background:#0b2937e8;color:var(--ink);font-size:14px;font-weight:600;backdrop-filter:blur(12px)}.meetup-reopen>span{color:var(--pink)}
  body.viewing .meetup-reopen,body.driving .meetup-reopen{display:none}
}
