:root{
  --paper:#efe7d6;
  --paper-2:#f7f1e6;
  --paper-3:#fffaf0;
  --ink:#173c34;
  --ink-deep:#102c27;
  --navy:#17384b;
  --muted:#706f67;
  --rouge:#bd5b3d;
  --rouge-deep:#9f482f;
  --brass:#a98d5d;
  --brass-soft:#d8c8a9;
  --sage:#bcc8b4;
  --line:#d7ccb8;
  --line-strong:#bdaE91;
  --live:#246a4f;
  --live-soft:#e2ece5;
  --soon:#a66b38;
  --shadow:0 22px 70px rgba(25,31,27,.18);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --brand:"Bodoni 72","Didot","Bodoni MT","Iowan Old Style",Georgia,serif;
  --display:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  --body:Inter,"Avenir Next","SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body,#app{height:100%;margin:0}
body{font-family:var(--body);background:var(--paper);color:var(--ink);overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(189,91,61,.22);outline-offset:3px}

/* The map is the canvas. Chrome floats on it instead of owning a band of the viewport. */
.app-header{position:fixed;z-index:1000;top:0;left:0;right:0;padding:10px 11px 0;pointer-events:none}
.masthead,.toolbox{pointer-events:auto}
.masthead{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.brand{border:0;background:transparent;color:var(--ink-deep);padding:3px 4px 2px;text-align:left;display:inline-grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;column-gap:10px;filter:drop-shadow(0 1px 0 rgba(255,250,240,.9))}
.brand-word{position:relative;grid-column:1;font-family:var(--brand);font-size:34px;line-height:.92;font-weight:700;letter-spacing:-.055em}
.brand-word::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--rouge);right:-10px;top:2px;box-shadow:0 0 0 2px rgba(239,231,214,.72)}
.brand-kicker{grid-column:1;font-size:7.5px;text-transform:uppercase;letter-spacing:.22em;font-weight:820;color:var(--ink);margin-top:5px;opacity:.7}
.avatar{width:39px;height:39px;border:1px solid rgba(23,60,52,.52);border-radius:50%;background:var(--paper-3);color:var(--ink-deep);display:grid;place-items:center;font-family:var(--brand);font-size:17px;font-weight:700;box-shadow:0 7px 22px rgba(20,31,27,.13)}
.avatar::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--rouge);transform:translate(14px,-13px);box-shadow:0 0 0 2px var(--paper-3)}

.toolbox{background:rgba(247,241,230,.95);border:1px solid rgba(169,141,93,.55);border-left:3px solid var(--ink);box-shadow:0 12px 34px rgba(26,33,29,.14);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}
.search{height:45px;display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--line);background:rgba(255,250,240,.62)}
.search-icon{position:relative;width:15px;height:15px;border:1.7px solid var(--ink);border-radius:50%}
.search-icon::after{content:"";position:absolute;width:6px;height:1.7px;background:var(--ink);right:-4px;bottom:-2px;transform:rotate(45deg);transform-origin:left center}
.search input{border:0;outline:0;background:transparent;width:100%;font-size:14px;color:var(--ink-deep);padding:0}
.search input::placeholder{color:#818078}
.search-key{font-size:7px;letter-spacing:.16em;font-weight:850;color:var(--brass);border-left:1px solid var(--line);padding-left:10px}
.filter-row{height:38px;display:flex;align-items:stretch;justify-content:space-between}
.filters{display:flex;align-items:stretch;min-width:0}
.chip{position:relative;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);padding:0 13px;font-size:10.5px;font-weight:760;letter-spacing:.01em;min-width:0}
.chip span{white-space:nowrap}
.chip::after{content:"";position:absolute;height:3px;left:12px;right:12px;bottom:-1px;background:transparent;transform:scaleX(.15);transform-origin:left center;transition:transform .18s ease,background .18s ease}
.chip.active{color:var(--ink-deep);background:rgba(255,250,240,.45)}
.chip.active::after{background:var(--rouge);transform:scaleX(1)}
.chip[data-filter="now"].active::after{background:var(--live)}
.chip[data-filter="soon"].active::after{background:var(--soon)}
.live-readout{width:57px;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:5px;border-left:1px solid var(--line);font-variant-numeric:tabular-nums}
.live-readout b{font-family:var(--brand);font-size:18px;line-height:1;color:var(--live);letter-spacing:-.04em}
.live-readout span{font-size:7px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-weight:850}

