:root {
  --paper: #f2f2ef;
  --ink: #111210;
  --muted: #6d6e69;
  --line: #d3d4cf;
  --soft: #e7e7e2;
  --white: #fbfbf8;
  --serif: Iowan Old Style, Baskerville, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ease-spring: cubic-bezier(.2, .9, .25, 1.25);
  --shadow-low: 0 8px 20px rgba(17,18,16,.08);
  --shadow-high: 0 18px 42px rgba(17,18,16,.16);
  interpolate-size: allow-keywords;
}

* { box-sizing: border-box; }
html, body { width: 100%; max-width: 100%; margin:0; min-height:100%; overflow-x: clip; overscroll-behavior-x:none; background:var(--paper); color:var(--ink); font-family:var(--sans); }
.app-shell { width: 100%; max-width: 100%; overflow-x: clip; overscroll-behavior-x:none; touch-action:pan-y; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; -webkit-tap-highlight-color: transparent; }
a { text-underline-offset: 3px; }
iconify-icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 auto; }
iconify-icon:not(:defined)::before { content: "·"; display: grid; place-items: center; width: 100%; height: 100%; font: 700 1em/1 var(--serif); }
.tag-icon { width: 1em; height: 1em; font-size: 1.18em; }
svg[data-icon] { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.app-shell { min-height: 100dvh; opacity: 1; transform: none; filter: none; transition: opacity 700ms var(--ease-out) 120ms, transform 900ms var(--ease-out) 80ms, filter 900ms var(--ease-out) 80ms; }
body.is-booting { height: 100dvh; overflow: hidden; }
body.is-booting .app-shell { visibility: hidden; opacity: 0; transform: translateY(18px) scale(.992); filter: blur(8px); }

.loading-screen { position: fixed; inset: 0; z-index: 1000; min-height: 100dvh; overflow: hidden; background: var(--card-loading-background, #0d0e0c); color: var(--card-loading-ink, #f2f2ef); clip-path: inset(0); opacity: 1; transition: clip-path 900ms cubic-bezier(.76, 0, .24, 1), opacity 720ms var(--ease-out), filter 720ms var(--ease-out); }
.loading-screen::before { content: ""; position: absolute; inset: 0; z-index: 2; opacity: .24; pointer-events: none; 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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.loading-screen.is-leaving { clip-path: inset(0 0 100% 0); opacity: 0; filter: blur(9px); pointer-events: none; }
.loading-grid { position: absolute; inset: -1px; opacity: .14; background-image: linear-gradient(rgba(242,242,239,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(242,242,239,.18) 1px, transparent 1px); background-size: clamp(48px, 8vw, 112px) clamp(48px, 8vw, 112px); -webkit-mask-image: radial-gradient(circle at 50% 44%, black, transparent 82%); mask-image: radial-gradient(circle at 50% 44%, black, transparent 82%); animation: loading-grid-drift 9s linear infinite alternate; }
.loading-orbit { position: absolute; border: 1px solid rgba(242,242,239,.12); border-radius: 50%; pointer-events: none; }
.loading-orbit::before { content: ""; position: absolute; top: 50%; left: -3px; width: 6px; height: 6px; border-radius: 50%; background: #f2f2ef; box-shadow: 0 0 22px rgba(242,242,239,.55); }
.loading-orbit-one { width: min(76vw, 910px); aspect-ratio: 1; left: 50%; top: 46%; transform: translate(-50%, -50%); animation: loading-orbit-spin 22s linear infinite; }
.loading-orbit-two { width: min(49vw, 590px); aspect-ratio: 1; left: 50%; top: 46%; transform: translate(-50%, -50%) rotate(112deg); animation: loading-orbit-spin-reverse 15s linear infinite; }
.loading-frame { position: relative; z-index: 3; width: 100%; height: 100dvh; min-height: 520px; display: grid; grid-template-rows: auto 1fr auto; padding: clamp(22px, 3vw, 48px); }
.loading-brand { display: flex; align-items: center; gap: 15px; }
.loading-mark { width: 54px; height: 54px; overflow: visible; fill: currentColor; filter: drop-shadow(0 0 24px rgba(242,242,239,.15)); }
.loading-mark path { transform-box: fill-box; transform-origin: center; animation: loading-mark-piece 1.9s var(--ease-out) infinite alternate; }
.loading-mark path:nth-child(2) { animation-delay: -1.25s; }
.loading-mark path:nth-child(3) { animation-delay: -.7s; }
.loading-mark path:nth-child(4) { animation-delay: -.2s; }
.loading-brand strong, .loading-brand span { display: block; }
.loading-brand strong { font: 30px/.9 var(--serif); letter-spacing: -.03em; }
.loading-brand span { margin-top: 7px; color: #8f908a; font-size: 8px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.loading-copy { width: min(920px, 88vw); align-self: center; justify-self: center; padding-left: clamp(0px, 5vw, 84px); }
.loading-kicker { margin: 0 0 20px; color: #9a9b95; font-size: 9px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.loading-status { max-width: 840px; min-height: 1.8em; margin: 0; font: clamp(47px, 7.5vw, 114px)/.86 var(--serif); letter-spacing: -.055em; text-wrap: balance; transition: opacity 160ms ease, transform 220ms var(--ease-out), filter 220ms ease; }
.loading-status.is-changing { opacity: .14; transform: translateY(9px); filter: blur(5px); }
.loading-progress-wrap { align-self: end; }
.loading-progress-meta { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 11px; color: #a7a8a2; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.loading-progress-meta strong { color: #f2f2ef; font: 27px/1 var(--serif); letter-spacing: -.02em; }
.loading-progress { position: relative; height: 2px; overflow: hidden; background: rgba(242,242,239,.18); }
.loading-progress i { position: absolute; inset: 0 auto 0 0; width: 0%; background: #f2f2ef; box-shadow: 0 0 18px rgba(242,242,239,.7); transition: width 260ms var(--ease-out); }
.loading-progress i { background: var(--card-accent, #f2f2ef); }
html[data-card-experience="active"] .live-dot { background: var(--card-accent, var(--ink)); }
.loading-progress i::after { content: ""; position: absolute; top: 50%; right: 0; width: 6px; height: 6px; border-radius: 50%; background: #f2f2ef; transform: translate(50%, -50%); box-shadow: 0 0 16px #f2f2ef; }
.loading-coordinates { display: flex; justify-content: space-between; gap: 14px; margin-top: 12px; color: #60615c; font-size: 7px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
@keyframes loading-grid-drift { from { transform: translate3d(-9px, -6px, 0); } to { transform: translate3d(9px, 6px, 0); } }
@keyframes loading-orbit-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes loading-orbit-spin-reverse { to { transform: translate(-50%, -50%) rotate(-248deg); } }
@keyframes loading-mark-piece { 0%, 35% { opacity: .32; transform: translate3d(var(--piece-x, 0), var(--piece-y, 7px), 0) scaleX(.72); } 78%, 100% { opacity: 1; transform: translate3d(0, 0, 0) scaleX(1); } }

.masthead { position: sticky; top: 0; z-index: 40; height: 68px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: var(--paper); }
.wordmark { border: 0; background: transparent; display: flex; align-items: center; gap: 8px; padding: 0; }
.wordmark-mark { width: 28px; height: 28px; fill: currentColor; overflow: visible; }
.wordmark-name { font: 25px/.9 var(--serif); letter-spacing: -.025em; }
.wordmark-edition { margin-left: 3px; padding-left: 10px; border-left: 1px solid var(--line); color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .15em; line-height: 23px; }
.masthead-meta { display: flex; align-items: center; gap: 20px; font-size: 12px; color: var(--muted); }
#clockLabel { display: none; }
.masthead > .results-switches { display: none; }
.admin-button { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); padding: 0 10px; color: var(--ink); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.admin-button[hidden] { display: none; }
.admin-button:hover, .admin-button:focus-visible { outline: 0; background: var(--ink); color: var(--white); }
.quiet-button { position: relative; border: 0; background: transparent; padding: 8px 0; }
.quiet-button::after { content: ""; position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; background: currentColor; transform-origin: right; }
.subscribe-button { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: var(--ink); }
.subscribe-button-mark { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.subscribe-button::after { display: none; }
.subscribe-button:hover, .subscribe-button:focus-visible { outline: 0; background: var(--soft); }
.encounter-button { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; padding: 0; color: var(--ink); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.encounter-button-mark { position: relative; width: 25px; height: 25px; display: block; border: 1px solid var(--line); border-radius: 50%; }
.encounter-button-mark::before, .encounter-button-mark::after { content: ""; position: absolute; inset: 50% auto auto 50%; background: var(--ink); transform: translate(-50%, -50%); }
.encounter-button-mark::before { width: 9px; height: 1px; }
.encounter-button-mark::after { width: 1px; height: 9px; }
.encounter-button-mark i { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: var(--ink); }
.encounter-button-mark i:nth-child(1) { top: 3px; left: 9px; }
.encounter-button-mark i:nth-child(2) { right: 4px; bottom: 5px; }
.encounter-button-mark i:nth-child(3) { bottom: 3px; left: 4px; }
.encounter-button:hover, .encounter-button:focus-visible { outline: 0; color: var(--ink); }
.encounter-button:hover .encounter-button-mark, .encounter-button:focus-visible .encounter-button-mark { border-color: var(--ink); background: var(--ink); }
.encounter-button:hover .encounter-button-mark::before, .encounter-button:hover .encounter-button-mark::after, .encounter-button:hover .encounter-button-mark i, .encounter-button:focus-visible .encounter-button-mark::before, .encounter-button:focus-visible .encounter-button-mark::after, .encounter-button:focus-visible .encounter-button-mark i { background: var(--white); }
.subscribe-dialog { width:min(700px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); overflow:auto; border:0; background:var(--paper); color:var(--ink); padding:0; box-shadow:0 24px 80px rgba(17,18,16,.3); }
.subscribe-dialog::backdrop { background:rgba(17,18,16,.48); backdrop-filter:blur(4px); }
.subscribe-dialog > article { position:relative; padding:clamp(30px,6vw,58px); }
.subscribe-dialog .dialog-close-form { position:absolute; top:14px; right:14px; }
.subscribe-form { display:grid; gap:20px; }
.subscribe-sentence { max-width:580px; margin:0 44px 10px 0; font:clamp(32px,5vw,48px)/1.02 var(--serif); letter-spacing:-.035em; }
.subscribe-scrubber { position:relative; border:0; background:transparent; padding:0 .03em; color:var(--muted); font:inherit; cursor:ew-resize; touch-action:pan-y; }
.subscribe-scrubber::after { content:""; position:absolute; right:0; bottom:-2px; left:0; height:1px; background:currentColor; transform:scaleX(.35); opacity:.45; transition:transform 180ms var(--ease-out),opacity 180ms ease; }
.subscribe-scrubber:hover::after,.subscribe-scrubber:focus-visible::after,.subscribe-scrubber.is-scrubbing::after { transform:scaleX(1); opacity:1; }
.subscribe-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.subscribe-form label > span,.subscribe-token-field > label { display:block; margin:0 0 7px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.subscribe-contact input { width:100%; min-height:46px; border:0; border-bottom:1px solid var(--ink); border-radius:0; background:transparent; padding:0; }
.subscribe-token-field { position:relative; min-width:0; }
.subscribe-token-box { min-height:48px; display:flex; flex-wrap:wrap; align-items:center; gap:6px; border-bottom:1px solid var(--ink); padding:5px 0; }
.subscribe-token-box > input { min-width:130px; min-height:36px; flex:1 1 130px; border:0; outline:0; background:transparent; padding:0; }
.subscribe-tokens { display:contents; }
.subscribe-token { max-width:100%; display:inline-flex; align-items:stretch; background:var(--soft); font-size:10px; }
.subscribe-token a { min-width:0; display:flex; align-items:center; overflow:hidden; padding:7px 8px; color:var(--ink); text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.subscribe-token button { width:31px; min-height:31px; flex:0 0 auto; border:0; background:transparent; color:var(--muted); }
.subscribe-token a:hover,.subscribe-token a:focus-visible,.subscribe-token button:hover,.subscribe-token button:focus-visible { outline:0; background:var(--ink); color:var(--white); }
.subscribe-options { position:absolute; z-index:7; top:100%; right:0; left:0; max-height:180px; overflow:auto; border:1px solid var(--ink); background:var(--paper); box-shadow:var(--shadow-high); }
.subscribe-options button { width:100%; min-height:38px; display:flex; align-items:center; justify-content:space-between; gap:10px; border:0; border-bottom:1px solid var(--line); background:transparent; padding:8px 10px; text-align:left; }
.subscribe-options button:last-child { border-bottom:0; }
.subscribe-options button:hover,.subscribe-options button:focus-visible,.subscribe-options button[aria-selected="true"] { outline:0; background:var(--ink); color:var(--white); }
.subscribe-options small { color:inherit; font-size:7px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.subscribe-submit { min-height:50px; border:0; background:var(--ink); color:var(--white); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.subscribe-submit:disabled { opacity:.45; }
.subscribe-status:empty { display:none; }
.subscribe-status { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.subscribe-honeypot { position:absolute!important; left:-9999px!important; }
.drawer-scrim { position: fixed; inset: 0; z-index: 44; background: rgba(17,18,16,.24); opacity: 0; pointer-events: none; transition: opacity 220ms ease; }
.site-drawer { position: fixed; inset: 0 auto 0 0; z-index: 45; width: min(304px, 84vw); display: grid; grid-template-rows: auto 1fr auto; overflow: visible; border-right: 1px solid var(--line); background: rgba(251,251,248,.99); color: var(--ink); transform: translateX(-102%); transition: transform 340ms var(--ease-out), width 300ms var(--ease-spring); box-shadow: 18px 0 44px rgba(0,0,0,.13); }
body.drawer-open { overflow: hidden; }
body.drawer-open .drawer-scrim { opacity: 1; pointer-events: auto; }
body.drawer-open .site-drawer { transform: translateX(0); }
.site-drawer > header { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 9px 0 16px; border-bottom: 1px solid var(--line); }
.site-drawer .drawer-brand { min-width: 0; display: inline-flex; align-items: center; gap: 10px; border: 0; background: transparent; padding: 0; color: var(--ink); }
.site-drawer .drawer-brand span { overflow: hidden; font: 600 12px/1 var(--sans); letter-spacing: .04em; white-space: nowrap; }
.drawer-brand-mark { width: 25px; height: 25px; flex: 0 0 25px; fill: currentColor; }
.drawer-header-actions { display: flex; align-items: center; gap: 0; }
.site-drawer #drawerSizeToggle, .site-drawer #drawerClose { width: 40px; height: 40px; display: grid; place-items: center; border: 0; background: transparent; color: var(--muted); padding: 0; }
.site-drawer #drawerSizeToggle svg, .site-drawer #drawerClose svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.site-drawer :is(#drawerSizeToggle, #drawerClose):is(:hover, :focus-visible) { outline: 0; background: var(--soft); color: var(--ink); }
.site-drawer nav { align-self: center; display: grid; gap: 2px; padding: 12px 10px; }
.site-drawer nav button { min-height: 48px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; border: 0; background: transparent; padding: 0 10px; color: var(--muted); text-align: left; }
.site-drawer nav button iconify-icon, .site-drawer nav button > svg { width: 21px; height: 21px; justify-self: center; font-size: 21px; }
.site-drawer nav button strong { overflow: hidden; font: 800 10px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; }
.site-drawer nav button:is(:hover, :focus-visible) { outline: 0; background: var(--soft); color: var(--ink); }
.site-drawer nav button.active { background: var(--ink); color: var(--white); }
.drawer-label { transition: opacity 150ms ease, width 250ms var(--ease-out); }
.drawer-footer { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 9px; border-top: 1px solid var(--line); }
.drawer-profile, .drawer-help, .drawer-utility-menu button { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; border: 0; background: transparent; color: var(--muted); padding: 0 10px; font: 800 9px/1 var(--sans); letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.drawer-profile iconify-icon, .drawer-utility-menu iconify-icon { width: 20px; height: 20px; flex: 0 0 20px; font-size: 20px; }
.drawer-profile:is(:hover, :focus-visible), .drawer-utility-menu button:is(:hover, :focus-visible) { outline: 0; background: var(--soft); color: var(--ink); }
.drawer-utilities { position: relative; flex: 0 0 auto; }
.drawer-help { width: 42px; justify-content: center; background: var(--ink); color: var(--white); padding: 0; font-size: 17px; }
.drawer-help:is(:hover, :focus-visible), .drawer-help[aria-expanded="true"] { outline: 0; background: var(--soft); color: var(--ink); }
.drawer-utility-menu { position: absolute; right: 0; bottom: calc(100% + 7px); z-index: 2; width: 178px; display: grid; gap: 2px; border: 1px solid var(--line); background: var(--paper); padding: 5px; box-shadow: var(--shadow-high); }
.drawer-utility-menu[hidden] { display: none; }
.drawer-utility-menu button { width: 100%; justify-content: flex-start; }
.site-drawer.is-collapsed { width: 70px; }
.site-drawer.is-collapsed > header { flex-direction: column; padding: 10px 0 8px; }
.site-drawer.is-collapsed .drawer-header-actions { flex-direction: column; }
.site-drawer.is-collapsed .drawer-label { width: 0; opacity: 0; pointer-events: none; }
.site-drawer.is-collapsed nav { width: 100%; padding: 8px; }
.site-drawer.is-collapsed nav button { grid-template-columns: 1fr; padding: 0; }
.site-drawer.is-collapsed nav button iconify-icon, .site-drawer.is-collapsed nav button > svg { justify-self: center; }
.site-drawer.is-collapsed .drawer-footer { flex-direction: column; align-items: center; padding: 8px 0; }
.site-drawer.is-collapsed .drawer-profile { width: 42px; justify-content: center; padding: 0; }
.site-drawer.is-collapsed .drawer-utility-menu { right: -4px; width: 52px; }
.site-drawer.is-collapsed .drawer-utility-menu button { justify-content: center; padding: 0; }
.campaign-preview-banner { min-height: 50px; padding: 8px 28px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); background: var(--card-accent, var(--ink)); color: var(--white); }
.campaign-preview-banner[hidden] { display: none; }
.campaign-preview-banner span { min-width: 0; display: flex; align-items: baseline; gap: 12px; }
.campaign-preview-banner strong { flex: 0 0 auto; font: 18px/1.1 var(--serif); }
.campaign-preview-banner small { overflow: hidden; opacity: .76; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.campaign-preview-banner button { flex: 0 0 auto; min-height: 34px; border: 1px solid currentColor; background: transparent; color: inherit; padding: 0 10px; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.planner { position: relative; padding: 34px 28px 18px; display: grid; grid-template-columns: minmax(240px, .8fr) minmax(520px, 1.7fr); column-gap: 50px; row-gap: 20px; align-items: end; }
.planner-intro { grid-column: 1 / -1; }
.planner-clear-field { display: none; position: absolute; z-index: 2; top: 26px; right: 28px; bottom: 18px; left: max(48%, 430px); align-items: end; justify-items: end; border: 0; background: transparent; padding: 14px; color: var(--muted); cursor: pointer; }
body.has-active-filters .planner-clear-field { display: grid; }
.planner-clear-field span { opacity: 0; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transform: translateY(5px); }
.planner-clear-field:hover, .planner-clear-field:focus-visible { outline: 0; background: var(--soft); }
.planner-clear-field:hover span, .planner-clear-field:focus-visible span { opacity: 1; transform: none; }
.planner-tools { grid-column: 1 / -1; min-width: 0; display: grid; gap: 6px; }
.eyebrow { margin: 0 0 8px; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); }
h1, h2 { font-family: var(--serif); font-weight: 400; margin: 0; }
h1 { font-size: clamp(34px, 4vw, 58px); line-height: .98; max-width: 560px; }
.planner-randomize { position: relative; isolation: isolate; width: min(100%, 380px); display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; border: 0; background: transparent; padding: 0; color: inherit; font: inherit; line-height: inherit; text-align: left; cursor: ew-resize; overflow: visible; touch-action: pan-y; }
.planner-randomize::after { content: ""; position: absolute; z-index: 0; top: -30px; right: -110px; bottom: -6px; left: -16px; background: transparent; }
.planner-randomize > span:first-child { position: relative; z-index: 1; display: block; padding: .03em 0 .1em; line-height: 1.04; transform-origin:left center; will-change:transform,filter; }
.planner-randomize.ripple-host { overflow: visible; }
.planner-randomize-die { position: absolute; z-index: -1; top: 50%; right: 6px; width: 58px; height: 58px; margin-top: -29px; display: grid; place-items: center; border: 1px solid transparent; color: var(--muted); font: .75em/1 var(--serif); opacity: 0; pointer-events: none; transform: rotate(-12deg) scale(.84); transform-origin: center; will-change: transform; transition: color 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 300ms var(--ease-out), opacity 160ms ease, transform 300ms var(--ease-spring); }
.planner-randomize-die::before { content: ""; position: absolute; inset: 7px; z-index: -1; border: 1px solid currentColor; opacity: 0; transform: rotate(45deg) scale(.2); transition: inset 360ms var(--ease-out), opacity 180ms ease, transform 420ms var(--ease-spring); }
.planner-randomize:hover, .planner-randomize:focus-visible { outline: 0; }
.planner-randomize:hover > span:first-child,.planner-randomize:focus-visible > span:first-child,.planner-randomize.is-rolling > span:first-child,.planner-randomize.is-scrubbing > span:first-child { animation:planner-headline-alive 2.2s ease-in-out infinite alternate; }
.planner-randomize:hover .planner-randomize-die, .planner-randomize:focus-visible .planner-randomize-die, .planner-randomize:active .planner-randomize-die { border-color: var(--ink); background: var(--ink); box-shadow: 7px 7px 0 var(--soft); color: var(--white); opacity: 1; transform: translate(-4px, -4px) rotate(-9deg) scale(1.08); }
.planner-randomize:hover .planner-randomize-die::before, .planner-randomize:focus-visible .planner-randomize-die::before { inset: -8px; opacity: .32; transform: rotate(135deg) scale(1); }
.planner-randomize.is-rolling .planner-randomize-die { opacity: 1; animation: dice-roll 500ms cubic-bezier(.22,.75,.2,1); }
.planner-randomize.is-scrubbing .planner-randomize-die { border-color: var(--ink); background: var(--ink); color: var(--white); opacity: 1; transform: translate(-4px, -4px) rotate(-9deg) scale(1.08); }
h1 .range-scrubber, h1 .borough-scrubber, h1 .audience-scrubber, h1 .activity-scrubber { position: relative; border: 0; background: transparent; padding: 0; color: var(--muted); font: inherit; line-height: inherit; text-align: left; touch-action: pan-y; cursor: ew-resize; user-select: none; -webkit-user-select: none; }
h1 .activity-sentence, h1 .activity-value-slot { display: block; }
h1 .activity-value-slot { height: 1.96em; min-height: 1.96em; max-height: 1.96em; overflow: hidden; }
h1 .activity-scrubber { display: inline; max-width: calc(100% - .3em); color: var(--muted); font-weight: 400; overflow-wrap: anywhere; }
h1 .activity-scrubber:not([hidden])::after, h1 .submood-sentence:not([hidden])::after { content: "."; position: static; display: inline; background: none; transform: none; }
h1 .activity-scrubber[hidden], h1 .submood-sentence[hidden] { display: none !important; }
h1 .submood-sentence { display: inline; max-width: calc(100% - .3em); color: var(--muted); font: inherit; font-weight: 400; line-height: inherit; overflow-wrap: anywhere; }
h1 .submood-word { position: relative; display: inline; border: 0; background: transparent; padding: 0 .02em; color: inherit; font: inherit; line-height: inherit; text-align: left; touch-action: pan-y; cursor: ew-resize; user-select: none; -webkit-user-select: none; }
h1 .submood-word::after { content: ""; position: absolute; right: .02em; bottom: -.02em; left: .02em; height: 2px; background: currentColor; opacity: 0; transform: scaleX(.25); transition: opacity 160ms ease, transform 240ms var(--ease-out); }
h1 .submood-word:hover, h1 .submood-word:focus-visible { outline: 0; color: var(--ink); }
h1 .submood-word:hover::after, h1 .submood-word:focus-visible::after { opacity: .55; transform: scaleX(1); }
h1 .submood-word.is-scrubbing { background: var(--ink); color: var(--white); box-shadow: .08em 0 0 var(--ink), -.08em 0 0 var(--ink); }
h1 .submood-word.is-scrubbing::after { opacity: 0; }
h1 .activity-prefix { color: var(--ink); font-weight: 400; }
h1 .audience-scrubber { color: var(--muted); }
h1 .range-scrubber::after, h1 .borough-scrubber::after, h1 .audience-scrubber::after { content: ""; position: absolute; right: 0; bottom: -3px; left: 0; height: 2px; background: var(--ink); transform: scaleX(0); transform-origin: left; }
h1 .range-scrubber:hover, h1 .range-scrubber:focus-visible, h1 .borough-scrubber:hover, h1 .borough-scrubber:focus-visible, h1 .audience-scrubber:hover, h1 .audience-scrubber:focus-visible, h1 .activity-scrubber:hover, h1 .activity-scrubber:focus-visible { color: var(--ink); outline: 0; }
h1 .range-scrubber.is-scrubbing, h1 .borough-scrubber.is-scrubbing, h1 .audience-scrubber.is-scrubbing, h1 .activity-scrubber.is-scrubbing { z-index: 1; background: var(--ink); color: var(--white); box-shadow: .1em 0 0 var(--ink), -.1em 0 0 var(--ink); outline: 0; transform: translateY(-.02em) rotate(-.6deg); }
.planner-intro, .date-rail, .activity-rail { user-select: none; -webkit-user-select: none; }
.planner-tools, .planner-tools button { user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.activity-rail-group, .activity-rail-group button { user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.planner-rail-group { position: relative; min-width: 0; display: flex; align-items: stretch; }
.planner-rail-toggle { flex: 0 0 42px; width: 42px; min-height: 42px; display: grid; place-items: center; border: 0; background: transparent; color: var(--muted); }
.planner-rail-toggle svg { width:19px; height:19px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform 280ms var(--ease-spring); }
.planner-rail-toggle:hover, .planner-rail-toggle:focus-visible { outline: 0; background: var(--ink); color: var(--white); transform: translateY(-2px); }
.planner-rail-group.is-expanded > .planner-rail-toggle:first-of-type svg { transform: rotate(-90deg); }
.date-rail { min-width: 0; flex: 1; display: flex; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; border: 0; touch-action: pan-y; cursor: ew-resize; }
.date-rail::-webkit-scrollbar { display: none; }
.date-rail.is-scrubbing { cursor: grabbing; scroll-behavior: auto; }
.date-rail.is-scrubbing .date-chip { opacity: .44; }
.date-rail.is-scrubbing .date-chip.active { opacity: 1; }
.date-chip { position: relative; flex: 1 0 120px; text-align: left; padding: 13px 12px 12px 0; border: 0; background: transparent; color: var(--muted); }
.date-chip::before { content: ""; position: absolute; top: 0; right: 12px; left: 0; height: 3px; background: var(--ink); transform: scaleX(0); transform-origin: left; }
.date-chip b, .date-chip span { display: block; }
.date-chip b { font-size: 13px; color: var(--ink); margin-bottom: 4px; }
.date-chip span { font-size: 10px; }
.date-chip:not(.active) { color: #969792; opacity: .72; }
.date-chip:not(.active) b { color: #70716c; }
.date-chip:not(.active):hover, .date-chip:not(.active):focus-visible { color: var(--ink); opacity: 1; outline: 0; }
.date-chip.active { color: var(--ink); }
.date-chip.active::before { transform: scaleX(1); }
.date-rail-group:not(.is-expanded) .date-chip:not(.active) { display:none; opacity:0; transform:translateX(-8px) scale(.94); }
.date-chip::after { content:""; display:none; width:15px; height:15px; flex:0 0 15px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15'/%3E%3Cpath d='M7.5 3v5M16.5 3v5M3.5 10h17'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15'/%3E%3Cpath d='M7.5 3v5M16.5 3v5M3.5 10h17'/%3E%3C/svg%3E") center/contain no-repeat; order:-1; }
.date-rail-group:not(.is-expanded) .date-chip.active { display:flex; flex:0 0 max-content; min-width:max-content; align-items:center; gap:5px; padding:7px 8px 7px 2px; background:transparent; color:var(--muted); white-space:nowrap; }
.date-rail-group:not(.is-expanded) .date-chip.active::after { display:block; }
.date-rail-group:not(.is-expanded) .date-chip.active b { margin:0; color:var(--ink); font:800 9px/1 var(--sans); letter-spacing:.07em; text-transform:uppercase; }
.date-rail-group:not(.is-expanded) .date-chip.active span { color:var(--muted); font-size:8px; letter-spacing:0; }
.date-rail-group:not(.is-expanded) .date-chip.active::before { display:none; animation:none; }
.date-rail-group:not(.is-expanded) .date-chip.active:hover,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible { background:var(--ink); color:var(--white); outline:0; }
.date-rail-group:not(.is-expanded) .date-chip.active:hover b,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible b,
.date-rail-group:not(.is-expanded) .date-chip.active:hover span,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible span { color:var(--white); }
.date-rail-group:not(.is-expanded) .date-chip.active:hover b,
.date-rail-group:not(.is-expanded) .date-chip.active:hover span { transform:none; }
.date-rail-group:not(.is-expanded) .planner-rail-toggle { display:none; }
.activity-rail { min-width: 0; flex: 1; display: flex; gap: 5px; overflow-x: auto; padding: 3px 0 0; scrollbar-width: none; touch-action: pan-y; cursor: ew-resize; }
.activity-rail::-webkit-scrollbar { display: none; }
.activity-chip { flex: 0 0 auto; min-height: 34px; display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; padding: 0 10px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.activity-chip .tag-icon { width: 15px; height: 15px; font-size: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.activity-chip.active { border-color: var(--ink); background: var(--ink); color: var(--white); }
.activity-rail-group:not(.is-expanded) .activity-chip:not(.active) { display:none; opacity:0; transform:translateX(-6px) scale(.96); }
.activity-rail-group:not(.is-expanded) .planner-rail-toggle { display:none; }
.activity-rail-group:not(.is-expanded) .activity-rail { overflow:hidden; padding:0; cursor:pointer; }
.activity-rail-group:not(.is-expanded) .activity-chip.active { width:100%; min-height:58px; max-width:none; justify-content:center; padding:0 10px; overflow:hidden; background:transparent; color:var(--ink); font:800 9px/1 var(--sans); letter-spacing:.07em; text-overflow:ellipsis; text-transform:uppercase; }
.activity-rail-group:not(.is-expanded) .activity-chip.active:hover,
.activity-rail-group:not(.is-expanded) .activity-chip.active:focus-visible { background:transparent; color:var(--ink); outline:0; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.activity-rail-group:not(.is-expanded) .activity-chip.active { width:auto; min-height:44px; max-width:100%; justify-content:flex-start; padding:0; }
.activity-rail.is-scrubbing { cursor: grabbing; }
.activity-rail.is-scrubbing .activity-chip { opacity: .35; }
.activity-rail.is-scrubbing .activity-chip.active { opacity: 1; transform: translateY(-2px) rotate(-1deg); }
.mood-toggle { margin-left: 1px; }
.mood-mixer { position:absolute; z-index:18; right:0; bottom:calc(100% + 6px); width:min(520px, calc(100vw - 56px)); min-width:0; display:grid; grid-template-columns:minmax(260px,1fr) auto auto; gap:6px; align-items:end; margin:0; padding:12px; background:rgba(251,251,248,.98); box-shadow:var(--shadow-high); backdrop-filter:blur(12px); }
.mood-mixer[hidden] { display:none; opacity:0; transform:translateY(8px) scale(.985); }
.mood-mixer label { min-width:0; }
.mood-mixer label > span { display:block; margin-bottom:4px; color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.mood-mixer input { width:100%; min-height:38px; border:1px solid var(--line); border-radius:0; background:var(--white); padding:0 10px; font-size:10px; }
.mood-mixer > button { min-height:38px; border:1px solid var(--ink); background:transparent; padding:0 12px; font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.mood-mixer > button[type="submit"] { background:var(--ink); color:var(--white); }
.mood-recent { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:4px; min-height:0; }
.mood-recent:empty { display:none; }
.mood-recent button { min-height:30px; border:0; background:transparent; padding:0 8px; color:var(--muted); font-size:8px; text-underline-offset:4px; }
.mood-recent button:hover, .mood-recent button:focus-visible { color:var(--ink); outline:0; text-decoration:underline; }
.mood-index-head { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:2px; color:var(--muted); font-size:7px; letter-spacing:.09em; text-transform:uppercase; }
.mood-index-head strong { color:var(--ink); }
.mood-index { grid-column:1/-1; max-height:190px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; overflow:auto; overscroll-behavior:contain; }
.mood-index > button { min-width:0; min-height:48px; display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:8px; border:0; background:var(--paper); padding:4px; color:var(--ink); text-align:left; }
.mood-index > button:hover, .mood-index > button:focus-visible { outline:0; background:var(--ink); color:var(--white); }
.mood-index > button > span:nth-child(2) { min-width:0; }
.mood-index b, .mood-index small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mood-index b { font:13px/1.05 var(--serif); }
.mood-index small { margin-top:3px; color:var(--muted); font-size:6px; letter-spacing:.04em; text-transform:uppercase; }
.mood-index > button:hover small, .mood-index > button:focus-visible small { color:#d5d6d1; }
.mood-index-symbol { width:44px; height:32px; display:grid; place-items:center; overflow:hidden; background:#d3d3ce; color:var(--ink); }
.mood-index-symbol svg { width:40px; height:30px; fill:currentColor; }
.mood-sigil-off { opacity:.2; }
.mood-index > button:hover .mood-index-symbol, .mood-index > button:focus-visible .mood-index-symbol { background:transparent; color:currentColor; }
.mood-mixer > p { grid-column:1/-1; margin:0; color:var(--muted); font-size:8px; line-height:1.4; }

.active-filter-bar { position: sticky; top: 68px; z-index: 39; min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 5px 28px; border-bottom: 1px solid var(--line); background: rgba(242,242,239,.96); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); cursor: pointer; }
.active-filter-bar[hidden] { display: none; opacity: 0; transform: translateY(-7px); }
.active-filter-chips { min-width: 0; display: block; flex: 1; overflow: hidden; scrollbar-width: none; }
.active-filter-track { width:max-content; display:flex; gap:6px; will-change:transform; }
.active-filter-chips::-webkit-scrollbar { display: none; }
.active-filter-chips button, .clear-active-filters { min-height: 30px; border: 0; background: transparent; padding: 0 9px; color: var(--ink); font-size: 9px; white-space: nowrap; }
.active-filter-chips button { position:relative; display: inline-flex; align-items: center; gap: 7px; background:transparent; transition: color 160ms ease, transform 220ms var(--ease-spring), opacity 180ms ease; }
.active-filter-chips button::after { content:""; position:absolute; right:9px; bottom:3px; left:9px; height:1px; background:currentColor; opacity:0; transform:scaleX(.2); transform-origin:left; }
.active-filter-chips .tag-icon { font-size: 14px; }
.active-filter-chips button b { box-sizing:border-box; flex:0 0 20px; width:20px; height:20px; display:grid; place-items:center; overflow:hidden; border-radius:50%; opacity:0; font-size:0; font-weight:400; line-height:20px; text-align:center; transform-origin:50% 50%; transition:opacity 120ms ease, color 160ms ease, background-color 160ms ease, transform 240ms var(--ease-spring); }
.active-filter-chips button b::before { content:"\00d7"; width:20px; height:20px; display:block; font:400 14px/19px var(--sans); text-align:center; transform:translateY(-.25px); }
.active-filter-chips button:hover b, .active-filter-chips button:focus-visible b { background: var(--ink); color: var(--white); opacity:1; transform: rotate(90deg); }
.active-filter-chips button:hover > :not(b), .active-filter-chips button:focus-visible > :not(b) { opacity: .52; }
.clear-active-filters { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; background: transparent; border-bottom: 1px solid var(--ink); transition: color 160ms ease, background-color 160ms ease, transform 220ms var(--ease-spring); }
.clear-active-filters b { font-size: 14px; font-weight: 400; transition: transform 260ms var(--ease-spring); }
.active-filter-bar:hover .clear-active-filters { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }

.controls { position:relative; z-index:11; min-height:58px; padding:0 28px; border: 0; display:grid; grid-template-columns:minmax(220px,1fr) max-content max-content max-content; grid-template-areas:"search date activity filters"; align-items:stretch; gap:10px; overflow:visible; }
.controls.date-rail-open { grid-template-areas:"date date date date" "search search activity filters"; }
.controls.activity-rail-open { grid-template-areas:"search date activity filters" "activities activities activities activities"; }
.controls .date-rail-group { grid-area:date; min-width:0; justify-self:end; }
.controls .search-control { grid-area:search; min-width:0; }
.controls .activity-rail-group { grid-area:activity; min-width:0; justify-self:end; }
.controls .filters-disclosure-toggle { grid-area:filters; justify-self:end; }
.controls .date-rail-group.is-expanded { min-height:66px; animation:planner-rail-open 420ms var(--ease-out) both; }
.controls .activity-rail-group.is-expanded { grid-area:activities; min-height:52px; animation:planner-rail-open 420ms var(--ease-out) both; }
.controls .planner-rail-group.is-expanded::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg,transparent 0 30%,rgba(255,255,255,.9) 46%,transparent 62%); opacity:0; pointer-events:none; animation:planner-rail-glint 620ms 70ms ease-out both; }
.filter-view-peek { display: none; }
.search-control { min-width:220px; display:flex; }
.search-toggle { display:none; width:44px; min-height:44px; place-items:center; border:0; background:transparent; padding:0; color:var(--ink); }
.search-toggle span { font:24px/1 var(--serif); }
.search-toggle:hover, .search-toggle:focus-visible { outline:0; background:var(--white); }
.search-wrap { min-width:220px; flex:1; display:flex; align-items:center; gap:8px; border:0; background:transparent; box-shadow:none; }
.search-wrap span { font: 24px/1 var(--serif); }
.search-wrap input { width:100%; border:0; outline:0; background:transparent !important; box-shadow:none; padding:16px 10px 16px 0; }
.search-wrap input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; display:none; }
.search-clear { flex:0 0 32px; width:32px; height:32px; display:grid; place-items:center; border:0; background:transparent; padding:0; color:var(--muted); }
.search-clear[hidden] { display:none; }
.search-clear svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }
.search-clear:hover, .search-clear:focus-visible { outline:0; background:var(--soft); color:var(--ink); }
.filters-disclosure-toggle { position: relative; min-width: 112px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; background: transparent; padding: 0 12px; color: var(--ink); font: 800 9px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.filters-disclosure-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.filters-disclosure-toggle b { position: absolute; z-index: 1; top: 7px; right: 7px; min-width: 17px; height: 17px; display: none; place-items: center; border-radius: 50%; background: var(--ink); color: var(--white); font-size: 8px; letter-spacing: 0; line-height: 1; pointer-events: none; }
.filters-disclosure-toggle.has-applied b { display: grid; }
.filters-disclosure-toggle:hover, .filters-disclosure-toggle:focus-visible, .filters-disclosure-toggle[aria-expanded="true"] { outline: 0; background: var(--ink); color: var(--white); }
.filters-disclosure-toggle:hover b, .filters-disclosure-toggle:focus-visible b, .filters-disclosure-toggle[aria-expanded="true"] b { background: var(--white); color: var(--ink); }
.filters-disclosure { position: absolute; z-index: 24; top: calc(100% + 6px); right: 28px; width: min(880px, calc(100vw - 56px)); max-height: min(430px, calc(100dvh - 170px)); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 2px; overflow: auto; overscroll-behavior: contain; border: 1px solid rgba(17,18,16,.16); background: rgba(251,251,248,.98); padding: 8px; box-shadow: var(--shadow-high); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-10px) scale(.985); transform-origin: top right; transition: opacity 180ms ease, transform 260ms var(--ease-out), visibility 0s linear 260ms; }
.filters-disclosure.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); transition-delay: 0s; }
.filters-disclosure[hidden] { display: none; }
.filters-disclosure > * { min-width: 0; min-height: 52px; }
.activity-rail-group { z-index:10; padding:2px 0; border:0; background:transparent; }
.select-wrap, .date-input-wrap, .time-input-wrap, .check-wrap, .locate-button { border: 0; background: transparent; }
.select-wrap { min-width: 150px; padding: 10px 16px; display: flex; flex-direction: column; gap: 2px; }
.select-wrap span, .date-input-wrap span, .time-input-wrap span { font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.select-wrap select { border: 0; background: transparent; padding: 0; outline: 0; }
.primary-filter-wrap { min-width: 150px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 12px; }
.primary-filter-wrap .control-symbol { width: 20px; height: 20px; display: grid; place-items: center; color: var(--muted); }
.primary-filter-wrap .control-symbol svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.primary-filter-wrap select { width: 100%; min-width: 0; font-size: 15px; }
.tag-filter-wrap { min-width: 145px; }
.price-filter-wrap { min-width: 135px; }
.date-input-wrap, .time-input-wrap { min-width: 118px; padding: 9px 12px; display: flex; flex-direction: column; gap: 2px; }
.date-input-wrap { min-width: 142px; }
.date-input-wrap input, .time-input-wrap input { min-width: 0; width: 100%; border: 0; background: transparent; padding: 0; outline: 0; font-size: 11px; }
.check-wrap { display: flex; align-items: center; gap: 8px; padding: 0 18px; font-size: 12px; white-space: nowrap; }
.check-wrap input { accent-color: var(--ink); }
.locate-button { padding: 0 18px; white-space: nowrap; }
.locate-button span { display: inline-block; margin-right: 3px; font: 18px/1 var(--serif); }

.explorer { display: grid; grid-template-columns: minmax(390px, 42%) 1fr; height: calc(100dvh - 283px); min-height: 460px; }
.for-you-mode .explorer, .tags-mode .explorer { grid-template-columns: minmax(0, 1fr); }
.for-you-mode .map-pane, .for-you-mode .view-switch, .tags-mode .map-pane, .tags-mode .view-switch { display: none; }
.for-you-mode .event-pane, .tags-mode .event-pane { overflow: auto; }
@media (min-width: 901px) {
  body.has-active-filters .explorer { height: calc(100dvh - 323px); }
  h1 .activity-value-slot { height: auto; min-height: 1em; max-height: none; }
  body.view-list .explorer { height: auto; min-height: 0; }
  body.view-list.has-active-filters .explorer { height: auto; }
  body.view-list .event-pane { overflow: visible; }
  .results-head { top: 68px; }
  body.view-list .results-head, body.for-you-mode .results-head, body.tags-mode .results-head { position: relative; top: auto; }
  .masthead > .results-switches { position: absolute; z-index: 1; top: 15px; left: 50%; display: flex; padding: 0 5px; background: var(--paper); transform: translateX(-50%); }
  .event-row:not(.is-expanded) { min-height: 52px; padding-top: 6px; padding-bottom: 6px; contain-intrinsic-size: auto 52px; }
  .day-label { top: 116px; }
  .time-dial { position: sticky; top: 214px; z-index: 6; width: 74px; margin: 4px 0 0; display: grid; grid-template-rows: 32px 42px 32px; border: 0; background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(8px); }
  .time-dial button { width: 100%; border: 0; background: transparent; color: var(--ink); }
  .time-dial-step { display: grid; place-items: center; color: var(--muted) !important; font: 14px/1 var(--sans); }
  .time-dial-step span { opacity: 0; transform: translateY(var(--time-step-shift, 3px)); }
  .time-dial-prev { --time-step-shift: 3px; }
  .time-dial-next { --time-step-shift: -3px; }
  .time-dial-step:hover:not(:disabled) span,
  .time-dial-step:focus:not(:disabled) span,
  .time-dial-step.is-revealed:not(:disabled) span { opacity: .72; transform: translateY(0); }
  .time-dial-step:disabled { opacity: 0; pointer-events: none; }
  .time-dial-current { position: relative; display: flex; align-items: baseline; justify-content: center; gap: 2px; overflow: hidden; }
  .time-dial-current:hover, .time-dial-current:focus-visible { outline: 0; background: var(--soft); }
  .time-dial-value, .time-dial-preview { position: absolute; inset: 0; display: flex; align-items: baseline; justify-content: center; gap: 2px; padding-top: 10px; pointer-events: none; }
  .time-dial-value { opacity: calc(1 - var(--hour-transition, 0) * .72); transform: translateY(calc(var(--hour-transition, 0) * -18px)); }
  .time-dial-preview { color: var(--muted); opacity: 0; transform: translateY(24px); }
  .time-dial.is-hour-approaching .time-dial-preview { opacity: calc(.08 + var(--hour-transition, 0) * .56); transform: translateY(calc((1 - var(--hour-transition, 0)) * 24px)); }
  .time-dial-value > span, .time-dial-preview > span { font: 19px/1 var(--serif); }
  .time-dial-value > small, .time-dial-preview > small { font-size: 7px; font-weight: 800; letter-spacing: .03em; }
}
.event-pane { position:relative; min-width:0; overflow:auto; background:var(--paper); }
.results-loading { position: fixed; z-index: 29; top: 54%; left: 50%; width: min(250px, calc(100vw - 42px)); display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; align-items: center; padding: 14px 16px 13px; border: 1px solid rgba(17,18,16,.22); background: rgba(242,242,239,.88); box-shadow: 0 18px 48px rgba(17,18,16,.16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transform: translate(-50%, -50%); pointer-events: none; }
.results-loading[hidden] { display: none; }
.results-loading span { height: 3px; background: var(--ink); animation: loader-pulse 700ms ease-in-out infinite alternate; }
.results-loading span:nth-child(2) { animation-delay: 100ms; }
.results-loading span:nth-child(3) { animation-delay: 200ms; }
.results-loading b { grid-column: 1 / -1; margin-top: 5px; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
body.results-pending #eventList, body.results-pending .empty-state { opacity: .7; pointer-events: none; transition: opacity 80ms linear; }
.results-head { position: sticky; top: 0; z-index: 5; height: 48px; background: var(--paper); display: flex; align-items: center; justify-content: space-between; padding: 0 20px 0 28px; border-bottom: 1px solid var(--line); }
.results-head p { margin: 0; font-size: 11px; color: var(--muted); }
.results-head strong { color: var(--ink); }
.results-switches { display:flex; align-items:center; gap:8px; }
.browse-switch, .view-switch { display:flex; gap:2px; }
.browse-switch button, .view-switch button { position:relative; width:38px; height:38px; display:grid; place-items:center; border:0; background:transparent; padding:0; color:var(--muted); }
.browse-switch button svg, .view-switch button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.browse-switch button[data-browse-mode="for-you"] svg { fill:currentColor; stroke:none; }
.favorite-soft-icon { overflow: visible; }
.favorite-soft-icon path { fill: transparent; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; transition: fill 180ms ease, stroke-width 180ms ease, transform 280ms var(--ease-spring); transform-box: fill-box; transform-origin: center; }
[data-favorite-event].is-saved .favorite-soft-icon path,
[data-browse-mode="favorites"].active .favorite-soft-icon path,
[data-mobile-view="favorites"].active .favorite-soft-icon path,
[data-drawer-view="favorites"].active .favorite-soft-icon path { fill: currentColor; stroke-width: 1.35; }
.browse-switch .switch-count { position:absolute; top:3px; right:2px; min-width:13px; height:13px; display:grid; place-items:center; border:0; border-radius:0; background:transparent; color:inherit; font-size:7px; line-height:1; }
.browse-switch button.active, .view-switch button.active { background:var(--ink); color:var(--white); }
.browse-switch button.active .switch-count { background:transparent; color:inherit; }
.results-switches [data-tooltip]::after { content:attr(data-tooltip); position:absolute; z-index:30; right:50%; bottom:calc(100% + 5px); width:max-content; padding:5px 7px; background:var(--ink); color:var(--white); font-size:7px; font-weight:800; letter-spacing:.05em; line-height:1; text-transform:uppercase; pointer-events:none; opacity:0; transform:translate(50%,5px); transition:opacity 140ms ease,transform 200ms var(--ease-out); }
.results-switches [data-tooltip]:hover::after, .results-switches [data-tooltip]:focus-visible::after { opacity:1; transform:translate(50%,0); }
.day-section { display: grid; grid-template-columns: 74px 1fr; border-bottom: 1px solid var(--line); }
.day-gutter { position: relative; min-width: 0; background: var(--paper); }
.day-label { width: 100%; padding: 21px 10px 20px 28px; position: sticky; top: 48px; display: block; border: 0; background: var(--paper); box-shadow: 0 10px 0 var(--paper); text-align: left; z-index: 5; }
.day-label b, .day-label span, .day-label em { display: block; }
.day-label b { font: 28px/1 var(--serif); }
.day-label span { font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; margin-top: 5px; }
.day-label em { margin-top: 6px; color: var(--muted); font-size: 7px; font-style: normal; font-weight: 800; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; }
.day-label:hover, .day-label:focus-visible { background: var(--soft); outline: 0; }
.jump-now { position: absolute; inset: 0; z-index: 1; width: 100%; min-height: 44px; border: 0; background: transparent; }
.jump-now:hover, .jump-now:focus-visible { background: linear-gradient(to right, var(--soft), transparent); outline: 0; }
.jump-now::before { content: ""; position: absolute; inset: 0; border-left: 2px solid rgba(17,18,16,.18); background: linear-gradient(to right, rgba(17,18,16,.035), transparent 72%); pointer-events: none; }
.jump-now::after { content: "Now"; position: absolute; top: 50%; left: 50%; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-align: center; text-transform: uppercase; opacity: .72; transform: translate(-50%, -50%); }
.jump-now:hover::after, .jump-now:focus-visible::after { opacity: 1; }
.time-dial { display: none; }
.hour-separator { position: relative; z-index: 2; height: 0; display: block; pointer-events: none; }
.hour-separator::before { content: ""; position: absolute; top: 0; right: 0; left: -74px; height: 1px; background: rgba(17,18,16,.22); opacity: .9; transition: background-color 180ms ease, opacity 180ms ease; }
.hour-separator.is-hour-approaching::before { background: rgba(17,18,16,.28); opacity: 1; }
.now-line { position: relative; z-index: 4; height: 20px; display: grid; place-items: center; color: var(--muted); pointer-events: none; }
.now-line::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; height: 1px; background: rgba(17,18,16,.16); }
.now-line span { position: relative; z-index: 1; padding: 0 9px; background: var(--paper); font-size: 7px; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.event-row { --event-time-track: 70px; --event-visual-track: 84px; --event-action-track: 36px; appearance: none; position: relative; width: 100%; min-height: 54px; border: 0; padding: 10px 22px 10px 14px; background: transparent; text-align: left; display: grid; grid-template-columns: var(--event-time-track) var(--event-visual-track) minmax(0, 1fr) var(--event-action-track); gap: 12px; align-items: start; cursor: pointer; overflow: hidden; contain: layout style paint; content-visibility: auto; contain-intrinsic-size: auto 54px; }
.event-time { grid-column: 1; }
.event-row-media { grid-column: 2; }
.event-copy { min-width: 0; grid-column: 3; }
.event-list-favorite { grid-column: 4; }
.event-arrow { grid-column: 5; justify-self: center; }
.event-media { position: relative; display: block; overflow: hidden; aspect-ratio: var(--media-ratio, 4 / 3); background: #d3d3ce; isolation: isolate; }
.event-media::after { content: ""; position: absolute; z-index: 2; inset: 0; border: 1px solid rgba(17,18,16,.12); pointer-events: none; }
.event-media > img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: 0; transform: scale(1.018); }
.event-media.is-loaded > img { opacity: 1; transform: scale(1); }
.event-media > i[aria-hidden] { position: absolute; z-index: 0; inset: 0; background: linear-gradient(115deg, transparent 25%, rgba(255,255,255,.42) 45%, transparent 66%); transform: translateX(-110%); }
.event-media.media-fallback { display: grid; place-content: center; justify-items: center; gap: 3px; color: #666762; background: radial-gradient(circle at 25% 15%, #eeeeea, transparent 44%), linear-gradient(145deg, #c9c9c3, #e4e4df); }
.event-media.media-fallback::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(17,18,16,.12); }
.event-media.media-fallback .media-fallback-icon { position: relative; z-index: 1; width: 42%; height: 42%; min-width: 20px; min-height: 20px; font-size: 30px; }
.event-media.media-fallback > i { position: relative; z-index: 1; max-width: 86%; overflow: hidden; font: 700 6px/1.1 var(--sans); font-style: normal; letter-spacing: .08em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.event-row.has-symbol .event-media.media-fallback, .venue-event-row.has-symbol .event-media.media-fallback { overflow: visible; background: transparent; color: var(--muted); isolation: auto; }
.event-row.has-symbol .event-media.media-fallback::before, .event-row.has-symbol .event-media.media-fallback::after,
.venue-event-row.has-symbol .event-media.media-fallback::before, .venue-event-row.has-symbol .event-media.media-fallback::after { display: none; }
.event-row.has-symbol .event-media.media-fallback .media-fallback-icon, .venue-event-row.has-symbol .event-media.media-fallback .media-fallback-icon { width: 30px; height: 30px; min-width: 0; min-height: 0; font-size: 30px; }
.event-media.is-error { background: repeating-linear-gradient(135deg, #d2d2cd 0 1px, #e1e1dc 1px 7px); }
.event-media.is-error::before { content: "Image unavailable"; position: absolute; z-index: 1; inset: auto 5px 5px; color: #686964; font-size: 6px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.event-row-media { width: 84px; height: 63px; align-self: start; }
.event-row.has-symbol .event-row-media { width: 40px; height: 40px; align-self: start; justify-self: center; }
.entity-media { position: relative; display: block; flex: 0 0 auto; overflow: hidden; aspect-ratio: var(--media-ratio, 4 / 3); background: #d3d3ce; isolation: isolate; }
.entity-media::after { content: ""; position: absolute; z-index: 3; inset: 0; border: 1px solid rgba(17,18,16,.12); pointer-events: none; }
.entity-media > img { position: relative; z-index: 2; display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: 0; transform: scale(1.018); }
.entity-media.is-loaded > img { opacity: 1; transform: scale(1); }
.entity-media:not(.entity-media-fallback) > i[aria-hidden] { position: absolute; z-index: 0; inset: 0; background: linear-gradient(115deg, transparent 25%, rgba(255,255,255,.42) 45%, transparent 66%); transform: translateX(-110%); }
.entity-media-fallback, .entity-media-error-fallback { place-content: center; justify-items: center; gap: 3px; color: #666762; background: radial-gradient(circle at 25% 15%, #eeeeea, transparent 44%), linear-gradient(145deg, #c9c9c3, #e4e4df); }
.entity-media-fallback { display: grid; }
.entity-media-fallback > i, .entity-media-error-fallback > b { position: relative; z-index: 1; max-width: 88%; overflow: hidden; font: 700 6px/1.1 var(--sans); font-style: normal; letter-spacing: .08em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.entity-fallback-icon { position: relative; z-index: 1; width: 42%; height: 42%; font-size: 28px; }
.entity-media-error-fallback { position: absolute; z-index: 1; inset: 0; display: none; }
.entity-media.is-error .entity-media-error-fallback { display: grid; }
.event-row::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: var(--ink); transform: scaleY(0); transform-origin: center; }
.event-row:hover, .event-row:focus, .event-row.is-expanded { background: var(--white); outline: none; }
.event-row:hover::before, .event-row:focus-visible::before, .event-row.is-expanded::before { transform: scaleY(1); }
.event-time { font-size: 11px; font-weight: 700; }
.event-encounter-mark { position: absolute; right: 8px; bottom: 7px; min-width: 44px; height: 20px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 0; background: color-mix(in srgb, var(--paper) 88%, #bfc0ba); padding: 0 6px; color: var(--muted); letter-spacing: .03em; }
.event-encounter-mark small { font: 700 6px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.event-encounter-mark b { font: 9px/1 var(--serif); font-weight: 400; }
.event-row > .event-encounter-mark { position: absolute; }
.event-row.is-encounter-stop::before { transform: scaleY(1); }
@media (min-width: 641px) {
  .event-row.is-encounter-stop { --event-action-track: 96px; }
}
.event-copy h3 { font: 21px/1.12 var(--serif); margin: 0 0 5px; }
.event-copy-head { min-width: 0; display: flex; align-items: flex-start; gap: 6px; }
.event-copy-head h3 { min-width: 0; flex: 1; }
.event-title { display: block; width: fit-content; max-width: 100%; overflow: hidden; border: 0; border-bottom: 1px solid transparent; background: transparent; padding: 0; font: inherit; text-align: left; }
.event-title-track { display: flex; width: max-content; gap: 28px; }
.event-title-track > span { flex: none; white-space: nowrap; }
.event-title:not(.is-overflowing) .event-title-track { display: block; width: 100%; }
.event-title-track > [aria-hidden="true"] { display: none; }
.event-title-display { display: inline-flex; align-items: baseline; gap: 8px; }
.event-title-text.is-canceled { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.event-row.is-expanded .event-title { overflow: visible; }
.event-row.is-expanded .event-title-track { display: block; width: 100%; animation: none !important; transform: none !important; }
.event-row.is-expanded .event-title-track > span:first-child { display: block; white-space: normal; overflow-wrap: anywhere; }
.event-title:hover, .event-title:focus-visible { border-bottom-color: var(--ink); outline: 0; }
.event-list-favorite { position: relative; isolation: isolate; align-self: start; width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--muted); padding: 0; margin-top: 0; opacity: 0; pointer-events: none; touch-action: none; transform: none; transition: none; }
.event-list-favorite::after { content: ""; position: absolute; z-index: -1; inset: 3px; border: 1px solid currentColor; border-radius: 50%; opacity: 0; pointer-events: none; }
.event-list-favorite svg { width: 22px; height: 22px; }
.event-list-favorite:hover, .event-list-favorite:focus-visible { background: var(--soft); color: var(--ink); outline: 0; transform: scale(1.06); }
.event-row:is(:hover, :focus-within, .is-expanded) .event-list-favorite:not(.is-saved),
.event-list-favorite:not(.is-saved):focus-visible { opacity: .78; pointer-events: auto; transform: scale(1); }
.event-list-favorite.is-saved { background: var(--ink); color: var(--white); box-shadow: 0 4px 14px rgba(17,18,16,.18); opacity: 1; pointer-events: auto; transform: scale(1); }
.event-copy p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.event-summary-meta { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.event-summary-meta > p { min-width: 0; flex: 1; }
.event-badges { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 0; }
.badge { display: inline-flex; align-items: center; gap: 4px; border: 0; font-size: 8px; letter-spacing: .07em; text-transform: uppercase; background: transparent; padding: 4px 0; }
.badge:hover, .badge:focus-visible { background: transparent; color: var(--ink); outline: 0; text-decoration: underline; text-underline-offset: 3px; }
.event-taste-vote { flex: 0 0 auto; display: none; align-items: center; gap: 2px; }
.event-row.is-expanded .event-taste-vote { display: flex; }
.event-row:not(.is-expanded) .event-copy:has(.event-taste-vote button[aria-pressed="true"]) { padding-right: 34px; }
.event-row:not(.is-expanded) .event-taste-vote:has(button[aria-pressed="true"]) { position: absolute; z-index: 2; top: 50%; right: 0; display: flex; width: 30px; margin: 0; transform: translateY(-50%); }
.event-row:not(.is-expanded) .event-taste-vote button:not([aria-pressed="true"]) { display: none; }
.event-row:not(.is-expanded) .event-taste-vote button[aria-pressed="true"] { flex: 0 0 30px; }
.event-taste-vote button { width: 30px; height: 30px; display: grid; place-items: center; border: 0; background: transparent; color: var(--muted); padding: 0; opacity: .42; }
.event-taste-vote button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.event-taste-vote button:hover, .event-taste-vote button:focus-visible, .event-taste-vote button[aria-pressed="true"] { outline: 0; background: var(--soft); color: var(--ink); opacity: 1; }
.event-arrow { display: none; font: 22px/1 var(--serif); color: var(--muted); opacity: 0; transform-origin: center; }
.event-row.is-expanded .event-list-favorite { align-self: start; margin-top: 0; }
.event-row:hover .event-arrow, .event-row:focus-within .event-arrow, .event-row.is-expanded .event-arrow, body.is-scrolling .event-row .event-arrow { opacity: 1; }
.event-summary { opacity: 1; transform: translateY(0); }
.event-summary[hidden] { display: none; opacity: 0; transform: none; }
.event-row.is-measuring-collapse .event-summary { transition: none !important; }
.event-row.is-size-animating .event-summary { transition: none !important; }
.event-row.is-size-animating { overflow: clip; content-visibility: visible; will-change: height; }
body.is-favorite-scrubbing { cursor: ns-resize; user-select: none; -webkit-user-select: none; }
body.is-favorite-scrubbing .event-list-favorite { opacity: .34; pointer-events: auto; transform: scale(.92); }
body.is-favorite-scrubbing .event-list-favorite.is-saved { opacity: 1; transform: scale(1); }
body.favorite-scrub-add .event-list-favorite:not(.is-saved) { color: var(--ink); }
body.favorite-scrub-remove .event-list-favorite.is-saved { box-shadow: 0 0 0 3px rgba(17,18,16,.12); }
.event-list-favorite.is-scrub-touched { opacity: 1 !important; transform: scale(1.16) !important; }
.empty-state { padding: 16px 28px 64px; text-align: center; }
.empty-state button { min-height: 42px; border: 0; background: var(--ink); padding: 0 18px; color: var(--white); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.load-more { padding: 28px; text-align: center; border-top: 1px solid var(--line); }
.load-more p { margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.load-more button { border: 0; border-bottom: 1px solid var(--ink); background: transparent; padding: 6px 0; font-size: 11px; }
.auto-loader { min-height: 118px; display: grid; place-content: center; }
.auto-loader::before { content: ""; width: 34px; height: 2px; margin: 0 auto 12px; background: var(--ink); animation: loader-drift 1.1s ease-in-out infinite alternate; }
.range-expansion-note { max-width: 520px; padding: 8px 12px; background: var(--ink); color: var(--white) !important; line-height: 1.4; }
.list-end { margin: 0; padding: 34px 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; text-align: center; }

.for-you-list { min-width: 0; }
.for-you-gallery { padding: 0 0 48px; overflow: hidden; }
.for-you-intro { min-height: 178px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 40px; align-items: end; padding: 26px 36px 24px; background: var(--ink); color: var(--white); }
.for-you-intro h2 { max-width: 720px; font-size: clamp(42px, 5vw, 68px); line-height: .9; letter-spacing: -.035em; }
.for-you-intro p:not(.eyebrow) { max-width: 650px; margin: 18px 0 0; color: #b9bab5; font-size: 12px; line-height: 1.55; }
.for-you-intro .eyebrow { color: #999a95; }
.taste-profile { align-self: end; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.taste-profile > span, .taste-chip { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; color: var(--white); padding: 0 10px; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.taste-profile > span { text-transform: none; line-height: 1.35; }
.taste-chip:hover, .taste-chip:focus-visible { outline-color: var(--white); background: var(--white); color: var(--ink); }
.recommendation-row { padding: 22px 0 0; content-visibility: auto; contain-intrinsic-size: auto 332px; }
.recommendation-row > header { min-height: 48px; display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 0 36px 9px; }
.recommendation-row h3 { margin: 0; font: 30px/1 var(--serif); }
.recommendation-row header p { max-height:0; margin:0; overflow:hidden; color:var(--muted); font-size:9px; line-height:1.35; opacity:0; transform:translateY(-3px); transition:max-height 220ms var(--ease-out), margin 180ms ease, opacity 160ms ease, transform 220ms var(--ease-out); }
.recommendation-row:hover header p,
.recommendation-row:focus-within header p,
.recommendation-row.is-controls-visible header p { max-height:3em; margin-top:5px; opacity:1; transform:translateY(0); }
.recommendation-row-meta { display: flex; align-items: center; gap: 16px; }
.cluster-tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.cluster-tag { min-height: 27px; display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; padding: 0 3px; font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.cluster-tag:hover, .cluster-tag:focus-visible { outline: 0; background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.recommendation-row nav { display: flex; gap: 3px; opacity: 0; pointer-events: none; transform: translateY(4px); transition: opacity 160ms ease, transform 180ms ease; }
.recommendation-row:hover nav, .recommendation-row:focus-within nav, .recommendation-row.is-controls-visible nav { opacity: 1; pointer-events: auto; transform: translateY(0); }
.recommendation-row nav button { width: 34px; height: 34px; border: 1px solid var(--line); background: transparent; font-size: 15px; }
.recommendation-row nav button:hover, .recommendation-row nav button:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); }
.recommendation-carousel { display: flex; gap: 12px; padding: 0 36px 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-left: 36px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.recommendation-card { position:relative; flex:0 0 clamp(214px,21vw,270px); min-width:0; min-height:144px; height:auto; display:flex; flex-direction:column; overflow:hidden; border:0; background:transparent; scroll-snap-align:start; }
.recommendation-card-main { width:100%; min-height:112px; flex:1; display:grid; grid-template-columns:48px minmax(0,1fr); grid-template-rows:auto auto 1fr; column-gap:10px; align-content:start; align-items:start; border:0; background:transparent; padding:12px 8px 6px; text-align:left; }
.recommendation-media { grid-column:1; grid-row:1 / -1; width:44px; height:44px; aspect-ratio:1; align-self:start; background:transparent; }
.recommendation-media.media-fallback { min-height:0; display:grid; place-content:start center; justify-items:center; gap:0; color:#666762; background:transparent; }
.recommendation-media.media-fallback::before, .recommendation-media.media-fallback::after { display: none; }
.recommendation-media.media-fallback .media-fallback-icon { width:38px; height:38px; font-size:38px; }
.recommendation-media.media-fallback > i { display:none; }
.recommendation-when { grid-column:2; padding:0; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.recommendation-card strong { grid-column:2; display:-webkit-box; margin:5px 0 0; overflow:hidden; font:20px/1.01 var(--serif); -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.recommendation-card small { grid-column:2; margin:6px 0 0; overflow:hidden; color:var(--muted); font-size:9px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.recommendation-tags { flex:0 0 auto; margin:2px 8px 8px 66px; display:flex; gap:9px; overflow:hidden; }
.recommendation-why { display:none; }
.recommendation-tag { min-width:0; display:inline-flex; align-items:center; gap:3px; border:0; padding:4px 0; background:transparent; font-size:7px; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.recommendation-tag:nth-child(n+3) { display: none; }
.recommendation-tag:hover, .recommendation-tag:focus-visible { outline:0; background:transparent; color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.recommendation-card-main:hover, .recommendation-card-main:focus-visible { outline:0; background:transparent; }
.recommendation-card-main:hover .recommendation-media > img, .recommendation-card-main:focus-visible .recommendation-media > img { transform: scale(1.045); }
.recommendation-card-main:hover strong, .recommendation-card-main:focus-visible strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.event-title-text,
.event-copy p,
.recommendation-card strong,
.recommendation-card small,
.detail-title-row h2,
.detail-hero-vignette h2,
.detail-description,
.venue-event-row,
.venue-vignette { filter: grayscale(1); }
.recommendation-loading, .tag-directory-loading { min-height: 320px; display: grid; place-content: center; grid-template-columns: repeat(3, 42px); gap: 8px; text-align: center; }
.recommendation-loading span, .tag-directory-loading span { height: 3px; background: var(--line); animation: loader-pulse 900ms ease-in-out infinite alternate; }
.recommendation-loading span:nth-child(2), .tag-directory-loading span:nth-child(2) { animation-delay: 120ms; }
.recommendation-loading span:nth-child(3), .tag-directory-loading span:nth-child(3) { animation-delay: 240ms; }
.recommendation-loading p, .tag-directory-loading p { grid-column: 1 / -1; margin: 12px 0 0; color: var(--muted); font-size: 9px; }
.recommendation-sentinel { min-height: 160px; display: grid; place-content: center; justify-items: center; color: var(--muted); font-size: 9px; }
.recommendation-sentinel span { width: 36px; height: 2px; background: var(--ink); animation: loader-drift 1.1s ease-in-out infinite alternate; }
.recommendation-sentinel p { margin: 12px 0 0; }
@keyframes loader-drift { from { transform: translateX(-14px); } to { transform: translateX(14px); } }
@keyframes loader-pulse { from { opacity: .25; transform: scaleX(.55); } to { opacity: 1; transform: scaleX(1); } }
@keyframes planner-rail-open { 0% { opacity:.35; transform:translateY(-8px) scaleY(.82); } 62% { opacity:1; transform:translateY(2px) scaleY(1.025); } 100% { opacity:1; transform:none; } }
@keyframes planner-rail-glint { 0% { opacity:0; transform:translateX(-30%); } 28% { opacity:.65; } 100% { opacity:0; transform:translateX(32%); } }

.tag-list { min-width: 0; }
.tag-directory { padding: 0 0 56px; }
.tag-symbol-hero { min-height: 0; padding: 20px 36px 28px; border-bottom: 1px solid var(--line); background: var(--ink); color: var(--white); }
.tag-cloud-field { min-width: 0; align-self: center; }
.activity-symbol-cloud { min-width: 0; display: flex; flex-wrap: wrap; align-content: center; justify-content: center; gap: clamp(3px, .65vw, 10px); padding: 4px 0; }
.activity-symbol { --symbol-size: calc(30px + var(--prominence) * 56px); position: relative; flex: 0 1 calc(54px + var(--prominence) * 72px); min-width: 52px; min-height: calc(56px + var(--prominence) * 52px); display: grid; grid-template-rows: 1fr auto; place-items: center; align-self: center; border: 0; background: transparent; color: #c7c8c2; padding: 4px 3px 7px; }
.activity-symbol-icon { width: var(--symbol-size); height: var(--symbol-size); font-size: var(--symbol-size); }
.activity-symbol-media { width: var(--symbol-size); height: var(--symbol-size); aspect-ratio: 1; border-radius: 50%; }
.activity-symbol > span:not(.entity-media) { max-width: 100%; margin-top: 2px; overflow: hidden; font-size: 8px; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.activity-symbol > small { position: absolute; top: 2px; right: 2px; color: #777873; font-size: 7px; }
.activity-symbol:nth-child(5n+2) { transform: translateY(8px); }
.activity-symbol:nth-child(5n+4) { transform: translateY(-7px); }
.activity-symbol:hover, .activity-symbol:focus-visible { z-index: 1; outline: 1px solid #777873; outline-offset: -1px; background: #252622; color: var(--white); transform: scale(1.045) rotate(-1deg); }
.activity-symbol:nth-child(5n+2):hover, .activity-symbol:nth-child(5n+2):focus-visible { transform: translateY(8px) scale(1.045) rotate(1deg); }
.activity-symbol:nth-child(5n+4):hover, .activity-symbol:nth-child(5n+4):focus-visible { transform: translateY(-7px) scale(1.045) rotate(-1deg); }
.tag-related { padding: 34px 36px 38px; border-bottom: 1px solid var(--line); background: #deded9; }
.tag-related > header, .tag-facet-group > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.tag-related h3, .tag-facet-group h3 { margin: 0; font: 29px/1 var(--serif); }
.tag-related > header > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tag-orbit { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 28px; align-items: center; }
.tag-orbit-anchor { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: var(--ink); color: var(--white); text-align: center; }
.tag-orbit-anchor-icon { width: 72px; height: 72px; font-size: 72px; }
.tag-orbit-anchor-media { width: 92px; height: 69px; margin-bottom: 3px; }
.tag-orbit-anchor strong { max-width: 150px; margin-top: 7px; font: 25px/1 var(--serif); }
.tag-orbit-anchor p { max-width: 155px; margin: 7px 0 0; color: #c4c5c0; font-size: 8px; line-height: 1.35; }
.tag-orbit-anchor small { margin-top: 6px; color: #8b8c87; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.tag-popular-venues { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(17,18,16,.18); }
.tag-popular-venues > header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 10px; }
.tag-popular-venues > header .eyebrow { margin: 0; }
.tag-popular-venues h4 { margin: 0; font: 24px/1 var(--serif); }
.tag-popular-venues ol { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(17,18,16,.18); border-left: 1px solid rgba(17,18,16,.18); }
.tag-popular-venues li { min-width: 0; min-height: 62px; display: flex; flex-direction: column; justify-content: space-between; gap: 7px; padding: 10px; border-right: 1px solid rgba(17,18,16,.18); border-bottom: 1px solid rgba(17,18,16,.18); background: rgba(255,255,255,.38); }
.tag-popular-venues li span { overflow: hidden; font: 15px/1.08 var(--serif); text-overflow: ellipsis; }
.tag-popular-venues li small { color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.tag-orbit-paths { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tag-orbit-chip { --orbit-size: calc(24px + var(--orbit) * 34px); flex: 1 1 calc(96px + var(--orbit) * 34px); min-width: 96px; min-height: calc(64px + var(--orbit) * 34px); display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: center; gap: 0 8px; border: 1px solid rgba(17,18,16,.22); background: rgba(251,251,248,.55); padding: 8px 10px; text-align: left; }
.tag-orbit-icon { grid-row: 1 / 3; width: var(--orbit-size); height: var(--orbit-size); font-size: var(--orbit-size); }
.tag-orbit-media { grid-row: 1 / 3; width: var(--orbit-size); height: var(--orbit-size); aspect-ratio: 1; border-radius: 50%; }
.tag-orbit-chip > span:not(.entity-media) { min-width: 0; overflow: hidden; font: 16px/1 var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.tag-orbit-chip small { align-self: start; color: var(--muted); font-size: 8px; }
.tag-orbit-chip:hover, .tag-orbit-chip:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); transform: translateY(-2px) rotate(-.5deg); }
.tag-orbit-chip:hover small, .tag-orbit-chip:focus-visible small { color: #a6a7a2; }
.tag-constellations { padding: 48px 36px 52px; border-bottom: 1px solid var(--line); }
.tag-constellations > header, .tag-index > header { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 24px; }
.tag-constellations > header h2, .tag-index > header h2 { font-size: clamp(40px, 5vw, 68px); line-height: .92; }
.tag-constellations > header > p { max-width: 360px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.tag-constellation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.tag-constellation { min-width: 0; min-height: 260px; display: flex; flex-direction: column; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); contain: layout style paint; content-visibility: auto; contain-intrinsic-size: auto 260px; }
.tag-constellation:nth-child(3n+2) { background: #e7e7e2; }
.tag-constellation:nth-child(3n+3) { background: #deded9; }
.tag-constellation > header { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.constellation-mark { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--white); }
.constellation-icon { width: 31px; height: 31px; font-size: 31px; }
.constellation-media { width: 54px; height: 54px; aspect-ratio: 1; border-radius: 50%; }
.tag-constellation header p { margin: 0 0 4px; color: var(--muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.tag-constellation h3 { margin: 0; font: 24px/1 var(--serif); }
.tag-constellation header > strong { text-align: right; font: 24px/1 var(--serif); }
.tag-constellation header > strong span { display: block; margin-top: 3px; color: var(--muted); font: 7px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.constellation-meter { height: 4px; margin: 18px 0; background: rgba(17,18,16,.1); overflow: hidden; }
.constellation-meter i { display: block; width: calc(var(--constellation-share) * 100%); height: 100%; background: var(--ink); }
.constellation-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; }
.constellation-tag { position: relative; min-height: 31px; display: inline-flex; align-items: center; gap: 5px; overflow: hidden; border: 1px solid rgba(17,18,16,.18); background: rgba(251,251,248,.45); padding: 0 7px; font-size: 8px; }
.constellation-tag::before, .tag-directory-chip::before { content: ""; position: absolute; inset: 0; width: calc(var(--tag-share) * 100%); background: rgba(17,18,16,.075); pointer-events: none; }
.constellation-tag > *, .tag-directory-chip > * { position: relative; z-index: 1; }
.constellation-tag small { color: var(--muted); font-size: 7px; }
.constellation-tag:hover, .constellation-tag:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); }
.constellation-tag:hover small, .constellation-tag:focus-visible small { color: #b9bab5; }
.tag-index { padding: 48px 36px 0; }
.tag-index > header > strong { color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.tag-facet-matrix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.tag-facet-group { min-width: 0; padding: 26px 24px 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tag-facet-group header p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.tag-facet-group header > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.tag-directory-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-directory-chip { position: relative; min-height: 38px; display: inline-flex; align-items: center; gap: 7px; overflow: hidden; border: 1px solid var(--line); background: var(--paper); padding: 0 10px; color: var(--ink); font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.tag-chip-icon { width: 20px; height: 20px; font-size: 20px; }
.tag-chip-media { width: 24px; height: 24px; aspect-ratio: 1; border-radius: 50%; }
.constellation-tag .tag-chip-media { width: 20px; height: 20px; }
.tag-directory-chip small { margin-left: 3px; color: var(--muted); font-size: 7px; }
.tag-directory-chip:hover, .tag-directory-chip:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); transform: translateY(-1px); }
.tag-directory-chip:hover small, .tag-directory-chip:focus-visible small { color: #c5c6c1; }

.venue-list { padding-bottom: 20px; }
.venue-card { position: relative; border-bottom: 1px solid var(--line); overflow: hidden; contain: layout style paint; content-visibility: auto; contain-intrinsic-size: auto 220px; }
.venue-sort-bar { min-height: 46px; display: flex; align-items: center; justify-content: flex-end; padding: 0 20px; border-bottom: 1px solid var(--line); }
.venue-sort-bar button { min-height: 34px; border: 0; background: transparent; padding: 0 8px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.venue-sort-bar button:hover, .venue-sort-bar button:focus-visible { outline: 0; background: var(--soft); color: var(--ink); }
.venue-card::before { content: ""; position: absolute; z-index: 0; inset: 0; background: var(--white); opacity: 0; pointer-events: none; }
.venue-card > * { position: relative; z-index: 1; }
.venue-card-hero { position: relative; height: clamp(150px, 16vw, 190px); overflow: hidden; background: #c8c8c2; }
.venue-media-strip { height: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); overflow: hidden; }
.venue-media-strip .venue-strip-media { min-width: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.venue-media-strip .venue-strip-media:only-child { grid-column: 1 / -1; }
.venue-media-strip .venue-strip-media:first-child:nth-last-child(2), .venue-media-strip .venue-strip-media:first-child:nth-last-child(2) + .venue-strip-media { grid-column: span 1; }
.venue-media-strip .venue-strip-media:first-child:nth-last-child(2) { grid-column: 1 / 3; }
.venue-media-strip .venue-strip-media.media-fallback { display: grid; place-content: center; background: #d8d8d2; color: #686964; }
.venue-media-strip .venue-strip-media.media-fallback::before, .venue-media-strip .venue-strip-media.media-fallback::after { display: none; }
.venue-media-strip .venue-strip-media.media-fallback .media-fallback-icon { width: 44px; height: 44px; font-size: 44px; }
.venue-hero-open { position: absolute; z-index: 2; inset: 0; width: 100%; border: 0; background: transparent; padding: 0; color: var(--white); text-align: left; }
.venue-vignette { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px max(158px, 16vw) 20px 28px; background: linear-gradient(90deg, rgba(17,18,16,.86) 0, rgba(17,18,16,.58) 35%, transparent 76%), linear-gradient(0deg, rgba(17,18,16,.72), transparent 65%); }
.venue-vignette strong, .venue-vignette small { display: block; max-width: 680px; }
.venue-vignette strong { font: clamp(27px, 3.2vw, 42px)/.98 var(--serif); overflow-wrap: anywhere; }
.venue-vignette small { margin-top: 8px; color: #d1d2cd; font-size: 10px; line-height: 1.4; }
.venue-hero-open:hover, .venue-hero-open:focus-visible { outline: 0; }
.venue-hero-open:hover .venue-vignette, .venue-hero-open:focus-visible .venue-vignette { background: linear-gradient(90deg, rgba(17,18,16,.97) 0, rgba(17,18,16,.72) 38%, rgba(17,18,16,.12) 80%), linear-gradient(0deg, rgba(17,18,16,.82), transparent 68%); }
.venue-hero-open:hover .venue-vignette strong, .venue-hero-open:focus-visible .venue-vignette strong { transform: translateX(4px); }
.venue-count-badge { position: absolute; z-index: 4; top: 12px; right: 12px; min-height: 26px; display: inline-flex; align-items: center; background: var(--white); color: var(--ink); padding: 0 8px; font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.venue-card-hero.has-mini-map .venue-count-badge { right: 140px; }
.venue-mini-map { position: absolute; z-index: 4; top: 12px; right: 12px; width: 116px; height: 96px; overflow: hidden; border: 0; background: repeating-linear-gradient(45deg, #e7e7e2 0 1px, #f4f4ef 1px 8px); padding: 0; box-shadow: 0 0 0 1px rgba(251,251,248,.8); }
.venue-mini-map img { position: absolute; width: 256px; max-width: none; height: 256px; left: calc(50% - var(--tile-x)); top: calc(50% - var(--tile-y)); filter: grayscale(1) contrast(1.08); opacity: .92; pointer-events: none; }
.venue-mini-map > span { position: absolute; z-index: 2; top: 50%; left: 50%; width: 13px; height: 13px; border: 3px solid var(--white); border-radius: 50% 50% 50% 0; background: var(--ink); box-shadow: 0 2px 7px rgba(17,18,16,.35); transform: translate(-50%, -70%) rotate(-45deg); }
.venue-mini-map:hover, .venue-mini-map:focus-visible { outline: 0; box-shadow: 0 0 0 2px var(--white), 0 0 0 4px var(--ink); }
.venue-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.venue-card-hero .venue-links { position: absolute; z-index: 4; right: 12px; bottom: 12px; }
.venue-links a { width: 38px; height: 38px; display: grid; place-items: center; border: 0; padding: 0; color: var(--ink); text-decoration: none; }
.venue-card-hero .venue-links a { background: rgba(251,251,248,.92); }
.venue-links a iconify-icon { width: 19px; height: 19px; font-size: 19px; }
.venue-links a:hover, .venue-links a:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); }
.venue-event-preview { border-top: 1px solid var(--line); }
.venue-event-row { width: 100%; min-height: 54px; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: 10px 22px 10px 28px; text-align: left; }
.venue-event-row.has-media { grid-template-columns: 58px 92px minmax(0, 1fr) auto; }
.venue-event-media { width: 58px; height: 43px; }
.venue-event-row.has-symbol .venue-event-media { width: 30px; height: 30px; justify-self: center; }
.venue-event-row:hover, .venue-event-row:focus-visible { outline: 0; background: var(--white); }
.venue-event-row > span, .venue-event-row > small { color: var(--muted); font-size: 9px; }
.venue-event-row > strong { min-width: 0; font: 16px/1.18 var(--serif); overflow-wrap: anywhere; }
.venue-event-row > small { text-align: right; }

.map-pane { position: relative; border-left: 1px solid var(--line); background: #deded9; overflow: hidden; }
#map { position: absolute; inset: 0; }
.maplibregl-map { font-family: var(--sans); }
.maplibregl-popup-content { width: min(248px, calc(100vw - 28px)); border-radius: 0; box-shadow: 0 8px 30px rgba(0,0,0,.15); padding: 0; background: var(--white); }
.map-card { position: relative; padding: 13px; }
.map-card-date { margin: 0 34px 6px 0; color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.map-card h3 { margin: 0 34px 7px 0; font: 22px/1.02 var(--serif); overflow-wrap: anywhere; }
.map-card-venue { display: -webkit-box; margin: 0; overflow: hidden; color: #4c4d49; font-size: 11px; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.map-card-place { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.map-card-badges { display: flex; flex-wrap: wrap; gap: 4px; margin: 7px 0 0; }
.map-card-badges span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; background: var(--soft); font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.map-card .map-card-primary { width: 100%; min-height: 44px; margin-top: 11px; border: 0; background: var(--ink); color: var(--white); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.map-card .map-card-close { position: absolute; z-index: 2; top: 0; right: 0; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); }
.map-card .map-card-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.map-card .map-card-close:hover, .map-card .map-card-close:focus-visible { outline: 0; background: var(--soft); }
.map-card-titlebar { min-height: 44px; display: flex; align-items: center; margin: -13px -13px 3px; border: 0; }
.map-card-titlebar-spacer { margin-right: auto; }
.map-card-titlebar .map-card-primary, .map-card-titlebar .map-card-close { position: static; flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin: 0; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); }
.map-card-titlebar .map-card-primary svg, .map-card-titlebar .map-card-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.map-card-titlebar .map-card-primary:hover, .map-card-titlebar .map-card-primary:focus-visible, .map-card-titlebar .map-card-close:hover, .map-card-titlebar .map-card-close:focus-visible { outline: 0; background: var(--soft); }
.map-venue-card h3 { margin-right: 0; }
.map-venue-summary { position: relative; width: calc(100% + 12px); margin: 0 -6px; border: 0; background: transparent; padding: 6px 32px 8px 6px; color: inherit; text-align: left; }
.map-venue-summary h3 { margin-bottom: 7px; }
.map-venue-summary:hover, .map-venue-summary:focus-visible, .map-venue-event:hover, .map-venue-event:focus-visible { outline: 0; background: var(--soft); }
.map-venue-summary:hover h3, .map-venue-summary:focus-visible h3, .map-venue-event:hover span, .map-venue-event:focus-visible span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.map-venue-event-count { position: absolute; right: 6px; bottom: 8px; min-width: 18px; height: 18px; display: grid; place-items: center; background: var(--ink); color: var(--white); font-size: 8px; font-weight: 800; line-height: 1; }
.map-toolbar { position: absolute; z-index: 2; top: 14px; right: 14px; left: 14px; min-height: 40px; display: flex; align-items: center; gap: 4px; padding: 3px; border: 0; background: rgba(251,251,248,.84); box-shadow: 0 2px 12px rgba(0,0,0,.08); backdrop-filter: blur(10px); }
.map-browse-switch { margin-right: auto; }
.map-view-switch { display: flex; }
.map-toolbar .view-switch button { width: 36px; height: 34px; display: grid; place-items: center; padding: 0; }
.map-toolbar .view-switch button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.map-venue-events { display: grid; gap: 2px; margin: 4px -6px 8px; padding: 0; border: 0; }
.map-venue-event { width: 100%; border: 0; background: transparent; padding: 8px 38px 8px 6px; color: inherit; text-align: left; }
.map-venue-event span, .map-venue-event b { display: block; }
.map-venue-event span { font: 14px/1.15 var(--serif); }
.map-venue-event b { margin-bottom: 2px; color: var(--muted); font: 8px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .06em; }
.map-venue-links { justify-content: flex-start; margin: 0 0 11px; }
.map-status { position: absolute; left: 14px; bottom: 14px; z-index: 2; min-width: 42px; background: rgba(251,251,248,.9); backdrop-filter: blur(8px); padding: 8px 10px; font-size: 11px; font-weight: 800; font-variant-numeric: tabular-nums; text-align: center; display: flex; align-items: center; justify-content: center; gap: 6px; }
.map-data-pulse { position: absolute; z-index: 2; left: 14px; bottom: 48px; max-width: min(340px, calc(100% - 80px)); display: flex; align-items: center; gap: 8px; padding: 6px 9px; background: rgba(251,251,248,.78); backdrop-filter: blur(8px); color: var(--muted); font-size: 8px; line-height: 1.25; letter-spacing: .06em; text-transform: uppercase; }
.map-data-pulse[hidden] { display: none; }
.map-data-pulse i { width: 22px; height: 1px; flex: 0 0 auto; background: var(--ink); transform-origin: left; }
.map-data-pulse.is-pulsing i { animation: map-data-drink 1.5s cubic-bezier(.2,.75,.15,1); }
.map-data-pulse.is-pulsing span { animation: map-data-copy .45s ease-out; }
@keyframes map-data-drink { 0% { opacity: .18; transform: scaleX(.06); } 45% { opacity: 1; transform: scaleX(1); } 100% { opacity: .45; transform: scaleX(.35); } }
@keyframes map-data-copy { from { opacity: .18; transform: translateX(-3px); } to { opacity: 1; transform: none; } }
.live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ink); }
.map-recenter { position: relative; z-index: 2; flex: 0 0 40px; width: 40px; height: 34px; border: 0; background: transparent; font-size: 10px; font-weight: 800; box-shadow: none; }
.mobile-nav { display: none; }

/* Ask Elsewheres adapts the tested Craftbot shell to the static explorer. */
.ask-elsewheres {
  --ask-paper: #fbfbf8;
  --ask-ink: #111210;
  --ask-soft: #e5e5e0;
  --ask-muted: #71726d;
  position: fixed;
  z-index: 90;
  right: clamp(14px, 2vw, 28px);
  bottom: clamp(14px, 2vw, 28px);
  width: max-content;
  max-width: calc(100vw - 28px);
  color: var(--ask-ink);
  isolation: isolate;
}
.ask-panel {
  position: relative;
  width: min(420px, calc(100vw - 28px));
  height: min(670px, calc(100dvh - 120px));
  margin: 0 0 0 auto;
  display: grid;
  grid-template-columns: 0 minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
  overscroll-behavior: contain;
  border: 0;
  border-radius: 14px;
  background: var(--ask-paper);
  box-shadow: 0 28px 70px rgba(0,0,0,.2);
  transform-origin: 92% 100%;
  animation: ask-deploy 380ms var(--ease-out) both;
  transition: width 260ms var(--ease-out), height 260ms var(--ease-out), grid-template-columns 260ms var(--ease-out);
}
.ask-panel[hidden] { display: none; }
.ask-elsewheres.has-sidebar .ask-panel { width: min(620px, calc(100vw - 28px)); grid-template-columns: 190px minmax(0, 1fr); }
.ask-elsewheres.is-expanded .ask-panel {
  width: min(720px, calc(100vw - 28px));
  height: min(820px, calc(100dvh - 120px));
}
.ask-elsewheres.is-expanded.has-sidebar .ask-panel { width: min(860px, calc(100vw - 28px)); grid-template-columns: 210px minmax(0, 1fr); }
.ask-elsewheres.is-closing .ask-panel {
  pointer-events: none;
  animation: ask-stow 240ms ease-in both;
}
.ask-head {
  grid-row: 1;
  min-height: 58px;
  display: flex;
  align-items: stretch;
  border: 0;
  background: var(--ask-paper);
}
.ask-main { position: relative; min-width: 0; min-height: 0; grid-column: 2; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; overflow: hidden; background: var(--ask-paper); }
.ask-identity {
  min-width: 0;
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}
.ask-identity:not(:disabled):hover, .ask-identity:not(:disabled):focus-visible { outline: 0; background: var(--ask-soft); }
.ask-identity:disabled { cursor: default; }
.ask-head-menu { width: 42px; min-height: 44px; flex: 0 0 42px; border: 0; background: transparent; color: var(--ask-ink); font-size: 18px; }
.ask-head-menu:hover, .ask-head-menu:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-identity > svg { width: 28px; height: 28px; flex: 0 0 auto; fill: currentColor; }
.ask-identity > div { min-width: 0; display: grid; gap: 2px; }
.ask-identity strong { overflow: hidden; font: 21px/1 var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.ask-head-actions { flex: 0 0 126px; display: grid; grid-template-columns: repeat(3, 42px); }
.ask-head-actions button {
  width: 42px;
  min-height: 44px;
  border: 0;
  border: 0;
  background: transparent;
  color: var(--ask-ink);
  font-size: 18px;
}
.ask-head-actions button:hover, .ask-head-actions button:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-head-actions svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.35; }
.ask-sidebar { min-width: 0; min-height: 0; grid-column: 1; grid-row: 1; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border-right: 1px solid var(--line); background: #efefe9; opacity: 0; pointer-events: none; }
.ask-elsewheres.has-sidebar .ask-sidebar { opacity: 1; pointer-events: auto; }
.ask-sidebar-meta { display: grid; gap: 2px; padding: 8px; border-bottom: 1px solid var(--line); }
.ask-sidebar-profile { padding: 8px; border-top: 1px solid var(--line); }
.ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button { min-width: 0; width: 100%; min-height: 36px; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 7px; border: 0; background: transparent; color: inherit; padding: 0 7px; text-align: left; transition: background-color 160ms ease, color 160ms ease, transform 220ms var(--ease-out); }
.ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button:hover, .ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button:focus-visible, .ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button.is-active { outline: 0; background: var(--ask-ink); color: var(--ask-paper); transform: translateX(3px); }
.ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) span { display: grid; place-items: center; font-size: 15px; transition: transform 220ms var(--ease-spring); }
.ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button:hover span, .ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) button:focus-visible span { transform: rotate(-8deg) scale(1.12); }
.ask-sidebar :is(.ask-sidebar-meta, .ask-sidebar-profile) strong { overflow: hidden; font: 750 9px/1 var(--sans); letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ask-thread-list { min-height: 0; display: grid; align-content: start; gap: 2px; overflow: auto; padding: 8px; scrollbar-width: thin; }
.ask-thread-list[hidden] { display: none; }
.ask-thread { position: relative; min-width: 0; display: grid; grid-template-columns: 1fr 28px; align-items: stretch; border: 0; background: transparent; transition: transform 180ms var(--ease-out); }
.ask-thread:hover, .ask-thread:focus-within { transform: translateX(3px); }
.ask-thread.is-active { background: transparent; }
.ask-thread.is-active .ask-thread-title { font-weight: 750; }
.ask-thread-select { min-width: 0; min-height: 42px; display: grid; grid-template-columns: 8px minmax(0, 1fr); align-items: center; gap: 5px; overflow: hidden; border: 0; background: transparent; color: inherit; padding: 0 4px 0 7px; text-align: left; }
.ask-thread-select:hover, .ask-thread-select:focus-visible, .ask-thread-delete:hover, .ask-thread-delete:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-thread-activity { width: 5px; height: 5px; border-radius: 50%; background: transparent; }
.ask-thread.is-unread .ask-thread-activity { background: var(--ask-ink); }
.ask-thread.is-pending .ask-thread-activity { border: 1px solid currentColor; background: transparent; animation: live-pulse 1s ease-in-out infinite; }
.ask-thread-title { min-width: 0; overflow: hidden; font: 11px/1.2 var(--sans); white-space: nowrap; }
.ask-thread-title > span { display: block; width: max-content; max-width: none; }
.ask-thread-title.is-overflowing:hover > span, .ask-thread-select:focus-visible .ask-thread-title.is-overflowing > span { animation: ask-thread-marquee var(--ask-thread-marquee-duration, 5s) linear infinite alternate; }
.ask-thread-delete { width: 28px; min-height: 42px; border: 0; background: transparent; color: var(--ask-muted); font-size: 14px; opacity: .42; }
.ask-thread:hover .ask-thread-delete, .ask-thread:focus-within .ask-thread-delete { opacity: 1; }
.ask-main-sheet { position: absolute; z-index: 7; inset: 58px 0 0; overflow: auto; border-top: 1px solid var(--line); background: var(--ask-paper); overscroll-behavior: contain; }
.ask-main-sheet[hidden], .ask-sheet-panel[hidden] { display: none; }
.ask-sheet-panel { min-height: 100%; padding: clamp(18px, 4vw, 34px); animation: ask-sheet-enter 260ms var(--ease-out) both; }
.ask-sheet-panel:focus { outline: 0; }
.ask-sheet-panel > header { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: center; gap: 9px; padding-bottom: 18px; border-bottom: 1px solid var(--ask-ink); }
.ask-sheet-panel > header > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--ask-ink); font-size: 21px; }
.ask-sheet-panel h2 { margin: 0; font: clamp(30px, 6vw, 46px)/.9 var(--serif); letter-spacing: -.035em; }
.ask-sheet-panel > header button { width: 42px; height: 42px; border: 0; background: transparent; color: inherit; font-size: 22px; transition: background-color 160ms ease, color 160ms ease, transform 200ms var(--ease-spring); }
.ask-sheet-panel > header button:hover, .ask-sheet-panel > header button:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); transform: rotate(8deg); }
.ask-sheet-actions { display: grid; margin-top: 18px; }
.ask-sheet-actions :is(button, a) { min-width: 0; min-height: 62px; display: grid; grid-template-columns: 40px minmax(0, 1fr) 24px; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; padding: 0 8px; text-align: left; text-decoration: none; transition: background-color 160ms ease, color 160ms ease, padding 220ms var(--ease-out); }
.ask-sheet-actions :is(button, a):hover, .ask-sheet-actions :is(button, a):focus-visible, .ask-sheet-actions :is(button, a).is-active { outline: 0; background: var(--ask-ink); color: var(--ask-paper); padding-right: 13px; padding-left: 13px; }
.ask-sheet-actions span { display: grid; place-items: center; font-size: 20px; transition: transform 220ms var(--ease-spring); }
.ask-sheet-actions :is(button, a):hover span, .ask-sheet-actions :is(button, a):focus-visible span { transform: rotate(-9deg) scale(1.14); }
.ask-sheet-actions strong { min-width: 0; overflow: hidden; font: 750 10px/1 var(--sans); letter-spacing: .07em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ask-sheet-actions i { font-style: normal; font-size: 16px; text-align: right; transition: transform 180ms var(--ease-out); }
.ask-sheet-actions :is(button, a):hover i, .ask-sheet-actions :is(button, a):focus-visible i { transform: translateX(3px); }
.ask-sheet-summary { display: grid; gap: 5px; margin-top: 18px; padding: 18px; background: var(--ask-soft); }
.ask-sheet-summary strong { font: 21px/1 var(--serif); }
.ask-sheet-summary span { color: var(--ask-muted); font-size: 8px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.ask-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 18px; background: var(--line); }
.ask-location-grid button { min-width: 0; min-height: 82px; display: grid; place-items: center; gap: 6px; border: 0; background: var(--ask-paper); color: inherit; padding: 10px; transition: background-color 160ms ease, color 160ms ease, transform 220ms var(--ease-spring); }
.ask-location-grid button:hover, .ask-location-grid button:focus-visible, .ask-location-grid button.is-active { position: relative; z-index: 1; outline: 0; background: var(--ask-ink); color: var(--ask-paper); transform: scale(.97); }
.ask-location-grid span { font-size: 22px; }
.ask-location-grid strong { overflow: hidden; max-width: 100%; font: 750 9px/1.1 var(--sans); letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ask-context {
  grid-row: 2;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 13px;
  border-bottom: 1px solid var(--line);
  background: var(--ask-soft);
}
.ask-context[hidden] { display: none; opacity: 0; transform: translateY(-6px); }
.ask-context span { min-width: 0; flex: 1; overflow: hidden; font-size: 9px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.ask-context span::before { content: "Discussing "; color: var(--ask-muted); font-weight: 600; }
.ask-context button { width: 38px; align-self: stretch; border: 0; border-left: 1px solid var(--line); background: transparent; }
.ask-memory {
  grid-row: 3;
  min-height: 34px;
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--line);
  background: var(--ask-paper);
}
.ask-memory > button { min-height: 34px; border: 0; background: transparent; color: var(--ask-muted); }
.ask-memory > button:first-child { min-width: 0; flex: 1; display: flex; align-items: center; gap: 6px; padding: 0 12px; text-align: left; }
.ask-memory > button:first-child:hover, .ask-memory > button:first-child:focus-visible { outline: 0; background: var(--ask-soft); color: var(--ask-ink); }
.ask-memory strong { overflow: hidden; color: var(--ask-ink); font-size: 8px; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ask-memory small { margin-left: auto; font-size: 7px; white-space: nowrap; }
.ask-memory #askForgetMemory { flex: 0 0 auto; border-left: 1px solid var(--line); padding: 0 11px; font-size: 7px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ask-memory #askForgetMemory:hover, .ask-memory #askForgetMemory:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-memory #askForgetMemory[hidden] { display: none; }
.ask-transcript {
  grid-row: 4;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 16px 13px 8px;
  scrollbar-width: thin;
}
.ask-transcript article { position: relative; max-width: 91%; margin: 0 0 13px; animation: ask-message 240ms ease both; }
.ask-transcript article.is-user { width: fit-content; max-width: 91%; margin-left: auto; }
.ask-transcript article > p {
  margin: 0;
  padding: 10px 12px;
  border-radius: 14px 14px 14px 2px;
  background: var(--ask-soft);
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.ask-transcript article.is-user > p { border-radius: 14px 14px 2px 14px; background: var(--ask-ink); color: var(--ask-paper); }
.ask-message-attachments { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; margin-top: 4px; }
.ask-message-attachments span { max-width: 190px; display: grid; gap: 2px; border: 1px solid var(--line); background: var(--ask-paper); padding: 6px 8px; overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.ask-message-attachments b { color: var(--ask-muted); font-size: 6px; letter-spacing: .08em; text-transform: uppercase; }
.ask-thought { margin: 0 0 6px; color: var(--ask-muted); }
.ask-thought summary {
  min-height: 28px;
  width: fit-content;
  display: flex;
  align-items: center;
  gap: 7px;
  border-radius: 8px;
  padding: 4px 7px;
  cursor: pointer;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  list-style: none;
}
.ask-thought summary::-webkit-details-marker { display: none; }
.ask-thought summary:hover, .ask-thought summary:focus-visible { outline: 0; background: var(--ask-soft); color: var(--ask-ink); }
.ask-thought summary > span { display: flex; align-items: center; gap: 5px; }
.ask-thought-chevron { display: inline-block; font-style: normal; transition: transform 180ms ease; }
.ask-thought[open] .ask-thought-chevron { transform: rotate(180deg); }
.ask-thought-dots { display: inline-flex; align-items: center; gap: 3px; }
.ask-thought-dots i { width: 4px; height: 4px; border-radius: 50%; background: currentColor; animation: ask-dot 850ms ease-in-out infinite; }
.ask-thought-dots i:nth-child(2) { animation-delay: 110ms; }
.ask-thought-dots i:nth-child(3) { animation-delay: 220ms; }
.ask-thought-details { margin: 2px 0 4px 7px; border-left: 1px solid var(--line); padding: 3px 0 3px 12px; }
.ask-thought-details ol { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.ask-thought-details li { display: grid; grid-template-columns: 9px minmax(0, 1fr); gap: 7px; opacity: .68; }
.ask-thought-details li > span { width: 7px; height: 7px; margin-top: 3px; border: 1px solid currentColor; border-radius: 50%; }
.ask-thought-details li.is-current { opacity: 1; color: var(--ask-ink); }
.ask-thought-details li.is-current > span { background: currentColor; box-shadow: 0 0 0 2px var(--ask-paper), 0 0 0 3px currentColor; }
.ask-thought-details li.is-complete > span { border-color: var(--ask-ink); background: var(--ask-ink); }
.ask-thought-details li div { min-width: 0; display: grid; gap: 2px; }
.ask-thought-details li strong { color: var(--ask-ink); font-size: 9px; }
.ask-thought-details li small { font-size: 8px; line-height: 1.35; }
.ask-thought-note { margin: 10px 0 0; padding: 9px 10px; border-radius: 8px; background: var(--ask-soft); color: var(--ask-ink); font-size: 10px; line-height: 1.4; }
.ask-thought-note strong { display: block; margin-bottom: 3px; color: var(--ask-muted); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.ask-transcript article.is-thinking { width: 100%; max-width: 100%; }
.ask-transcript article.is-thinking .ask-thought { margin-bottom: 0; }
.ask-transcript article.is-thinking .ask-thought-details { max-width: 320px; }
.ask-event-results, .ask-itinerary { margin-top: 6px; border: 1px solid var(--line); background: var(--ask-paper); }
.ask-feedback-receipt { margin-top: 7px; padding: 12px; display: grid; gap: 7px; border: 1px solid var(--ask-ink); background: var(--ask-paper); }
.ask-feedback-receipt > span { color: var(--ask-muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ask-feedback-receipt strong { font: 18px/1 var(--serif); }
.ask-feedback-receipt code { overflow-wrap: anywhere; color: var(--ask-muted); font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.ask-feedback-receipt button { min-height: 38px; border: 0; background: var(--ask-ink); color: var(--ask-paper); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ask-feedback-receipt small { color: var(--ask-muted); font-size: 8px; line-height: 1.4; }
.ask-result-head { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 9px; border-bottom: 1px solid var(--line); }
.ask-result-head span { color: var(--ask-muted); font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ask-result-head button, .ask-event-card, .ask-itinerary-item button, .ask-actions button {
  border: 0;
  background: transparent;
  color: inherit;
}
.ask-result-head button { min-height: 30px; font-size: 8px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.ask-event-list { display: grid; }
.ask-event-card {
  width: 100%;
  min-height: 62px;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 9px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.ask-event-card:last-child { border-bottom: 0; }
.ask-event-card time { color: var(--ask-muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.ask-event-card span { min-width: 0; display: grid; gap: 3px; }
.ask-event-card strong { overflow: hidden; font: 15px/1.05 var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.ask-event-card small { overflow: hidden; color: var(--ask-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.ask-event-card > b { font: 15px/1 var(--serif); }
.ask-event-card:hover, .ask-event-card:focus-visible, .ask-itinerary-item button:hover, .ask-itinerary-item button:focus-visible { outline: 0; background: var(--ask-soft); }
.ask-itinerary { padding-bottom: 3px; }
.ask-itinerary h3 { margin: 0; padding: 10px 10px 8px; border-bottom: 1px solid var(--line); font: 21px/1 var(--serif); }
.ask-itinerary ol { margin: 0; padding: 0; list-style: none; }
.ask-itinerary-item { display: grid; grid-template-columns: 32px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.ask-itinerary-item > span { display: grid; place-items: center; border-right: 1px solid var(--line); color: var(--ask-muted); font: 15px/1 var(--serif); }
.ask-itinerary-item button { min-width: 0; padding: 8px 9px; text-align: left; }
.ask-itinerary-item time, .ask-itinerary-item small { display: block; color: var(--ask-muted); font-size: 8px; }
.ask-itinerary-item strong { display: block; margin: 3px 0; font: 15px/1.05 var(--serif); }
.ask-place-tour .ask-itinerary-item > div { min-width: 0; padding: 8px 9px; }
.ask-place-tour .ask-itinerary-item nav { display: flex; gap: 9px; margin-top: 7px; }
.ask-place-tour .ask-itinerary-item a { color: var(--ask-ink); font-size: 8px; font-weight: 800; }
.ask-itinerary footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px; }
.ask-itinerary footer button { min-height:38px; border:0; background:var(--ask-ink); color:var(--ask-paper); padding:0 10px; font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.ask-place-tour footer > a { min-height: 38px; display: grid; place-items: center; background: var(--ask-ink); color: var(--ask-paper); padding: 0 10px; font-size: 8px; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.ask-itinerary footer button:disabled { background:var(--ask-soft); color:var(--ask-muted); }
.ask-itinerary footer span { color:var(--ask-muted); font-size:7px; line-height:1.35; text-align:right; }
.ask-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.ask-actions button { min-height: 30px; padding: 0 9px; background: var(--ask-ink); color: var(--ask-paper); font-size: 8px; font-weight: 800; }
.ask-dock { grid-row: 5; align-self: end; min-width: 0; background: var(--ask-paper); }
.ask-prompts {
  display: block;
  margin: 0 10px 3px;
  padding: 0;
  overflow: hidden;
  border-radius: 0;
  background: transparent;
  scrollbar-width: none;
}
.ask-prompts::-webkit-scrollbar { display: none; }
.ask-prompts.is-overflowing { -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 18px), transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 18px), transparent 100%); }
.ask-prompts button { min-width: 0; min-height: 22px; flex: 0 0 auto; display: flex; align-items: center; gap: 4px; border: 0; border-radius: 0; padding: 2px 4px; background: transparent; color: var(--ask-muted); font-size: 9px; text-align: left; white-space: nowrap; }
.ask-prompts button:hover, .ask-prompts button:focus-visible { outline: 0; background: var(--ask-paper); color: var(--ask-ink); }
.ask-prompt-track { display: flex; width: max-content; align-items: center; justify-content: flex-start; gap: 10px; transform-origin: left center; }
.ask-prompt-track i { font-style: normal; }
.ask-prompts.is-overflowing:hover .ask-prompt-track, .ask-prompts.is-overflowing:focus-within .ask-prompt-track { animation: ask-prompt-marquee var(--ask-prompt-duration, 4s) linear infinite alternate; }
.ask-form { position: relative; z-index: 2; padding: 4px 10px 7px; border: 0; background: var(--ask-paper); }
.ask-composer { min-height: 78px; display: grid; grid-template-columns: minmax(0, 1fr) 44px 44px; grid-template-rows: minmax(44px, auto) 38px; align-items: end; border: 0; border-radius: 14px; padding: 4px; background: var(--ask-soft); }
.ask-composer:focus-within { background: color-mix(in srgb, var(--ask-soft) 82%, var(--ask-paper)); }
.ask-composer textarea { width: 100%; min-height: 44px; max-height: 118px; grid-column: 1 / -1; grid-row: 1; resize: none; border: 0; padding: 9px 10px 2px; background: transparent; color: var(--ask-ink); font: 13px/1.4 var(--sans); }
.ask-composer textarea:focus { outline: 0; }
.ask-composer button { position: relative; width: 40px; height: 40px; align-self: end; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ask-ink); font-size: 20px; }
.ask-composer button:hover:not(:disabled), .ask-composer button:focus-visible:not(:disabled), .ask-composer .ask-voice.is-active { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-composer .ask-voice svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ask-composer .ask-voice.is-active::after { content: ""; position: absolute; inset: -3px; border: 1px solid var(--ask-ink); border-radius: 50%; animation: ask-voice-pulse 900ms ease-in-out infinite; pointer-events: none; }
.ask-composer button:disabled { cursor: wait; opacity: .35; }
.ask-attachment-tool { position: relative; grid-column: 1; grid-row: 2; align-self: end; justify-self: start; }
.ask-attachment-tool > button { font-size: 22px; }
.ask-attachment-menu { position: absolute; z-index: 4; left: 2px; bottom: 45px; width: 118px; display: grid; border: 1px solid var(--line); background: var(--ask-paper); box-shadow: 0 12px 30px rgba(0,0,0,.14); padding: 4px; }
.ask-attachment-menu[hidden] { display: none; }
.ask-attachment-menu button { width: 100%; height: 34px; grid-template-columns: 20px minmax(0, 1fr); gap: 6px; border-radius: 0; justify-items: start; padding: 0 9px; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ask-attachment-menu button span { display: grid; place-items: center; font-size: 14px; font-weight: 500; }
.ask-attachment-menu button strong { font: inherit; }
.ask-voice { grid-column: 2; grid-row: 2; }
#askSend { grid-column: 3; grid-row: 2; }
.ask-attachment-chips { display: flex; gap: 5px; overflow-x: auto; padding: 0 2px 5px; scrollbar-width: none; }
.ask-attachment-chips[hidden] { display: none; }
.ask-attachment-chip { min-width: 0; max-width: 180px; min-height: 30px; flex: 0 0 auto; display: grid; grid-template-columns: 24px minmax(0, 1fr) 24px; align-items: center; gap: 3px; border: 1px solid var(--line); background: var(--ask-soft); padding: 2px; }
.ask-attachment-chip > span:first-child { width: 24px; height: 24px; display: grid; place-items: center; overflow: hidden; background: var(--ask-paper); font-size: 11px; }
.ask-attachment-chip img { width: 100%; height: 100%; object-fit: cover; }
.ask-attachment-chip strong { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.ask-attachment-chip button { width: 24px; height: 24px; border: 0; background: transparent; }
.ask-attachment-chip button:hover, .ask-attachment-chip button:focus-visible { outline: 0; background: var(--ask-ink); color: var(--ask-paper); }
.ask-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ask-launcher {
  min-width: 52px;
  width: 52px;
  height: 58px;
  margin-left: auto;
  display: grid;
  grid-template-columns: 0fr 42px;
  align-items: center;
  gap: 0;
  border: 0;
  padding: 5px;
  background: var(--ask-paper);
  color: var(--ask-ink);
  box-shadow: 0 12px 28px rgba(0,0,0,.14);
  text-align: left;
  overflow: hidden;
  transition: width 280ms var(--ease-out), grid-template-columns 280ms var(--ease-out), gap 280ms var(--ease-out), padding 280ms var(--ease-out), transform 220ms var(--ease-out);
}
.ask-launcher-copy { min-width: 0; max-width: 0; display: grid; gap: 2px; overflow: hidden; opacity: 0; visibility: hidden; white-space: nowrap; transform: translateX(6px); transition: max-width 280ms var(--ease-out), opacity 180ms ease, visibility 0s 280ms, transform 280ms var(--ease-out); }
.ask-launcher-copy small { color: var(--ask-muted); font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ask-launcher-copy strong { font: 16px/1 var(--serif); }
.ask-launcher-mark { width: 42px; height: 42px; display: grid; place-items: center; background: var(--ask-ink); color: var(--ask-paper); }
.ask-launcher-mark svg { width: 26px; height: 26px; overflow: visible; }
.ask-launcher-mark path { fill: none; stroke: currentColor; stroke-width: 2; }
.ask-launcher-mark circle { fill: currentColor; }
.ask-elsewheres:not(.is-open) .ask-launcher:hover, .ask-elsewheres:not(.is-open) .ask-launcher:focus-visible { width: 178px; grid-template-columns: 1fr 42px; gap: 8px; padding: 5px 5px 5px 13px; outline: 0; transform: translateY(-2px); }
.ask-elsewheres:not(.is-open) .ask-launcher:hover .ask-launcher-copy, .ask-elsewheres:not(.is-open) .ask-launcher:focus-visible .ask-launcher-copy { max-width: 112px; opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ask-elsewheres.is-open .ask-launcher-copy { display: none; }
.ask-elsewheres.is-open .ask-launcher { min-width: 52px; width: 52px; grid-template-columns: 1fr; padding: 4px; }
.ask-elsewheres.is-open .ask-launcher-mark { width: 42px; }
@keyframes ask-deploy { from { opacity: 0; transform: translateY(14px) scale(.94); } }
@keyframes ask-stow { to { opacity: 0; transform: translateY(12px) scale(.94); } }
@keyframes ask-message { from { opacity: 0; transform: translateY(6px); } }
@keyframes ask-sheet-enter { from { opacity: 0; transform: translateX(16px); } }
@keyframes ask-thread-marquee { from { transform: translateX(0); } to { transform: translateX(var(--ask-thread-shift, -20px)); } }
@keyframes ask-prompt-marquee { from { transform: translateX(0); } to { transform: translateX(var(--ask-prompt-shift, -20px)); } }
@keyframes ask-dot { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } }
@keyframes ask-voice-pulse { 50% { opacity: .25; transform: scale(1.16); } }

dialog { border: 0; padding: 0; background: var(--white); color: var(--ink); box-shadow: 0 18px 70px rgba(0,0,0,.25); opacity: 0; transform: translateY(14px) scale(.985); }
dialog[open] { opacity: 1; transform: translateY(0) scale(1); }
dialog::backdrop { background: rgba(17,18,16,.4); backdrop-filter: blur(3px); opacity: 0; }
dialog[open]::backdrop { opacity: 1; }
.encounter-dialog { width: min(1120px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); overflow: auto; background: var(--paper); }
.encounter-dialog::backdrop { background: rgba(17,18,16,.6); }
.encounter-dialog > article { position: relative; padding: clamp(28px, 4vw, 52px); }
.encounter-dialog .dialog-close-form { position: absolute; z-index: 4; top: 16px; right: 18px; }
.encounter-dialog .dialog-close-form .dialog-close { position: static; }
.encounter-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 42px; padding-right: 54px; }
.encounter-heading .eyebrow { display: flex; align-items: center; gap: 8px; }
.encounter-live-mark { position: relative; width: 10px; height: 10px; display: inline-block; border: 1px solid currentColor; border-radius: 50%; }
.encounter-live-mark::after { content: ""; position: absolute; inset: 3px; border-radius: inherit; background: currentColor; }
.encounter-code { grid-column: 2; grid-row: 1; margin: 0; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.encounter-heading h2 { grid-column: 1 / -1; max-width: 780px; margin-top: 18px; font-size: clamp(48px, 7vw, 88px); line-height: .84; letter-spacing: -.052em; text-wrap: balance; }
.encounter-thesis { grid-column: 1 / -1; max-width: 620px; margin: 22px 0 0 auto; color: #454642; font: 19px/1.35 var(--serif); text-align: right; }
.encounter-view-switch { min-height: 42px; display: flex; align-items: center; gap: 20px; margin-top: 30px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); font-family: var(--sans); }
.encounter-view-switch button { position: relative; min-height: 41px; border: 0; background: transparent; padding: 0; color: var(--muted); font: 700 9px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.encounter-view-switch button::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--ink); transform: scaleX(0); }
.encounter-view-switch button.active { color: var(--ink); }
.encounter-view-switch button.active::after { transform: scaleX(1); }
.encounter-view-switch > span { margin-left: auto; color: var(--muted); font: 700 7px/1.2 var(--sans); letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.encounter-body { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(280px, .82fr); gap: clamp(24px, 4vw, 58px); align-items: stretch; margin-top: 38px; padding-top: 16px; border-top: 1px solid var(--ink); }
.encounter-field { position: relative; min-height: 410px; overflow: hidden; background: #dbdcd6; isolation: isolate; }
.encounter-map-svg { position: absolute; z-index: 1; inset: 5%; width: 90%; height: 82%; overflow: visible; color: var(--ink); }
.encounter-map-svg .encounter-map-grid { fill: none; stroke: currentColor; stroke-width: .16; opacity: .18; }
.encounter-map-svg > polyline { fill: none; stroke: currentColor; stroke-width: .55; stroke-dasharray: 1.5 1.2; vector-effect: non-scaling-stroke; }
.encounter-field::before { content: ""; position: absolute; z-index: 0; width: 68%; aspect-ratio: 1; top: 48%; left: 46%; border: 1px solid rgba(17,18,16,.16); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 54px rgba(17,18,16,.035), 0 0 0 108px rgba(17,18,16,.025); }
.encounter-field-grid { position: absolute; inset: 0; opacity: .42; background-image: linear-gradient(rgba(17,18,16,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(17,18,16,.15) 1px, transparent 1px); background-size: 44px 44px; -webkit-mask-image: linear-gradient(145deg, transparent 4%, black 28%, black 74%, transparent 100%); mask-image: linear-gradient(145deg, transparent 4%, black 28%, black 74%, transparent 100%); }
.encounter-field-route { position: absolute; z-index: 1; pointer-events: none; }
.encounter-field-route-a { width: 83%; height: 1px; top: 55%; left: 8%; background: var(--ink); transform: rotate(-24deg); transform-origin: left; }
.encounter-field-route-b { width: 44%; height: 28%; top: 35%; left: 34%; border: solid var(--ink); border-width: 0 1px 1px 0; transform: skew(-21deg) rotate(7deg); }
.encounter-field-points { position: absolute; z-index: 2; inset: 0; margin: 0; padding: 0; list-style: none; }
.encounter-field-points li { position: absolute; top: var(--field-y); left: var(--field-x); width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); transform: translate(-50%, -50%); }
.encounter-field-points li::after { content: ""; position: absolute; inset: -7px; border: 1px solid rgba(17,18,16,.17); border-radius: inherit; }
.encounter-field-points span { font: 10px/1 var(--serif); }
.encounter-field-points b { position: absolute; top: 34px; left: 50%; width: 96px; font-size: 7px; line-height: 1.2; letter-spacing: .08em; text-align: center; text-transform: uppercase; transform: translateX(-50%); }
.encounter-field-points li:nth-child(even) b { top: auto; bottom: 34px; }
.encounter-field-caption { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; gap: 20px; padding: 10px 12px; background: rgba(242,242,239,.88); color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(5px); }
.encounter-network-field { background: #f6f6f3; font-family: var(--sans); }
.encounter-network-field canvas, #encounterSpaceCanvas { width: 100%; height: 100%; min-height: 410px; display: block; touch-action: none; }
.encounter-network-field canvas:focus-visible, #encounterSpaceCanvas:focus-visible { outline: 1px solid var(--ink); outline-offset: -5px; }
.encounter-network-hud { position: absolute; z-index: 4; top: 10px; right: 12px; left: 12px; display: flex; justify-content: space-between; gap: 20px; pointer-events: none; color: #686965; font: 700 7px/1.35 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.encounter-network-hud span:last-child { max-width: 46%; text-align: right; }
.encounter-network-key { position: absolute; z-index: 5; right: 10px; bottom: 10px; left: 10px; display: flex; gap: 5px; overflow-x: auto; scrollbar-width: none; }
.encounter-network-key::-webkit-scrollbar { display: none; }
.encounter-network-key button { flex: 0 0 auto; max-width: 132px; min-height: 30px; display: grid; gap: 2px; border: 0; background: rgba(246,246,243,.88); padding: 5px 8px; color: var(--ink); font: 700 8px/1.05 var(--sans); text-align: left; backdrop-filter: blur(8px); }
.encounter-network-key button span { color: var(--muted); font-size: 6px; letter-spacing: .08em; text-transform: uppercase; }
.encounter-network-key button:hover, .encounter-network-key button:focus-visible { outline: 1px solid var(--ink); background: var(--white); }
.encounter-space-field { isolation: isolate; }
.encounter-space-field::after { content: "DISTANCE / TIME / AFFINITY"; position: absolute; right: 11px; bottom: 10px; z-index: 4; color: var(--muted); font: 700 6px/1 var(--sans); letter-spacing: .12em; pointer-events: none; }
.encounter-space-fallback { position: absolute; inset: 50% 14% auto; z-index: 5; margin: 0; padding: 12px; background: var(--white); color: var(--ink); font: 10px/1.5 var(--sans); text-align: center; transform: translateY(-50%); }
.encounter-itinerary { display: flex; flex-direction: column; min-width: 0; padding-top: 6px; }
.encounter-section-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.encounter-section-head > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.encounter-itinerary h3 { max-width: 380px; margin: 10px 0 20px; font: 35px/.98 var(--serif); }
.encounter-route { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.encounter-route li { min-height: 78px; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: start; padding: 15px 0; border-bottom: 1px solid var(--line); }
.encounter-route li > span { color: var(--muted); font: 17px/1 var(--serif); }
.encounter-route li div { min-width: 0; display: grid; gap: 5px; }
.encounter-route strong { font: 17px/1.08 var(--serif); }
.encounter-route strong button { border: 0; border-bottom: 1px solid transparent; background: transparent; padding: 0; color: inherit; font: inherit; text-align: left; }
.encounter-route strong button:hover, .encounter-route strong button:focus-visible { border-bottom-color: currentColor; outline: 0; }
.encounter-route small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.encounter-regenerate { width: 100%; min-height: 50px; display: flex; align-items: center; justify-content: space-between; margin-top: auto; border: 0; background: var(--ink); padding: 0 16px; color: var(--white); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.encounter-regenerate:hover, .encounter-regenerate:focus-visible { outline: 0; background: #32332f; }
.edition-entry { display: grid; grid-template-columns: minmax(160px, 240px) minmax(0, 1fr); gap: clamp(22px, 4vw, 54px); margin-top: clamp(36px, 6vw, 74px); padding: clamp(24px, 4vw, 42px); background: var(--ink); color: var(--white); }
.edition-card-ghost { position: relative; width: min(100%, 224px); aspect-ratio: 2 / 3; min-height: 286px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid #545550; padding: 16px; color: #f4f2e9; isolation: isolate; box-shadow: 0 24px 50px rgba(0,0,0,.2); }
.edition-card-ghost canvas { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; opacity: .82; }
.edition-card-ghost::before, .edition-card-ghost::after { content: ""; position: absolute; border: 1px solid #555650; border-radius: 50%; }
.edition-card-ghost::before { width: 170px; height: 170px; top: 44%; left: 58%; transform: translate(-50%, -50%); }
.edition-card-ghost::after { width: 84px; height: 84px; top: 44%; left: 58%; transform: translate(-50%, -50%); }
.edition-card-ghost span, .edition-card-ghost b { position: relative; z-index: 1; font-size: 7px; letter-spacing: .13em; text-transform: uppercase; }
.edition-card-ghost span { font: 18px/1 var(--serif); letter-spacing: -.02em; text-transform: none; }
.edition-card-ghost i { position: absolute; z-index: 2; top: 44%; left: 58%; width: 8px; height: 8px; border-radius: 50%; background: var(--white); transform: translate(-50%, -50%); }
.edition-entry-copy { max-width: 650px; }
.edition-entry .eyebrow { color: #969792; }
.edition-entry h3 { margin: 8px 0 12px; font: clamp(28px, 4vw, 46px)/.95 var(--serif); }
.edition-entry p:not(.eyebrow) { max-width: 570px; margin: 0; color: #b9bab5; font-size: 10px; line-height: 1.55; }
.edition-safety { display: grid; gap: 5px; margin-top: 16px; border-left: 2px solid #d7c48f; padding: 3px 0 3px 12px; }
.edition-safety strong { color: #f2f2ef; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.edition-safety span { max-width: 560px; color: #c4c5bf; font-size: 9px; line-height: 1.45; }
.edition-collection-entry { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.edition-collection-entry a { min-height: 40px; display: inline-flex; align-items: center; gap: 16px; border-bottom: 1px solid #72736e; color: var(--white); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.edition-collection-entry a:hover, .edition-collection-entry a:focus-visible { border-bottom-color: var(--white); outline: 0; }
.edition-collection-entry > span { max-width: 310px; color: #8f908b; font-size: 7px; line-height: 1.4; letter-spacing: .05em; text-transform: uppercase; }
.edition-code-form { margin-top: 20px; }
.edition-code-form label { display: block; margin-bottom: 7px; color: #7f807b; font-size: 7px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.edition-code-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.edition-code-form input, .edition-code-form button { min-height: 42px; border: 1px solid #555650; background: transparent; color: #f2f2ef; }
.edition-code-form input { min-width: 0; border-right: 0; padding: 0 12px; font-size: 10px; letter-spacing: .08em; }
.edition-code-form input::placeholder { color: #686964; }
.edition-code-form button { margin: 0; padding: 0 13px; font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.edition-code-form button:hover, .edition-code-form button:focus-visible { outline: 0; background: var(--white); color: var(--ink); }
.edition-code-form button:disabled { cursor: wait; opacity: .45; }
.edition-storefront { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.edition-storefront button { min-height: 40px; border: 0; background: var(--white); padding: 0 14px; color: var(--ink); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.edition-storefront button:hover, .edition-storefront button:focus-visible { outline: 1px solid var(--white); outline-offset: 3px; }
.edition-storefront button:disabled { background: #383a36; color: #777873; cursor: not-allowed; }
.edition-storefront > span { max-width: 260px; color: #969792; font-size: 7px; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; }
.edition-entry small { display: block; max-width: 590px; margin-top: 10px; color: #7f807b; font-size: 7px; line-height: 1.45; letter-spacing: .05em; text-transform: uppercase; }
.detail-dialog { width: min(720px, calc(100vw - 28px)); max-height: min(820px, calc(100dvh - 28px)); margin-right: 14px; }
.detail-dialog article, .venue-dialog article, .about-dialog article { padding: 34px; position: relative; }
.dialog-close { position: absolute; right: 20px; top: 17px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; font: 30px/1 var(--serif); }
.detail-date { font-size: 12px; font-weight: 800; margin: 0 0 14px; }
.detail-dialog h2 { font-size: 34px; line-height: 1.04; padding-right: 42px; overflow-wrap: anywhere; }
.detail-title-row { display: block; }
.detail-title-row h2 { padding-right: 0; }
.detail-floatbar { position: sticky; top: 0; z-index: 6; display: grid; grid-template-columns: minmax(0, 1fr) 44px; margin: -34px -34px 24px; background: var(--white); }
.detail-media { width: calc(100% + 68px); margin: -24px -34px 27px; aspect-ratio: 16 / 9; background: #cecec9; }
.detail-media::after { border-width: 0 0 1px; }
.detail-toolbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(44px, 1fr)); align-items: stretch; margin: 0; }
.detail-toolbar > button, .detail-toolbar > a { position: relative; min-width: 0; min-height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); padding: 0; text-decoration: none; }
.detail-toolbar .detail-favorite { color: var(--muted); }
.detail-toolbar .detail-favorite.is-saved { color: var(--ink); }
.detail-toolbar svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.detail-toolbar .detail-favorite.is-saved svg { fill: currentColor; }
.detail-close-form, .dialog-close-form { margin: 0; }
.detail-close-form .dialog-close { position: static; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 0; background: transparent; }
.detail-close-form .dialog-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.detail-toolbar [data-tooltip]::after, .detail-close-form [data-tooltip]::after, .detail-location-disclosure [data-tooltip]::after, .detail-organizer-action[data-tooltip]::after { content: attr(data-tooltip); position: absolute; z-index: 20; top: calc(100% + 5px); left: 50%; width: max-content; max-width: 150px; padding: 5px 7px; background: var(--ink); color: var(--white); font-size: 7px; font-weight: 800; letter-spacing: .04em; line-height: 1.25; text-align: center; text-transform: uppercase; pointer-events: none; opacity: 0; transform: translate(-50%, -4px); }
.detail-toolbar [data-tooltip]:hover::after, .detail-toolbar [data-tooltip]:focus-visible::after, .detail-close-form [data-tooltip]:hover::after, .detail-close-form [data-tooltip]:focus-visible::after, .detail-location-disclosure [data-tooltip]:hover::after, .detail-location-disclosure [data-tooltip]:focus-visible::after, .detail-organizer-action[data-tooltip]:hover::after, .detail-organizer-action[data-tooltip]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.detail-close-form [data-tooltip]::after { right: 4px; left: auto; transform: translateY(-4px); }
.detail-close-form [data-tooltip]:hover::after, .detail-close-form [data-tooltip]:focus-visible::after { transform: translateY(0); }
.about-dialog .dialog-close-form { position: absolute; z-index: 4; top: 17px; right: 20px; }
.about-dialog .dialog-close-form .dialog-close { position: static; }
.detail-toolbar > button:hover, .detail-toolbar > button:focus-visible, .detail-toolbar > a:hover, .detail-toolbar > a:focus-visible, .detail-toolbar > button[aria-expanded="true"] { outline: 0; background: var(--soft); }
.share-panel { display: grid; grid-template-columns: 154px 1fr; gap: 20px; align-items: center; margin: 18px 0 4px; padding: 16px; border: 1px solid var(--line); background: var(--paper); }
.share-panel[hidden] { display: none; opacity: 0; transform: translateY(-8px) scaleY(.96); }
.share-qr { min-height: 138px; display: grid; place-items: center; background: var(--white); }
.share-qr img { display: block; width: 138px; height: 138px; image-rendering: pixelated; }
.share-qr p { margin: 12px; color: var(--muted); font-size: 10px; line-height: 1.4; text-align: center; }
.share-copy > p:first-child { margin: 0 0 14px; font: 17px/1.3 var(--serif); }
.share-actions { display: flex; gap: 8px; }
.share-actions button { flex: 1; min-height: 44px; border: 0; padding: 0 10px; background: var(--ink); color: var(--white); font-size: 10px; }
.share-actions button + button { background: var(--soft); color: var(--ink); }
.share-status { min-height: 14px; margin: 9px 0 0; color: var(--muted); font-size: 9px; line-height: 1.4; }
.about-dialog h2 { font-size: 40px; line-height: 1; padding-right: 30px; }
.detail-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 22px; align-items: start; margin-bottom: 22px; }
.detail-intro-copy { min-width: 0; }
.detail-location-disclosure { position: relative; display: inline-block; margin-top: 10px; }
.detail-location-disclosure summary { position: relative; width: 34px; height: 34px; display: grid; place-items: center; cursor: pointer; list-style: none; color: var(--muted); }
.detail-location-disclosure summary::-webkit-details-marker { display: none; }
.detail-location-disclosure summary svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.detail-location-disclosure[open] summary, .detail-location-disclosure summary:hover, .detail-location-disclosure summary:focus-visible { outline: 0; background: var(--ink); color: var(--white); }
.detail-location-disclosure > div { min-width: min(360px, calc(100vw - 72px)); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 0 2px; }
.detail-location-disclosure p { display: grid; gap: 2px; margin: 0; font-size: 11px; line-height: 1.35; }
.detail-location-disclosure p span { color: var(--muted); }
.detail-location-disclosure nav { display: flex; gap: 4px; }
.detail-location-disclosure nav > * { width: 34px; height: 34px; display: grid; place-items: center; border: 0; background: var(--soft); color: var(--ink); padding: 0; }
.detail-location-disclosure nav svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.detail-location-disclosure nav > *:hover, .detail-location-disclosure nav > *:focus-visible { outline: 0; background: var(--ink); color: var(--white); }
.detail-minimap { position: relative; display: block; margin: 0; border: 0; color: var(--ink); background: var(--paper); overflow: hidden; }
.detail-minimap-surface { display: block; color: inherit; text-decoration: none; }
.detail-minimap-map { position: relative; height: 138px; display: block; overflow: hidden; background-color: #d8d8d3; background-image: linear-gradient(rgba(17,18,16,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(17,18,16,.08) 1px, transparent 1px); background-size: 24px 24px; pointer-events: none; }
.detail-minimap-map::after { content: ''; position: absolute; z-index: 2; inset: 0; background: linear-gradient(to bottom, rgba(17,18,16,0) 28%, rgba(17,18,16,.16) 62%, rgba(17,18,16,.88) 100%); box-shadow: inset 0 0 34px rgba(17,18,16,.16); pointer-events: none; }
.detail-minimap-loading { position: absolute; z-index: 0; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.detail-minimap-map .maplibregl-map { position: absolute; z-index: 1; inset: 0; }
.detail-minimap-marker { width: 19px; height: 19px; display: block; border: 5px solid var(--white); border-radius: 50%; background: var(--ink); box-shadow: 0 2px 8px rgba(17,18,16,.32); }
.detail-minimap-marker.is-muted { background: #777873; opacity: .22 !important; }
.detail-poi-marker { width: 8px; height: 8px; display: block; border: 2px solid rgba(255,255,255,.62); border-radius: 50%; background: #777873; opacity: .12 !important; box-shadow: 0 1px 4px rgba(17,18,16,.12); }
.detail-poi-marker.is-selected { width: 15px; height: 15px; border-width: 4px; background: var(--ink); opacity: 1 !important; box-shadow: 0 2px 8px rgba(17,18,16,.34); }
.detail-minimap-surface:hover, .detail-minimap-surface:focus-visible { outline: 0; }
.detail-minimap-surface:focus-visible .detail-minimap-map { outline: 1px solid var(--white); outline-offset: -4px; }
.detail-map-focus { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; min-height: 50px; display: flex; align-items: flex-end; gap: 12px; padding: 9px 10px; color: var(--white); pointer-events: none; }
.detail-map-focus-copy { min-width: 0; display: grid; gap: 2px; }
.detail-map-focus-copy small { font-size: 7px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; opacity: .7; }
.detail-map-focus-copy strong { display: -webkit-box; overflow: hidden; font: 17px/1.05 var(--serif); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.detail-map-resources { flex: 0 0 auto; display: flex; align-items: center; gap: 2px; margin-left: auto; pointer-events: auto; }
.detail-map-resource, .detail-map-resources > a { position: static; width: 32px; height: 32px; display: grid; place-items: center; border: 0; background: rgba(255,255,255,.16); color: var(--white); padding: 0; text-decoration: none; box-shadow: none; }
.detail-map-resource svg, .detail-map-resources > a svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.detail-map-resource:hover, .detail-map-resource:focus-visible, .detail-map-resources > a:hover, .detail-map-resources > a:focus-visible { outline: 0; background: var(--white); color: var(--ink); transform: translateY(-1px); }
.detail-map-focus.is-standalone { position: static; justify-content: flex-end; min-height: 40px; padding: 0; color: var(--ink); }
.detail-map-focus.is-standalone .detail-map-resource { background: var(--soft); color: var(--ink); }
.detail-location-pending { min-height: 184px; display: grid; place-content: center; justify-items: center; gap: 8px; background: var(--soft); color: var(--muted); text-align: center; }
.detail-location-pending svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.detail-location-pending span { max-width: 120px; font-size: 7px; font-weight: 800; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.detail-description { font: 19px/1.4 var(--serif); color: #444541; margin: 28px 0; }
.detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; padding: 20px 0; border-top: 1px solid var(--line); }
.detail-grid dt { font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.detail-grid dd { margin: 4px 0 0; font-size: 12px; }
.detail-grid dd button { display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; padding: 0; color: inherit; text-align: left; }
.detail-grid dd button:hover, .detail-grid dd button:focus-visible { outline: 0; text-decoration: underline; }
.detail-grid dd button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.source-note { color: #8a8b86; font-size: 8.5px; line-height: 1.45; margin-top: 18px; }
.detail-sources { margin-top: 20px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.detail-sources-heading { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.detail-sources-heading::-webkit-details-marker { display: none; }
.detail-sources-heading > span { margin: 0; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.detail-sources-heading > strong { margin-left: auto; border: 1px solid var(--ink); border-radius: 999px; padding: 3px 7px; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.detail-sources-heading > i { font: 18px/1 var(--serif); transform: rotate(0); }
.detail-sources[open] .detail-sources-heading > i { transform: rotate(180deg); }
.detail-sources-content { padding-bottom: 12px; }
.detail-sources ul { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--line); }
.detail-sources li { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 11px 0; border-top: 1px solid var(--line); }
.detail-sources li > div { min-width: 0; display: grid; gap: 3px; }
.detail-sources strong { overflow-wrap: anywhere; font-size: 11px; }
.detail-sources small { color: var(--muted); font-size: 7.5px; line-height: 1.45; overflow-wrap: anywhere; }
.detail-sources nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.detail-sources a { border: 1px solid var(--line); padding: 6px 7px; color: var(--ink); font-size: 8px; text-decoration: none; white-space: nowrap; }
.detail-sources a:hover, .detail-sources a:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); }
.detail-sources-content > p { margin: 9px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.detail-tag-groups { min-width: 0; margin: 0 0 18px; overflow: hidden; }
.detail-trust { margin:24px 0 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }
.detail-trust summary { min-height:48px; display:flex; align-items:center; cursor:pointer; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.detail-trust summary::marker { color:var(--muted); }
.detail-trust > div { padding:0 0 16px; }
.detail-trust p { margin:0 0 10px; color:var(--muted); font-size:10px; line-height:1.55; }
.detail-trust p:last-child { margin-bottom:0; }
.detail-trust strong { color:var(--ink); }
.detail-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 14px; overflow: visible; padding: 2px 0 5px; }
.detail-tags button { min-height: 24px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; padding: 1px 0; font-size: 8px; }
.detail-tags button:hover, .detail-tags button:focus-visible { background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.place-knowledge { margin: 4px 0 14px; border: 0; }
.place-story-grid { display: flex; gap: 18px; overflow-x: auto; padding: 0 0 3px; scrollbar-width: thin; }
.place-story-card { position: relative; min-width: 148px; flex: 1 0 148px; overflow: hidden; border: 0; background: transparent; color: var(--muted); opacity: .48; }
.detail-dialog .place-story-card, .venue-dialog .place-story-card { padding: 0; }
.place-story-select { width: 100%; min-height: 62px; display: grid; align-content: center; gap: 4px; border: 0; background: transparent; color: inherit; padding: 9px 10px; text-align: left; }
.place-story-select p { margin: 0; color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transform: translateY(3px); }
.place-story-select strong { font: 15px/1.08 var(--serif); overflow-wrap: anywhere; }
.place-story-card:hover, .place-story-card:focus-within, .place-story-card.is-selected { background: transparent; color: var(--ink); opacity: 1; }
.place-story-card:hover .place-story-select p, .place-story-card:focus-within .place-story-select p { opacity: 1; transform: translateY(0); }
.place-story-walk { min-height: 30px; display: block; margin: 4px 0 0 auto; border: 0; background: transparent; color: var(--muted); padding: 0 2px; font-size: 7px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.place-story-walk:hover, .place-story-walk:focus-visible { outline: 0; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.tour-dialog { width: min(720px, calc(100vw - 28px)); max-height: min(860px, calc(100dvh - 28px)); }
.tour-dialog article { position: relative; padding: 34px; }
.tour-dialog h2 { max-width: 620px; margin: 5px 0 12px; padding-right: 32px; font: 46px/.96 var(--serif); }
.tour-lead { max-width: 590px; margin: 0 0 24px; color: var(--muted); font: 17px/1.4 var(--serif); }
.story-walk-stops { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--ink); }
.story-walk-stops li { display: grid; grid-template-columns: 52px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.story-walk-stops li > span { display: grid; place-items: start center; padding-top: 15px; border-right: 1px solid var(--line); font: 25px/1 var(--serif); }
.story-walk-stops li > div { padding: 14px 16px 15px; }
.story-walk-stops p { margin: 0 0 4px; color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.story-walk-stops h3 { margin: 0 0 5px; font: 23px/1 var(--serif); }
.story-walk-stops small { display: block; color: var(--muted); font-size: 9px; line-height: 1.4; }
.story-walk-stops nav { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.story-walk-stops a { color: var(--ink); font-size: 8px; font-weight: 800; }
.story-walk-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.story-walk-actions a, .story-walk-actions button { min-height: 46px; display: grid; place-items: center; border: 1px solid var(--ink); background: var(--white); color: var(--ink); padding: 8px; font-size: 8px; font-weight: 800; text-align: center; text-decoration: none; text-transform: uppercase; }
.story-walk-actions button { background: var(--ink); color: var(--white); }
.story-walk-note { margin: 12px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.venue-dialog { width: min(680px, calc(100vw - 28px)); max-height: min(820px, calc(100dvh - 28px)); }
.venue-dialog .dialog-close-form { position: absolute; z-index: 4; top: 17px; right: 20px; }
.venue-dialog .dialog-close-form .dialog-close { position: static; }
.venue-dialog h2 { padding-right: 40px; font-size: 42px; line-height: 1; overflow-wrap: anywhere; }
.venue-detail-location { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.venue-detail-media { height: 168px; margin: 22px -34px 0; border-bottom: 1px solid var(--line); }
.venue-detail-links { justify-content: flex-start; margin-top: 18px; }
.venue-map-action { min-height: 40px; margin-top: 10px; border: 1px solid var(--line); background: var(--paper); padding: 0 12px; color: var(--ink); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.venue-map-action:hover, .venue-map-action:focus-visible { outline: 0; border-color: var(--ink); background: var(--ink); color: var(--white); }
.venue-dialog-events { margin: 24px -34px -34px; border-top: 1px solid var(--line); }
.venue-dialog-events .venue-event-row { grid-template-columns: 105px minmax(0, 1fr) auto; padding-left: 34px; padding-right: 34px; }
.venue-dialog-events .venue-event-row.has-media { grid-template-columns: 58px 92px minmax(0, 1fr) auto; }
.about-dialog { width: min(600px, calc(100vw - 28px)); }
.campaigns-dialog { width: min(840px, calc(100vw - 28px)); }
.campaigns-dialog article { max-height: min(820px, calc(100dvh - 28px)); overflow: auto; }
.campaigns-intro { max-width: 660px; margin: 0 0 24px; color: var(--graphite); font: 19px/1.42 var(--serif); }
.campaign-preview-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 22px 0; }
.campaign-preview-card { display: flex; min-height: 330px; flex-direction: column; border: 1px solid var(--line); background: var(--white); }
.campaign-preview-card header { padding: 18px; border-bottom: 1px solid var(--line); }
.campaign-preview-card h3 { margin: 5px 0 0; font: 31px/.98 var(--serif); letter-spacing: -.025em; }
.campaign-preview-card > p { margin: 0; padding: 18px 18px 10px; color: var(--graphite); font-size: 11px; line-height: 1.55; }
.campaign-preview-themes { display: flex; flex-wrap: wrap; gap: 4px; padding: 2px 18px 18px; }
.campaign-preview-themes span { padding: 4px 6px; border: 1px solid var(--line); color: var(--muted); font-size: 8px; }
.campaign-preview-card footer { display: grid; grid-template-columns: 1fr auto; margin-top: auto; border-top: 1px solid var(--line); }
.campaign-preview-card footer a { min-height: 46px; padding: 0 14px; display: flex; align-items: center; border-right: 1px solid var(--line); color: var(--ink); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.campaign-preview-card footer a:last-child { border-right: 0; }
.campaign-preview-card footer a:first-child { background: var(--ink); color: var(--white); }
.about-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 22px 0 28px; }
.about-stats > div, .about-stats > button { min-width: 0; padding: 18px 12px 18px 0; border: 0; background: transparent; text-align: left; }
.about-stats > button:hover, .about-stats > button:focus-visible { background: var(--soft); outline: 0; }
.about-stats strong, .about-stats span { display: block; }
.about-stats strong { font: 29px/1 var(--serif); }
.about-stats span, .fine-print { font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.map-credits { margin: 18px 0 0; color: var(--muted); font-size: 8px; line-height: 1.35; text-align: right; text-transform: uppercase; letter-spacing: .04em; }
.map-credits a { color: inherit; }
.sources-dialog { height: min(720px, calc(100dvh - 28px)); }
.sources-dialog article { height: 100%; display: flex; flex-direction: column; }
.sources-dialog h2 { font-size: 34px; }
.source-audit-stats { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.source-audit-stats div { padding: 12px 10px 11px 0; }
.source-audit-stats strong, .source-audit-stats span { display: block; }
.source-audit-stats strong { font: 25px/1 var(--serif); }
.source-audit-stats span { margin-top: 3px; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.source-audit-note { flex: 0 0 auto; margin: 10px 0 12px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.source-controls { flex: 0 0 auto; display: grid; grid-template-columns: minmax(180px, 1fr) 150px 160px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.source-controls > label { min-width: 0; min-height: 48px; display: flex; align-items: center; border-right: 1px solid var(--line); }
.source-controls > label:last-child { border-right: 0; }
.source-controls > label > span:not([aria-hidden]) { display: none; }
.source-controls select { width: 100%; min-width: 0; height: 48px; border: 0; outline: 0; background: transparent; padding: 0 22px 0 10px; color: var(--ink); font-size: 9px; text-transform: uppercase; text-overflow: ellipsis; }
.source-search { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.source-search span { font: 22px/1 var(--serif); }
.source-search input { width: 100%; border: 0; outline: 0; background: transparent; padding: 14px 0; }
.source-directory-status { flex: 0 0 auto; margin: 9px 0 5px; color: var(--muted); font-size: 8px; line-height: 1.35; text-transform: uppercase; letter-spacing: .05em; }
.source-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.source-row { width: 100%; min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: 13px 0; text-align: left; }
.source-entity-media { width: 64px; height: 48px; }
.source-row:hover, .source-row:focus-visible { background: var(--soft); outline: 0; }
.source-main { min-width: 0; flex: 1; }
.source-title-line { min-width: 0; display: flex; align-items: center; gap: 7px; }
.source-title-line > strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.source-row strong, .source-row small { display: block; }
.source-row .source-title-line > strong { font: 17px/1.15 var(--serif); }
.source-row small, .source-meta, .source-empty { margin-top: 4px; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.source-ingestion { flex: 0 0 auto; border-radius: 99px; background: var(--soft); padding: 4px 6px 3px; color: var(--muted); font-size: 7px; font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.source-row-automated .source-ingestion { background: var(--ink); color: var(--white); }
.source-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.source-tags > span { background: var(--soft); padding: 3px 5px; color: #565752; font-size: 7px; text-transform: uppercase; letter-spacing: .04em; }
.source-tags b { color: var(--muted); font-weight: 500; }
.source-tags-empty { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .05em; }
.source-meta { flex: 0 0 auto; max-width: 36%; text-align: right; }
.source-meta > strong { font: 11px/1.2 var(--sans); }
.source-meta > small { line-height: 1.35; }
.source-empty { padding: 24px 0; }
.external-dialog { width: min(1180px, calc(100vw - 28px)); height: min(820px, calc(100dvh - 28px)); max-width: none; max-height: none; overflow: hidden; }
.external-toolbar { height: 66px; padding: 10px 12px 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); }
.external-toolbar .eyebrow { margin: 0 0 3px; }
.external-toolbar strong { display: block; max-width: 60vw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: 18px/1.1 var(--serif); }
.external-dismiss { min-width: 0; align-self: stretch; flex: 1; border: 0; background: transparent; padding: 0; text-align: left; }
.external-dismiss:hover, .external-dismiss:focus-visible { background: var(--soft); outline: 0; }
.external-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.external-actions a, .external-actions button { min-height: 42px; border: 0; background: var(--ink); color: var(--white); padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-size: 10px; white-space: nowrap; }
.external-actions button { background: var(--soft); color: var(--ink); }
.external-frame-wrap { position: relative; height: calc(100% - 66px); background: var(--white); }
.external-frame-wrap iframe { width: 100%; height: 100%; border: 0; background: var(--white); }
.external-help { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); padding: 7px 9px; background: rgba(17,18,16,.86); color: var(--white); font-size: 9px; pointer-events: none; white-space: nowrap; }

body.view-list .explorer { grid-template-columns: 1fr; }
body.view-list .map-pane { display: none; }
body.view-map .explorer { grid-template-columns: 1fr; }
body.view-map .event-pane { display: none; }

@media (min-width: 901px) {
  .results-head { top: 68px; }
  .day-label { top: 116px; }
  .time-dial { display: grid; }
}

@media (max-width: 900px) {
  .planner { grid-template-columns: 1fr; gap: 25px; padding-top: 26px; }
  .controls { overflow: visible; }
  .explorer { height: calc(100dvh - 354px); grid-template-columns: 50% 50%; }
  body.has-active-filters .explorer { height: calc(100dvh - 394px); }
  .encounter-body { grid-template-columns: 1fr; }
  .encounter-field { min-height: 360px; }
  .encounter-regenerate { margin-top: 18px; }
}

@media (min-width: 641px) and (max-width: 900px) {
  body.view-list .explorer, body.for-you-mode .explorer, body.tags-mode .explorer,
  body.view-list.has-active-filters .explorer, body.for-you-mode.has-active-filters .explorer, body.tags-mode.has-active-filters .explorer { height: auto; min-height: 0; }
  body.view-list .event-pane, body.for-you-mode .event-pane, body.tags-mode .event-pane { overflow: visible; }
  body.view-list .results-head, body.for-you-mode .results-head, body.tags-mode .results-head { position: relative; top: auto; }
  .masthead > .results-switches { position: absolute; z-index: 1; top: 15px; left: 50%; display: flex; padding: 0 5px; background: var(--paper); transform: translateX(-50%); }
  .masthead-meta { gap: 8px; }
  .encounter-button, .subscribe-button { width: 44px; min-height: 44px; padding: 0; }
  .encounter-button > span:last-child, .subscribe-button-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .encounter-button-mark { width: 28px; height: 28px; }
}

@media (min-width: 641px) and (max-width: 799px) {
  .wordmark { width: 44px; min-height: 44px; justify-content: flex-start; }
  .wordmark-name, .wordmark-edition { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .wordmark-edition { margin: 0; padding: 0; border: 0; line-height: 1; }
}

@media (max-width: 640px) {
  body { padding-bottom: 0; }
  .detail-sources li { grid-template-columns: minmax(0, 1fr) auto; }
  .detail-sources nav { justify-content: flex-end; }
  .loading-frame { min-height: 430px; padding: 22px 18px calc(24px + env(safe-area-inset-bottom)); }
  .loading-mark { width: 42px; height: 42px; }
  .loading-brand { gap: 11px; }
  .loading-brand strong { font-size: 25px; }
  .loading-copy { width: 100%; justify-self: stretch; padding: 0 4px; }
  .loading-kicker { margin-bottom: 14px; }
  .loading-status { min-height: 2.5em; font-size: clamp(44px, 15vw, 68px); line-height: .9; }
  .loading-orbit-one { width: 145vw; }
  .loading-orbit-two { width: 90vw; }
  .loading-coordinates span:nth-child(2) { display: none; }
  .masthead { position: sticky; top: 0; z-index: 14; height: 56px; padding: 0 16px; background: var(--paper); }
  .masthead, .active-filter-bar { transition: transform 220ms var(--ease-out), opacity 180ms ease; }
  body.mobile-chrome-hidden .masthead { opacity: 0; pointer-events: none; transform: translateY(-100%); }
  body.mobile-chrome-hidden .active-filter-bar { opacity: 0; pointer-events: none; transform: translateY(calc(-100% - 56px)); }
  .wordmark-mark { width: 24px; height: 24px; }
  .wordmark-name { font-size: 21px; }
  .wordmark-edition { margin-left: 1px; padding-left: 8px; font-size: 8px; line-height: 20px; }
  #clockLabel { display: none; }
  .masthead-meta { gap:12px; }
  .admin-button { min-height: 32px; padding: 0 7px; font-size: 8px; }
  .encounter-button { width: 44px; min-height: 44px; justify-content: center; }
  .encounter-button > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .encounter-button-mark { width: 28px; height: 28px; }
  .subscribe-button { width:44px; min-height:44px; padding:0; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
  .subscribe-button-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .subscribe-grid { grid-template-columns:1fr; }
  .subscribe-dialog { position:fixed; z-index:13; inset:56px 0 calc(58px + env(safe-area-inset-bottom)); width:100%; max-width:none; height:auto; max-height:none; margin:0; box-shadow:0 -12px 40px rgba(17,18,16,.18); }
  .subscribe-dialog > article { min-height:100%; padding:34px 20px 24px; }
  .subscribe-sentence { margin-right:36px; font-size:36px; }
  .subscribe-options { position:fixed; top:auto; right:20px; bottom:calc(58px + env(safe-area-inset-bottom)); left:20px; max-height:min(260px,42dvh); }
  .site-drawer { width: min(288px, 84vw); padding-bottom: env(safe-area-inset-bottom); }
  .site-drawer.is-collapsed { width: 66px; }
  .site-drawer > header { min-height: 56px; }
  .site-drawer nav button { min-height: 48px; }
  .planner { display: contents; }
  .planner-tools { display: contents; }
  .planner-intro { padding: 22px 16px 0; }
  h1 { font-size: 38px; max-width: 350px; }
  .planner-randomize { width: 100%; }
  .planner-randomize::after { right: 0; left: 0; }
  .planner-randomize-die { right: 4px; width: 48px; height: 48px; margin-top: -24px; }
  .date-rail-group { position:relative; top:auto; z-index:13; margin:0; padding:0; background:var(--paper); }
  body.date-rail-hidden .date-rail-group { opacity:1; pointer-events:auto; transform:none; }
  .date-rail { position: static; margin: 0; padding: 0; }
  .date-chip[data-range="past"] { order: -1; }
  .date-chip { flex-basis: 112px; }
  .activity-rail-group { padding:0; background:var(--paper); }
  .activity-rail { grid-column:auto; position:static; gap:2px; padding:8px 0; border:0; background:var(--paper); }
  .activity-chip { min-height: 34px; }
  .mood-mixer { top:100%; right:10px; bottom:auto; left:10px; width:auto; grid-column:auto; grid-template-columns:minmax(0,1fr) auto; padding:12px; background:rgba(251,251,248,.98); }
  .mood-mixer > button:last-of-type { grid-column:2; }
  .mood-mixer > button[type="submit"] { grid-column:2; grid-row:1; }
  .mood-mixer label { grid-column:1; grid-row:1; }
  .mood-recent,.mood-mixer > p { grid-column:1/-1; }
  .mood-index { grid-template-columns:1fr; max-height:min(236px, 32dvh); }
  .active-filter-bar { position: sticky; top: 56px; z-index: 12; min-height: 36px; padding: 0 10px 0 16px; border: 0; background: var(--paper); box-shadow: none; }
  .masthead, .date-rail { border: 0; }
  .clear-active-filters { border: 0; }
  .active-filter-chips button, .clear-active-filters { min-height: 32px; }
  body.mobile-filters { overflow-x:clip; overflow-y:auto; }
  .controls { display:grid; position:relative; inset:auto; z-index:11; grid-template-columns:minmax(0,1fr) max-content max-content 44px; grid-template-areas:"search date activity filters"; grid-template-rows:auto; align-content:start; min-height:48px; height:auto; max-height:none; overflow:visible; padding:0 10px; background:var(--paper); border-radius:0; box-shadow:none; }
  .controls.date-rail-open { grid-template-areas:"date date date date" "search search activity filters"; }
  .controls.activity-rail-open { grid-template-areas:"search date activity filters" "activities activities activities activities"; }
  .controls .date-rail-group, .controls .activity-rail-group { min-width:0; }
  .controls .date-rail-group.is-expanded, .controls .activity-rail-group.is-expanded { min-height:48px; }
  .date-rail-group:not(.is-expanded) .date-chip.active { min-width:106px; }
  .activity-rail-group:not(.is-expanded) .activity-chip.active { width:auto; max-width:min(150px,38vw); padding:0; }
  body.mobile-filters .controls { position: fixed; inset: 56px 0 calc(58px + env(safe-area-inset-bottom)) 0; z-index: 20; grid-template-rows: auto minmax(0, 1fr); overflow-x:hidden; overflow-y:auto; overscroll-behavior-y:auto; touch-action:pan-y; -webkit-overflow-scrolling:touch; padding: 12px 16px 22px; background: rgba(242,242,239,.985); border-radius: 14px 14px 0 0; box-shadow: 0 -16px 38px rgba(0,0,0,.18); }
  body.mobile-filters .controls::before { content: ""; flex: 0 0 auto; align-self: center; width: 36px; height: 3px; margin: 0 0 8px; border-radius: 2px; background: rgba(17,18,16,.28); }
  body.mobile-filters .controls::before { position: absolute; top: 7px; left: 50%; transform: translateX(-50%); }
  .search-wrap { min-width: 0; min-height: 48px; border: 0; }
  .filters-disclosure-toggle { min-width: 44px; padding: 0 6px; }
  .filters-disclosure-toggle b { top: 7px; right: 4px; }
  .filters-disclosure-toggle > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .filters-disclosure { position: static; grid-column: 1 / -1; width: auto; max-height: none; min-height: 0; grid-template-columns: 1fr; margin-top: 6px; overflow:visible; overscroll-behavior-y:auto; touch-action:pan-y; border: 0; background: transparent; padding: 4px 0 0; box-shadow: none; transform-origin: top center; }
  .select-wrap, .date-input-wrap, .time-input-wrap, .check-wrap, .locate-button { border: 0; min-height: 54px; width: 100%; }
  .check-wrap, .locate-button { padding: 0; }
  .explorer { display: block; height: auto; min-height: 0; }
  body.has-active-filters:not(.mobile-map) .explorer { height: auto; }
  .event-pane, .map-pane { width: 100%; border-left: 0; }
  body:not(.mobile-map) .event-pane { height: auto; overflow: visible; }
  body.mobile-map .explorer { height: calc(100dvh - 56px - 63px - 58px - env(safe-area-inset-bottom)); min-height: 300px; }
  body.mobile-map .map-pane { height: 100%; }
  body.mobile-map .planner-intro { display: none; }
  body.mobile-map .mood-mixer { display: none; }
  body.mobile-map .date-rail-group { margin-top: 0; }
  .map-pane { display: none; }
  .map-view-switch { display: none; }
  body.mobile-map .event-pane { display: none; }
  body.mobile-map .map-pane { display: block; }
  .results-head { display: none; }
  .view-switch { display: none; }
  .day-section { --day-sticky-top: 56px; grid-template-columns: 58px 1fr; scroll-margin-top: var(--day-sticky-top); border-bottom: 0; }
  .day-label { position: sticky; top: var(--day-sticky-top); padding-left: 16px; }
  .day-label b, .day-label span, .day-label em { transition: color 180ms ease, opacity 180ms ease; }
  .day-section.is-mobile-approaching .day-label b,
  .day-section.is-mobile-approaching .day-label span,
  .day-section.is-mobile-approaching .day-label em { color: var(--muted); opacity: .28; }
  .day-section.is-mobile-focus .day-label b { color: var(--ink); opacity: 1; }
  .day-section.is-mobile-focus .day-label span,
  .day-section.is-mobile-focus .day-label em { opacity: 1; }
  .day-section.is-sparse .day-label { position: static; min-height: 50px; padding: 7px 5px 5px 16px; }
  .day-section.is-sparse .day-label b { font-size: 22px; }
  .day-section.is-sparse .day-label span { margin-top: 2px; font-size: 7px; line-height: 1.15; }
  .day-section.is-sparse .day-label em { display: none; }
  .jump-now { display: none; }
  .time-dial { position: sticky; top: calc(var(--day-sticky-top) + 108px); z-index: 6; width: 58px; margin: 4px 0 0; display: grid; grid-template-rows: 44px 48px 44px; border: 0; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(8px); }
  .time-dial button { width: 100%; border: 0; background: transparent; color: var(--ink); }
  .time-dial-step { display: grid; place-items: center; color: var(--muted) !important; font: 15px/1 var(--sans); }
  .time-dial-step span { opacity: 0; transform: translateY(var(--time-step-shift, 3px)); transition: opacity 160ms ease, transform 220ms var(--ease-out); }
  .time-dial-prev { --time-step-shift: 3px; }
  .time-dial-next { --time-step-shift: -3px; }
  .time-dial-step:hover:not(:disabled), .time-dial-step:focus:not(:disabled), .time-dial-step.is-revealed:not(:disabled) { outline: 0; background: linear-gradient(to right, transparent, rgba(17,18,16,.055), transparent); }
  .time-dial-step:hover:not(:disabled) span, .time-dial-step:focus:not(:disabled) span, .time-dial-step.is-revealed:not(:disabled) span { opacity: .72; transform: translateY(0); }
  .time-dial-step:disabled { opacity: 0; pointer-events: none; }
  .time-dial-current { position:relative; display: flex; align-items: baseline; justify-content: center; gap: 2px; overflow:hidden; border: 0 !important; }
  .time-dial-current:hover, .time-dial-current:focus-visible { outline: 0; background: var(--soft); }
  .time-dial-value, .time-dial-preview { position:absolute; inset:0; display:flex; align-items:baseline; justify-content:center; gap:2px; padding-top:13px; pointer-events:none; }
  .time-dial-value { opacity:calc(1 - var(--hour-transition, 0) * .72); transform:translateY(calc(var(--hour-transition, 0) * -18px)); }
  .time-dial-preview { color:var(--muted); opacity:0; transform:translateY(28px); }
  .time-dial.is-hour-approaching .time-dial-preview { opacity:calc(.08 + var(--hour-transition, 0) * .56); transform:translateY(calc((1 - var(--hour-transition, 0)) * 28px)); }
  .time-dial-value > span, .time-dial-preview > span { font: 22px/1 var(--serif); }
  .time-dial-value > small, .time-dial-preview > small { font-size: 7px; font-weight: 800; letter-spacing: .03em; }
  .day-section:not(.is-mobile-focus) .time-dial { display: none; }
  .hour-separator { position: relative; z-index: 2; height: 0; display: block; pointer-events: none; }
  .hour-separator::before { content: ""; position: absolute; top: 0; right: 0; left: -58px; height: 1px; background: rgba(17,18,16,.22); opacity: .9; transition: background-color 180ms ease, opacity 180ms ease; }
  .hour-separator.is-hour-approaching::before { background: rgba(17,18,16,.28); opacity: 1; }
  .now-line::before { left: -58px; }
  body.date-rail-hidden .day-section { --day-sticky-top: 56px; scroll-margin-top: 56px; }
  body.date-rail-hidden .day-label { top: 56px; }
  body.date-rail-hidden.has-active-filters .active-filter-bar { top: 56px; }
  body.date-rail-hidden.has-active-filters .day-section,
  body.has-active-filters .day-section { --day-sticky-top: 92px; scroll-margin-top: 92px; }
  body.date-rail-hidden.has-active-filters .day-label,
  body.has-active-filters .day-label { top: 92px; }
  body.mobile-chrome-hidden .day-section,
  body.mobile-chrome-hidden.has-active-filters .day-section { --day-sticky-top: 0px; scroll-margin-top: 0; }
  body.mobile-chrome-hidden .day-label,
  body.mobile-chrome-hidden.has-active-filters .day-label { top: 0; }
  body.mobile-map.has-active-filters .explorer { height: calc(100dvh - 56px - 63px - 42px - 58px - env(safe-area-inset-bottom)); }
  .event-row { --event-time-track: 58px; --event-visual-track: 44px; --event-action-track: 40px; min-height: 50px; gap: 8px; align-items: center; border-bottom: 0; padding: 8px 10px; }
  .event-row.is-expanded { z-index: 7; align-items: start; overflow: visible; contain: layout style; padding-top: 7px; padding-bottom: 7px; }
  .event-row.is-expanded.is-size-animating { overflow: clip; }
  .event-row:is([data-start-hour], .is-all-day) { grid-template-columns: 44px minmax(0, 1fr) var(--event-action-track) 0; padding-left: 12px; }
  .event-row:is([data-start-hour], .is-all-day) .event-row-media { grid-column: 1; }
  .event-row:is([data-start-hour], .is-all-day) .event-copy { grid-column: 2; }
  .event-row:is([data-start-hour], .is-all-day) .event-list-favorite { grid-column: 3; }
  .event-row:is([data-start-hour], .is-all-day) .event-arrow { grid-column: 4; }
  .event-row:is([data-start-hour], .is-all-day) .event-time { display: none; }
  .event-row.is-expanded .event-time { display: none; }
  .event-row-media { width: 44px; height: 34px; }
  .event-row.has-symbol .event-row-media { width: 34px; height: 34px; }
  .event-row.is-expanded .event-row-media { align-self: start; margin-top: 1px; }
  .event-arrow { display: none; }
  .event-time { white-space: nowrap; }
  .event-copy { min-width: 0; }
  .event-copy h3 { min-width: 0; margin: 0; font-size: 18px; line-height: 1.08; }
  .event-copy-head { align-items: flex-start; gap: 2px; }
  .event-title { display: block; width: fit-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .event-list-favorite { width: 40px; height: 40px; align-self: center; color: #858681; opacity: 0; }
  .event-row:is(:hover, :focus-within, .is-expanded) .event-list-favorite:not(.is-saved),
  .event-list-favorite:not(.is-saved):focus-visible { opacity: .72; }
  .event-list-favorite.is-saved { color: var(--white); opacity: 1; }
  .event-row.is-expanded .event-list-favorite { align-self: start; margin-top: 0; }
  .event-favorite { margin-top: 0; }
  .event-summary { margin-top: 4px; }
  .event-summary-meta > p { overflow: hidden; font-size: 9px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
  .event-badges { gap: 4px 9px; }
  .badge { min-height: 24px; padding: 2px 0; }
  .event-taste-vote { gap: 0; margin-top: -3px; }
  .event-taste-vote button { width: 28px; height: 28px; }
  .event-row:not(.is-expanded) .event-copy:has(.event-taste-vote button[aria-pressed="true"]) { padding-right: 32px; }
  .event-row:not(.is-expanded) .event-taste-vote:has(button[aria-pressed="true"]) { width: 28px; margin-top: 0; }
  .event-row:not(.is-expanded) .event-taste-vote button[aria-pressed="true"] { flex-basis: 28px; }
  .event-row .event-encounter-mark { right: 52px; bottom: 5px; }
  .day-list::after { content: ""; display: block; height: max(calc(52dvh + 58px + env(safe-area-inset-bottom)), calc(100dvh - 202px + env(safe-area-inset-bottom))); pointer-events: none; }
  .mobile-nav { position: fixed; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-flow: column; left: 0; right: 0; bottom: 0; z-index: 30; height: calc(58px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: var(--ink); }
  .mobile-nav button { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 5px; border: 0; background: transparent; color: #8b8c87; white-space: nowrap; font-size: 10px; letter-spacing: .08em; transform-origin:center; transition:color 160ms ease, background-color 160ms ease, transform 220ms var(--ease-spring); }
  .mobile-nav button:hover, .mobile-nav button:focus-visible { outline:0; background:#242521; color:var(--white); transform:translateY(-1px); }
  .mobile-nav button:active { background:#30312d; color:var(--white); transform:scale(.9); transition-duration:80ms; }
  .mobile-nav svg { flex: 0 0 22px; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-nav .mobile-star { flex-basis: 22px; width: 22px; height: 22px; }
  .mobile-nav .mobile-result-count,
  .mobile-nav .mobile-favorite-count { position:absolute; top:5px; left:calc(50% + 7px); min-width:0; height:auto; display:block; border:0; border-radius:0; background:transparent; color:#8b8c87; padding:0; font-size:8px; font-weight:800; line-height:1; letter-spacing:0; }
  .mobile-nav .mobile-result-count:empty,
  .mobile-nav .mobile-favorite-count:empty { display: none; }
  .mobile-nav button.active { color: var(--white); }
  .ask-elsewheres { right: 0; bottom: 0; width: 100%; max-width: none; pointer-events: none; }
  .ask-panel {
    width: calc(100vw - 16px);
    height: calc(100dvh - 144px - env(safe-area-inset-bottom));
    min-height: 360px;
    max-height: 720px;
    margin: 0 8px calc(66px + env(safe-area-inset-bottom)) auto;
    box-shadow: 0 20px 50px rgba(0,0,0,.2);
    pointer-events: auto;
  }
  .ask-elsewheres.has-sidebar .ask-panel, .ask-elsewheres.is-expanded.has-sidebar .ask-panel { width: calc(100vw - 16px); grid-template-columns: 0 minmax(0, 1fr); }
  .ask-sidebar { position: absolute; z-index: 8; inset: 0 auto 0 0; width: min(240px, 76vw); border-right-color: rgba(17,18,16,.18); box-shadow: 15px 0 36px rgba(0,0,0,.16); transform: translateX(-102%); transition: transform 220ms var(--ease-out), opacity 180ms ease; }
  .ask-elsewheres.has-sidebar .ask-sidebar { transform: none; }
  .ask-elsewheres.is-expanded .ask-panel { width: calc(100vw - 16px); height: calc(100dvh - 74px - env(safe-area-inset-bottom)); max-height: none; margin-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .ask-identity { padding-left: 10px; }
  .ask-identity > svg { width: 24px; height: 24px; }
  .ask-identity strong { font-size: 19px; }
  .ask-head-menu { width: 36px; flex-basis: 36px; }
  .ask-head-actions { flex-basis: 108px; grid-template-columns: repeat(3, 36px); }
  .ask-head-actions button { width: 36px; }
  .ask-transcript { padding: 13px 10px 6px; }
  .ask-transcript article { max-width: 94%; }
  .ask-prompts { margin-right: 10px; margin-left: 10px; }
  .ask-form { padding: 8px 9px 9px; }
  .ask-launcher, .ask-elsewheres.is-open .ask-launcher { position: fixed; z-index: 31; right: 0; bottom: 0; min-width: calc(100vw / 7); width: calc(100vw / 7); height: calc(58px + env(safe-area-inset-bottom)); grid-template-columns: 1fr; margin: 0; padding: 0 0 env(safe-area-inset-bottom); border: 0; border-radius: 0; background: transparent; color: #8b8c87; box-shadow: none; pointer-events: auto; transform-origin:center; transition:color 160ms ease, background-color 160ms ease, transform 220ms var(--ease-spring); }
  .ask-launcher::after { content:""; position:absolute; right:28%; bottom:max(8px, env(safe-area-inset-bottom)); left:28%; height:2px; background:var(--white); transform:scaleX(0); transition:transform 240ms var(--ease-out); }
  .ask-launcher:hover, .ask-launcher:focus-visible, .ask-elsewheres.is-open .ask-launcher { outline:0; background:#242521; color:var(--white); transform:translateY(-1px); }
  .ask-elsewheres:not(.is-open) .ask-launcher:hover,
  .ask-elsewheres:not(.is-open) .ask-launcher:focus-visible { min-width:calc(100vw / 7); width:calc(100vw / 7); height:calc(58px + env(safe-area-inset-bottom)); grid-template-columns:1fr; gap:0; padding:0 0 env(safe-area-inset-bottom); transform:translateY(-1px); }
  .ask-launcher:active { background:#30312d; color:var(--white); transform:scale(.9); transition-duration:80ms; }
  .ask-elsewheres.is-open .ask-launcher::after { transform:scaleX(1); }
  .ask-launcher-copy { display: none; }
  .ask-launcher-mark, .ask-elsewheres.is-open .ask-launcher-mark { width: 22px; height: 22px; background: transparent; color: currentColor; }
  .ask-launcher-mark svg { width: 22px; height: 22px; }
  .for-you-mode .event-pane, .tags-mode .event-pane { overflow: visible; }
  .for-you-gallery { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .for-you-intro { min-height: 0; grid-template-columns: 1fr; gap: 16px; padding: 22px 16px 19px; }
  .for-you-intro h2 { font-size: 45px; }
  .for-you-intro p:not(.eyebrow) { font-size: 11px; }
  .taste-profile { justify-content: flex-start; }
  .taste-chip { min-height: 32px; padding: 0 8px; }
  .recommendation-row { padding-top: 18px; }
  .recommendation-row > header { min-height: 0; align-items: start; padding: 0 16px 8px; }
  .recommendation-row h3 { font-size: 25px; }
  .recommendation-row header p { max-width: 265px; }
  .recommendation-row-meta { align-items: flex-end; }
  .cluster-tags { display: none; }
  .recommendation-row nav button { width: 32px; height: 32px; }
  .recommendation-carousel { gap: 8px; padding: 0 16px 10px; scroll-padding-left: 16px; }
  .recommendation-card { flex-basis:188px; min-height:132px; height:auto; }
  .recommendation-card-main { grid-template-columns:42px minmax(0,1fr); column-gap:8px; min-height:104px; padding:10px 6px 5px; }
  .recommendation-media { width:38px; height:38px; }
  .recommendation-media.media-fallback { min-height:0; }
  .recommendation-media.media-fallback .media-fallback-icon { width:34px; height:34px; font-size:34px; }
  .recommendation-when { padding:0; font-size:7px; }
  .recommendation-card strong { margin:4px 0 0; font-size:17px; -webkit-line-clamp:2; }
  .recommendation-card small { margin:5px 0 0; font-size:8px; }
  .recommendation-tags { margin:2px 6px 7px 56px; }
  .recommendation-tag:nth-child(n+2) { display: none; }
  .tag-directory { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .tag-symbol-hero { padding: 14px 14px 24px; }
  .activity-symbol-cloud { gap: 2px; padding: 0; }
  .activity-symbol { --symbol-size: calc(26px + var(--prominence) * 39px); flex-basis: calc(47px + var(--prominence) * 42px); min-width: 45px; min-height: calc(52px + var(--prominence) * 35px); }
  .activity-symbol > span:not(.entity-media) { font-size: 7px; }
  .activity-symbol > small { display: none; }
  .tag-related { padding: 28px 16px 30px; }
  .tag-related h3, .tag-facet-group h3 { font-size: 27px; }
  .tag-related > header > span { display: none; }
  .tag-orbit { grid-template-columns: 1fr; gap: 18px; }
  .tag-orbit-anchor { width: 164px; min-height: 164px; margin: 0 auto; }
  .tag-orbit-anchor-icon { width: 48px; height: 48px; font-size: 48px; }
  .tag-orbit-anchor-media { width: 72px; height: 54px; }
  .tag-orbit-anchor strong { margin-top: 4px; font-size: 21px; }
  .tag-orbit-anchor p { max-width: 138px; margin-top: 5px; font-size: 7px; }
  .tag-orbit-anchor small { margin-top: 4px; font-size: 6px; }
  .tag-orbit-paths { gap: 6px; }
  .tag-orbit-chip { flex-basis: calc(45% + var(--orbit) * 10%); min-width: 0; min-height: 68px; padding: 7px; }
  .tag-orbit-chip > span:not(.entity-media) { font-size: 14px; }
  .tag-popular-venues { margin-top: 18px; padding-top: 14px; }
  .tag-popular-venues h4 { font-size: 20px; }
  .tag-popular-venues ol { display: flex; overflow-x: auto; border-left: 0; scrollbar-width: none; }
  .tag-popular-venues ol::-webkit-scrollbar { display: none; }
  .tag-popular-venues li { flex: 0 0 160px; min-height: 56px; border-left: 1px solid rgba(17,18,16,.18); }
  .tag-constellations, .tag-index { padding: 36px 16px 40px; }
  .tag-constellations > header, .tag-index > header { align-items: start; flex-direction: column; gap: 12px; }
  .tag-constellations > header h2, .tag-index > header h2 { font-size: 45px; }
  .tag-constellation-grid, .tag-facet-matrix { grid-template-columns: 1fr; }
  .tag-constellation { min-height: 0; padding: 13px 12px 14px; }
  .tag-constellation:nth-child(n) { background: var(--white); }
  .tag-constellation:nth-child(even) { background: #e7e7e2; }
  .tag-constellation > header { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 8px; }
  .constellation-mark { width: 42px; height: 42px; }
  .constellation-icon { width: 24px; height: 24px; font-size: 24px; }
  .constellation-media { width: 42px; height: 42px; }
  .tag-constellation h3 { font-size: 20px; }
  .constellation-meter { height: 3px; margin: 10px 0; }
  .constellation-tags { margin-top: 0; gap: 4px; }
  .constellation-tag { min-height: 28px; padding: 0 6px; }
  .tag-facet-group { padding: 23px 14px 25px; }
  .tag-directory-grid { gap: 6px; }
  .tag-directory-chip { min-height: 40px; padding: 0 9px; }
  body.favorites-mode .planner-intro, body.favorites-mode .date-rail, body.favorites-mode #emptyState .eyebrow, body.favorites-mode #emptyState h2 { display: none; }
  .detail-dialog { margin: auto auto calc(58px + env(safe-area-inset-bottom)); width: 100%; max-height: calc(100dvh - 58px - env(safe-area-inset-bottom)); }
  .detail-dialog.is-modeless { position: fixed; z-index: 25; inset: auto 0 calc(82px + env(safe-area-inset-bottom)); width: 100%; height: fit-content; max-width: none; max-height: calc(100dvh - 138px - env(safe-area-inset-bottom)); margin: 0; overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 -12px 48px rgba(17,18,16,.24); }
  .detail-dialog article, .venue-dialog article, .about-dialog article { padding: 28px 22px; }
  .detail-dialog .detail-floatbar { margin: -28px -22px 22px; }
  .detail-media { width: calc(100% + 44px); margin: -22px -22px 23px; }
  .detail-intro-grid { grid-template-columns: 1fr; gap: 14px; }
  .detail-minimap-map { height: 126px; }
  .detail-minimap { margin-bottom: 0; }
  .detail-location-pending { min-height: 76px; grid-auto-flow: column; place-content: center; }
  .detail-dialog h2 { font-size: 28px; line-height: 1.06; }
  .detail-tag-groups section { grid-template-columns: 64px minmax(0, 1fr); }
  .place-knowledge > header { grid-template-columns: 1fr; align-items: stretch; }
  .place-knowledge > header button { width: 100%; min-height: 44px; }
  .place-story-grid { grid-template-columns: 1fr; }
  .tour-dialog { width: 100%; max-height: calc(100dvh - 58px - env(safe-area-inset-bottom)); margin: auto auto calc(58px + env(safe-area-inset-bottom)); }
  .tour-dialog article { padding: 28px 22px; }
  .tour-dialog h2 { font-size: 34px; }
  .story-walk-actions { grid-template-columns: 1fr; }
  .share-panel { grid-template-columns: 112px 1fr; gap: 14px; padding: 12px; }
  .share-qr { min-height: 104px; }
  .share-qr img { width: 104px; height: 104px; }
  .share-copy > p:first-child { font-size: 15px; }
  .share-actions { flex-direction: column; gap: 6px; }
  .venue-card-hero { height: 154px; }
  .venue-vignette { padding: 22px 112px 17px 16px; }
  .venue-vignette strong { font-size: 27px; }
  .venue-vignette small { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .venue-mini-map { width: 88px; height: 76px; top: 10px; right: 10px; }
  .venue-count-badge { top: 10px; right: 10px; }
  .venue-card-hero.has-mini-map .venue-count-badge { right: 108px; }
  .venue-card-hero .venue-links { right: 10px; bottom: 10px; }
  .venue-sort-bar { padding: 0 8px; }
  .venue-links { justify-content: flex-start; }
  .venue-links a { min-height: 40px; }
  .venue-event-row { grid-template-columns: 78px minmax(0, 1fr); gap: 8px 10px; padding: 11px 16px; }
  .venue-event-row.has-media { grid-template-columns: 46px 70px minmax(0, 1fr); }
  .venue-event-media { width: 46px; height: 35px; }
  .venue-event-row.has-symbol .venue-event-media { width: 28px; height: 28px; }
  .venue-event-row > small { grid-column: 2; text-align: left; }
  .venue-event-row.has-media > small { grid-column: 3; }
  .venue-dialog { width: 100%; max-height: calc(100dvh - 58px - env(safe-area-inset-bottom)); margin: auto auto calc(58px + env(safe-area-inset-bottom)); }
  .venue-dialog h2 { font-size: 32px; }
  .venue-detail-media { height: 128px; margin: 18px -22px 0; }
  .venue-dialog-events { margin: 22px -22px -28px; }
  .venue-dialog-events .venue-event-row { grid-template-columns: 84px minmax(0, 1fr); padding-left: 22px; padding-right: 22px; }
  .venue-dialog-events .venue-event-row.has-media { grid-template-columns: 46px 72px minmax(0, 1fr); }
  .about-dialog h2 { font-size: 34px; }
  .about-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 78px - env(safe-area-inset-bottom)); }
  .campaigns-dialog { width: calc(100vw - 20px); }
  .campaign-preview-list { grid-template-columns: 1fr; }
  .campaign-preview-banner { padding: 8px 14px; }
  .campaign-preview-banner span { display: block; }
  .campaign-preview-banner strong { display: block; }
  .campaign-preview-banner small { display: block; max-width: 64vw; margin-top: 3px; }
  .encounter-dialog { width: 100vw; height: calc(100dvh - 58px - env(safe-area-inset-bottom)); max-height: none; margin: 0 0 calc(58px + env(safe-area-inset-bottom)); }
  .encounter-dialog > article { padding: 30px 16px 24px; }
  .encounter-dialog .dialog-close-form { top: 8px; right: 8px; }
  .encounter-heading { display: block; padding-right: 38px; }
  .encounter-code { margin-top: 8px; }
  .encounter-heading h2 { margin-top: 22px; font-size: clamp(41px, 12vw, 54px); line-height: .88; }
  .encounter-thesis { margin-top: 16px; font-size: 16px; text-align: left; }
  .encounter-view-switch { gap: 16px; margin-top: 22px; }
  .encounter-view-switch > span { max-width: 45%; font-size: 6px; }
  .encounter-body { gap: 30px; margin-top: 27px; }
  .encounter-field { min-height: 315px; margin-right: -16px; margin-left: -16px; }
  .encounter-network-field canvas, #encounterSpaceCanvas { min-height: 315px; }
  .encounter-network-hud { top: 8px; font-size: 6px; }
  .encounter-network-key { right: 6px; bottom: 7px; left: 6px; }
  .encounter-field-points li { width: 27px; height: 27px; }
  .encounter-field-points b { top: 32px; width: 78px; font-size: 6px; }
  .encounter-field-caption { gap: 8px; font-size: 6px; }
  .encounter-field-caption span:last-child { display: none; }
  .encounter-itinerary h3 { font-size: 31px; }
  .encounter-route li { min-height: 72px; }
  .edition-entry { grid-template-columns: 1fr; gap: 22px; margin: 42px -16px -24px; padding: 28px 16px calc(30px + env(safe-area-inset-bottom)); }
  .edition-card-ghost { width: min(72vw, 230px); min-height: 300px; }
  .edition-card-ghost::before { width: 140px; height: 140px; }
  .edition-card-ghost::after { width: 70px; height: 70px; }
  .edition-entry h3 { font-size: 34px; }
  .edition-collection-entry { align-items: flex-start; flex-direction: column; }
  .edition-code-form > div { grid-template-columns: minmax(0, 1fr) 90px; }
  .sources-dialog { height: calc(100dvh - 78px - env(safe-area-inset-bottom)); }
  .sources-dialog h2 { font-size: 28px; padding-right: 42px; }
  .source-audit-stats { margin-top: 14px; }
  .source-audit-note { margin-bottom: 10px; }
  .source-controls { grid-template-columns: 1fr 1fr; }
  .source-controls .source-search { grid-column: 1 / -1; min-height: 42px; border-right: 0; border-bottom: 1px solid var(--line); }
  .source-controls select { height: 42px; }
  .source-row { min-height: 86px; gap: 8px; }
  .source-entity-media { width: 48px; height: 36px; }
  .source-row { display: block; }
  .source-title-line { align-items: flex-start; }
  .source-meta { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 9px; text-align: left; }
  .source-meta > small { max-width: 54%; margin: 0; text-align: right; }
  .source-tags { gap: 3px; }
  .source-tags > span:nth-child(n+4) { display: none; }
  .external-dialog { width: 100vw; height: 100dvh; margin: 0; }
  .external-toolbar { height: 76px; padding: max(10px, env(safe-area-inset-top)) 10px 8px 14px; align-items: flex-end; }
  .external-toolbar strong { max-width: 34vw; font-size: 15px; }
  .external-actions { gap: 5px; }
  .external-actions a, .external-actions button { min-height: 44px; padding: 0 10px; }
  .external-frame-wrap { height: calc(100% - 76px); }
  .external-help { max-width: calc(100% - 20px); overflow: hidden; text-overflow: ellipsis; }
}

@media (min-width: 421px) and (max-width: 640px) {
  .planner-clear-field { top: 56px; right: 12px; bottom: auto; left: 70%; height: 292px; padding: 8px; }
  body.has-active-filters .planner-clear-field { display: grid; }
}

@media (max-width: 420px) {
  .planner-clear-field,
  body.has-active-filters .planner-clear-field { display: none; }
}

/* Interaction states remain visible without requiring motion. */
#resultCount, #mobileCount, #desktopFavoriteCount, #mobileFavoriteCount { display: inline-block; transform-origin: center; }
:where(.ripple-host) { position: relative; overflow: hidden; isolation: isolate; }
.ink-ripple { position: absolute; z-index: 5; top: var(--ripple-y); left: var(--ripple-x); width: var(--ripple-size); height: var(--ripple-size); border-radius: 50%; background: currentColor; opacity: 0; pointer-events: none; transform: scale(0); }
.motion-toast { position: fixed; z-index: 120; top: 84px; right: 24px; display: flex; align-items: center; gap: 9px; max-width: min(320px, calc(100vw - 32px)); min-height: 42px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.2); background: var(--ink); color: var(--white); box-shadow: var(--shadow-high); opacity: 0; pointer-events: none; transform: translateY(-12px) rotate(1deg) scale(.94); }
.motion-toast span { font: 18px/1 var(--serif); }
.motion-toast .is-favorite-mark { width: 20px; height: 20px; display: grid; place-items: center; }
.motion-toast .is-favorite-mark svg { width: 19px; height: 19px; }
.motion-toast .is-favorite-mark .favorite-soft-icon path { fill: currentColor; }
.motion-toast strong { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.motion-toast.is-visible { opacity: 1; transform: translateY(0) rotate(0) scale(1); }
.reward-burst { position: absolute; z-index: 140; width: 1px; height: 1px; pointer-events: none; }
.reward-burst.is-page-burst { position: fixed; }
.reward-burst i { position: absolute; inset: 0 auto auto 0; display: block; color: var(--ink); font: 13px/1 var(--serif); font-style: normal; opacity: 0; text-shadow: 0 1px 0 var(--white); }
.reward-burst i.is-soft-favorite-particle { width: 7px; height: 7px; border: 1px solid var(--ink); border-radius: 50%; background: var(--white); box-shadow: 0 0 0 2px rgba(251,251,248,.7); font-size: 0; text-shadow: none; }
.reward-burst i.is-soft-favorite-particle:nth-child(3n) { width: 4px; height: 4px; background: var(--ink); }
.reward-burst i.is-favorite-remove-particle { width: 8px; height: 2px; border: 0; background: var(--ink); box-shadow: 0 0 0 1px rgba(251,251,248,.78); font-size: 0; text-shadow: none; transform-origin: left center; }
.reward-burst i.is-favorite-remove-particle:nth-child(3n) { width: 5px; height: 5px; border: 1px solid var(--ink); background: transparent; transform: rotate(45deg); }
.favorite-flight { position: fixed; z-index: 180; width: 28px; height: 28px; display: grid; place-items: center; color: var(--ink); filter: drop-shadow(0 2px 0 var(--white)) drop-shadow(0 0 9px rgba(251,251,248,.96)); pointer-events: none; }
.favorite-flight svg { width: 27px; height: 27px; }
.favorite-flight .favorite-soft-icon path { fill: currentColor; }
.favorite-flight.is-flight-trace { z-index: 178; filter: blur(.2px) drop-shadow(0 0 8px rgba(251,251,248,.84)); }
.favorite-flight.is-flight-trace-faint { z-index: 177; filter: blur(.6px); }
.favorite-flight.is-release-flight { color: var(--muted); filter: drop-shadow(0 1px 0 var(--white)); }
.favorite-impact-ring, .favorite-release-wave { position: fixed; z-index: 176; width: 1px; height: 1px; pointer-events: none; }
.favorite-impact-ring::before, .favorite-impact-ring::after, .favorite-release-wave::before, .favorite-release-wave::after { content: ""; position: absolute; inset: 0; border: 2px solid var(--ink); border-radius: 50%; transform: translate(-50%, -50%); }
.favorite-impact-ring::after { border-width: 1px; border-style: dashed; }
.favorite-release-wave::before { border-radius: 2px; transform: translate(-50%, -50%) rotate(45deg); }
.favorite-release-wave::after { border-style: dotted; }
.cursor-spark { position: fixed; z-index: 110; width: 5px; height: 5px; border: 1px solid var(--ink); background: var(--white); pointer-events: none; transform: translate(-50%, -50%) rotate(45deg) scale(var(--spark-scale)); }
.cursor-spark.is-dialog-spark { position: absolute; }
.event-row::before { z-index: 3; }
.event-row::after { content: ""; position: absolute; z-index: 0; inset: 0; background: radial-gradient(230px circle at var(--pointer-x, 55%) var(--pointer-y, 50%), rgba(17,18,16,.085), transparent 72%); opacity: 0; pointer-events: none; }
.event-row > * { position: relative; z-index: 1; }
.venue-card::after { content: ""; position: absolute; z-index: 2; top: -30%; bottom: -30%; left: -35%; width: 24%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); opacity: 0; pointer-events: none; transform: translateX(-160%) skewX(-18deg); }
.map-recenter::before { content: ""; position: absolute; inset: -5px; border: 1px solid rgba(17,18,16,.22); pointer-events: none; }
.wordmark:hover .wordmark-mark, .wordmark:focus-visible .wordmark-mark { color: #343632; }
.wordmark:hover, .wordmark:focus-visible { transform: translateY(-1px); }
.quiet-button:hover::after, .quiet-button:focus-visible::after { transform: scaleX(.35); }
.quiet-button:hover, .quiet-button:focus-visible { color: var(--ink); transform: translateY(-1px); }
h1 .range-scrubber:hover::after, h1 .range-scrubber:focus-visible::after, h1 .range-scrubber.is-scrubbing::after, h1 .borough-scrubber:hover::after, h1 .borough-scrubber:focus-visible::after, h1 .borough-scrubber.is-scrubbing::after, h1 .audience-scrubber:hover::after, h1 .audience-scrubber:focus-visible::after, h1 .audience-scrubber.is-scrubbing::after { transform: scaleX(1); }
.date-chip:hover { color: var(--ink); background: rgba(251,251,248,.52); }
.date-chip:hover::before { transform: scaleX(.28); }
.date-chip.active::before, .date-chip.active:hover::before { transform: scaleX(1); }
.date-chip:hover b { transform: translateY(-2px); }
.date-chip:hover span { transform: translateX(3px); }
.search-wrap:focus-within, .select-wrap:hover, .select-wrap:focus-within, .date-input-wrap:hover, .date-input-wrap:focus-within, .time-input-wrap:hover, .time-input-wrap:focus-within, .check-wrap:hover, .check-wrap:focus-within, .locate-button:hover, .locate-button:focus-visible { background: var(--white); }
.search-wrap:focus-within { background:transparent; box-shadow:none; }
.select-wrap:focus-within > span, .date-input-wrap:focus-within > span, .time-input-wrap:focus-within > span { color: var(--ink); transform: translateX(2px); }
.check-wrap:has(input:checked) { background: var(--ink); color: var(--white); }
.check-wrap input:checked + span { transform: translateX(2px); }
.search-wrap input:focus, .select-wrap select:focus, .date-input-wrap input:focus, .time-input-wrap input:focus { transform: translateX(2px); }
.check-wrap:hover input, .check-wrap:focus-within input { transform: rotate(-6deg) scale(1.15); }
.active-filter-chips button:hover, .active-filter-chips button:focus-visible { background:transparent; color:var(--ink); outline:0; transform:translateY(-1px); }
.active-filter-chips button:hover::after, .active-filter-chips button:focus-visible::after { opacity:.55; transform:scaleX(1); }
.clear-active-filters:hover, .clear-active-filters:focus-visible { background: var(--ink); color: var(--white); outline: 0; text-decoration: none; transform: translateY(-2px); }
.clear-active-filters:hover b, .clear-active-filters:focus-visible b { transform: rotate(135deg) scale(1.18); }
.active-filter-bar.is-clearing .active-filter-track { animation: none !important; }
.browse-switch button:hover, .view-switch button:hover { color: var(--ink); background: var(--soft); }
.browse-switch button.active:hover, .view-switch button.active:hover { color: var(--white); background: #343632; }
.event-row:hover .event-copy { transform: translateX(3px); }
.event-row:hover::after, .event-row:focus-visible::after { opacity: 1; }
.event-row:hover .event-time { transform: translateY(-2px) scale(1.04); }
.event-row:hover .badge { transform: translateY(-2px); }
.event-row:hover .event-arrow { color: var(--ink); transform: rotate(90deg) scale(1.08); }
.event-row.is-expanded .event-arrow { color: var(--ink); transform: rotate(180deg); }
.event-row.is-expanded:hover .event-arrow { transform: rotate(180deg) scale(1.08); }
.badge:hover, .badge:focus-visible { background: transparent; color: var(--ink); outline: 0; text-decoration: underline; text-underline-offset: 3px; }
.venue-card:hover::before, .venue-card:focus-within::before { opacity: 1; }
.venue-card:hover::after, .venue-card:focus-within::after { opacity: .72; transform: translateX(720%) skewX(-18deg); }
.venue-hero-open:hover .venue-vignette strong, .venue-hero-open:focus-visible .venue-vignette strong { transform: translateX(4px); }
.venue-event-row:hover > strong, .venue-event-row:focus-visible > strong, .source-row:hover strong, .source-row:focus-visible strong { transform: translateX(3px); }
.map-recenter:hover, .map-recenter:focus-visible, .map-status:hover { box-shadow: var(--shadow-high); }
.map-recenter:hover, .map-recenter:focus-visible { background: var(--ink); color: var(--white); outline: 0; }
.map-card button:hover, .map-card button:focus-visible, .share-actions button:hover, .share-actions button:focus-visible, .external-actions a:hover, .external-actions a:focus-visible, .external-actions button:hover, .external-actions button:focus-visible { outline: 0; filter: brightness(1.22); }
.dialog-close:hover, .dialog-close:focus-visible { background: var(--soft); outline: 0; transform: translateY(-1px); }
.detail-toolbar > button:hover svg, .detail-toolbar > button:focus-visible svg, .detail-toolbar > a:hover svg, .detail-toolbar > a:focus-visible svg { transform: translateY(-2px) rotate(-4deg) scale(1.09); }
.venue-sort-bar button:hover span, .venue-sort-bar button:focus-visible span { display: inline-block; transform: rotate(180deg); }
.external-dismiss:hover strong, .external-dismiss:focus-visible strong { transform: translateX(4px); }
.mobile-nav button { position: relative; }
.mobile-nav button::after { content: ""; position: absolute; right: 28%; bottom: max(8px, env(safe-area-inset-bottom)); left: 28%; height: 2px; background: var(--white); transform: scaleX(0); }
.mobile-nav button.active::after { transform: scaleX(1); }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .event-media > img, .entity-media > img { transition: opacity 220ms ease, transform 560ms var(--ease-out); }
  .event-media:not(.is-loaded):not(.is-error) > i[aria-hidden], .entity-media:not(.entity-media-fallback):not(.is-loaded):not(.is-error) > i[aria-hidden] { animation: media-shimmer 1.2s ease-in-out infinite; }
  .recommendation-card-main, .recommendation-icon, .recommendation-card strong, .cluster-tag, .taste-chip, .recommendation-row nav button, .activity-symbol { transition: color 180ms var(--ease-out), background-color 180ms var(--ease-out), border-color 180ms var(--ease-out), transform 240ms var(--ease-spring); }
  .wordmark, .wordmark-mark, .wordmark-mark path, .wordmark-name, .quiet-button, .quiet-button::after, .encounter-button, .encounter-button-mark, h1 .range-scrubber, h1 .range-scrubber::after, h1 .borough-scrubber, h1 .borough-scrubber::after, h1 .audience-scrubber, h1 .audience-scrubber::after,
  .date-chip, .date-chip::before, .date-chip b, .date-chip span, .search-wrap, .search-wrap > span, .select-wrap, .date-input-wrap,
  .time-input-wrap, .select-wrap > span, .date-input-wrap > span, .time-input-wrap > span, .search-wrap input, .select-wrap select, .date-input-wrap input, .time-input-wrap input, .check-wrap, .check-wrap input, .check-wrap span, .locate-button, .locate-button span, .active-filter-chips button, .clear-active-filters, .browse-switch button, .view-switch button,
  .day-label, .jump-now, .jump-now::after, .event-row, .event-row::before, .event-row::after, .event-time, .event-copy, .event-arrow, .event-title, .event-title-track,
  .badge, .venue-card::before, .venue-card::after, .venue-vignette, .venue-vignette strong, .venue-links a, .venue-event-row, .venue-event-row > strong,
  .venue-sort-bar button span, .map-recenter, .map-status, .map-card button, .dialog-close, .detail-toolbar > *, .detail-toolbar svg,
  .detail-tags button, .venue-map-action, .about-stats > button,
  .source-row, .source-row strong, .external-dismiss, .external-dismiss strong, .external-actions a,
  .external-actions button, .mobile-nav button, .mobile-nav button::after, .motion-toast {
    transition-duration: 180ms;
    transition-timing-function: var(--ease-out);
    transition-property: color, background-color, border-color, opacity, transform, box-shadow, filter;
  }
  .date-rail-group .date-chip, .activity-rail-group .activity-chip {
    transition-duration: 220ms;
    transition-timing-function: var(--ease-out);
    transition-property: color, background-color, opacity, transform, display;
    transition-behavior: allow-discrete;
  }
  .date-rail-group.is-expanded .date-chip:nth-of-type(n+3),
  .activity-rail-group.is-expanded .activity-chip:not(.is-rail-priority) { opacity:1; transform:translateX(0) scale(1); }
  .mood-mixer, .share-panel, .active-filter-bar, .ask-context {
    opacity:1;
    transform:translateY(0) scale(1);
    transform-origin:top right;
    transition:opacity 180ms ease, transform 260ms var(--ease-out), display 260ms allow-discrete;
    transition-behavior:allow-discrete;
  }
  .detail-sources-heading > i { transition: transform 220ms var(--ease-out); }
  .detail-sources::details-content, .detail-location-disclosure::details-content, .detail-trust::details-content {
    transition: block-size 280ms var(--ease-out), opacity 180ms ease, transform 240ms var(--ease-out), content-visibility 280ms allow-discrete;
    transition-behavior: allow-discrete;
  }
  .detail-sources:not([open])::details-content, .detail-location-disclosure:not([open])::details-content, .detail-trust:not([open])::details-content { block-size: 0; opacity: 0; overflow: clip; transform: translateY(-5px); }
  .detail-sources[open]::details-content, .detail-location-disclosure[open]::details-content, .detail-trust[open]::details-content { block-size: auto; opacity: 1; transform: translateY(0); }
  .event-summary {
    opacity:1;
    transform:translateY(0) scaleY(1);
    transform-origin:top;
    transition:opacity 170ms ease, transform 250ms var(--ease-out), display 250ms allow-discrete;
    transition-behavior:allow-discrete;
  }
  .site-drawer nav button { opacity:0; transform:translateX(-12px); transition:opacity 170ms ease, transform 300ms var(--ease-out), color 180ms ease, background-color 180ms ease; }
  body.drawer-open .site-drawer nav button { opacity:1; transform:translateX(0); }
  body.drawer-open .site-drawer nav button:nth-child(2) { transition-delay:20ms; }
  body.drawer-open .site-drawer nav button:nth-child(3) { transition-delay:40ms; }
  body.drawer-open .site-drawer nav button:nth-child(4) { transition-delay:60ms; }
  body.drawer-open .site-drawer nav button:nth-child(5) { transition-delay:80ms; }
  body.drawer-open .site-drawer nav button:nth-child(6) { transition-delay:100ms; }
  dialog {
    transition:opacity 180ms ease, transform 280ms var(--ease-out), display 280ms allow-discrete, overlay 280ms allow-discrete;
    transition-behavior:allow-discrete;
  }
  dialog::backdrop { transition:opacity 220ms ease, display 280ms allow-discrete, overlay 280ms allow-discrete; transition-behavior:allow-discrete; }
  [data-encounter-panel]:not([hidden]) { animation:panel-reveal 300ms var(--ease-out) both; transform-origin:top; }
  @starting-style {
    .date-rail-group.is-expanded .date-chip:nth-of-type(n+3),
    .activity-rail-group.is-expanded .activity-chip:not(.is-rail-priority) { opacity:0; transform:translateX(-8px) scale(.97); }
    .mood-mixer:not([hidden]), .share-panel:not([hidden]), .active-filter-bar:not([hidden]), .ask-context:not([hidden]) { opacity:0; transform:translateY(8px) scale(.985); }
    dialog[open] { opacity:0; transform:translateY(14px) scale(.985); }
    dialog[open]::backdrop { opacity:0; }
  }
  .wordmark-mark path { transform-box: fill-box; transform-origin: center; }
  .wordmark:hover .wordmark-mark path:nth-child(3), .wordmark:focus-visible .wordmark-mark path:nth-child(3) { transform: translateX(3px); }
  .wordmark:hover .wordmark-name, .wordmark:focus-visible .wordmark-name { transform: translateX(1px); }
  .date-chip:hover { transform: translateY(-2px); }
  .wordmark:active, .quiet-button:active, .encounter-button:active, .active-filter-chips button:active, .clear-active-filters:active, .date-chip:active, .browse-switch button:active, .view-switch button:active, .badge:active, .venue-links a:active,
  .venue-event-row:active, .map-recenter:active, .map-card button:active, .detail-toolbar > *:active, .detail-tags button:active,
  .venue-map-action:active, .source-row:active, .external-actions a:active, .external-actions button:active,
  .mobile-nav button:active, .locate-button:active { transform: scale(.97); transition-duration: 80ms; }
  .search-wrap:focus-within > span { transform: rotate(-12deg) scale(1.12); }
  .locate-button:hover span, .locate-button:focus-visible span { transform: scale(1.22); }
  .day-label:hover b, .day-label:focus-visible b { animation: day-nudge 420ms var(--ease-spring); }
  .event-row:active { transform: scale(.995); transition-duration: 80ms; }
  .event-row:hover .badge:nth-child(2) { transition-delay: 28ms; }
  .event-row:hover .badge:nth-child(3) { transition-delay: 56ms; }
  .event-list-favorite.is-favorite-captured { animation: favorite-capture 620ms var(--ease-spring); }
  .event-list-favorite.is-favorite-captured::after { animation: favorite-halo 720ms var(--ease-out); }
  .event-list-favorite.is-favorite-released .favorite-soft-icon { animation: favorite-release 320ms var(--ease-out); }
  .detail-favorite.is-favorite-captured .favorite-soft-icon { animation: favorite-pop 520ms var(--ease-spring); }
  .event-row:has(.event-list-favorite.is-favorite-captured)::after { background: radial-gradient(150px circle at calc(100% - 30px) 50%, rgba(17,18,16,.16), transparent 72%); animation: favorite-row-glow 760ms var(--ease-out); }
  dialog[open] .share-panel:not([hidden]) { animation: panel-reveal 280ms var(--ease-out) both; transform-origin: top; }
  .day-section { animation: group-reveal 440ms var(--ease-out) both; }
  .day-section:nth-child(2) { animation-delay: 35ms; }
  .day-section:nth-child(3) { animation-delay: 70ms; }
  .day-section:nth-child(4) { animation-delay: 105ms; }
  .day-section:nth-child(5) { animation-delay: 140ms; }
  .day-section:nth-child(6) { animation-delay: 175ms; }
  .day-section:nth-child(n+7) { animation: none; }
  body.is-scrub-commit .day-section, body.is-scrub-commit .venue-card { animation: none !important; }
  .venue-card { animation: group-reveal 400ms var(--ease-out) both; }
  .venue-card:nth-child(2) { animation-delay: 25ms; }
  .venue-card:nth-child(3) { animation-delay: 50ms; }
  .venue-card:nth-child(4) { animation-delay: 75ms; }
  .venue-card:nth-child(5) { animation-delay: 100ms; }
  .venue-card:nth-child(6) { animation-delay: 125ms; }
  .venue-card:nth-child(n+7) { animation: none; }
  .source-row { animation: source-reveal 280ms var(--ease-out) both; }
  .source-row:nth-child(2) { animation-delay: 20ms; }
  .source-row:nth-child(3) { animation-delay: 40ms; }
  .source-row:nth-child(4) { animation-delay: 60ms; }
  .source-row:nth-child(5) { animation-delay: 80ms; }
  .source-row:nth-child(n+6) { animation: none; }
  .masthead { animation: page-down 500ms var(--ease-out) both; }
  .planner-intro { animation: page-up 560ms 60ms var(--ease-out) both; }
  .date-rail { animation: page-up 560ms 110ms var(--ease-out) both; }
  .controls { animation: page-up 560ms 160ms var(--ease-out) both; }
  .explorer { animation: page-up 600ms 210ms var(--ease-out) both; }
  .live-dot { animation: live-pulse 2.2s ease-in-out infinite; }
  .date-chip.active::before { animation: active-line-breathe 2.6s ease-in-out infinite; }
  .map-recenter::before { animation: map-control-breathe 2.8s ease-in-out infinite; }
  .mobile-nav button.active svg, .mobile-nav button.active .mobile-star { animation: nav-icon-pop 360ms var(--ease-spring); }
  .ink-ripple { animation: ink-ripple 620ms var(--ease-out) both; }
  .cursor-spark { animation: cursor-spark 560ms var(--ease-out) both; }
  .reward-burst i { animation: reward-burst 720ms var(--burst-delay) var(--ease-out) both; }
  .reward-burst.is-favorite-burst i { animation-duration: 940ms; }
  .reward-burst.is-favorite-remove-burst i { animation-name: favorite-remove-particle; animation-duration: 980ms; animation-timing-function: cubic-bezier(.32,0,.72,.28); }
  .active-filter-chips button.is-clearing { pointer-events: none; animation: filter-chip-detonate 280ms var(--filter-clear-delay, 0ms) cubic-bezier(.7,0,.84,0) both; }
  .favorite-flight.is-flying { animation: favorite-flight var(--flight-duration, 880ms) var(--flight-delay, 0ms) cubic-bezier(.2,.78,.2,1) both; }
  .favorite-flight.is-releasing { animation: favorite-shard-fallback var(--release-duration, 920ms) cubic-bezier(.42,0,.76,.3) both; }
  .favorite-impact-ring::before { animation: favorite-impact-ring 900ms var(--ease-out) both; }
  .favorite-impact-ring::after { animation: favorite-impact-ring 900ms 90ms var(--ease-out) both; }
  .favorite-release-wave::before { animation: favorite-release-wave 980ms cubic-bezier(.2,.72,.28,1) both; }
  .favorite-release-wave::after { animation: favorite-release-wave 980ms 100ms cubic-bezier(.2,.72,.28,1) both reverse; }
  dialog[open] { animation: dialog-in 320ms var(--ease-out) both; }
  .detail-dialog.is-spatial-transition[open] { animation: none; transition: none; }
  .detail-dialog.is-closing[open] > #eventDetail { animation: detail-spatial-out 360ms cubic-bezier(.55,0,.82,.18) both; transform-origin: top left; }
  .detail-dialog.is-closing::backdrop { opacity: 0; }
  dialog[open]::backdrop { animation: backdrop-in 260ms ease-out both; }
  dialog[open] > article > :not(.dialog-close), dialog[open] > .external-toolbar, dialog[open] > .external-frame-wrap { animation: dialog-content-in 420ms 70ms var(--ease-out) both; }
  .detail-dialog.is-spatial-transition[open] > article > * { animation: none; }
  .maplibregl-popup-content { animation: popup-in 260ms var(--ease-out) both; transform-origin: 50% 100%; }
  .maplibregl-popup-close-button:hover { transform: rotate(90deg); background: var(--soft); }
  body.mobile-filters .controls { animation: filters-in 320ms var(--ease-out) both; }
  .time-dial { transition: transform 240ms var(--ease-spring); }
  .time-dial button { transition: color 180ms ease, background 180ms ease, opacity 180ms ease, transform 260ms var(--ease-spring); }
  .time-dial-value, .time-dial-preview { transition:opacity 80ms linear, transform 80ms linear; }
  .event-row:not(.is-expanded) .event-title.is-overflowing:focus-visible .event-title-track { animation: event-title-marquee var(--marquee-duration) ease-in-out infinite alternate; }

  @keyframes page-down { from { opacity: 0; transform: translateY(-12px); } }
  @keyframes page-up { from { opacity: 0; transform: translateY(14px); } }
  @keyframes group-reveal { from { opacity: 0; transform: translateY(10px); } }
  @keyframes source-reveal { from { opacity: 0; transform: translateX(-8px); } }
  @keyframes panel-reveal { from { opacity: 0; transform: translateY(-8px) scaleY(.96); } }
  @keyframes dialog-in { from { opacity: 0; transform: translateY(18px) scale(.985); } }
  @keyframes dialog-content-in { from { opacity: 0; transform: translateY(8px); } }
  @keyframes detail-spatial-out { from { opacity: 1; filter: blur(0); transform: none; } to { opacity: .18; filter: blur(3px); transform: var(--detail-origin-transform); } }
  @keyframes backdrop-in { from { opacity: 0; } }
  @keyframes popup-in { from { opacity: 0; transform: translateY(8px) scale(.94); } }
  @keyframes filters-in { from { opacity: 0; transform: translateY(22px); } }
  @keyframes day-nudge { 45% { transform: translateY(-4px); } }
  @keyframes favorite-pop { 0% { transform: rotate(-8deg) scale(.7); } 46% { transform: rotate(7deg) scale(1.28); } 72% { transform: rotate(-2deg) scale(.96); } 100% { transform: rotate(0) scale(1); } }
  @keyframes favorite-capture { 0% { transform: scale(.82); } 38% { transform: scale(1.16); } 62% { transform: scale(.96); } 100% { transform: scale(1); } }
  @keyframes favorite-release { 0% { transform: scale(1); opacity: 1; } 45% { transform: scale(.72) rotate(-7deg); opacity: .55; } 100% { transform: scale(1) rotate(0); opacity: 1; } }
  @keyframes favorite-halo { 0% { inset: 8px; opacity: .8; } 100% { inset: -10px; opacity: 0; } }
  @keyframes favorite-row-glow { 0%, 100% { opacity: 0; } 30% { opacity: 1; } }
  @keyframes favorite-flight { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(0) scale(.55); } 46% { opacity: 1; transform: translate(var(--flight-mid-x), var(--flight-mid-y)) rotate(-150deg) scale(1.28); } 100% { opacity: .9; transform: translate(var(--flight-end-x), var(--flight-end-y)) rotate(-360deg) scale(.22); } }
  @keyframes favorite-impact-ring { 0% { opacity: .9; transform: translate(-50%, -50%) scale(.18) rotate(0); } 38% { opacity: .7; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(3.2) rotate(100deg); } }
  @keyframes favorite-release-wave { 0% { opacity: .9; transform: translate(-50%, -50%) rotate(45deg) scale(.2); } 46% { opacity: .52; transform: translate(-50%, -50%) rotate(140deg) scale(1.8); } 100% { opacity: 0; transform: translate(-50%, -50%) rotate(260deg) scale(3.6); } }
  @keyframes favorite-shard-fallback { 0% { opacity: .95; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0; transform: translate(calc(-50% + var(--release-x, -40px)), calc(-50% + var(--release-y, 46px))) rotate(var(--release-rotation, -390deg)) scale(.12); } }
  @keyframes favorite-remove-particle { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(0) scaleX(.25); } 18% { opacity: 1; } 58% { opacity: .86; } 100% { opacity: 0; transform: translate(calc(-50% + var(--burst-x)), calc(-50% + var(--burst-y))) rotate(-260deg) scaleX(1.6); } }
  @keyframes live-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(17,18,16,0); } 50% { box-shadow: 0 0 0 5px rgba(17,18,16,.12); } }
  @keyframes active-line-breathe { 0%, 100% { opacity: 1; } 50% { opacity: .48; } }
  @keyframes map-control-breathe { 0%, 100% { opacity: .24; transform: scale(.92); } 50% { opacity: .5; transform: scale(1.08); } }
  @keyframes nav-icon-pop { 45% { transform: translateY(-3px) scale(1.12); } }
  @keyframes dice-roll { 0% { transform: rotate(0) scale(1); } 40% { transform: rotate(150deg) scale(1.22); } 72% { transform: rotate(292deg) scale(.94); } 100% { transform: rotate(360deg) scale(1); } }
  @keyframes planner-headline-alive { 0% { transform:translate3d(0,0,0) skewX(0); filter:drop-shadow(0 0 0 rgba(17,18,16,0)); } 45% { transform:translate3d(1.5px,-1px,0) skewX(-.28deg); filter:drop-shadow(-1px 2px 0 rgba(17,18,16,.08)); } 100% { transform:translate3d(-1px,.8px,0) skewX(.2deg); filter:drop-shadow(1px -1px 0 rgba(17,18,16,.05)); } }
  @keyframes ink-ripple { 0% { opacity: .2; transform: scale(0); } 70% { opacity: .1; } 100% { opacity: 0; transform: scale(1); } }
  @keyframes cursor-spark { 0% { opacity: .7; transform: translate(-50%, -50%) rotate(45deg) scale(var(--spark-scale)); } 100% { opacity: 0; transform: translate(calc(-50% + var(--spark-drift)), -18px) rotate(135deg) scale(.15); } }
  @keyframes reward-burst { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(0) scale(.2); } 22% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--burst-x)), calc(-50% + var(--burst-y))) rotate(160deg) scale(1.05); } }
  @keyframes filter-chip-detonate { 0% { opacity: 1; filter: grayscale(1); transform: none; } 45% { opacity: 1; filter: grayscale(1) contrast(1.8); transform: translateY(-3px) scale(1.06) rotate(-1deg); } 100% { opacity: 0; filter: grayscale(1) blur(2px); transform: translateY(7px) scale(.22) rotate(7deg); } }
  @keyframes event-title-marquee { 0%, 10% { transform: translateX(0); } 90%, 100% { transform: translateX(calc(-1 * var(--marquee-distance))); } }
  @keyframes active-filter-marquee { 0%, 10% { transform:translateX(0); } 90%, 100% { transform:translateX(calc(-1 * var(--active-filter-marquee-distance))); } }
  @keyframes media-shimmer { 55%, 100% { transform: translateX(110%); } }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .event-row:not(.is-expanded):hover .event-title.is-overflowing .event-title-track { animation: event-title-marquee var(--marquee-duration) ease-in-out infinite alternate; }
  .active-filter-bar:hover .active-filter-chips.is-overflowing .active-filter-track,
  .active-filter-bar:focus-within .active-filter-chips.is-overflowing .active-filter-track { animation:active-filter-marquee var(--active-filter-marquee-duration) ease-in-out infinite alternate; }
}

@media (max-width: 640px) and (prefers-reduced-motion: no-preference) {
  .detail-dialog[open], .venue-dialog[open] { animation-name: sheet-in; transform-origin: bottom; }
  .motion-toast { top: auto; right: 16px; bottom: calc(72px + env(safe-area-inset-bottom)); left: 16px; justify-content: center; max-width: none; transform: translateY(14px) scale(.94); }
  .motion-toast.is-visible { transform: translateY(0) scale(1); }
  .cursor-spark { display: none; }
  @keyframes sheet-in { from { opacity: 0; transform: translateY(36px); } }
}

@media (prefers-reduced-motion: reduce) {
  .loading-screen, .app-shell, .loading-status, .loading-progress i { transition-delay: 0ms !important; }
  .loading-grid, .loading-orbit, .loading-mark path { animation: none !important; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .event-title-track { display: block; width: 100%; }
  .event-title-track > span:first-child { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .event-title-track > [aria-hidden="true"] { display: none; }
  .event-row.is-expanded .event-title-track > span:first-child { overflow: visible; white-space: normal; }
}

/* Event rows stay spatially stable while their compact/expanded layout is tuned. */
.day-section, .event-row, .event-row::before, .event-row::after, .event-row > *, .event-row .event-media, .event-row .event-media > *, .event-row .event-title-track, .event-row .event-list-favorite, .event-row .favorite-soft-icon, .event-row .badge {
  animation: none !important;
  transition: none !important;
}
.event-row:hover .event-copy, .event-row:hover .event-time, .event-row:hover .badge, .event-row:hover .event-arrow, .event-row.is-expanded .event-arrow, .event-row.is-expanded:hover .event-arrow { transform: none; }

/* Compact event lightbox: unblurred navigation, borderless content, persistent action rail. */
body { --detail-chrome-top:68px; --detail-sheet-top:82px; }
body.has-active-filters { --detail-chrome-top:108px; --detail-sheet-top:120px; }
body.mobile-chrome-hidden { --detail-chrome-top:0px; --detail-sheet-top:10px; }
body.event-detail-open::before { content:""; position:fixed; z-index:24; inset:var(--detail-chrome-top) 0 0; background:rgba(17,18,16,.34); pointer-events:none; transition:inset 220ms var(--ease-out); }
.detail-dialog.is-modeless { position:fixed; z-index:35; inset:var(--detail-sheet-top) auto auto 50%; width:min(760px, calc(100vw - 32px)); max-height:calc(100dvh - var(--detail-sheet-top) - 16px); margin:0; overflow:auto; border:0; padding:0; background:var(--white); box-shadow:0 24px 72px rgba(17,18,16,.24); transform:translateX(-50%); transition:inset 220ms var(--ease-out), max-height 220ms var(--ease-out); }
.detail-dialog.is-modeless::backdrop { display: none; background: transparent; backdrop-filter: none; }
.detail-dialog #eventDetail { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 46px; padding: 0; }
.detail-content { min-width: 0; grid-column: 1; grid-row: 1; padding: 0 14px 12px 16px; }
.detail-floatbar { position: relative; top: auto; z-index: 8; grid-column: 2; grid-row: 1; align-self: stretch; min-height: 100%; display: flex; flex-direction: column; margin: 0; background: var(--soft); }
.detail-close-form { flex: 0 0 46px; }
.detail-close-form .dialog-close { width: 46px; height: 46px; }
.detail-toolbar { min-height: 0; flex: 1; display: flex; flex-direction: column; align-items: stretch; }
.detail-toolbar > button, .detail-toolbar > a, .detail-toolbar > details > summary { width: 46px; min-width: 46px; min-height: 46px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink); padding: 0; cursor: pointer; list-style: none; }
.detail-toolbar > details > summary::-webkit-details-marker { display: none; }
.detail-toolbar #askAboutEvent { margin-top: auto; }
.detail-toolbar .detail-favorite.is-saved svg { fill: currentColor; }
.detail-dialog.is-backdrop-hover .detail-close-form .dialog-close, .detail-close-form .dialog-close:hover, .detail-close-form .dialog-close:focus-visible { outline: 0; background: var(--ink); color: var(--white); }
.detail-toolbar [data-tooltip]::after { top: 50%; right: calc(100% + 5px); left: auto; transform: translate(4px, -50%); }
.detail-toolbar [data-tooltip]:hover::after, .detail-toolbar [data-tooltip]:focus-visible::after { transform: translate(0, -50%); }
.detail-rightbar-spacer { flex: 1; }
.detail-location-disclosure { position: relative; display: block; margin: 0; }
.detail-toolbar .detail-location-disclosure > div { position: absolute; z-index: 20; top: 0; right: calc(100% + 6px); bottom: auto; width: min(360px, calc(100vw - 92px)); padding: 10px; background: var(--white); box-shadow: 0 8px 28px rgba(17,18,16,.18); }
.detail-minimap { margin: 0 -14px 7px -16px; }
.detail-minimap-map { height: 92px; }
.detail-map-focus { min-height: 42px; padding: 6px 9px; }
.detail-map-focus-copy strong { font-size: 15px; -webkit-line-clamp: 1; }
.detail-heading { grid-template-columns: 58px minmax(0, 1fr); gap: 12px; align-items: start; margin: 0 0 6px; padding: 0; }
.detail-heading-symbol, .detail-symbol { width: 58px; height: 58px; background: transparent; }
.detail-symbol .media-fallback-icon { width: 38px !important; height: 38px !important; font-size: 38px !important; }
.detail-heading-copy { padding-top: 1px; }
.detail-title-row { display: block; }
.detail-title-row h2 { margin: 0; padding: 0; font-size: 31px; line-height: 1; }
.detail-title-row h2 > button { display: block; width: 100%; border: 0; background: transparent; color: inherit; padding: 0; font: inherit; line-height: inherit; text-align: left; cursor: pointer; }
.detail-title-row h2 > button:hover, .detail-title-row h2 > button:focus-visible { outline: 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.detail-title-row + .detail-calendar-date { min-height: 32px; margin-top: 1px; gap: 7px; font-size: 10px; }
.detail-title-row + .detail-calendar-date svg { width: 15px; height: 15px; }
.detail-description { margin: 7px 0 8px; font-size: 18px; line-height: 1.28; }
.detail-grid { gap: 8px; padding: 4px 0; }
.detail-tag-groups { margin: 0 0 4px; }
.detail-tags { gap: 1px 11px; padding: 0; }
.detail-tags button { min-height: 19px; padding: 0; font-size: 7.5px; line-height: 1; }
.detail-trust { margin: 0 0 5px 70px; border: 0; }
.detail-trust summary { min-height: 30px; font-size: 8px; }
.detail-trust > div { padding: 0 0 7px; }
.detail-trust p { margin-bottom: 6px; font-size: 9px; line-height: 1.42; }
.share-panel { margin: 4px 0; padding: 10px; border: 0; }
.place-knowledge { margin: 2px 0 6px; }
.detail-sources { margin: 3px 0 0; }
.detail-sources li { min-height: 34px; padding-top: 0; padding-bottom: 0; }
.detail-favorite.is-favorite-captured { animation: favorite-capture 620ms var(--ease-spring) !important; }
.detail-favorite.is-favorite-captured::after { animation: favorite-halo 720ms var(--ease-out) !important; }

@media (max-width: 640px) {
  body { --detail-chrome-top:56px; --detail-sheet-top:68px; }
  body.has-active-filters { --detail-chrome-top:92px; --detail-sheet-top:104px; }
  body.mobile-chrome-hidden { --detail-chrome-top:0px; --detail-sheet-top:8px; }
  body.event-detail-open::before { inset:var(--detail-chrome-top) 0 calc(58px + env(safe-area-inset-bottom)); }
  .detail-dialog.is-modeless { inset:var(--detail-sheet-top) 0 calc(58px + env(safe-area-inset-bottom)); width:auto; max-width:none; max-height:none; transform:none; }
  .detail-dialog #eventDetail { grid-template-columns: minmax(0, 1fr) 42px; }
  .detail-content { padding: 0 10px 10px 12px; }
  .detail-floatbar { grid-column: 2; grid-row: 1; }
  .detail-close-form, .detail-close-form .dialog-close { width: 42px; height: 42px; flex-basis: 42px; }
  .detail-toolbar > button, .detail-toolbar > a, .detail-toolbar > details > summary { width: 42px; min-width: 42px; min-height: 42px; }
  .detail-minimap { margin-right: -10px; margin-left: -12px; }
  .detail-minimap-map { height: 82px; }
  .detail-heading { grid-template-columns: 48px minmax(0, 1fr); gap: 9px; }
  .detail-heading-symbol, .detail-symbol { width: 48px; height: 48px; }
  .detail-symbol .media-fallback-icon { width: 34px !important; height: 34px !important; font-size: 34px !important; }
  .detail-title-row h2 { font-size: 25px; }
  .detail-description { font-size: 16px; }
  .detail-trust { margin-left: 57px; }
  .detail-toolbar .detail-location-disclosure > div { position: fixed; top: 68px; right: 54px; width: min(330px, calc(100vw - 70px)); }
}

/* Progressive planner rails: collapsed controls are single, legible choices. */
.date-rail-group:not(.is-expanded) .date-chip:not(.active),
.activity-rail-group:not(.is-expanded) .activity-chip:not(.active) { display: none; opacity: 0; transform: translateX(-8px) scale(.94); }
.date-rail-group:not(.is-expanded) .date-chip.active { display: flex; flex: 0 0 88px; min-width: 88px; align-items: center; gap: 5px; padding: 7px 2px; background: transparent; color: var(--muted); white-space: nowrap; }
.date-rail-group:not(.is-expanded) .date-chip.active b { margin: 0; color: var(--ink); }
.activity-rail-group:not(.is-expanded) .activity-chip.active { background: transparent; color: var(--ink); }
.date-rail-group:not(.is-expanded) .date-chip.active:hover,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible,
.activity-rail-group:not(.is-expanded) .activity-chip.active:hover,
.activity-rail-group:not(.is-expanded) .activity-chip.active:focus-visible { border:0; background:transparent; color:var(--ink); outline:0; text-decoration:underline; text-underline-offset:4px; }
.date-rail-group:not(.is-expanded) .date-chip.active:hover b,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible b,
.date-rail-group:not(.is-expanded) .date-chip.active:hover span,
.date-rail-group:not(.is-expanded) .date-chip.active:focus-visible span { color:inherit; transform:none; }
.date-rail-group:not(.is-expanded) .planner-rail-toggle,
.activity-rail-group:not(.is-expanded) .planner-rail-toggle { display: none; }
.planner-rail-group.is-expanded > .planner-rail-toggle { opacity: .56; color: var(--muted); }
.planner-rail-group.is-expanded > .planner-rail-toggle:hover,
.planner-rail-group.is-expanded > .planner-rail-toggle:focus-visible { opacity: 1; background: var(--soft); color: var(--ink); transform: none; }
#activityRailToggle { order: 3; }
#moodToggle { order: 2; }

/* The detail view is a centered top-layer vignette on tablet and desktop. */
.detail-dialog { margin: auto; }
.detail-heading { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 18px; align-items: start; margin: 0 0 24px; }
.detail-heading-symbol { width: 74px; height: 74px; display: grid; place-items: center; background: var(--soft); color: var(--muted); }
.detail-symbol { width: 74px; height: 74px; background: transparent !important; }
.detail-symbol::before, .detail-symbol::after { display: none !important; }
.detail-symbol .media-fallback-icon { width: 44px !important; height: 44px !important; font-size: 44px !important; }
.detail-heading-copy { min-width: 0; }
.detail-calendar-date { min-height: 44px; width: max-content; max-width: 100%; display: inline-flex; align-items: center; gap: 9px; border: 0; background: transparent; color: inherit; font-size: 12px; font-weight: 800; line-height: 1.25; text-decoration: none; }
.detail-calendar-date svg { flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.detail-calendar-date:hover span, .detail-calendar-date:focus-visible span { text-decoration: underline; text-underline-offset: 4px; }
.detail-calendar-date:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
.detail-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.detail-title-row h2 { flex: 1; margin: 0; padding: 0; }
.detail-title-row + .detail-calendar-date { margin-top: 4px; }
.detail-title-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 2px; }
.detail-title-actions > button,
.detail-title-actions > details > summary { position: relative; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: inherit; padding: 0; cursor: pointer; list-style: none; }
.detail-title-actions svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.detail-title-actions .detail-favorite.is-saved svg { fill: currentColor; }
.detail-title-actions > button:hover,
.detail-title-actions > button:focus-visible,
.detail-title-actions > details > summary:hover,
.detail-title-actions > details > summary:focus-visible { outline: 0; background: currentColor; }
.detail-title-actions > button:hover svg,
.detail-title-actions > button:focus-visible svg,
.detail-title-actions > details > summary:hover svg,
.detail-title-actions > details > summary:focus-visible svg { color: var(--white); }
.detail-location-disclosure { position: relative; margin: 0; }
.detail-location-disclosure summary::-webkit-details-marker { display: none; }
.detail-location-disclosure > div { position: absolute; z-index: 20; right: 0; bottom: calc(100% + 6px); width: min(360px, calc(100vw - 72px)); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px; background: var(--white); color: var(--ink); box-shadow: 0 8px 28px rgba(17,18,16,.18); }
.detail-hero { --detail-media-x: 50%; --detail-media-y: 24%; --detail-parallax: 0px; position: relative; min-height: 168px; margin: -24px -34px 24px; overflow: hidden; background: #222; color: var(--white); }
.detail-hero .detail-media { width: 100%; height: clamp(168px, 24vh, 196px); margin: 0; aspect-ratio: auto; background: #222; }
.detail-hero .detail-media img { width: 100%; height: calc(100% + 26px); object-fit: cover; object-position: var(--detail-media-x) var(--detail-media-y); transform: translateY(calc(-13px + var(--detail-parallax))); transition: object-position 280ms var(--ease-out), transform 180ms linear; }
.detail-hero::after { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.08) 10%, rgba(0,0,0,.18) 38%, rgba(0,0,0,.66) 72%, rgba(0,0,0,.97) 100%); pointer-events: none; }
.detail-hero-vignette { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 30px 34px 17px; }
.detail-heading { position: relative; }
.detail-hero-vignette h2 { color: var(--white); text-shadow: 0 2px 18px rgba(0,0,0,.72); }
.detail-hero-vignette .detail-calendar-date { position: relative; top: 5px; color: rgba(255,255,255,.72); }
.detail-hero-vignette .detail-location-disclosure > div { color: var(--ink); }
.detail-hero-vignette .detail-title-actions > button:hover,
.detail-hero-vignette .detail-title-actions > button:focus-visible,
.detail-hero-vignette .detail-title-actions > details > summary:hover,
.detail-hero-vignette .detail-title-actions > details > summary:focus-visible { background: var(--white); }
.detail-hero-vignette .detail-title-actions > button:hover svg,
.detail-hero-vignette .detail-title-actions > button:focus-visible svg,
.detail-hero-vignette .detail-title-actions > details > summary:hover svg,
.detail-hero-vignette .detail-title-actions > details > summary:focus-visible svg { color: var(--ink); }
.detail-description { margin: 18px 0; }
.detail-grid { padding: 10px 0; border: 0; }
.detail-tag-groups { margin-bottom: 12px; }
.detail-tags { gap: 5px 14px; }
.detail-tags button { min-height: 24px; gap: 4px; padding: 1px 0; background: transparent; font-size: 8px; }
.detail-tags button:hover, .detail-tags button:focus-visible { outline: 0; background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.place-knowledge, .detail-trust, .detail-sources { border: 0; }
.place-knowledge { margin-top: 4px; }
.detail-trust { margin-top: 10px; }
.detail-sources { margin-top: 8px; }
.detail-sources ul { display: grid; gap: 2px; border: 0; }
.detail-sources li { min-height: 38px; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; border: 0; background: var(--soft); padding: 2px 4px 2px 12px; margin: 0; }
.detail-sources .detail-source-row { cursor: pointer; transition: background-color 160ms ease, transform 220ms var(--ease-out); }
.detail-sources .detail-source-row:hover, .detail-sources .detail-source-row:focus-visible { outline: 0; background: #deded8; transform: translateX(2px); }
.detail-sources li > strong { font-size: 10px; }
.detail-sources li > small { color: var(--muted); font-size: 7px; letter-spacing: .07em; text-transform: uppercase; }
.detail-sources li nav { margin-left: auto; opacity: .48; transform: translateX(2px); transition: opacity 160ms ease, transform 220ms var(--ease-out); }
.detail-sources li:hover nav, .detail-sources li:focus-within nav { opacity: 1; transform: none; }
.detail-sources li a { width: 32px; height: 32px; display: grid; place-items: center; border: 0; padding: 0; }
.detail-sources li a svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) { .detail-sources li:not(:hover):not(:focus-within) nav { opacity: 0; } }
.detail-minimap { margin: 12px 0; }

@media (min-width: 641px) and (max-width: 900px) {
  .event-row { --event-time-track: 64px; --event-visual-track: 36px; --event-action-track: 30px; min-height: 52px; gap: 10px; align-items: start; padding: 10px 14px; contain-intrinsic-size: auto 52px; }
  .event-row-media { width: 36px; height: 27px; align-self: start; }
  .event-row.has-symbol .event-row-media { width: 30px; height: 30px; align-self: start; justify-self: start; }
  .event-row.has-symbol .event-media.media-fallback .media-fallback-icon { width: 28px; height: 28px; font-size: 28px; }
  .event-copy, .event-copy h3, .event-title { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .event-copy h3 { margin: 0; font-size: 20px; line-height: 1.12; }
  .event-time, .event-arrow, .event-list-favorite { align-self: start; }
  .event-title-track > span:first-child { overflow: hidden; text-overflow: ellipsis; }
}

@media (max-width: 640px) {
  .controls { grid-template-columns:minmax(0,1fr) 44px 44px 44px; }
  .controls:not(.search-open) .search-control { justify-content:flex-end; }
  .controls:not(.search-open) .search-control:not(.is-expanded) .search-wrap { display:none; }
  .controls:not(.search-open) .search-control:not(.is-expanded) .search-toggle { display:grid; margin-left:auto; }
  .search-control.is-expanded .search-toggle { display:none; }
  .search-control.is-expanded .search-wrap { min-width:0; width:100%; display:flex; }
  .date-rail-group:not(.is-expanded) .date-chip.active { flex:0 0 44px; min-width:44px; width:44px; justify-content:center; padding:0; }
  .date-rail-group:not(.is-expanded) .date-chip.active b,
  .date-rail-group:not(.is-expanded) .date-chip.active span { display:none; }
  .activity-rail-group:not(.is-expanded) .activity-chip.active { flex:0 0 44px; width:44px; min-width:44px; justify-content:center; padding:0; }
  .activity-rail-group:not(.is-expanded) .activity-chip.active > span { display:none; }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .search-toggle,
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .date-chip.active,
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .activity-chip.active,
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .filters-disclosure-toggle { width:44px; min-width:44px; height:44px; min-height:44px; display:grid; place-items:center; justify-self:end; border:0; background:transparent; color:var(--muted); padding:0; }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) :is(.search-toggle, .date-chip.active, .activity-chip.active, .filters-disclosure-toggle) { transform-origin:center; transition:color 160ms ease, background-color 160ms ease, opacity 160ms ease, transform 220ms var(--ease-spring); }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) :is(.search-toggle, .date-chip.active, .activity-chip.active, .filters-disclosure-toggle):is(:hover, :focus-visible) { outline:0; background:var(--soft); color:var(--ink); transform:translateY(-1px); }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) :is(.search-toggle, .date-chip.active, .activity-chip.active, .filters-disclosure-toggle):active { background:var(--ink); color:var(--white); transform:scale(.9); transition-duration:80ms; }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .filters-disclosure-toggle:hover,
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .filters-disclosure-toggle:focus-visible,
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .filters-disclosure-toggle[aria-expanded="true"] { background:var(--soft); color:var(--ink); }
  .controls:not(.date-rail-open):not(.activity-rail-open):not(.search-open) .filters-disclosure-toggle b { background:transparent; color:var(--muted); }
  .masthead { border:0 !important; box-shadow:none !important; }
  .masthead::before, .masthead::after { display:none !important; content:none !important; }
  .detail-toolbar:has(.detail-title-actions) { grid-template-columns: repeat(4, minmax(42px, 1fr)); }
  .detail-toolbar .detail-title-actions { display: contents; }
  .detail-toolbar .detail-title-actions > button,
  .detail-toolbar .detail-title-actions > details { min-width: 0; height: 44px; margin: 0; color: var(--ink); }
  .detail-toolbar .detail-title-actions > button,
  .detail-toolbar .detail-title-actions > details > summary { width: 100%; height: 44px; display: grid; place-items: center; }
  .detail-toolbar .detail-title-actions > button:hover,
  .detail-toolbar .detail-title-actions > button:focus-visible,
  .detail-toolbar .detail-title-actions > details > summary:hover,
  .detail-toolbar .detail-title-actions > details > summary:focus-visible { background: var(--soft); }
  .detail-toolbar .detail-title-actions > button:hover svg,
  .detail-toolbar .detail-title-actions > button:focus-visible svg,
  .detail-toolbar .detail-title-actions > details > summary:hover svg,
  .detail-toolbar .detail-title-actions > details > summary:focus-visible svg { color: var(--ink); }
  .detail-toolbar .detail-location-disclosure > div { position: fixed; top: 106px; right: 12px; bottom: auto; width: min(360px, calc(100vw - 24px)); }
  .detail-toolbar #askAboutEvent { order: 1; }
  .detail-toolbar .detail-location-disclosure { order: 2; }
  .detail-toolbar #shareEvent { order: 3; }
  .detail-toolbar .detail-favorite { order: 4; }
  .detail-hero { margin: -22px -22px 20px; min-height: 160px; }
  .detail-hero .detail-media { width: 100%; height: 176px; margin: 0; }
  .detail-hero-vignette { padding: 28px 22px 14px; }
  .detail-title-row h2 { font-size: 28px; }
  .detail-tags { gap: 3px 11px; }
  .detail-tags button { min-height: 22px; font-size: 7.5px; }
}

@media (max-width: 420px) {
  .controls:not(.search-open) { grid-template-columns:minmax(0,1fr) 44px 44px 44px; }
  .controls.search-open { grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-areas:"search search search search" "date date activity filters"; }
  .controls.search-open.date-rail-open { grid-template-areas:"search search search search" "date date date date" "activity activity activity filters"; }
  .controls.search-open.activity-rail-open { grid-template-areas:"search search search search" "date date activity filters" "activities activities activities activities"; }
  .search-control { min-width:0; min-height:58px; align-items:stretch; }
  .search-control:not(.is-expanded) .search-wrap { display:none; }
  .search-control:not(.is-expanded) .search-toggle { display:grid; }
  .search-control.is-expanded .search-toggle { display:none; }
  .search-control.is-expanded .search-wrap { min-width:0; width:100%; display:flex; }
}

@media (prefers-reduced-motion: reduce) {
  .time-dial-value { opacity:1 !important; transform:none !important; }
  .time-dial-preview { display:none !important; }
  .hour-separator::before { left: -58px !important; transition: none !important; }
}

/* Keep the compact lightbox rules last; earlier detail styles support legacy dialogs. */
.detail-dialog.is-modeless[open] { animation:none; transform:translateX(-50%); }
.detail-dialog #eventDetail { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) 46px; padding:0; }
.detail-content { min-width:0; grid-column:1; grid-row:1; padding:0 14px 12px 16px; }
.detail-dialog .detail-floatbar { position:relative; top:auto; z-index:8; grid-column:2; grid-row:1; align-self:stretch; min-height:100%; display:flex; flex-direction:column; margin:0; border:0; background:transparent; box-shadow:none; }
.detail-dialog .detail-close-form { flex:0 0 46px; }
.detail-dialog .detail-close-form .dialog-close { width:46px; height:46px; }
.detail-dialog .detail-toolbar { min-height:0; flex:1; display:flex; flex-direction:column; align-items:stretch; }
.detail-dialog .detail-toolbar > button, .detail-dialog .detail-toolbar > a, .detail-dialog .detail-toolbar > details > summary { width:46px; min-width:46px; min-height:46px; display:grid; place-items:center; border:0; background:transparent; color:var(--ink); padding:0; cursor:pointer; list-style:none; }
.detail-dialog .detail-toolbar #askAboutEvent { order:5; margin-top:auto; }
.detail-dialog .detail-toolbar .detail-location-disclosure { order:initial; position:relative; display:block; height:auto; margin:0; }
.detail-dialog .detail-toolbar .detail-favorite { order:1; }
.detail-dialog .detail-toolbar #shareEvent { order:2; }
.detail-dialog .detail-toolbar .detail-location-disclosure { order:3; }
.detail-dialog .detail-toolbar #openEventExternal { order:4; }
.detail-dialog .detail-toolbar .detail-location-disclosure > div { position:absolute; z-index:20; top:0; right:calc(100% + 6px); bottom:auto; width:min(360px, calc(100vw - 92px)); padding:10px; background:var(--white); color:var(--ink); box-shadow:0 8px 28px rgba(17,18,16,.18); }
.detail-dialog .detail-minimap { margin:0 -14px 7px -16px; }
.detail-dialog .detail-minimap-map { height:92px; }
.detail-dialog .detail-minimap-map::after { background:linear-gradient(to right, rgba(247,247,244,0) 68%, rgba(247,247,244,.72) 100%),linear-gradient(to bottom, rgba(17,18,16,0) 28%, rgba(17,18,16,.16) 62%, rgba(17,18,16,.88) 100%); }
.detail-dialog .detail-minimap.is-unresolved .detail-minimap-surface { color:var(--ink); text-decoration:none; }
.detail-dialog .detail-minimap.is-unresolved .detail-minimap-map { position:relative; overflow:hidden; display:grid; place-items:center; background:var(--soft); }
.detail-dialog .detail-minimap-grid { position:absolute; inset:-12px; opacity:.34; background-image:linear-gradient(35deg, transparent 47%, currentColor 48%, currentColor 49%, transparent 50%),linear-gradient(125deg, transparent 47%, currentColor 48%, currentColor 49%, transparent 50%); background-size:46px 46px; transform:rotate(-4deg); }
.detail-dialog .detail-minimap-place { position:relative; z-index:1; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--white); box-shadow:0 2px 12px rgba(17,18,16,.14); }
.detail-dialog .detail-minimap-place svg { width:18px; height:18px; }
.detail-dialog .detail-minimap.is-unresolved .detail-map-focus small { color:var(--muted); }
.detail-dialog .detail-map-resources { gap:0; background:transparent; opacity:0; pointer-events:none; transition:none; }
.detail-dialog .detail-map-resource, .detail-dialog .detail-map-resources > a { border:0; background:transparent; box-shadow:none; }
.detail-dialog .detail-minimap:hover .detail-map-resources, .detail-dialog .detail-minimap:focus-within .detail-map-resources { opacity:1; pointer-events:auto; }
.detail-dialog .detail-heading { grid-template-columns:58px minmax(0,1fr); gap:12px; align-items:start; margin:0 0 6px; padding:0; }
.detail-dialog .detail-heading-symbol, .detail-dialog .detail-symbol { width:58px; height:58px; background:transparent !important; }
.detail-dialog .detail-symbol .media-fallback-icon { width:38px !important; height:38px !important; font-size:38px !important; }
.detail-dialog .detail-heading-copy { padding-top:1px; }
.detail-dialog .detail-title-row { display:block; }
.detail-dialog .detail-title-row h2 { margin:0; padding:0; font-size:31px; line-height:1; }
.detail-dialog .detail-title-row + .detail-calendar-date { min-height:32px; margin-top:1px; gap:7px; font-size:10px; }
.detail-dialog .detail-description { margin:7px 0 8px; font-size:18px; line-height:1.28; }
.detail-dialog .detail-grid { gap:8px; padding:4px 0; }
.detail-dialog .detail-tag-groups { margin:0 0 4px; }
.detail-dialog .detail-tags { gap:1px 11px; padding:0; }
.detail-dialog .detail-tags button { min-height:19px; padding:0; font-size:7.5px; line-height:1; }
.detail-dialog .detail-trust { margin:0 0 5px 70px; border:0; }
.detail-dialog .detail-trust summary { min-height:30px; font-size:8px; }
.detail-dialog .detail-sources { margin-top:3px; }
.detail-dialog .place-knowledge { position:relative; margin:0 0 3px; }
.detail-dialog .place-explore-toggle { width:30px; height:30px; display:grid; place-items:center; border:0; background:transparent; color:var(--ink); padding:0; cursor:pointer; }
.detail-dialog .place-explore-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.detail-dialog .place-explore-toggle:hover, .detail-dialog .place-explore-toggle:focus-visible, .detail-dialog .place-explore-toggle[aria-expanded="true"] { outline:0; background:var(--soft); }
.detail-dialog .place-knowledge-body[hidden] { display:none; }
.detail-dialog .place-knowledge-body { margin-top:-2px; }
.detail-dialog .place-story-grid { gap:4px; padding:0; }
.detail-dialog .place-story-card { min-width:116px; flex-basis:116px; }
.detail-dialog .place-story-select { min-height:42px; gap:2px; padding:3px 4px; }
.detail-dialog .place-story-select strong { font-size:13px; }
.detail-dialog .place-story-walk { min-height:22px; margin:0 0 0 auto; padding:0; }

@media (max-width:640px) {
  .detail-dialog.is-modeless[open] { transform:none; }
  .detail-dialog #eventDetail { grid-template-columns:minmax(0,1fr) 42px; }
  .detail-dialog .detail-content { padding:0 10px 10px 12px; }
  .detail-dialog .detail-floatbar { position:sticky; top:0; height:calc(100dvh - 126px - env(safe-area-inset-bottom)); min-height:0; align-self:start; }
  .detail-dialog .detail-close-form, .detail-dialog .detail-close-form .dialog-close { width:42px; height:42px; flex-basis:42px; }
  .detail-dialog .detail-toolbar > button, .detail-dialog .detail-toolbar > a, .detail-dialog .detail-toolbar > details > summary { width:42px; min-width:42px; min-height:42px; }
  .detail-dialog .detail-minimap { margin-right:-10px; margin-left:-12px; }
  .detail-dialog .detail-minimap-map { height:82px; }
  .detail-dialog .detail-heading { grid-template-columns:48px minmax(0,1fr); gap:9px; }
  .detail-dialog .detail-heading-symbol, .detail-dialog .detail-symbol { width:48px; height:48px; }
  .detail-dialog .detail-title-row h2 { font-size:25px; }
  .detail-dialog .detail-description { font-size:16px; }
  .detail-dialog .detail-trust { margin-left:57px; }
}
