:root{--paper:#F7F7F4;--ink:#111111;--purple:#57068C;--line:#E7E7E3;--gray:#9A9A96}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--purple);outline-offset:5px}button:hover{color:var(--purple)}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}header{position:absolute;z-index:10;top:0;left:0;width:100%;height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:var(--paper)}.wordmark{font-size:37px;font-weight:800;letter-spacing:-2.8px;text-decoration:none;color:var(--ink);line-height:1}.wordmark span{font-size:27px;margin-left:4px;vertical-align:top;letter-spacing:-3px}nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:33px;height:100%;align-items:center}nav button{font-size:12px;letter-spacing:1.4px;height:100%;position:relative;padding:0 2px}.nav-active:after{content:'';position:absolute;bottom:17px;left:0;right:0;height:2px;background:var(--purple)}.nav-dot,.live-dot{display:inline-block;width:5px;height:5px;background:var(--purple);border-radius:100%;margin-left:6px;vertical-align:middle}nav sup{font-size:8px;color:var(--gray);letter-spacing:.5px;position:absolute;top:29px;left:39px}.header-right{display:flex;align-items:center;gap:30px}#search-toggle{display:flex;align-items:center;gap:10px;font-size:13px}kbd{border:1px solid var(--line);font:11px Arial;padding:2px 5px;color:var(--gray);margin-left:12px}.avatar{border-radius:100%;border:1px solid var(--ink);height:32px;width:32px;font-size:10px;font-weight:600}main{height:100dvh}.intro{position:absolute;z-index:2;top:133px;left:42px;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:500}.eyebrow span{margin:0 8px;color:var(--gray)}h1{font-size:32px;letter-spacing:-1.2px;font-weight:400;margin:17px 0 10px}.intro p{font-size:13px;color:var(--gray);margin:0}.campus-switch{position:absolute;top:143px;right:42px;z-index:3;display:flex;gap:15px;align-items:center;font-size:12px}.campus-switch>span{color:var(--gray)}.campus-switch button{padding:0 0 7px;color:var(--gray)}.campus-switch button.selected{border-bottom:1px solid var(--ink);color:var(--ink)}.campus-switch button span{margin-left:6px}#map{position:absolute;inset:90px 0 57px;overflow:hidden;cursor:grab;touch-action:none;outline:none}#map.dragging{cursor:grabbing}#map-svg{width:100%;height:100%;display:block}.street{stroke:#9A9A96;stroke-opacity:.38;stroke-width:.75;fill:none;vector-effect:non-scaling-stroke}.street-label{fill:#9A9A96;font-size:10px;letter-spacing:2px}.context-building{fill:#E7E7E3;fill-opacity:.38;stroke:#9A9A96;stroke-opacity:.45;stroke-width:.6;vector-effect:non-scaling-stroke}.building{fill:#F7F7F4;stroke:#111111;stroke-width:1;vector-effect:non-scaling-stroke;transition:fill .18s,stroke .18s;cursor:pointer}.building:hover,.building.selected{stroke:#57068C;stroke-width:1.8;fill:#E7E7E3}.park{fill:#E7E7E3;fill-opacity:.5;stroke:#9A9A96;stroke-width:.7;vector-effect:non-scaling-stroke}.park-path{fill:none;stroke:#F7F7F4;stroke-width:5}.park-label{font-size:11px;letter-spacing:3px;fill:#9A9A96;text-anchor:middle}.map-label{position:absolute;display:flex;flex-direction:column;align-items:flex-start;text-align:left;white-space:nowrap;padding:8px 11px;transform:translate(-50%,-50%);background:var(--paper);cursor:pointer;border-left:1px solid var(--ink);line-height:1.4;transition:border-color .18s,color .18s;pointer-events:auto}.map-label strong{font-size:13px;letter-spacing:1.15px;font-weight:600}.map-label small{font-size:10px;letter-spacing:1px;color:var(--purple);margin-top:5px}.map-label small:before{content:'';display:inline-block;width:4px;height:4px;background:var(--purple);border-radius:50%;margin-right:6px;vertical-align:2px}.map-label.inactive small{color:var(--gray)}.map-label.inactive small:before{display:none}.map-label:hover,.map-label.selected{color:var(--purple);border-color:var(--purple)}.you-tag{position:absolute;transform:translate(-50%,-50%);font-size:9px;letter-spacing:1px;color:var(--purple);white-space:nowrap;pointer-events:none}.you-tag i{width:7px;height:7px;display:inline-block;border-radius:50%;background:var(--purple);margin-right:6px;outline:4px solid var(--paper)}#labels{position:absolute;inset:0;pointer-events:none}#hover-panel{position:absolute;width:206px;background:var(--paper);border:1px solid var(--line);padding:20px;z-index:5;cursor:default}#hover-panel strong{font-size:12px;letter-spacing:1px}#hover-panel p{font-size:12px;line-height:1.8;margin:10px 0}#hover-panel button{font-size:12px;color:var(--purple);padding:0}.location-note{position:absolute;left:42px;bottom:140px;z-index:2;padding-left:24px;display:flex;flex-direction:column;gap:9px;pointer-events:none}.tiny-cross{position:absolute;left:0;top:-4px;font-size:19px;color:var(--purple)}.location-note .eyebrow{font-size:9px;color:var(--gray)}.location-note strong{font-size:12px;font-weight:400}.location-note>span:last-child{font-size:11px;color:var(--gray)}.map-tools{position:absolute;bottom:133px;right:42px;display:flex;flex-direction:column;gap:13px;z-index:4}.map-tools button{display:grid;place-items:center;width:36px;height:36px;background:var(--paper);border:1px solid var(--line);font-size:21px}.zoom button+button{border-top:0}.map-orientation{position:absolute;right:51px;top:222px;display:flex;align-items:center;flex-direction:column;gap:8px;pointer-events:none}.map-orientation span{font-size:9px}.map-orientation svg{width:15px;height:26px;fill:var(--ink)}.scale{position:absolute;bottom:84px;left:42px;font-size:9px;color:var(--gray);display:flex;gap:10px;align-items:center}.scale>div{height:5px;width:78px;border:1px solid var(--gray);border-top:0}.map-hint{position:absolute;bottom:85px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--gray);white-space:nowrap}.map-hint span{margin:0 11px}footer{position:absolute;bottom:0;height:57px;left:42px;right:42px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:11px}footer .live-dot{margin:0 8px 1px 0}footer strong{font-weight:500}.separator{margin:0 10px;color:var(--gray)}.footer-right{color:var(--gray);font-size:10px}.edition{font-size:9px;margin-left:42px;letter-spacing:1px}#focus-panel{position:absolute;z-index:5;right:108px;top:220px;width:310px;padding:25px 25px 20px;background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--purple);max-height:calc(100dvh - 310px);overflow:auto;animation:reveal .25s ease}#focus-panel .eyebrow{color:var(--purple);font-size:9px}#focus-panel h2{font-size:29px;letter-spacing:-.7px;font-weight:400;margin:23px 0 7px}#focus-panel .full-name{font-size:12px;color:var(--gray);line-height:1.6;margin:0 0 21px}#focus-panel .active-count{font-size:10px;letter-spacing:1px;color:var(--purple);margin:20px 0}.close{position:absolute;top:15px;right:14px;font-size:22px;color:var(--gray)}.project{display:grid;grid-template-columns:22px 1fr;gap:9px;border-top:1px solid var(--line);padding:17px 0;width:100%;text-align:left}.project .number{font-size:10px;color:var(--gray);padding-top:3px}.project strong{font-weight:400;font-size:13px;line-height:1.4}.project small{display:block;font-size:10px;color:var(--gray);margin-top:6px;line-height:1.5}.project .looking{color:var(--purple)}.view-all{font-size:12px;padding:15px 0 0;width:100%;text-align:left;border-top:1px solid var(--line)}.project-detail p{font-size:13px;line-height:1.7}.creator{margin:20px 0;font-size:12px;padding-top:17px;border-top:1px solid var(--line)}.back{font-size:11px;color:var(--gray);padding:0;margin:14px 0}.shuttle{fill:none;stroke:#57068C;stroke-width:1.5;stroke-dasharray:6 7;vector-effect:non-scaling-stroke}.wide-label{font-size:90px;letter-spacing:20px;fill:#9A9A96}.water{fill:#E7E7E3;fill-opacity:.7}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:0;width:540px;max-width:calc(100% - 32px);margin:17vh auto;max-height:70vh}dialog::backdrop{background:rgba(17,17,17,.16)}.search-head{display:flex;padding:22px;gap:15px;border-bottom:1px solid var(--line);align-items:center}.search-head svg{width:20px;fill:none;stroke:var(--ink);stroke-width:1.3}.search-head input{font:14px Arial;flex:1;min-width:0;background:none;border:none;outline:none}.search-head button{font-size:10px;border:1px solid var(--line);padding:4px}.search-result{display:block;padding:18px 25px;text-align:left;width:100%;border-bottom:1px solid var(--line);font-size:14px}.search-result small{display:block;color:var(--gray);font-size:11px;margin-top:5px}.search-foot{font-size:9px;letter-spacing:1px;color:var(--gray);padding:20px 25px}#profile-dialog{padding:35px;width:380px}#profile-dialog h2{font-size:28px;font-weight:400}.profile-location{font-size:12px;margin:24px 0}.profile-location .live-dot{margin:0 5px 0 0}.muted{font-size:12px!important;color:var(--gray);line-height:1.7}#toast{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);background:var(--paper);border:1px solid var(--line);padding:13px 20px;font-size:12px;z-index:20} [hidden]{display:none!important}@keyframes reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){header{height:74px;padding:0 22px}.wordmark{font-size:30px}.wordmark span{font-size:22px}.header-right{gap:15px}#search-toggle span,kbd{display:none}nav{gap:24px;left:53%}nav button{font-size:10px}nav sup{display:none}.intro{left:22px;top:104px}.eyebrow{font-size:8px}h1{font-size:27px}.intro p{font-size:11px}.campus-switch{top:210px;left:22px;right:auto;font-size:11px}#map{top:74px}.map-orientation{right:26px;top:209px}.map-tools{right:20px;bottom:112px}.location-note{left:22px;bottom:126px;font-size:11px}.location-note strong{font-size:11px}.map-hint,.footer-right{display:none}.scale{left:22px;bottom:81px}footer{left:22px;right:22px;font-size:10px}.separator{margin:0 6px}#focus-panel{top:auto;bottom:57px;left:0;right:0;width:100%;max-height:44dvh;padding:20px 24px}#focus-panel h2{font-size:24px;margin:16px 0 6px}.project{padding:12px 0}.map-label strong{font-size:11px}.map-label small{font-size:9px}.map-label{padding:6px 8px}.map-label.inactive{display:none}body.focused .location-note,body.focused .scale{display:none}body.focused .map-tools{bottom:calc(44dvh + 70px)}#hover-panel{display:none!important}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.intro{background:var(--paper);padding:12px 18px 17px 0;margin-top:-12px}.campus-switch{background:var(--paper);padding:8px 0 4px 12px;margin-top:-8px}@media(min-width:701px) and (max-width:1000px){#focus-panel{right:78px;width:280px;top:232px}.location-note{bottom:112px}}@media(max-width:700px){.intro{padding-right:14px}.campus-switch{padding-left:0}.map-label{max-width:130px}.map-label.inactive{display:none}}

#map{overflow:clip}
/* Spatial social layer: activity leads, architecture recedes. */
header{height:72px;padding:0 36px}.wordmark{font-size:32px}nav .nav-active:after{bottom:12px}nav sup{top:18px}.header-right #search-toggle span,.header-right kbd{display:none}#map{inset:72px 0 52px;background:var(--paper)}.intro{top:104px;left:36px;margin:0;padding:8px 14px 12px 0}.intro .eyebrow{font-size:10px;letter-spacing:1.7px}.intro p{font-size:13px;margin-top:9px;color:var(--ink)}.campus-switch{top:113px;right:36px;font-size:11px}.map-orientation{top:178px;right:44px}.street{stroke-opacity:.24}.street-label{fill:var(--gray);font-size:9px;letter-spacing:1.5px}.context-building{fill-opacity:.22;stroke-opacity:.23}.building{stroke:var(--gray);stroke-width:.8;fill:var(--paper)}.building.selected{stroke:var(--purple);fill:var(--paper)}.park-label{font-size:10px}.landmass{fill:var(--paper);stroke:var(--gray);stroke-width:.6;vector-effect:non-scaling-stroke}.borough-label{font-size:210px;letter-spacing:38px;fill:var(--gray);text-anchor:middle}.river-label{font-size:110px;letter-spacing:20px;fill:var(--gray)}#map.city-view{background:var(--line)}.landmark{position:absolute;transform:translate(-50%,0);white-space:nowrap;font-size:10px;letter-spacing:1.25px;color:var(--gray);padding:3px 5px;background:var(--paper);pointer-events:auto}.landmark small{display:block;font-size:11px;letter-spacing:0;color:var(--purple);margin-top:6px}.landmark:hover{color:var(--purple)}body[data-level="1"] .landmark{font-size:13px;color:var(--ink)}.you-anchor{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--purple);white-space:nowrap;font-size:10px;letter-spacing:1.2px;z-index:4;pointer-events:none}.you-anchor i{width:7px;height:7px;border-radius:50%;background:var(--purple);outline:4px solid var(--paper)}.you-anchor span{background:var(--paper);padding:3px}.you-anchor.small-anchor span{display:none}.campus-cluster{position:absolute;transform:translate(-50%,-50%);text-align:left;display:grid;grid-template-columns:auto auto;gap:9px 14px;background:var(--paper);padding:10px 13px;border-left:1px solid var(--purple);pointer-events:auto}.campus-cluster>span{font-size:14px;letter-spacing:1px}.campus-cluster strong{font-weight:400;font-size:14px;color:var(--purple)}.campus-cluster strong:before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--purple);margin:0 5px 3px 0}.campus-cluster small{grid-column:1/3;font-size:9px;letter-spacing:1px;color:var(--gray)}.future-network{position:absolute;font-size:9px;letter-spacing:1px;color:var(--gray);transform:translate(-50%,-50%);white-space:nowrap}.future-network:before{content:'○';margin-right:6px}.shuttle{stroke-width:1;stroke-dasharray:4 6}.shuttle-label{position:absolute;font-size:9px;letter-spacing:1px;color:var(--purple);background:var(--paper);padding:4px;transform:translate(-50%,-50%)}#bubble-layer{position:absolute;inset:0;pointer-events:none}.activity-bubble{position:absolute;transform:translate(-50%,-100%);width:155px;padding:0;display:flex;flex-direction:column;align-items:center;pointer-events:auto;text-align:center;opacity:var(--age-opacity,1);transition:opacity 160ms,color 160ms;z-index:3}.bubble-text{font-size:14px;line-height:1.4;font-weight:400;background:var(--paper);padding:8px 10px;max-width:155px;border:1px solid var(--line);border-radius:3px;position:relative}.bubble-stem{height:15px;width:1px;background:var(--gray)}.person-dot{display:block;width:11px;height:11px;background:var(--line);border:1px solid var(--gray);border-radius:50%;outline:4px solid var(--paper)}.bubble-meta{position:absolute;top:calc(100% + 10px);font-size:12px;line-height:1.4;white-space:nowrap;background:var(--paper);padding:6px 9px;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity 150ms,transform 150ms;pointer-events:none}.bubble-meta>span{color:var(--gray);font-size:10px}.bubble-meta small{display:block;font-size:10px;color:var(--gray);margin-top:3px}.activity-bubble:hover,.activity-bubble:focus-visible{opacity:1;color:var(--ink);z-index:8}.activity-bubble:hover .bubble-text,.activity-bubble:focus-visible .bubble-text{border-color:var(--gray)}.activity-bubble:hover .bubble-meta,.activity-bubble:focus-visible .bubble-meta{visibility:visible;opacity:1;transform:translateY(0)}.looking-dot{width:4px;height:4px;border-radius:50%;background:var(--purple);display:inline-block;margin:0 0 3px 5px}.has-selection .activity-bubble,.has-selection .people-cluster{opacity:.25}.has-selection .activity-bubble.is-selected{opacity:1;z-index:7}.is-selected .bubble-text,.is-selected .bubble-meta{visibility:hidden}.is-selected .person-dot{background:var(--purple);border-color:var(--purple)}.people-cluster{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:var(--paper);border:1px solid var(--gray);width:45px;height:45px;border-radius:50%;display:grid;place-content:center;gap:1px;transition:opacity 200ms}.people-cluster strong{font-size:15px;font-weight:400}.people-cluster>span{position:absolute;top:51px;left:50%;transform:translateX(-50%);font-size:10px;background:var(--paper);white-space:nowrap;color:var(--gray)}.people-cluster:hover{border-color:var(--purple)}.new-bubble{animation:arrive 450ms ease-out both}.new-bubble .bubble-text{animation:text-arrive 450ms ease-out both}@keyframes arrive{from{opacity:0;transform:translate(-50%,-96%)}35%{color:var(--purple)}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes text-arrive{0%,30%{opacity:0}100%{opacity:1}}
.scope-control{position:absolute;left:36px;bottom:102px;z-index:4;display:flex;gap:25px;background:var(--paper);padding:7px 0}.scope-control button{font-size:11px;letter-spacing:1px;padding:0 0 8px;color:var(--gray);border-bottom:1px solid transparent}.scope-control [aria-pressed="true"]{color:var(--ink);border-color:var(--purple)}.location-note{left:36px;bottom:161px;flex-direction:row;padding:0;align-items:center;gap:8px;font-size:9px;letter-spacing:1px;color:var(--gray);background:var(--paper)}.location-note .live-dot{margin:0}.location-note>span:last-child{font-size:9px}.map-tools{right:36px;bottom:111px}.map-tools button{width:33px;height:33px}.scale{left:36px;bottom:73px}.map-hint{bottom:77px;font-size:10px}footer{height:52px;left:36px;right:36px;font-size:11px}.edition{margin-left:20px}.map-orientation{z-index:1}#focus-panel{position:absolute;right:auto;bottom:auto;top:200px;left:40%;width:284px;max-height:calc(100dvh - 200px);border:1px solid var(--line);border-top:1px solid var(--purple);padding:23px 22px 18px;background:var(--paper);animation:reveal .25s ease;z-index:8;overflow:auto}#focus-panel .close{top:9px;right:10px;font-size:20px}.detail-kicker{font-size:9px;letter-spacing:1.2px;color:var(--purple)}.detail-kicker>span{color:var(--gray);letter-spacing:0}#focus-panel h2{font-size:22px;font-weight:400;line-height:1.2;letter-spacing:-.5px;margin:19px 0}.person-line{font-size:12px;line-height:1.6;margin:0}.person-line strong{font-weight:500}.person-line>span{display:block;color:var(--gray);font-size:11px}.detail-copy{font-size:13px;line-height:1.65;margin:16px 0}.spectrum{display:flex;gap:17px;font-size:9px;letter-spacing:1px;margin:20px 0;color:var(--gray)}.detail-actions{border-top:1px solid var(--line);padding-top:9px;display:flex;flex-direction:column;gap:0}.detail-actions button{font-size:12px;text-align:left;padding:8px 0;display:flex;justify-content:space-between}.detail-actions .connect{color:var(--purple);margin-top:5px}.back{display:block;margin:15px 0 0}#search-results{max-height:50vh;overflow:auto}.search-result{font-size:14px}.empty-search{padding:20px}.search-foot{font-size:9px}#toast{max-width:calc(100% - 40px);text-align:center;line-height:1.5}
@media(max-width:700px){header{height:66px;padding:0 21px}.wordmark{font-size:28px}nav{left:53%;gap:24px}.header-right{gap:16px}#map{top:66px}.intro{top:87px;left:21px;padding:7px 12px 9px 0}.intro .eyebrow{font-size:9px}.intro p{font-size:12px;margin-top:7px}.campus-switch{top:155px;left:21px;right:auto;font-size:10px;gap:12px}.map-orientation{top:159px;right:27px}.location-note{left:21px;bottom:159px}.scope-control{left:21px;bottom:103px;gap:22px}.scale{left:21px;bottom:75px}.map-tools{right:21px;bottom:106px}footer{left:21px;right:21px}.activity-bubble{width:145px}.bubble-text{font-size:13px;max-width:145px;padding:7px 9px}.landmark{font-size:9px}#focus-panel{top:auto!important;left:0!important;right:0;bottom:52px;width:100%;max-height:48dvh;padding:20px 24px;animation:reveal .25s ease}#focus-panel h2{font-size:23px;margin:14px 0}.detail-copy{font-size:13px;margin:12px 0}.spectrum{margin:15px 0}.detail-actions{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.detail-actions .connect{grid-column:1/3}.focused .scope-control,.focused .location-note,.focused .scale{display:none}.focused .map-tools{bottom:calc(48dvh + 63px)}.future-network{font-size:8px}}

.borough-label{font-size:310px;letter-spacing:40px}.river-label{font-size:190px;letter-spacing:22px}
.intro p{display:none}.intro{padding-bottom:8px}
/* MapLibre owns all map-space positioning; these rules style marker contents only. */
#map{overflow:hidden;cursor:auto}#map-canvas{position:absolute;inset:0;width:100%;height:100%;background:#F7F7F4}.maplibregl-canvas:focus-visible{outline:1px solid #57068C;outline-offset:-2px}#map-loading{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font-size:12px;background:#F7F7F4;padding:12px 18px;z-index:1;border:1px solid #E7E7E3;max-width:300px;text-align:center}.coodie-bubble-marker{z-index:3;pointer-events:auto}.coodie-bubble-marker:hover{z-index:8}.coodie-bubble-marker .activity-bubble{position:relative;left:auto;top:auto;transform:none;width:155px;transition:opacity 160ms}.coodie-bubble-marker.dimmed{opacity:.28}.coodie-bubble-marker .activity-bubble.is-selected .bubble-text{visibility:hidden}.coodie-bubble-marker .new-bubble{animation:geographic-arrival 450ms ease-out both}.coodie-bubble-marker .bubble-meta{z-index:10}.physical-anchor{display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:4;width:8px;height:8px}.physical-anchor i{display:block;width:7px;height:7px;flex-shrink:0;border-radius:100%;background:#57068C;outline:4px solid #F7F7F4}.physical-anchor span{font-size:10px;letter-spacing:1px;white-space:nowrap;color:#57068C;background:#F7F7F4;padding:2px 4px}.physical-anchor.small-anchor span{display:none}.coodie-detail-popup{z-index:12}.coodie-detail-popup .maplibregl-popup-content{background:transparent;border:0;padding:0;box-shadow:none;border-radius:0}.coodie-detail-popup .maplibregl-popup-tip{border-top-color:#F7F7F4}.coodie-detail-popup #focus-panel{position:relative;left:auto!important;top:auto!important;right:auto;bottom:auto;margin:0;width:284px;max-height:480px}.maplibregl-ctrl-attrib{font:9px Arial!important;background:#F7F7F4!important;color:#9A9A96;margin:0!important}.maplibregl-ctrl-attrib a{color:#9A9A96}.maplibregl-ctrl-bottom-right{bottom:3px;right:6px;z-index:2}.maplibregl-ctrl-bottom-left{left:26px;bottom:22px;z-index:2}.maplibregl-ctrl-scale{border-color:#9A9A96;color:#9A9A96;font:9px Arial;background:#F7F7F4;line-height:15px;border-width:1px}.maplibregl-marker button:focus-visible{outline:1px solid #57068C;outline-offset:3px}@keyframes geographic-arrival{from{opacity:0}to{opacity:1}}@media(max-width:700px){.maplibregl-ctrl-bottom-left{left:11px;bottom:23px}.coodie-bubble-marker .activity-bubble{width:145px}.maplibregl-ctrl-attrib{font-size:8px!important}.focused .maplibregl-ctrl-bottom-left{display:none}}

.coodie-bubble-marker.dimmed{opacity:.28!important}.coodie-detail-popup #focus-panel{max-height:calc(100dvh - 235px)}

/* Zoom continuously controls social detail; MapLibre owns marker transforms. */
.coodie-bubble-marker{opacity:var(--zoom-opacity,1)!important}.coodie-bubble-marker.dimmed{opacity:calc(var(--zoom-opacity,1)*.28)!important}.physical-anchor span{transition:none}.maplibregl-ctrl-bottom-left{bottom:12px!important}
/* People float above geography; label layout never changes the geographic anchor. */
.human-bubble{width:0;height:0;overflow:visible;opacity:var(--bubble-opacity,1)!important;z-index:5;transition:opacity 150ms}.human-bubble:hover,.human-bubble:focus-within{opacity:1!important;z-index:7}.human-bubble.selected-person{z-index:9;opacity:1!important}.human-anchor{position:absolute;left:-5px;top:-5px;width:10px;height:10px;padding:0;border:1px solid #777772;border-radius:50%;background:#e5e5df;transition:background 150ms,box-shadow 150ms;z-index:2}.human-bubble:hover .human-anchor,.human-bubble:focus-within .human-anchor{background:#777772;box-shadow:0 0 0 1px #aaa9a3}.own-bubble .human-anchor{background:#57068C;border-color:#57068C}.human-connector{position:absolute;top:0;left:0;width:1px;height:1px;overflow:visible;pointer-events:none}.human-connector line{stroke:#9a9a96;stroke-width:.75}.human-label{position:absolute;padding:0 7px;text-align:center;color:#30302e;font-size:15px;line-height:1.35;border:0;background:none;cursor:pointer;max-width:190px;min-height:56px}.human-label:hover{color:#111}.human-activity{display:block;text-wrap:balance;background:rgba(247,247,244,.82);border-radius:5px;padding:3px 1px;max-height:67px;overflow:hidden}.human-identity{display:flex;flex-direction:column;gap:2px;font-size:10px;line-height:1.4;opacity:0;max-height:0;overflow:hidden;transition:opacity 150ms,max-height 150ms;background:rgba(247,247,244,.92)}.human-identity strong{font-size:11px;font-weight:500;margin-top:7px}.human-identity small{font-size:9px;color:#6c6c68}.human-bubble:hover .human-identity,.human-bubble:focus-within .human-identity{opacity:1;max-height:60px}.human-expanded{position:absolute;text-align:left;pointer-events:auto}.human-expanded[hidden]{display:none}.human-expanded #focus-panel{position:relative!important;inset:auto!important;width:100%!important;max-height:calc(100dvh - 210px);overflow:auto;margin:0;padding:20px 21px 18px;background:rgba(247,247,244,.97);border:0;border-top:1px solid #bbb9b3;box-shadow:none;animation:expand-person 150ms ease-out;transform:none!important}.human-expanded #focus-panel h2{font-size:20px;line-height:1.25;letter-spacing:-.4px;margin:13px 0 17px;font-weight:400}.human-expanded .detail-age{font-size:9px;color:#747470}.human-expanded .person-line{margin:0 0 14px;font-size:11px;line-height:1.5}.human-expanded .person-line strong{display:block;text-transform:uppercase;font-weight:500;letter-spacing:.6px}.human-expanded .person-line span{display:block;color:#747470}.human-expanded .detail-copy,.human-expanded .looking-for{font-size:12px;line-height:1.5;margin:0 0 14px}.human-expanded .spectrum{margin:0 0 15px;display:flex;gap:9px;font-size:9px;color:#73736e}.human-expanded .detail-actions{margin:0;border-top:1px solid #e4e4df;padding-top:8px;display:flex;flex-direction:column;gap:0}.human-expanded .detail-actions button{padding:8px 0;border:0;text-align:left;font-size:12px}.human-expanded .close{top:10px;right:10px}.human-expanded .back{font-size:10px;display:block;margin:7px 0}.human-label:focus-visible,.human-anchor:focus-visible{outline:1px solid #333;outline-offset:5px}.human-label:disabled,.human-anchor:disabled{pointer-events:none}
#bubble-create{position:absolute;z-index:8;left:36px;bottom:104px;font-size:10px;letter-spacing:1px;background:#f7f7f4;padding:9px 10px;border:1px solid #dfdfd9}#bubble-composer{position:absolute;z-index:11;left:36px;bottom:145px;width:304px;background:#f7f7f4;padding:22px;border-top:1px solid #a9a9a3;box-shadow:0 2px 12px #11111108}#bubble-composer[hidden]{display:none}#bubble-composer label{font-size:10px;letter-spacing:1px}#bubble-composer textarea{display:block;width:100%;resize:none;font:15px/1.5 Arial;border:0;border-bottom:1px solid #d8d8d1;background:transparent;padding:16px 0 10px;color:#111;outline-offset:4px}#bubble-composer textarea::placeholder{color:#969690}.composer-meta,.composer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.composer-meta select{font:9px Arial;letter-spacing:1px;border:0;background:transparent;color:#666}.composer-meta small,.composer-note{font-size:9px;color:#777}.composer-actions button{font-size:11px;padding:8px 0}.composer-actions [type=submit]{color:#57068c}.composer-note{display:block;margin-top:12px}.location-note{pointer-events:none}
@keyframes person-surface{0%{opacity:0;transform:scale(.65)}45%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:scale(1)}}@keyframes thought-surface{0%,35%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}@keyframes connector-surface{0%,20%{opacity:0}100%{opacity:1}}@keyframes expand-person{from{opacity:.6}to{opacity:1}}.surfacing .human-anchor{animation:person-surface 400ms ease-out}.surfacing .human-connector{animation:connector-surface 400ms ease-out}.surfacing .human-label{animation:thought-surface 450ms ease-out}
@media(max-width:699px){#bubble-create{left:18px;bottom:97px}#bubble-composer{left:18px;bottom:137px;width:min(304px,calc(100vw - 36px))}.human-label{font-size:14px}.human-expanded #focus-panel{padding:16px 19px;max-height:calc(100dvh - 200px)}.human-expanded #focus-panel h2{font-size:19px}.human-expanded .detail-copy{font-size:12px}}
@media(prefers-reduced-motion:reduce){.human-bubble,.human-identity,.human-anchor{transition:none}.surfacing *,.human-expanded #focus-panel{animation:none!important}}
.human-label{height:106px;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}.human-label[hidden]{display:none}
.human-bubble:hover .human-anchor,.human-bubble:focus-within .human-anchor{width:12px;height:12px;left:-6px;top:-6px}.human-expanded .spectrum:empty{display:none}.human-expanded .detail-copy{max-width:260px}
.bubble-location{margin:20px 0 14px}.bubble-location>small,.composer-title{font-size:9px;letter-spacing:1px;color:#77776e}.bubble-location>div{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:12px}.bubble-location button{font-size:10px;padding:0}.bubble-location select{margin-top:12px;width:100%;border:1px solid #d6d6ce;background:#f7f7f4;font:12px Arial;padding:8px}.bubble-validation{font-size:11px;line-height:1.4;color:#57068c;margin:10px 0 0}.bubble-validation:empty{display:none}.own-current-text{font-size:17px;line-height:1.4;margin:17px 0}.own-bubble-actions{display:flex;flex-wrap:wrap;gap:15px;margin:22px 0}.own-bubble-actions button,#bubble-composer [data-close]{font-size:10px;padding:0}.own-confirm{font-size:17px;line-height:1.4;margin:0 0 15px}.human-expanded .bubble-place{font-size:10px;color:#77776e;margin:0 0 15px}#bubble-composer{max-height:calc(100dvh - 210px);overflow:auto}.composer-actions [type=submit]{white-space:nowrap}@media(max-width:699px){#bubble-composer{bottom:95px;width:calc(100vw - 36px);max-height:calc(100dvh - 180px)}}
.app-presence{display:block;font-size:10px;line-height:1.5;color:#8b8b80;margin-top:7px}.app-presence:empty,.bubble-renew:empty{display:none}.bubble-renew{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.bubble-renew small{font-size:10px;color:#85857b}.bubble-renew button{font-size:10px;color:#57068c;padding:0}.human-bubble.bubble-departing,.human-bubble.bubble-departing:hover,.human-bubble.bubble-departing:focus-within{opacity:0!important;transition:opacity 300ms;pointer-events:none!important}@media(prefers-reduced-motion:reduce){.human-bubble.bubble-departing{transition:none}}
#presence-demo{position:fixed;bottom:70px;left:20px;z-index:40;background:#f7f7f4;border:1px solid #ddd;padding:10px;font-size:11px;max-width:260px}#presence-demo button{display:block;text-align:left;padding:8px 0}#presence-demo summary{cursor:pointer}
.bubble-visibility{display:block;font-size:9px;letter-spacing:1px;margin:16px 0 10px;color:#88887c}.bubble-visibility select{display:block;width:100%;border:0;border-bottom:1px solid #d6d6ce;background:transparent;font:13px Arial;color:#111;padding:10px 0;letter-spacing:0}.blocked-people{margin:20px 0}.blocked-people h3{font-size:11px;font-weight:400}.blocked-people button{display:block;padding:8px 0;font-size:12px}