.map-wrap{position:fixed;z-index:1;inset:0;background:var(--paper);overflow:hidden}
.map-wrap #map{position:absolute;inset:0;background:var(--paper)}
.map-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:500;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
.maplibregl-map{font-family:var(--body)}
.maplibregl-canvas{outline:0}
.maplibregl-ctrl-bottom-left{z-index:560;bottom:calc(247px + var(--safe-bottom));left:6px}
.maplibregl-ctrl-attrib{font-size:7px!important;line-height:1.2!important;background:rgba(239,231,214,.89)!important;color:#67675f!important;border-top:1px solid rgba(169,141,93,.25);border-right:1px solid rgba(169,141,93,.25);border-radius:0 4px 0 0!important;box-shadow:none!important}
.maplibregl-ctrl-attrib a{color:var(--ink)!important}
.maplibregl-ctrl-attrib-button{background-color:rgba(239,231,214,.94)!important}
.map-actions{position:absolute;z-index:610;right:11px;bottom:calc(253px + var(--safe-bottom));display:grid;gap:8px;justify-items:end}
.map-action{border:1px solid rgba(23,60,52,.55);background:rgba(255,250,240,.95);color:var(--ink);box-shadow:0 9px 24px rgba(23,33,29,.16);display:grid;place-items:center}
.map-action.locate{width:41px;height:41px;border-radius:50%}
.map-action.add{width:51px;height:51px;border-radius:4px;background:var(--ink-deep);color:#fff;border-color:var(--ink-deep);grid-template-rows:29px 12px;padding-top:3px}
.map-action.add span{font-size:24px;font-weight:300;line-height:1}
.map-action.add small{font-size:6px;letter-spacing:.15em;font-weight:850;opacity:.76}
.map-legend{position:absolute;z-index:600;left:11px;bottom:calc(260px + var(--safe-bottom));display:flex;gap:12px;align-items:center;padding:7px 9px;background:rgba(239,231,214,.9);border-left:2px solid var(--brass);box-shadow:0 7px 20px rgba(26,33,29,.09);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.map-legend span{display:flex;align-items:center;gap:5px}
.map-legend em{font-style:normal;font-size:7px;text-transform:uppercase;letter-spacing:.12em;font-weight:820;color:#676a64}
.legend-marker{display:block;position:relative;width:10px;height:10px}
.legend-marker.live{background:var(--live);border-radius:2px;box-shadow:0 0 0 2px rgba(36,106,79,.13)}
.legend-marker.live::after{content:"";position:absolute;right:-2px;bottom:-2px;width:3px;height:3px;background:var(--paper-3);border:1px solid var(--live)}
.legend-marker.soon{border:1.5px solid var(--soon);border-radius:50%;background:var(--paper-3)}
.legend-marker.soon::after{content:"";position:absolute;width:4px;height:1px;background:var(--soon);left:4px;top:4px;transform:rotate(-35deg);transform-origin:left center}
.legend-marker.quiet{border:1.5px solid var(--ink);border-radius:50%;background:var(--paper-3)}
.legend-marker.quiet::after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:var(--rouge);right:-2px;top:-1px}
.map-error{height:100%;display:grid;place-content:center;gap:6px;text-align:center;padding:28px;background:var(--paper);color:var(--ink)}
.map-error strong{font-family:var(--display);font-size:23px;font-weight:600}
.map-error span{font-size:12px;color:var(--muted)}
.target-icon{position:relative;width:16px;height:16px;border:1.8px solid var(--ink);border-radius:50%}
.target-icon::before,.target-icon::after{content:"";position:absolute;background:var(--ink)}
.target-icon::before{width:23px;height:1.5px;left:-5px;top:5.5px}
.target-icon::after{width:1.5px;height:23px;left:5.5px;top:-5px}

/* One substantial typographic sheet, with asymmetry instead of decorative frames. */
.sheet{position:fixed;z-index:700;left:0;right:0;bottom:0;height:235px;max-height:78vh;background:rgba(247,241,230,.985);border-top:1px solid var(--line-strong);box-shadow:0 -18px 52px rgba(30,35,31,.16);overflow:auto;transition:height .28s cubic-bezier(.2,.82,.2,1),border-radius .28s ease;padding:0 18px calc(16px + var(--safe-bottom));border-radius:22px 22px 0 0}
.sheet.expanded{height:67vh;border-radius:28px 28px 0 0}
.sheet-rule{position:absolute;left:18px;top:0;width:83px;height:4px;background:linear-gradient(90deg,var(--rouge) 0 34%,var(--brass) 34% 68%,var(--ink) 68%)}
.grabber{position:sticky;top:0;z-index:6;width:31px;height:3px;border-radius:999px;background:#afa89c;margin:9px auto 12px}
.sheet h1,.sheet h2,.sheet h3,.modal-card h2{margin:0}
.sheet h1,.modal-card h2{font-family:var(--display);font-weight:600;letter-spacing:-.042em}
.eyebrow{color:var(--rouge-deep);font-weight:820;font-size:8px;text-transform:uppercase;letter-spacing:.17em;margin-bottom:6px}
.muted{color:var(--muted)}

.home-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;padding:0 0 9px;border-bottom:1px solid var(--line)}
.home-title h1{font-size:30px;line-height:.98}
.home-title .eyebrow{margin-bottom:5px}
.home-live{display:flex;align-items:baseline;gap:5px;padding-bottom:2px}
.home-live b{font-family:var(--brand);font-size:30px;color:var(--live);font-weight:700;line-height:.8;letter-spacing:-.05em}
.home-live span{font-size:7px;text-transform:uppercase;letter-spacing:.14em;font-weight:850;color:var(--muted)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:720;color:var(--muted);white-space:nowrap}
.dot{width:6px;height:6px;border-radius:50%;background:#aaa79e;flex:0 0 auto}
.dot.live{background:var(--live);box-shadow:0 0 0 4px rgba(36,106,79,.10)}
.dot.soon{background:var(--soon)}
.place-list{display:grid}
.place-card{position:relative;width:100%;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;color:var(--ink);border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 1px 9px 0;min-height:62px}
.place-card:last-child{border-bottom:0}
.place-index{font-family:var(--brand);font-size:16px;color:var(--brass);font-variant-numeric:tabular-nums;letter-spacing:-.03em;align-self:start;padding-top:2px}
.place-copy{min-width:0}
.place-card strong{display:block;font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-.028em;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.place-meta{margin-top:3px;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.place-card .status{font-size:9px;margin-top:5px;color:var(--ink)}
.place-arrow{font-family:var(--brand);font-size:21px;color:var(--rouge);padding-right:1px;transition:transform .14s ease}
.place-card:hover .place-arrow{transform:translate(2px,-1px)}
.place-card.live-place{margin-left:-18px;width:calc(100% + 36px);padding-left:18px;padding-right:18px;background:linear-gradient(90deg,rgba(226,236,229,.9),rgba(226,236,229,.17) 72%,transparent)}
.place-card.live-place::before{content:"NU";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--live);overflow:hidden;text-indent:-999px}
.home-footer{display:none}
.empty{text-align:left;padding:17px 0 5px}
.empty strong{display:block;font-family:var(--display);font-size:19px;margin-bottom:4px}

.sheet-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:0 0 8px;border-bottom:1px solid var(--line)}
.sheet-head h1{font-size:31px;line-height:.98}
.sheet.expanded .sheet-head h1{font-size:34px}
.sheet-head .close-control{border:0;background:transparent;color:var(--muted);font-family:var(--brand);font-size:25px;padding:0 1px;line-height:1}
.hero-status{margin:8px 0 0}
.hero-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:13px;padding-bottom:13px;border-bottom:1px solid var(--line-strong)}
.button{border:1px solid transparent;border-radius:5px;padding:10px 13px;font-weight:760;font-size:12px;background:#e9e2d5;color:var(--ink);min-height:41px}
.button.primary{background:var(--ink-deep);color:#fff;border-color:var(--ink-deep);box-shadow:none}
.button.outline{background:transparent;border:1px solid var(--line)}
.button.full{width:100%}
.hero-actions .button.primary{position:relative;text-align:left;font-size:13.5px;padding:12px 42px 12px 14px;letter-spacing:.005em}
.hero-actions .button.primary::after{content:"→";position:absolute;right:14px;top:50%;transform:translateY(-53%);font-family:var(--brand);font-size:22px;font-weight:400}
.hero-actions .button:not(.primary){background:transparent;color:var(--ink);border:0;border-radius:0;padding:5px 1px;min-height:auto;font-size:10px;text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:4px}

.activity-card{position:relative;margin:0;padding:13px 0 12px 16px;border-bottom:1px solid var(--line);background:transparent}
.activity-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:var(--live)}
.activity-card.upcoming::before{background:var(--soon)}
.activity-card.quiet-card::before{background:var(--brass)}
.activity-row{display:flex;justify-content:space-between;gap:12px;align-items:start}
.activity-row strong{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-.022em}
.activity-row .button{min-height:35px;padding:8px 11px;font-size:10.5px;white-space:nowrap;border-radius:4px}
.activity-time{font-size:9.5px;color:var(--muted);margin-top:2px}
.tag-row{display:flex;gap:0;flex-wrap:wrap;margin-top:7px;color:var(--ink)}
.tag{font-size:8.8px;padding:0 8px 0 0;background:transparent;color:inherit;font-weight:710}
.tag+.tag::before{content:"·";margin-right:8px;color:var(--rouge)}
.activity-note{margin-top:8px;font-size:10.5px;line-height:1.45;color:#3d4b46}
.details-grid{display:grid;grid-template-columns:repeat(4,1fr);margin:12px 0 7px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail{padding:9px 8px 9px 0;min-width:0}
.detail+.detail{border-left:1px solid var(--line);padding-left:8px}
.detail span{display:block;color:var(--muted);font-size:6.8px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail strong{display:block;font-family:var(--display);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet p{font-size:10.5px;line-height:1.5;margin:9px 0 0;color:#3d4945}

/* Forms: editorial rhythm, native controls, one anchor action. */
dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none}
dialog::backdrop{background:rgba(13,30,27,.49);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.modal-card{position:fixed;left:0;right:0;bottom:0;width:100vw;max-height:91vh;overflow:auto;border:0;border-top:1px solid var(--line-strong);border-radius:28px 28px 0 0;background:var(--paper-2);padding:29px 20px calc(20px + var(--safe-bottom));color:var(--ink);box-shadow:0 -24px 70px rgba(11,28,24,.28)}
.modal-card::before{content:"";position:absolute;left:20px;top:0;width:88px;height:4px;background:linear-gradient(90deg,var(--rouge) 0 34%,var(--brass) 34% 68%,var(--ink) 68%)}
.modal-card::after{content:"";display:block;position:absolute;top:10px;left:50%;width:31px;height:3px;background:#afa89c;border-radius:999px;transform:translateX(-50%)}
.modal-card h2{font-size:30px;line-height:.98;text-align:left;margin-top:8px;max-width:85%}
.modal-card>p{font-size:11px;line-height:1.5;margin:9px 0 17px;text-align:left;max-width:440px;color:var(--muted)}
.field{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:end;margin-top:10px;border-bottom:1px solid var(--line)}
.field label{font-size:7px;font-weight:820;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);padding:0 0 10px}
.field input,.field select,.field textarea{width:100%;border:0;border-radius:0;background:transparent;padding:8px 0 9px;font-size:13px;color:var(--ink);outline:none;min-width:0}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:inset 0 -2px var(--ink)}
.field textarea{min-height:62px;resize:vertical}
.check-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;padding:0 0 3px 98px}
.check-row label{display:flex;gap:7px;align-items:center;font-size:10.5px}
.check-row input{accent-color:var(--ink);width:16px;height:16px}
.modal-actions{display:grid;grid-template-columns:auto 1fr;gap:13px;margin-top:18px;border-top:1px solid var(--line-strong);padding-top:13px}
.modal-actions .button:first-child{background:transparent;border:0;text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:4px;padding-left:0;text-align:left}
.modal-actions .button.primary{position:relative;text-align:left;font-size:13px;padding-right:39px}
.modal-actions .button.primary::after{content:"→";position:absolute;right:13px;font-family:var(--brand);font-size:20px;top:50%;transform:translateY(-52%)}
.hint{font-size:8.8px;color:var(--muted);margin-top:10px;font-variant-numeric:tabular-nums;padding-left:98px}
.pin-mode{position:fixed;z-index:1200;top:152px;left:11px;right:11px;background:var(--ink-deep);color:white;padding:10px 13px;border-left:4px solid var(--rouge);font-size:10px;font-weight:760;box-shadow:var(--shadow);letter-spacing:.01em}
#toast{position:fixed;z-index:2000;left:50%;bottom:calc(247px + var(--safe-bottom));transform:translate(-50%,10px);background:var(--ink-deep);color:#fff;border-left:3px solid var(--rouge);padding:10px 13px;font-size:9.5px;opacity:0;pointer-events:none;transition:.18s;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis;box-shadow:0 10px 32px rgba(15,29,25,.2)}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* Marker language: live = placard, soon = timed ticket, quiet = boule. Shape carries status. */
.boule-marker{position:relative;border:0;background:transparent;padding:0;overflow:visible;cursor:pointer;filter:drop-shadow(0 7px 8px rgba(20,32,28,.21));transition:transform .16s ease;transform-origin:50% 100%}
.boule-marker:hover,.boule-marker:focus-visible{transform:translateY(-2px) scale(1.03)}
.boule-marker:focus-visible{outline:0}
.boule-marker.selected{z-index:12!important;transform:scale(1.06)}
.marker-label{position:absolute;left:calc(100% + 6px);top:4px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(255,250,240,.97);border-left:3px solid var(--rouge);padding:5px 7px 5px 6px;color:var(--ink-deep);font-family:var(--display);font-size:11px;font-weight:600;box-shadow:0 6px 18px rgba(20,31,27,.14)}

.boule-marker.live{width:44px;height:52px}
.marker-live{position:absolute;left:2px;top:1px;width:40px;height:42px;background:var(--live);color:#fff;border:2.5px solid var(--paper-3);border-radius:3px;display:grid;grid-template-rows:16px 1fr;place-items:center;box-shadow:0 0 0 3px rgba(36,106,79,.22),0 8px 18px rgba(16,44,39,.22)}
.marker-live::after{content:"";position:absolute;left:13px;bottom:-8px;width:11px;height:11px;background:var(--live);border-right:2.5px solid var(--paper-3);border-bottom:2.5px solid var(--paper-3);transform:rotate(45deg);border-radius:0 0 2px 0}
.marker-live::before{content:"";position:absolute;right:-4px;top:-4px;width:6px;height:6px;border-radius:50%;background:var(--rouge);box-shadow:0 0 0 2px var(--paper-3)}
.marker-live small{font-size:6.4px;letter-spacing:.16em;font-weight:900;opacity:.82;margin-top:3px}
.marker-live b{font-family:var(--brand);font-size:20px;line-height:.8;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.05em;margin-top:-2px}
.boule-marker.live:not(.selected) .marker-live{animation:live-breathe 2.2s ease-in-out infinite}
@keyframes live-breathe{0%,100%{box-shadow:0 0 0 3px rgba(36,106,79,.16),0 0 0 7px rgba(36,106,79,.05)}50%{box-shadow:0 0 0 3px rgba(36,106,79,.19),0 0 0 12px rgba(36,106,79,.01)}}

.boule-marker.soon{width:56px;height:42px}
.marker-soon{position:absolute;left:1px;top:2px;min-width:53px;height:30px;background:var(--paper-3);border:2.2px solid var(--soon);color:var(--soon);display:flex;align-items:center;justify-content:center;padding:0 7px;border-radius:3px;font-size:9.6px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.02em;box-shadow:0 6px 16px rgba(76,55,34,.18)}
.marker-soon::before{content:"";position:absolute;left:8px;bottom:-6px;width:9px;height:9px;background:var(--paper-3);border-right:2.2px solid var(--soon);border-bottom:2.2px solid var(--soon);transform:rotate(45deg)}
.marker-soon::after{content:"";position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:var(--rouge);box-shadow:0 0 0 1px var(--paper-3)}

.boule-marker.quiet{width:31px;height:38px;filter:drop-shadow(0 4px 5px rgba(20,32,28,.15))}
.marker-quiet{position:absolute;left:3px;top:2px;width:25px;height:25px;border-radius:50%;background:rgba(255,250,240,.97);border:1.8px solid var(--ink);display:grid;place-items:center}
.marker-quiet::before{content:"";position:absolute;left:8px;bottom:-6px;width:8px;height:8px;background:var(--paper-3);border-right:1.8px solid var(--ink);border-bottom:1.8px solid var(--ink);transform:rotate(45deg);z-index:-1}
.marker-quiet::after{content:"";width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink);box-shadow:6px 5px 0 -3px var(--rouge)}
.boule-marker.selected .marker-live,.boule-marker.selected .marker-soon,.boule-marker.selected .marker-quiet{box-shadow:0 0 0 3px var(--paper-3),0 0 0 5px var(--rouge)}
.user-location-marker{width:15px;height:15px;border-radius:50%;background:var(--paper-3);border:3px solid var(--navy);box-shadow:0 0 0 5px rgba(23,56,75,.14),0 4px 12px rgba(24,35,31,.2)}

@media(max-height:760px){
  .brand-word{font-size:31px}.brand-kicker{display:none}.toolbox{margin-top:-2px}.sheet{height:218px}.sheet.expanded{height:69vh}.map-actions{bottom:236px}.map-legend{bottom:243px}.maplibregl-ctrl-bottom-left{bottom:231px}#toast{bottom:232px}.pin-mode{top:141px}
}
@media(max-width:370px){
  .brand-word{font-size:31px}.chip{padding:0 9px}.chip::after{left:8px;right:8px}.live-readout{width:49px}.search-key{display:none}.search{grid-template-columns:20px 1fr}.details-grid{grid-template-columns:1fr 1fr}.detail:nth-child(3){border-left:0;border-top:1px solid var(--line)}.detail:nth-child(4){border-top:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(min-width:760px){
  .app-header{width:330px;bottom:0;right:auto;padding:20px 0 0;background:rgba(247,241,230,.965);border-right:1px solid var(--line-strong);box-shadow:8px 0 34px rgba(24,30,27,.08);backdrop-filter:blur(12px)}
  .masthead{padding:0 20px 14px;margin:0}.brand-word{font-size:38px}.brand-kicker{display:block}.toolbox{border-left:0;border-right:0;box-shadow:none;background:transparent;backdrop-filter:none}.search{margin:0 20px;border:1px solid var(--line-strong)}.filter-row{margin-top:9px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.filters{flex:1}.chip{flex:1;padding:0 8px}.live-readout{width:58px}
  .map-wrap{left:330px}.sheet{left:354px;right:auto;bottom:26px;width:390px;height:300px;border:1px solid var(--line-strong);border-radius:24px;padding:0 22px 20px;box-shadow:var(--shadow)}.sheet.expanded{height:min(690px,calc(100vh - 52px));border-radius:24px}.sheet-rule{left:22px}.grabber{display:none;margin-top:16px}.home-intro{padding-top:20px}.home-title h1{font-size:34px}.place-card.live-place{margin-left:-22px;width:calc(100% + 44px);padding-left:22px;padding-right:22px}.map-actions{bottom:28px;right:28px}.map-legend{left:auto;right:93px;bottom:31px}.maplibregl-ctrl-bottom-left{bottom:7px}#toast{bottom:34px}.pin-mode{left:50%;right:auto;top:24px;transform:translateX(-50%);width:auto;white-space:nowrap}
  dialog[open]{display:grid;place-items:center;width:100vw;height:100vh}.modal-card{position:relative;left:auto;right:auto;bottom:auto;width:min(540px,90vw);border:1px solid var(--line-strong);border-radius:24px;padding:33px 32px 27px;margin:auto;box-shadow:0 30px 90px rgba(9,25,21,.28)}.modal-card::before{left:32px}.modal-card h2{font-size:36px}.field{grid-template-columns:110px 1fr}.check-row,.hint{padding-left:120px}
}
.grabber{touch-action:none;cursor:ns-resize}
.sheet.dragging{transition:none;user-select:none}

/* v0.6.1 adjustments: desktop/tablet uses the full left rail, not a floating mini-sheet. */
@media(min-width:760px){
  .app-header{width:356px;right:auto;bottom:auto;padding:20px 0 0;background:rgba(247,241,230,.965);border-right:1px solid var(--line-strong);box-shadow:8px 0 34px rgba(24,30,27,.08);backdrop-filter:blur(12px)}
  .masthead{padding:0 20px 14px;margin:0}
  .toolbox{border-left:0;border-right:0;box-shadow:none;background:transparent;backdrop-filter:none}
  .search{margin:0 20px;border:1px solid var(--line-strong)}
  .filter-row{margin-top:9px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .filters{flex:1}
  .chip{flex:1;padding:0 8px}
  .live-readout{width:58px}

  .map-wrap{left:356px}
  .sheet{left:0;right:auto;top:152px;bottom:0;width:356px;height:auto;max-height:none;border-top:0;border-right:1px solid var(--line-strong);border-radius:0;padding:0 20px calc(20px + var(--safe-bottom));box-shadow:none;background:rgba(247,241,230,.965)}
  .sheet.expanded{height:auto;border-radius:0}
  .sheet-rule,.grabber{display:none}
  .home-intro{padding-top:18px}
  .home-title h1{font-size:34px}
  .place-card.live-place{margin-left:-20px;width:calc(100% + 40px);padding-left:20px;padding-right:20px}
  .sheet-head h1{font-size:34px}
  .sheet.expanded .sheet-head h1{font-size:36px}

  .map-actions{bottom:28px;right:28px}
  .map-legend{left:auto;right:93px;bottom:31px}
  .maplibregl-ctrl-bottom-left{bottom:7px}
  #toast{left:auto;right:28px;transform:none;bottom:34px}
  .pin-mode{left:50%;right:auto;top:24px;transform:translateX(-50%);width:auto;white-space:nowrap}
}

/* v0.6.2 — atlas rail + map-anchored details */
.map-detail{display:none}

/* Zoom hierarchy: activity stays legible first; quiet places recede at regional scales. */
body[data-map-scale="regional"] .boule-marker.quiet .marker-quiet{transform:scale(.68);transform-origin:50% 100%;opacity:.68}
body[data-map-scale="regional"] .boule-marker.soon .marker-soon{transform:scale(.94);transform-origin:50% 100%}
body[data-map-scale="regional"] .boule-marker.live .marker-live{transform:scale(1);transform-origin:50% 100%}
body[data-map-scale="city"] .boule-marker.quiet .marker-quiet{transform:scale(.84);transform-origin:50% 100%;opacity:.84}

@media(min-width:760px){
  :root{--rail-w:360px;--rail-head:180px}
  .app-header{width:var(--rail-w);height:var(--rail-head);bottom:auto;padding:18px 0 0;background:rgba(247,241,230,.975);border-right:1px solid var(--line-strong);box-shadow:9px 0 30px rgba(24,30,27,.07);backdrop-filter:blur(14px)}
  .masthead{padding:0 22px 13px;margin:0}
  .brand-word{font-size:39px}
  .brand-kicker{letter-spacing:.24em}
  .avatar{width:40px;height:40px}
  .toolbox{border:0;border-top:1px solid rgba(169,141,93,.28);box-shadow:none;background:transparent;backdrop-filter:none}
  .search{margin:11px 18px 0;height:43px;border:1px solid var(--line-strong);background:rgba(255,250,240,.58)}
  .filter-row{margin-top:9px;height:39px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .filters{flex:1}
  .chip{flex:1;padding:0 8px;font-size:10px}
  .chip::after{height:2px}
  .live-readout{width:62px}

  .map-wrap{left:var(--rail-w)}
  .sheet{left:0;right:auto;top:var(--rail-head);bottom:0;width:var(--rail-w);height:auto;max-height:none;border:0;border-right:1px solid var(--line-strong);border-radius:0;padding:0 22px 28px;box-shadow:none;background:rgba(247,241,230,.975);scrollbar-width:thin;scrollbar-color:var(--brass-soft) transparent}
  .sheet.expanded{height:auto;border-radius:0}
  .sheet-rule,.grabber{display:none}
  .home-intro{padding:20px 0 13px;align-items:end}
  .home-title h1{font-size:34px;line-height:.94;max-width:225px}
  .home-live{padding-bottom:2px}
  .home-live b{font-size:31px}
  .place-list{padding-bottom:20px}
  .place-card{min-height:72px;padding:11px 3px 11px 0;grid-template-columns:34px minmax(0,1fr) 22px;transition:background .14s ease,color .14s ease}
  .place-card strong{font-size:18px}
  .place-index{font-family:var(--display);font-size:13px;color:var(--brass);font-variant-numeric:oldstyle-nums}
  .place-card.live-place{margin-left:-22px;width:calc(100% + 44px);padding-left:22px;padding-right:22px;background:linear-gradient(90deg,rgba(226,236,229,.74),rgba(226,236,229,.13) 76%,transparent)}
  .place-card.selected-place{margin-left:-22px;width:calc(100% + 44px);padding-left:22px;padding-right:22px;background:rgba(255,250,240,.88);box-shadow:inset 3px 0 var(--rouge)}
  .place-card.selected-place .place-arrow{transform:translate(2px,-1px)}
  .place-meta{font-size:9px}
  .place-card .status{font-size:8.8px}

  .map-detail{position:absolute;z-index:690;display:block;width:min(390px,calc(100% - 36px));overflow:visible;padding:21px 21px 18px;background:rgba(247,241,230,.975);border:1px solid rgba(169,141,93,.72);border-radius:9px;color:var(--ink);box-shadow:0 20px 58px rgba(15,29,25,.23),0 2px 0 rgba(255,250,240,.7) inset;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);scrollbar-width:thin;scrollbar-color:var(--brass-soft) transparent}
  .map-detail[hidden]{display:none!important}
  .map-detail-inner{max-height:calc(100vh - 78px);overflow:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--brass-soft) transparent}
  .map-detail::before{content:"";position:absolute;left:20px;right:20px;top:0;height:3px;background:linear-gradient(90deg,var(--rouge) 0 26%,var(--brass) 26% 56%,var(--ink) 56% 78%,transparent 78%)}
  .map-detail::after{content:"";position:absolute;top:var(--anchor-y,58px);width:16px;height:16px;background:rgba(247,241,230,.985);transform:translateY(-50%) rotate(45deg);box-shadow:-1px 1px 0 rgba(169,141,93,.72)}
  .map-detail[data-side="right"]::after{left:-9px}
  .map-detail[data-side="left"]::after{right:-9px;box-shadow:1px -1px 0 rgba(169,141,93,.72)}
  .map-detail .sheet-head{padding:3px 0 10px}
  .map-detail .sheet-head h1{font-size:31px;line-height:.96;max-width:295px}
  .map-detail .eyebrow{font-size:7px;letter-spacing:.17em}
  .map-detail .hero-actions{margin-top:12px;padding-bottom:12px}
  .map-detail .activity-card{padding-top:12px;padding-bottom:11px}
  .map-detail .activity-row strong{font-size:17px}
  .map-detail .details-grid{margin-top:10px}
  .map-detail p{font-size:10px;line-height:1.48;margin:9px 0 0;color:#3d4945}
  .map-detail .close-control{font-size:24px}

  .map-actions{bottom:28px;right:28px}
  .map-legend{left:auto;right:93px;bottom:31px;background:rgba(247,241,230,.9)}
  .maplibregl-ctrl-bottom-left{bottom:7px}
  #toast{left:auto;right:28px;transform:none;bottom:34px}
  .pin-mode{left:calc(var(--rail-w) + (100vw - var(--rail-w))/2);right:auto;top:24px;transform:translateX(-50%);width:auto;white-space:nowrap}
}

@media(min-width:760px) and (max-width:1040px){
  :root{--rail-w:330px}
  .brand-word{font-size:36px}
  .map-detail{width:340px;padding:19px 18px 17px}
  .map-detail .sheet-head h1{font-size:28px;max-width:250px}
  .map-detail .details-grid{grid-template-columns:1fr 1fr}
  .map-detail .detail:nth-child(3){border-left:0;border-top:1px solid var(--line)}
  .map-detail .detail:nth-child(4){border-top:1px solid var(--line)}
}

/* v0.8 community layer: favorites, ratings, enrichment, and denser search. */
.favorite-filter{width:39px;min-width:39px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;color:var(--brass);font-family:var(--brand);font-size:19px;line-height:1;display:grid;place-items:center;position:relative}
.favorite-filter.active{color:var(--rouge);background:rgba(255,250,240,.5)}
.favorite-filter.active::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;background:var(--rouge)}
.favorite-glyph{color:var(--rouge);font-family:var(--brand);font-size:.68em;vertical-align:.08em}
.place-locality{font-size:9px;color:var(--muted);margin-top:4px;letter-spacing:.01em}
.head-controls{display:flex;align-items:flex-start;gap:7px}
.favorite-control{width:31px;height:31px;border:1px solid var(--line);background:transparent;color:var(--brass);font-family:var(--brand);font-size:20px;display:grid;place-items:center;padding:0;line-height:1}
.favorite-control.active{color:var(--rouge);border-color:rgba(189,91,61,.5);background:rgba(189,91,61,.05)}
.rating-row{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:10px 0;border-bottom:1px solid var(--line)}
.rating-row>div:first-child{min-width:0}
.rating-label{display:block;font-size:6.8px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:2px}
.rating-row strong{font-family:var(--display);font-size:13px;font-weight:600}
.rating-stars{display:flex;gap:1px;white-space:nowrap}
.rating-star{border:0;background:transparent;color:#b7ad9b;font-family:var(--brand);font-size:18px;line-height:1;padding:2px;transition:transform .12s ease,color .12s ease}
.rating-star:hover{transform:translateY(-1px);color:var(--brass)}
.rating-star.active{color:var(--rouge)}
.community-edit-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.community-edit-row span{font-size:7.5px;color:var(--muted)}
.text-action{border:0;background:transparent;color:var(--ink);padding:0;font-size:9.5px;font-weight:720;text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:4px}

@media(max-width:430px){
  .favorite-filter{width:35px;min-width:35px;font-size:17px}
  .chip{padding-left:9px;padding-right:9px}
  .rating-row{align-items:flex-end}
  .rating-star{font-size:17px}
}
@media(min-width:760px){
  .favorite-filter{width:40px;min-width:40px}
  .map-detail .rating-row{padding:9px 0}
  .map-detail .rating-star{font-size:16px}
  .map-detail .community-edit-row{margin-top:9px}
}
.access-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0 0;font-size:8px;color:var(--muted)}
.access-line span{text-transform:uppercase;letter-spacing:.13em}
.access-line strong{font-family:var(--display);font-size:11px;color:var(--ink);font-weight:600}
.access-line.restricted strong{color:var(--rouge-deep)}

/* Launch identity: accounts are optional; this note should read as reassurance, not a login gate. */
.account-note{margin-top:12px;padding:10px 12px;border-left:2px solid var(--brass);background:rgba(255,250,240,.48);font-size:9.5px;line-height:1.45;color:var(--muted)}
.account-note strong{color:var(--ink);font-weight:760}

/* v1.0 RC — launch UX pass */
.rail-footer{padding:12px 0 2px;border-top:1px solid var(--line);margin-top:2px}
.rail-footer a,.profile-links a{color:var(--muted);font-size:9px;text-decoration:none;border-bottom:1px solid var(--brass-soft);padding-bottom:2px}
.rail-footer a:hover,.profile-links a:hover{color:var(--ink)}
.profile-links{margin-top:15px;padding:11px 0 0;border-top:1px solid var(--line)}
.profile-links a{font-size:10.5px;color:var(--ink)}
.community-edit-row .text-action{font-family:inherit}
a.text-action{color:var(--muted);text-decoration-color:var(--line-strong)}
.map-action.locating,.map-action:disabled{cursor:wait;opacity:.76}
.map-action.locating .target-icon{animation:locating-pulse 1s ease-in-out infinite}
@keyframes locating-pulse{50%{transform:scale(.74);opacity:.5}}

/* The launch logo needs to remain a title, even when navy water is directly behind it. */
@media(max-width:759px){
  .app-header{padding:7px 9px 0}
  .masthead{margin-bottom:5px;align-items:flex-start}
  .brand{background:rgba(247,241,230,.94);border:1px solid rgba(169,141,93,.48);border-left:3px solid var(--rouge);border-radius:4px;padding:6px 11px 6px 8px;box-shadow:0 7px 22px rgba(20,31,27,.12);filter:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .brand-word{font-size:30px;letter-spacing:-.05em}
  .brand-kicker{display:none}
  .avatar{width:37px;height:37px;font-size:16px;box-shadow:0 6px 18px rgba(20,31,27,.12)}
  .toolbox{border-left-width:2px;box-shadow:0 8px 24px rgba(26,33,29,.12)}
  .search{height:42px;grid-template-columns:19px 1fr;gap:9px;padding:0 11px}
  .search-key{display:none}
  .filter-row{height:34px}
  .filters{flex:1}
  .chip{flex:1;padding:0 7px;font-size:10px}
  .chip::after{left:7px;right:7px;height:2px}
  .favorite-filter{width:36px;min-width:36px}
  .live-readout{display:none}

  .sheet{height:214px;border-radius:18px 18px 0 0;padding-left:16px;padding-right:16px}
  .sheet.expanded{height:72vh;border-radius:24px 24px 0 0}
  .sheet-rule{left:16px;width:70px;height:3px}
  .grabber{margin:7px auto 9px}
  .home-intro{gap:10px;padding-bottom:7px}
  .home-title h1{font-size:27px}
  .home-live b{font-size:26px}
  .eyebrow{font-size:7.4px;margin-bottom:4px}
  .place-card{min-height:58px;padding-top:8px;padding-bottom:8px;grid-template-columns:29px minmax(0,1fr) auto}
  .place-card strong{font-size:17px}
  .place-meta{font-size:9px}
  .place-card.live-place{margin-left:-16px;width:calc(100% + 32px);padding-left:16px;padding-right:16px}
  .rail-footer{padding-top:8px}

  .map-actions{bottom:calc(231px + var(--safe-bottom));right:9px}
  .map-legend{bottom:calc(237px + var(--safe-bottom));left:9px;padding:6px 8px;gap:9px}
  .maplibregl-ctrl-bottom-left{bottom:calc(221px + var(--safe-bottom))}
  #toast{bottom:calc(226px + var(--safe-bottom))}
  .pin-mode{top:126px;left:9px;right:9px}

  .modal-card{border-radius:22px 22px 0 0;padding-left:18px;padding-right:18px}
  .modal-card h2{font-size:28px}
  .modal-card>p{font-size:11.5px}
}

/* Prevent Safari/iOS from viewport-zooming form controls on focus. */
@media(hover:none) and (pointer:coarse){
  .search input,.field input,.field select,.field textarea{font-size:16px!important}
}

/* RC1 polish — navigation clarity and faster-feeling touch interactions. */
:root{--sheet-rest:214px}
html,body{overscroll-behavior:none}
button,.place-card,.chip,.favorite-filter,.map-action,.avatar,.brand{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.sheet{transition:height .22s cubic-bezier(.2,.82,.2,1),border-radius .22s ease;overscroll-behavior:contain;scrollbar-gutter:stable}
.place-card:active,.chip:active,.favorite-filter:active,.map-action:active,.avatar:active{transform:translateY(1px)}
.place-card:active{background:rgba(255,250,240,.72)}
.map-action.locate{width:45px;height:45px}
.detail-back{display:none}

@media(max-width:759px){
  .sheet{height:var(--sheet-rest)}
  /* Marker shapes and list status already explain state; removing the permanent legend gives the map room. */
  .map-legend{display:none}
  .detail-back{position:sticky;top:-1px;z-index:5;display:inline-flex;align-items:center;min-height:36px;margin:0 0 8px -2px;padding:4px 5px 4px 2px;border:0;border-bottom:1px solid var(--brass-soft);background:rgba(247,241,230,.985);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.01em}
  .sheet.expanded .sheet-head{padding-top:2px}
  .sheet.expanded .sheet-head h1{font-size:31px}
  .hero-actions{margin-top:11px;gap:9px}
  .hero-actions .button.primary{min-height:44px}
  .map-actions{bottom:calc(var(--sheet-rest) + 17px + var(--safe-bottom))}
  .maplibregl-ctrl-bottom-left{bottom:calc(var(--sheet-rest) + 7px + var(--safe-bottom))}
  #toast{bottom:calc(var(--sheet-rest) + 12px + var(--safe-bottom))}
}

@media(max-width:390px){
  .brand-word{font-size:29px}
  .chip{font-size:9.6px;padding-left:6px;padding-right:6px}
  .favorite-filter{width:34px;min-width:34px}
}

/* RC4 — selectable Mediterranean palette; component geometry stays identical. */
html[data-theme="mediterranean"]{
  --paper:#fff4d6;
  --paper-2:#fff9e8;
  --paper-3:#fffdf3;
  --ink:#245b50;
  --ink-deep:#16483f;
  --navy:#2f7892;
  --muted:#756f62;
  --rouge:#d86f4a;
  --rouge-deep:#bd5b3e;
  --brass:#caa35d;
  --brass-soft:#ead6aa;
  --sage:#d0dcae;
  --line:#e5d5b7;
  --line-strong:#cdb587;
  --live:#2f7c5c;
  --live-soft:#e8f2df;
  --soon:#d17b35;
  --shadow:0 22px 70px rgba(53,72,57,.14);
}
html[data-theme="mediterranean"] body{background:var(--paper)}
html[data-theme="mediterranean"] .toolbox,
html[data-theme="mediterranean"] .sheet,
html[data-theme="mediterranean"] .modal-card,
html[data-theme="mediterranean"] .map-detail{background:rgba(255,249,232,.97)}
html[data-theme="mediterranean"] .search{background:rgba(255,253,243,.72)}
html[data-theme="mediterranean"] .brand{filter:drop-shadow(0 1px 0 rgba(255,253,243,.92))}
html[data-theme="mediterranean"] .maplibregl-ctrl-attrib{background:rgba(255,244,214,.90)!important}
@media(max-width:759px){
  html[data-theme="mediterranean"] .brand{background:rgba(255,249,232,.95);filter:none}
}

/* People joining are part of the game, not an anonymous counter. */
.join-list{margin-top:10px;padding:9px 0 1px;border-top:1px solid var(--line)}
.join-list-title{font-size:7px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-weight:820;margin-bottom:5px}
.join-person{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:6px 0;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.join-person:first-of-type{border-top:0}
.join-person>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.join-person strong{font-family:var(--display);font-size:14px;font-weight:600;color:var(--ink)}
.join-person>div>span{font-size:8.5px;color:var(--muted);white-space:nowrap}
.join-person p{margin:3px 0 0!important;font-size:10px!important;line-height:1.4!important;color:#495650!important;font-style:italic}
.plus-count{display:inline-block;font:800 8px/1 var(--body);color:var(--rouge);border:1px solid var(--brass-soft);padding:3px 4px;margin-left:3px;vertical-align:2px}

.location-help{display:grid;gap:8px;margin:14px 0 4px;padding:12px 13px;border-left:3px solid var(--soon);background:color-mix(in srgb,var(--paper-3) 72%,transparent)}
.location-help strong{font-family:var(--display);font-size:16px;font-weight:600}
.location-help span{font-size:11px;line-height:1.45;color:var(--ink)}
.location-help small{font-size:8px;line-height:1.4;color:var(--muted);word-break:break-word;border-top:1px solid var(--line);padding-top:7px;margin-top:2px}

/* Activity stays one visual step above ordinary places. */
.marker-live{box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 25%,transparent),0 9px 20px rgba(16,44,39,.25)}
.marker-soon{box-shadow:0 0 0 2px color-mix(in srgb,var(--soon) 12%,transparent),0 7px 18px rgba(76,55,34,.20)}
