/* Quiet paper, rounded controls, thin strokes; artwork is the visual identity. */
:root{--paper:#fafbf7;--ink:#252823;--muted:#666c60;--line:#e2e6dc;--wash:#eef2df;--accent:#52652b;--white:#fff;--safe-top:env(safe-area-inset-top,0px)}
html,body{background:var(--paper)}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}
main,.native-app main{padding:0 max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));max-width:1600px}
button,input,select,summary{border-radius:12px}button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select{min-height:44px}button:hover{background:var(--wash)}
.discovery-top{position:sticky;top:0;z-index:25;background:var(--paper);padding-top:calc(var(--safe-top) + 8px);padding-bottom:8px}.discovery-top:before{content:'';position:absolute;inset:0 -16px;background:var(--paper);z-index:-1}
.main-nav{display:block;margin:0;border:0}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef0e9;border-radius:16px;padding:4px}.mode-tabs button{font-size:16px;letter-spacing:-.02em;padding:9px 12px;border:0;border-radius:12px;min-height:44px}.mode-tabs button[aria-selected=true]{background:white;box-shadow:0 1px 4px #2330170c;font-weight:600}
.discovery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:3px;margin-top:6px}.icon-button,.view-tabs button{width:44px;height:44px;min-width:44px;padding:12px;border:0;display:inline-flex;align-items:center;justify-content:center;background:transparent}.date-button{display:flex;align-items:center;gap:7px;border:0;padding:8px 6px;font-size:13px;white-space:nowrap}.date-button span[data-icon]{display:flex}.view-tabs{gap:0;background:transparent}.view-tabs button[aria-selected=true]{background:var(--wash);color:var(--accent)}.has-filter{background:var(--wash);position:relative}.has-filter:after{content:'';position:absolute;right:6px;top:6px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
#search-panel{display:flex;align-items:center;gap:4px;padding-top:4px}#search{flex:1;width:100%;background:white;border:1px solid var(--line);font-size:16px;padding:10px 12px}#filter-chips{gap:5px}#filter-chips:not(:empty){margin:6px 0 10px}#filter-chips button{padding:6px 10px;min-height:36px;font-size:12px}
.map-layout{border:0;grid-template-columns:minmax(0,1fr) minmax(360px,38%);height:calc(100dvh - 152px - var(--safe-top));min-height:460px;gap:16px}.map-wrap{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#e8ebdf}.map-rail{border:0}.rail-toolbar{padding:0 0 8px;border:0;background:var(--paper);gap:8px}.rail-toolbar select{font-size:12px;padding:0 8px;min-height:44px}.layout-switch button{border-radius:10px;min-height:44px;width:44px}.layout-switch button[aria-pressed=true]{color:var(--accent);background:var(--wash)}#rail-content{padding:2px 0 0}
.place-list[data-layout=compact] .place-item{grid-template-columns:70px minmax(0,1fr);gap:12px;margin:0 0 12px;padding:0 0 12px}.place-list[data-layout=compact] .thumb,.place-list[data-layout=compact] .poster-empty{width:70px;height:86px;aspect-ratio:auto;border-radius:8px}.thumb,.poster-empty{border-radius:10px;background:#f0f1eb}.thumb .zoom-mark{width:20px;height:20px;font-size:19px;border-radius:6px;background:#fffffff2}.place-title,.place-list[data-layout=compact] .place-title{font-size:15px;line-height:1.3;font-weight:600}.place-artist{font-size:12px}.place-address,.place-date{font-size:12px;line-height:1.4}.place-list[data-layout=compact] .place-artist,.place-list[data-layout=compact] .place-address,.place-list[data-layout=compact] .place-date{margin-top:3px}.place-list[data-layout=compact] .place-kind{display:none}.place-button{border-radius:0}.place-list[data-layout=compact] .place-address{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.place-list{gap:20px 14px}.poster-empty{font:22px Georgia,serif;color:#929b82}.place-item{padding-bottom:16px}
dialog{border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 60px #1720171a;background:var(--paper)}dialog::backdrop{background:#20291e66;backdrop-filter:blur(3px)}.dialog-top h2,.app-about h2{font:24px/1.2 Georgia,serif;letter-spacing:-.03em}.detail-text h2{font:29px/1.15 Georgia,serif}.dialog-top button{min-height:44px}.detail-actions a,.detail-actions button{border-radius:12px}.control-sheet{width:min(440px,calc(100% - 24px));padding:22px}.control-sheet label{font-size:13px;text-transform:none;letter-spacing:0;gap:8px;margin:16px 0}.control-sheet select,.control-sheet input{font-size:16px;background:#fff;border:1px solid var(--line);padding:12px;width:100%}.control-sheet .fine{font-size:13px;line-height:1.5}.control-sheet .filter-options{position:static;box-shadow:none;border:0;width:100%;max-width:none;max-height:300px;padding:8px 0;background:transparent}.control-sheet .filter-options label{margin:0;min-height:44px;font-size:15px}.control-sheet .filter-options input{width:18px;min-width:18px;min-height:18px;height:18px;padding:0;accent-color:var(--accent)}.control-sheet .filter-menu>summary{font-size:14px;height:auto;min-height:44px;border:0;padding:12px 0;border-radius:0}.control-sheet .filter-menu{border-top:1px solid var(--line);margin-top:16px}.presets{display:grid;gap:8px}.presets button{padding:14px;text-align:left;font-size:16px;min-height:48px;background:#fff;border:1px solid var(--line)}.presets button[aria-pressed=true]{background:var(--wash);border-color:#c5cfaa}.custom-dates{margin-top:18px}.custom-dates summary{padding:12px 0;cursor:pointer}.date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.date-fields label{min-width:0}.date-fields input{-webkit-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;box-sizing:border-box}.date-fields input::-webkit-date-and-time-value{text-align:left;min-width:0}.done-button{background:var(--accent);color:#fff;border:0;width:100%;margin-top:12px;min-height:46px}.done-button:hover{background:#405222}.secondary-actions{display:grid;border-top:1px solid var(--line);margin-top:20px;padding-top:10px}.secondary-actions button{text-align:left;border:0;padding:12px 0;border-radius:0}.mobile-offline{font-size:12px;border:0;background:var(--wash);padding:8px 12px;border-radius:12px;margin:8px 0}#map-error{border-radius:12px;font-size:12px}.status{border-radius:10px;font-size:12px}footer{font-size:10px}.selected-heading{font-size:22px}.empty{font-size:14px;line-height:1.5;padding:14px 4px}.table-toolbar{margin-top:12px}.row-actions button{min-height:36px}.maplibregl-ctrl-group{border-radius:10px;overflow:hidden}
@media(max-width:760px){
 .map-layout{display:flex;height:auto;min-height:0;gap:6px;max-height:none}.map-wrap{height:clamp(200px,30dvh,300px);min-height:200px}.map-rail{max-height:none;overflow:visible;overscroll-behavior:auto}.rail-toolbar{position:static;padding:0 0 2px}.discovery-toolbar{gap:0}.date-button{font-size:12px;gap:5px;padding:8px 4px}.icon-button,.view-tabs button{width:40px;min-width:40px;padding:10px;min-height:44px}.mode-tabs button{font-size:16px;padding:9px 12px}.native-app dialog.control-sheet{transform:none}.control-sheet{margin:auto auto max(12px,env(safe-area-inset-bottom));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}.dialog-top{margin-bottom:16px}.detail-art .thumb{height:240px}#hop-panel{margin-top:12px}footer{flex-wrap:wrap}.place-list[data-layout=compact] .place-item{margin-bottom:12px;padding-bottom:12px}
}
@media(max-width:360px){main,.native-app main{padding-left:12px;padding-right:12px}.date-button span[data-icon]{display:none}.discovery-toolbar .icon-button,.view-tabs button{width:38px;min-width:38px}.date-button{font-size:11px}.place-list[data-layout=compact] .place-item{grid-template-columns:60px minmax(0,1fr)}.place-list[data-layout=compact] .thumb,.place-list[data-layout=compact] .poster-empty{width:60px;height:76px}}

/* Shared preview rule: variable-length text never expands a card without limit. */
.place-item .place-title,.place-item .place-artist,.place-item .place-address{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Keep map credits accessible without a solid badge competing with artwork. */
.map-wrap .maplibregl-ctrl-attrib.maplibregl-compact{background:transparent}
.map-wrap .maplibregl-ctrl-attrib.maplibregl-compact[open]{background:rgba(250,251,247,.94);color:#5f6663}
.map-wrap .maplibregl-ctrl-attrib summary{min-height:24px;height:24px;border-radius:12px;background-color:rgba(250,251,247,.45);background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235f6663' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='7.25'/%3E%3Cpath d='M12 11v5'/%3E%3Ccircle cx='12' cy='8' r='.8' fill='%235f6663' stroke='none'/%3E%3C/svg%3E")}
.map-wrap .maplibregl-ctrl-attrib summary:hover,.map-wrap .maplibregl-ctrl-attrib summary:focus-visible{background-color:rgba(250,251,247,.85)}
@media(max-width:360px){.discovery-top:before{inset:0 -12px}}

@media(min-width:761px){.discovery-toolbar{justify-content:space-between;gap:clamp(18px,3vw,48px);width:100%;max-width:none}}
@media(min-width:2000px){main,.native-app main{max-width:2200px}}
/* Fill compact and side-by-side card frames; enlargement retains full artwork. */
.place-list .thumb img{object-fit:cover;object-position:center}

/* Keep the full native date value readable on narrow phones. */
@media(max-width:360px){.date-fields{grid-template-columns:minmax(0,1fr);gap:0}.date-fields label{margin:10px 0}}

/* Consistent, shallow artwork frames for side-by-side discovery cards. */
.place-list[data-layout=posters] .thumb,.place-list[data-layout=posters] .poster-empty{aspect-ratio:4/3;border-radius:10px}

/* Phone controls overlay discovery; their reveal never changes document geometry. */
@media(max-width:760px){
 main,.native-app main{padding-top:calc(var(--safe-top) + 8px);min-width:0;width:100%;box-sizing:border-box}
 .discovery-top{position:fixed;top:0;left:0;right:0;width:auto;padding:var(--safe-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:transparent;pointer-events:none;overflow:hidden;box-sizing:border-box}
 .discovery-top:before{inset:0 0 auto;height:var(--safe-top);background:var(--paper);z-index:3;pointer-events:none}
 /* Clip sliding rows at the safe-area boundary while preserving their side gutters. */
 .discovery-content{position:relative;padding:0;background:transparent;pointer-events:none;clip-path:inset(0 -100vw)}
 .discovery-content .main-nav,.discovery-tools{position:relative;background:var(--paper);transition:none;pointer-events:none}
 .discovery-content .main-nav{transform:translateY(var(--header-nav-y,-64px))}
 .discovery-tools{transform:translateY(var(--header-tools-y,-116px))}
 .discovery-top.header-snapping .main-nav,.discovery-top.header-snapping .discovery-tools{transition:transform 160ms ease-out}
 .discovery-content .main-nav{z-index:2;padding-top:8px;padding-bottom:4px}
 .discovery-tools{z-index:1;padding-bottom:8px}
 .discovery-content .main-nav:before,.discovery-tools:before{content:'';position:absolute;inset:0 -16px;z-index:-1;background:var(--paper)}
 .discovery-top[data-tabs-ready=true] .main-nav,.discovery-top[data-tools-ready=true] .discovery-tools{pointer-events:auto}
 .discovery-top.header-keyboard .main-nav,.discovery-top.header-keyboard .discovery-tools{transition:none}
 .discovery-toolbar{min-width:0;margin-top:0}
 .discovery-toolbar .icon-button{width:44px;min-width:44px;height:44px}
 #search-panel,#search,.map-layout,.map-rail,.place-item,.place-copy{min-width:0}
 #search{flex:1 1 0;width:0}
 .map-layout,.map-rail{max-width:100%}
}
@media(max-width:360px){
 .discovery-top{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .discovery-content .main-nav:before,.discovery-tools:before{inset:0 -12px}
}
@media(prefers-reduced-motion:reduce){.discovery-top.header-snapping .main-nav,.discovery-top.header-snapping .discovery-tools{transition:none}}

/* Small line icons keep show sharing distinct from personal navigation. */
.place-copy{min-width:0}.place-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px;min-height:44px}.place-meta>div{min-width:0}.place-meta .place-date,.place-list[data-layout=compact] .place-meta .place-date{margin-top:0}.place-meta .place-kind{margin-top:4px}
.listing-share,.row-actions .listing-share,.detail-actions .listing-share{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:12px;border:0;border-radius:12px;background:transparent;color:var(--muted);text-decoration:none}.listing-share svg{width:18px;height:18px}.listing-share:hover{color:var(--accent);background:var(--wash)}.row-actions{align-items:center;gap:8px}.row-actions .listing-share{margin-top:-4px;margin-bottom:-4px}.place-meta .listing-share{margin-right:-8px}
.bottom-bar{display:none}.profile-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--wash);color:var(--accent);margin:8px 0 20px}.profile-mark svg{width:26px;height:26px}
#copy-url{resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px;background:white;font-family:inherit;font-size:14px;line-height:1.5;color:var(--ink)}
@media(max-width:760px){
 main,.native-app main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 .bottom-bar{display:flex;align-items:center;gap:16px;position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:30;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);box-shadow:0 4px 20px #25282312}
 .bottom-bar button{display:grid;place-items:center;width:48px;height:44px;min-height:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--ink)}.bottom-bar button:hover{color:var(--accent);background:var(--wash)}.bottom-bar button[hidden]{display:none}
 body:has(#search:focus) .bottom-bar{display:none}
 #toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
}

/* One compact summary per show on phones; the full table remains on wider screens. */
#phone-list{display:none}
@media(max-width:760px){
 #table-panel>table{display:none}
 #phone-list{display:block}
 #phone-list .place-title,#phone-list .place-artist,#phone-list .place-address{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}

/* Natural-height cards. The share target spans the location/date block. */
.place-list{align-items:start}.place-item,.place-list[data-layout=compact] .place-item{padding-bottom:8px}
.place-copy{position:relative}.place-footer{display:block;min-height:44px;margin-top:4px;padding-right:46px}
.place-footer .place-address,.place-list[data-layout=compact] .place-footer .place-address{margin-top:0}
.place-footer .place-date,.place-list[data-layout=compact] .place-footer .place-date{margin-top:4px}
.place-footer .place-kind,.place-list[data-layout=compact] .place-footer .place-kind{display:block;margin-top:4px}
.place-copy>.listing-share{position:absolute;right:0;bottom:0}
.place-list[data-layout=posters] .place-button{padding-top:10px}
.feed-heading{font-size:14px;font-weight:500;color:var(--muted);margin:22px 0 14px;padding-top:12px;border-top:1px solid var(--line)}
.feed-note,.feed-end{font-size:12px;line-height:1.5;color:var(--muted);margin:12px 0 18px}
.feed-more{display:block;margin:16px auto;min-height:44px;padding:8px 18px;font-size:13px;border-color:var(--line)}
/* Visual size and tap size are deliberately separate; real coordinates stay fixed. */
.map-marker{display:grid;place-items:center;width:var(--marker-target);height:var(--marker-target);min-width:var(--marker-target);min-height:var(--marker-target);padding:0;border:0;border-radius:50%;background:transparent}
.map-marker:hover{background:transparent}.map-marker:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.map-marker-visual{display:grid;place-items:center;box-sizing:border-box;pointer-events:none}
.map-marker-art{width:var(--marker-art);height:var(--marker-art);border:2px solid var(--white);border-radius:50%;overflow:hidden;box-shadow:0 1px 5px #25282324;background:var(--ink)}
.map-marker-art img{display:block;width:100%;height:100%;object-fit:cover}
.map-marker-count{width:var(--marker-count);height:var(--marker-count);border:1.5px solid #536047;border-radius:50%;background:#e6e9d9;font-size:12px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.map-marker-large{width:var(--marker-large);height:var(--marker-large)}.map-marker-dot{width:14px;height:14px;border:2px solid var(--white);border-radius:50%;background:#303b2b}


.place-list[data-layout=compact] .place-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}

/* Only missing-image discovery cards offer a gallery access request. */
.gallery-claim{display:block;isolation:isolate;padding:0;border:1px solid var(--line);color:#fff;cursor:pointer;background:#d9ddd1;text-align:left}
.gallery-claim-art{position:absolute;z-index:-1;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);object-fit:cover;filter:blur(5px) saturate(.68) brightness(.82);transform:scale(1.04);opacity:.9}.gallery-claim-copy{position:absolute;inset:auto 0 0;display:flex;align-items:center;gap:7px;padding:22px 10px 9px;background:linear-gradient(transparent,#273022b8);font:500 12px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.gallery-claim-copy svg{width:18px;height:18px;flex:none}.gallery-claim-copy>span{max-width:150px}.gallery-claim:hover .gallery-claim-art{filter:blur(4px) saturate(.78) brightness(.88)}.gallery-claim:hover{border-color:#aeb99d}
.place-list[data-layout=compact] .gallery-claim,.selected-list .gallery-claim,#phone-list .gallery-claim{border-color:#d9ddcf}.place-list[data-layout=compact] .gallery-claim-copy,.selected-list .gallery-claim-copy,#phone-list .gallery-claim-copy{inset:5px 5px auto auto;width:26px;height:26px;padding:5px;border-radius:8px;background:#fafbf7e8;color:var(--accent)}.place-list[data-layout=compact] .gallery-claim-copy svg,.selected-list .gallery-claim-copy svg,#phone-list .gallery-claim-copy svg{width:16px;height:16px}.place-list[data-layout=compact] .gallery-claim-copy>span,.selected-list .gallery-claim-copy>span,#phone-list .gallery-claim-copy>span{display:none}
.claim-identity{padding:14px 16px;background:#eef0e9;border-radius:12px}.claim-identity strong{font-size:16px;line-height:1.3}.claim-identity p{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.4}
.claim-intro{font:24px/1.2 Georgia,serif;margin:22px 0 18px;letter-spacing:-.02em}
.claim-benefits{display:grid;gap:16px}.claim-benefits>div{position:relative;padding-left:16px;border-left:2px solid #c5cfaa}.claim-benefits h3{font:600 14px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0 0 4px}.claim-benefits p{font-size:13px;line-height:1.5;color:var(--muted);margin:0}.claim-planned{display:inline-block;margin-top:6px;color:var(--accent);font-size:11px}
.claim-email{border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;padding:10px 14px;text-decoration:none;font-size:14px;text-align:center}.claim-email:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.claim-note{margin-bottom:0}
.claim-profile{display:block;width:100%;margin-top:8px;padding:10px 14px;border:1px solid var(--line);background:transparent;color:var(--accent);font-size:14px}.claim-profile[hidden]{display:none}
.claim-profile-form{display:grid;gap:10px;margin-top:18px}.claim-profile-form[hidden]{display:none}.claim-profile-form label{display:grid;gap:5px;margin:0;font-size:12px}.claim-profile-form input,.claim-profile-form textarea{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:10px;background:white;padding:10px;font:inherit}
.place-copy{position:relative}.listing-contribute{pointer-events:none;min-width:0}.contribution-slot{display:flex;align-items:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:16.8px}.contribution-slot>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.contribution-slot button{pointer-events:auto;min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:3px;white-space:nowrap}.contribution-slot button:hover{background:transparent;color:var(--ink)}.contribution-slot button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.has-contribution-artist :is(.compact-artist,.card-full .place-artist),.has-contribution-venue :is(.compact-venue,.card-full .place-address),.has-contribution-dates :is(.compact-date,.card-full .place-date){visibility:hidden}
.place-list[data-layout=compact] .listing-contribute,.selected-list .listing-contribute,#phone-list .listing-contribute{position:absolute;z-index:2;inset:0 48px 0 0;display:grid;grid-template-rows:19.5px repeat(3,16.8px);gap:2px;align-content:center}.place-list[data-layout=compact] .contribution-artist,.selected-list .contribution-artist,#phone-list .contribution-artist{grid-row:2}.place-list[data-layout=compact] .contribution-venue,.selected-list .contribution-venue,#phone-list .contribution-venue{grid-row:3}.place-list[data-layout=compact] .contribution-dates,.selected-list .contribution-dates,#phone-list .contribution-dates{grid-row:4}
.directions{display:block;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.directions-heading{display:flex;align-items:center;gap:8px;margin:0 0 12px;font:600 14px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.direction-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px}.direction-mark svg{width:100%;height:100%}.direction-options{display:flex;gap:10px;flex-wrap:wrap}.direction-option{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:145px;min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-size:13px;text-decoration:none}.direction-option:hover{background:var(--wash);color:var(--accent)}.direction-option:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Listing details extend the rail card: artwork left, the complete hierarchy at right. */
#details-dialog{width:min(1040px,calc(100% - 32px));padding:24px}
.detail-grid{display:grid;grid-template-columns:minmax(260px,42%) minmax(0,1fr);grid-template-areas:"art heading" "art body";column-gap:34px;row-gap:10px;align-items:start}
.detail-art{grid-area:art}.detail-heading{grid-area:heading;min-width:0}.detail-text{grid-area:body;min-width:0}
.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail-title-row h2{min-width:0;margin:0}
.detail-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;font-size:27px;font-weight:300;line-height:1;color:var(--muted)}.detail-close:hover{background:var(--wash);color:var(--ink)}
.detail-heading .artists{margin:8px 0 0}.detail-text .gallery-name{margin:0 0 4px}.detail-identity{min-height:0;padding:0;border:0;border-radius:0;background:transparent;font:inherit;color:inherit;text-align:left;text-decoration:none}.detail-identity:hover{background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.detail-identity:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.detail-gallery-link{font-weight:600}.detail-text .muted{margin:0 0 8px}.detail-date{margin:0;color:var(--ink);font-weight:550}.detail-description{margin:18px 0 0;line-height:1.55}
.detail-text .detail-actions{margin:16px 0}.detail-text .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;margin-top:16px;padding-top:18px}.detail-text .directions{margin-top:18px;padding-top:16px}.detail-text .gallery-contact{margin:20px 0 0}
@media(max-width:760px){#details-dialog{padding:16px}.detail-grid{grid-template-columns:1fr;grid-template-areas:"art" "heading" "body";gap:10px}.detail-art .thumb,.detail-art .poster-empty{height:min(68vw,300px)}.detail-art{margin-bottom:6px}.detail-art .credit{margin-bottom:0}.detail-title-row{gap:10px}.detail-close{margin-top:-6px;margin-right:-6px}.detail-heading .artists{margin-top:6px}.detail-text .facts{grid-template-columns:1fr 1fr}.direction-options{display:grid;grid-template-columns:1fr 1fr}.direction-option{min-width:0}.detail-text .gallery-contact{margin-top:16px}}
@media(max-width:420px){.detail-text .facts{grid-template-columns:1fr}.direction-options{grid-template-columns:1fr}}

/* Compact cards share the existing image's height; the summary has one line per role. */
.compact-summary{display:none}
.card-date-cue{font-weight:500}
.has-closing .card-date-cue{font-style:italic}
.has-closing .place-date,.has-closing .compact-date{color:var(--accent)}
.place-list[data-layout=compact]{--compact-art-height:86px}
.place-list[data-layout=compact] .place-copy{height:var(--compact-art-height);display:flex;align-items:center;min-width:0}
.place-list[data-layout=compact] .place-button{width:100%;min-height:0;padding:0}
.place-list[data-layout=compact] .card-full{display:none}
.place-list[data-layout=compact] .compact-summary{display:grid;grid-template-rows:19.5px repeat(3,16.8px);gap:2px;min-width:0;text-align:left}
.compact-title,.compact-artist,.compact-venue,.compact-date-value{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.compact-title{font-size:15px;line-height:19.5px;font-weight:600}
.compact-artist,.compact-venue,.compact-date{font-size:12px;line-height:16.8px}
.compact-artist,.compact-venue,.compact-date{margin-right:46px}
.compact-venue{color:var(--muted)}
.compact-date{display:flex;min-width:0;white-space:nowrap}
.compact-date .card-date-cue{flex:none;white-space:pre}
.place-list[data-layout=compact] .place-copy>.listing-share{bottom:0;right:0}
@media(max-width:360px){.place-list[data-layout=compact]{--compact-art-height:76px}}

/* Row-local shared tracks align every field without making the whole feed equally tall. */
.card-row{display:contents}
.place-list[data-layout=posters]>.card-row{display:grid;grid-column:1/-1;grid-template-columns:repeat(var(--card-columns,2),minmax(0,1fr));grid-template-rows:repeat(7,auto);gap:0 14px;min-width:0}
.place-list[data-layout=posters]>.card-row>.place-item{display:grid;grid-row:1/span 7;grid-template-rows:subgrid;min-width:0;align-self:stretch;padding-bottom:8px}
.place-list[data-layout=posters] .card-row .place-copy{display:grid;grid-row:2/span 5;grid-template-rows:subgrid;min-width:0}
.place-list[data-layout=posters] .card-row .place-button,.place-list[data-layout=posters] .card-row .card-full{display:grid;grid-row:1/span 5;grid-column:1;grid-template-rows:subgrid;min-width:0;padding:0;min-height:0}
.place-list[data-layout=posters] .card-row .place-footer{display:contents}
.place-list[data-layout=posters] .card-row .place-title{grid-row:1;margin:10px 0 0;align-self:start}
.place-list[data-layout=posters] .card-row .place-artist{grid-row:2;margin:4px 0 0;align-self:start}
.place-list[data-layout=posters] .card-row .place-artist:empty{margin:0}
.place-list[data-layout=posters] .card-row .place-address{grid-row:3;margin:4px 0 0;padding-right:46px;align-self:start}
.place-list[data-layout=posters] .card-row .place-date{grid-row:4;margin:4px 0 0;padding-right:46px;align-self:center}
.place-list[data-layout=posters] .card-row .place-kind{grid-row:5;margin:4px 0 0;align-self:start}
.place-list[data-layout=posters] .card-row .place-copy>.listing-share{position:relative;grid-column:1;grid-row:4;align-self:center;justify-self:end;margin-top:4px;z-index:1}
.place-list[data-layout=posters] .card-row .place-copy>.listing-contribute{display:grid;grid-column:1;grid-row:1/span 5;grid-template-rows:subgrid;z-index:2}.place-list[data-layout=posters] .card-row .contribution-artist{grid-row:2;margin-top:4px;align-self:start}.place-list[data-layout=posters] .card-row .contribution-venue{grid-row:3;margin-top:4px;padding-right:46px;align-self:start}.place-list[data-layout=posters] .card-row .contribution-dates{grid-row:4;margin-top:4px;padding-right:46px;align-self:center}
.place-item[data-program-id] .place-date{display:flex;flex-wrap:wrap}
.program-date-value{min-width:0;overflow:hidden;text-overflow:ellipsis}
.program-date-count{white-space:pre;flex:none;color:var(--accent)}
.program-schedule #program-gallery{margin-top:0;font-size:13px}
#program-art{margin:16px 0 8px}
#program-art .thumb{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
#program-art .thumb img{width:100%;height:100%;object-fit:cover}
.program-session{padding:14px 0;border-bottom:1px solid var(--line)}
.program-session h3{font:600 15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0}
.program-when{font-size:14px;margin:4px 0}
.program-description{font-size:13px;line-height:1.45;color:var(--muted);margin:8px 0}
.program-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.program-details{padding:8px 0;min-height:44px;border:0;text-decoration:underline;text-underline-offset:3px;background:transparent}
.program-other{font:500 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--muted);margin:24px 0 0}

/* Empty-map hints are a local navigation overlay, never geographic pins. */
.map-directions{position:absolute;inset:0;z-index:3;pointer-events:none}
.map-directions[hidden],.map-direction[hidden]{display:none}
.map-direction{position:absolute;display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font:500 12px/14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums;box-shadow:none;pointer-events:auto;touch-action:manipulation}
.map-direction:hover{background:transparent}
.map-direction-visual{display:flex;align-items:center;justify-content:center;gap:4px;min-width:36px;height:28px;box-sizing:border-box;padding:0 8px;background:var(--paper);white-space:nowrap;pointer-events:none}
.map-direction svg{width:12px;height:12px;flex:none}
.map-direction[data-edge=left]{justify-content:flex-start}.map-direction[data-edge=right]{justify-content:flex-end}
.map-direction[data-edge=left] .map-direction-visual{border-radius:0 10px 10px 0}
.map-direction[data-edge=right] .map-direction-visual{border-radius:10px 0 0 10px}
.map-direction[data-edge=top]{align-items:flex-start}.map-direction[data-edge=bottom]{align-items:flex-end}
.map-direction[data-edge=top] .map-direction-visual,.map-direction[data-edge=bottom] .map-direction-visual{flex-direction:column;gap:0;height:32px;padding:2px 8px}
.map-direction[data-edge=top] .map-direction-visual{border-radius:0 0 10px 10px}
.map-direction[data-edge=bottom] .map-direction-visual{border-radius:10px 10px 0 0}
.map-direction[data-edge=top] svg{transform:rotate(-90deg)}
.map-direction[data-edge=bottom] svg{transform:rotate(90deg);order:1}
.map-direction[data-edge=left] svg{transform:rotate(180deg)}
.map-direction[data-edge=right] svg{order:1}
.map-direction[data-inset=true] .map-direction-visual{border-radius:10px}
@media(hover:hover){.map-direction:hover .map-direction-visual{background:var(--wash)}}
.map-direction:active .map-direction-visual{background:var(--wash);color:var(--accent)}
.map-direction:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:10px}


/* First-use discovery keeps artwork and factual card geometry unchanged. */
.place-item{position:relative}
.listing-save{position:static;z-index:3;display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;border-radius:12px;color:var(--ink)}
.listing-save svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.65;stroke-linejoin:round;fill:none}
.listing-save[aria-pressed=true] svg{fill:var(--accent);stroke:var(--accent)}
.listing-save:focus-visible{outline:2px solid var(--accent);outline-offset:0}
.program-actions .listing-save{position:static;flex:none}
.program-actions .session-share{margin-left:auto}
#map-tab{width:auto;gap:6px;padding:8px 10px;font-size:12px}
.map-layout{grid-template-columns:minmax(360px,44%) minmax(0,1fr)}
.map-rail{grid-column:1;grid-row:1}.map-wrap{grid-column:2;grid-row:1}
.bottom-bar [data-nav-label]{display:flex;flex-direction:column;gap:5px;min-height:52px;flex:1;color:var(--muted);font-size:10px;letter-spacing:.02em}
.bottom-bar [aria-current=page]{color:var(--accent);font-weight:600;background:var(--wash)}
.bottom-bar [data-nav-label] svg{width:21px;height:21px}
@media(max-width:760px){
 .map-layout{display:flex;flex-direction:column}.map-wrap{order:0}.map-rail{order:1}
 .gg-map-collapsed .map-wrap{display:none}
 .bottom-bar{justify-content:space-around;gap:6px}
 #map-tab{min-width:58px;padding:8px 6px}
 .map-wrap{height:calc(clamp(240px,38dvh,380px) + var(--discovery-controls-height,112px));min-height:240px}
}


.control-sheet fieldset.filter-menu{min-inline-size:0;margin-top:16px;padding:0;border:0;border-top:1px solid var(--line)}.control-sheet .filter-heading{float:none;width:auto;margin:0;padding:12px 0 4px;font:600 14px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}

/* Detail corrections occupy the same line as the missing fact. */
.detail-contribution{display:inline;border:0;background:transparent;padding:0;color:var(--accent);font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px}
.detail-art .gallery-claim{width:100%}
@media(max-width:760px){
 .detail-heading,.detail-text{overflow-wrap:anywhere}
 .detail-title-row h2{font:32px/1.12 Georgia,serif;letter-spacing:-.03em}
 .detail-text .detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0}
 .detail-text .detail-actions>a{display:inline-flex;align-items:center;min-height:44px}
 .detail-text .detail-description{margin:16px 0 0}
 .detail-text .facts{margin-top:16px;padding-top:16px;gap:12px}
 .detail-text .facts h3{margin:0 0 4px}.detail-text .facts p{margin:0}
}

.detail-actions .listing-save{position:static;flex:none}
.detail-actions .listing-save svg{background:transparent;box-shadow:none}

@media(min-width:761px){.detail-text:has(.gallery-contact) .detail-official-listing{display:none}}
@media(max-width:760px){
 .detail-text .gallery-contact-source-only{display:none}
 .detail-text .gallery-contact:not(.gallery-contact-source-only) .gallery-contact-label,
 .detail-text .gallery-contact:not(.gallery-contact-source-only) .gallery-contact-name,
 .detail-text .gallery-contact:not(.gallery-contact-source-only) .gallery-contact-address{display:none}
 .detail-text .gallery-contact:not(.gallery-contact-source-only){padding:14px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
}

.map-provider-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px}.map-provider-mark svg{display:block;width:100%;height:100%}.map-provider-apple{color:var(--ink)}

/* Visiting facts and map providers share a row only when both have room. */
.detail-text .detail-visit{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5em),1fr));gap:20px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);align-items:start}
.detail-text .detail-visit>.facts,.detail-text .detail-visit>.directions{min-width:0;margin:0;padding:0;border:0}
.detail-text .detail-visit>.facts{grid-template-columns:1fr;gap:16px}
.detail-visit .facts h3{margin:0 0 4px}.detail-visit .facts p{margin:0;overflow-wrap:anywhere}
.detail-visit .direction-options{display:grid;grid-template-columns:1fr;gap:8px}
.detail-visit .direction-option{width:100%;min-width:0;box-sizing:border-box;padding:9px 12px;justify-content:flex-start;text-align:left}
.detail-visit .directions-heading{margin:0 0 10px;padding-inline:13px}
.detail-text .detail-actions .listing-save,.detail-text .detail-actions .detail-source-link{border:0;background:transparent;box-shadow:none;border-radius:0;min-height:44px}
.detail-text .detail-actions .detail-source-link{padding:10px 0;color:var(--ink);text-decoration:none}
.detail-text .detail-actions .detail-source-link:hover{text-decoration:underline;text-underline-offset:4px}
.detail-text .detail-actions .listing-save svg{border:0;box-shadow:none;background:transparent}

/* All three Directions rows share the same icon and text starts. */
.detail-visit .map-provider-mark{width:20px;height:20px}.detail-visit .map-provider-mark svg{width:18px;height:18px}
.detail-text .detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

/* Pair save and share beside the summary; artwork stays clear. */
.place-copy>.listing-save{position:absolute;right:44px;bottom:0;color:var(--muted)}
.place-copy>.listing-save:hover{color:var(--accent);background:var(--wash)}
.place-copy:has(>.listing-save) .place-footer{padding-right:90px}
.place-list[data-layout=compact] .place-copy:has(>.listing-save) .compact-venue,
.place-list[data-layout=compact] .place-copy:has(>.listing-save) .compact-date{margin-right:90px}
.place-list[data-layout=compact] .place-copy:has(>.listing-save)>.listing-contribute,
.selected-list .place-copy:has(>.listing-save)>.listing-contribute,
#phone-list .place-copy:has(>.listing-save)>.listing-contribute{right:90px}
/* Narrow poster columns give the two targets their own aligned row. */
.place-list[data-layout=posters] .card-row .place-copy{grid-row:2/span 6}
.place-list[data-layout=posters] .card-row .place-copy>.listing-share,
.place-list[data-layout=posters] .card-row .place-copy>.listing-save{position:relative;right:auto;bottom:auto;grid-column:1;grid-row:6;align-self:center;justify-self:end;margin-top:4px}
.place-list[data-layout=posters] .card-row .place-copy>.listing-save{margin-right:44px}
.place-list[data-layout=posters] .card-row .place-address,
.place-list[data-layout=posters] .card-row .place-date,
.place-list[data-layout=posters] .card-row .contribution-venue,
.place-list[data-layout=posters] .card-row .contribution-dates{padding-right:0}

footer[hidden]{display:none!important}
@media(max-width:760px){.desktop-profile{display:none}}

/* Only already discovered sites get a visible map control. */
.hidden-spot-marker{width:44px;height:44px;background:none;border:0;color:#646b43;font-size:23px;line-height:1;padding:0;z-index:0;cursor:pointer}
.hidden-spot-marker:focus-visible{outline:2px solid #646b43;outline-offset:-8px;border-radius:50%}
.hidden-spot-dialog .hidden-spot-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "body"}
.hidden-spot-grid .detail-heading{grid-area:heading}.hidden-spot-grid .detail-text{grid-area:body;min-width:0}
.hidden-spot-fact,.hidden-spot-wikipedia{margin-top:20px}.hidden-spot-fact h3,.hidden-spot-wikipedia h3{font-size:14px;margin-bottom:7px}
.hidden-spot-wikipedia a,.hidden-spot-sources{font-size:12px;overflow-wrap:anywhere}.hidden-spot-sources{margin-top:20px}
.hidden-spot-sources summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.hidden-spot-sources a{display:inline-block;padding:8px 0}
.hidden-spot-status:empty{display:none}.hidden-spot-retry{min-height:44px}.hidden-spot-retry[hidden]{display:none}
.hidden-spots-progress{font-size:14px;color:#646b43}.hidden-spots-progress[hidden]{display:none}

/* Exhibition controls retain precedence if a discovered mark overlaps. */
.map-marker{z-index:1}
.hidden-spot-dialog .hidden-spot-has-image{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"art heading" "art body"}
@media(max-width:760px){.hidden-spot-dialog .hidden-spot-has-image{grid-template-columns:minmax(0,1fr);grid-template-areas:"art" "heading" "body"}}

.hidden-spot-card-progress{margin:10px 0 0;font-size:13px;font-weight:500;color:#646b43}
#hidden-spot-credits h4{margin-bottom:4px}#hidden-spot-credits p{font-size:13px;overflow-wrap:anywhere}

/* Historical site photographs retain their native proportions at every width. */
.hidden-spot-dialog .detail-art{min-width:0;align-self:start}
.hidden-spot-dialog .hidden-spot-image{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:12px}

/* Start with the archival photograph; contemporary context is one explicit tap away. */
.hidden-photo-comparison .hidden-photo-frame{aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;background:#f0f1eb;border-radius:12px;overflow:hidden}
.hidden-spot-dialog .hidden-photo-comparison .hidden-spot-image{width:100%;height:100%;object-fit:contain;border-radius:0}
.hidden-photo-controls{display:flex;gap:6px;margin-top:10px}
.hidden-photo-controls button{min-height:44px;flex:1;border:1px solid #d5d6ca;border-radius:22px;padding:8px 12px;font-size:13px;background:transparent;color:#646b43}
.hidden-photo-controls button[aria-pressed=true]{background:#646b43;border-color:#646b43;color:white}
.hidden-photo-controls button:focus-visible{outline:2px solid #646b43;outline-offset:3px}
.hidden-photo-controls button:disabled{opacity:.45;cursor:default}

/* Center the complete photo, comparison controls and caption against the text column. */
@media(min-width:761px){.hidden-spot-dialog .detail-art{align-self:center}}

/* The phone map fills the viewport; text and controls share symmetric gutters. */
@media(max-width:760px){
 :root{--discovery-gutter:max(clamp(12px,4vw,16px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}
 main,.native-app main{padding-top:var(--safe-top);padding-left:var(--discovery-gutter);padding-right:var(--discovery-gutter)}
 .discovery-top{padding-left:var(--discovery-gutter);padding-right:var(--discovery-gutter)}
 .discovery-content .main-nav:before,.discovery-tools:before{inset:0 calc(-1 * var(--discovery-gutter))}
 .map-layout{width:calc(100% + 2 * var(--discovery-gutter));max-width:none;margin-left:calc(-1 * var(--discovery-gutter));margin-right:calc(-1 * var(--discovery-gutter))}
 .map-wrap{width:100%;border:0;border-radius:0}
 .map-rail{width:100%;box-sizing:border-box;padding-left:var(--discovery-gutter);padding-right:var(--discovery-gutter)}
 .map-wrap .maplibregl-ctrl-top-left,.map-wrap .maplibregl-ctrl-bottom-left{left:env(safe-area-inset-left,0px)}
 .map-wrap .maplibregl-ctrl-top-right,.map-wrap .maplibregl-ctrl-bottom-right{right:env(safe-area-inset-right,0px)}
}


/* Show details: stable navigation, explicit actions, and one readable visit column. */
.show-detail-surface .detail-nav{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px;background:var(--paper);padding:4px 0 12px;margin-bottom:16px}
.show-detail-surface .detail-nav-title{font-size:15px;font-weight:600;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0;transition:opacity .12s}
.show-detail-surface.detail-title-scrolled .detail-nav-title{opacity:1}
.show-detail-surface .detail-back,.show-detail-surface .detail-nav .listing-share{width:44px;height:44px;min-height:44px;display:grid;place-items:center;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--ink)}
.show-detail-surface .detail-back:hover,.show-detail-surface .detail-nav .listing-share:hover{background:var(--wash)}
.detail-symbol{display:inline-flex;width:22px;height:22px;flex:0 0 22px;align-items:center;justify-content:center}
.detail-symbol svg{display:block;width:100%;height:100%}
.show-detail-surface .detail-title-row h2{font:36px/1.08 Georgia,serif;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.show-detail-surface .detail-identity-row{display:flex;align-items:flex-start;gap:16px;margin-top:16px}
.show-detail-surface .detail-identity-copy{flex:1;min-width:0}
.show-detail-surface .detail-identity-row .artists{margin:0 0 5px;font-size:16px;line-height:1.6}
.show-detail-surface .gallery-name{margin:0;font-size:16px;line-height:1.6}
.show-detail-surface .detail-identity{color:var(--accent);line-height:1.6;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 25%,transparent);text-underline-offset:3px}
.show-detail-surface .detail-identity:hover{text-decoration-color:currentColor}
.show-detail-surface .detail-locality{margin:3px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.show-detail-surface .detail-save{position:static;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;width:auto;height:44px;min-height:44px;padding:0 12px;margin:0;border:1px solid var(--line);border-radius:24px;background:transparent;color:var(--accent);font-size:14px;font-weight:550}
.show-detail-surface .detail-save[aria-pressed=true]{background:var(--wash);border-color:var(--wash)}
.show-detail-surface .detail-save svg{width:18px;height:18px;border:0;border-radius:0;background:transparent;box-shadow:none;stroke:currentColor;stroke-width:1.7;fill:none}
.show-detail-surface .detail-save[aria-pressed=true] svg{fill:currentColor}
.show-detail-surface .detail-date{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:15px;line-height:1.5;font-weight:400}
.show-detail-surface .detail-date>.detail-symbol{color:var(--muted)}
.show-detail-surface .detail-date-copy{display:grid;gap:2px}
.show-detail-surface .detail-kind{font-size:14px;color:var(--muted)}
.show-detail-surface .detail-when{font-weight:550;color:var(--ink)}
.show-detail-surface .detail-text .detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.show-detail-surface .detail-actions .detail-source-link,.show-detail-surface .detail-actions .detail-directions-button,.show-detail-surface .detail-actions .detail-rsvp{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 16px;border:1px solid var(--accent);border-radius:24px;background:transparent;color:var(--accent);font-size:15px;font-weight:500;text-decoration:none;box-sizing:border-box}
.show-detail-surface .detail-actions .detail-source-link:hover,.show-detail-surface .detail-actions .detail-directions-button:hover,.show-detail-surface .detail-actions .detail-rsvp:hover{background:var(--wash);text-decoration:none}
.show-detail-surface .detail-actions .detail-symbol,.show-detail-surface .direction-mark{display:inline-flex;width:19px;height:19px;flex:0 0 19px}
.show-detail-surface .direction-mark svg{width:100%;height:100%}
.show-detail-surface .detail-description{margin:24px 0 0;font-size:16px;line-height:1.6}
.show-detail-surface .detail-text .detail-visit{display:block;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.show-detail-surface .detail-section-title{font:600 20px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.02em;margin:0 0 20px}
.show-detail-surface .detail-text .detail-visit>.facts{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.show-detail-surface .detail-fact{display:flex;gap:12px;align-items:flex-start;min-width:0}
.show-detail-surface .detail-fact>.detail-symbol{margin-top:2px;color:var(--muted)}
.show-detail-surface .detail-fact-copy{min-width:0}
.show-detail-surface .detail-fact h3{font-size:14px;line-height:1.4;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted);margin:0 0 4px}
.show-detail-surface .detail-fact p{font-size:16px;line-height:1.5;color:var(--ink);margin:0;overflow-wrap:anywhere}
.show-detail-surface .detail-art .zoom-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(250,251,247,.9);color:var(--ink);bottom:10px;right:10px}
.show-detail-surface .detail-art .zoom-mark .detail-symbol{width:18px;height:18px}
.detail-directions-sheet .dialog-top{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:0}
.detail-directions-sheet .dialog-top h2{font:600 22px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0}
.detail-directions-sheet .directions-address{font-size:15px;line-height:1.5;color:var(--muted);margin:8px 0 20px}
.detail-directions-sheet .direction-options{display:grid;grid-template-columns:1fr;gap:10px}
.detail-directions-sheet .direction-option{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:16px;text-decoration:none;box-sizing:border-box}
.detail-directions-sheet .direction-option:hover{background:var(--wash)}
@media(max-width:760px){
 html.show-detail-open,html.show-detail-open body{overflow:hidden}
 #details-dialog.show-detail-surface,.native-app #details-dialog.show-detail-surface{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;transform:none;overscroll-behavior:contain;box-sizing:border-box}
 .show-detail-surface .detail-nav{top:0;margin:0;padding:calc(env(safe-area-inset-top,0px) + 6px) max(14px,env(safe-area-inset-right,0px)) 6px max(14px,env(safe-area-inset-left,0px));gap:8px}
 .show-detail-surface.detail-title-scrolled .detail-nav{box-shadow:0 1px 0 var(--line)}
 .show-detail-surface .detail-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"art" "heading" "body";gap:0;padding:0 max(20px,env(safe-area-inset-right,0px)) calc(36px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px))}
 .show-detail-surface .detail-art{margin:0 calc(-1 * max(20px,env(safe-area-inset-right,0px))) 24px calc(-1 * max(20px,env(safe-area-inset-left,0px)))}
 .show-detail-surface .detail-art .thumb,.show-detail-surface .detail-art .poster-empty{display:block;width:100%;height:clamp(200px,66.67vw,320px);border-radius:0}
 .show-detail-surface .detail-art .thumb img{width:100%;height:100%;object-fit:contain}
 .show-detail-surface .detail-art .credit{margin:8px 20px 0;font-size:12px;line-height:1.5}
 .show-detail-surface .detail-title-row h2{font-size:clamp(30px,8.2vw,36px)}
 .show-detail-surface .detail-identity-row{margin-top:12px;gap:12px}
 .show-detail-surface .detail-actions>a,.show-detail-surface .detail-actions>button{flex:1 1 auto}
 .show-detail-surface .detail-text:has(.gallery-contact) .detail-official-listing{display:inline-flex}
 .native-app .detail-directions-sheet{transform:none}
}
@media(prefers-reduced-motion:reduce){.show-detail-surface .detail-nav-title{transition:none}}

/* Focus the named dialog on entry; keyboard focus stays visible on its controls. */
#details-dialog.show-detail-surface:focus{outline:none}


/* Mobile hero: title and eligible score at left, exact-show actions at right. */
.detail-hero{position:relative;min-width:0}
.detail-hero-caption,.detail-hero-actions{display:none}
@media(max-width:760px){
 .show-detail-surface .detail-hero{isolation:isolate;min-height:240px}
 .show-detail-surface .detail-hero:after{content:"";position:absolute;inset:20% 0 0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(250,251,247,0),rgba(250,251,247,.56) 40%,rgba(250,251,247,.96) 100%)}
 .show-detail-surface .detail-hero>.thumb,.show-detail-surface .detail-hero>.poster-empty,.show-detail-surface .detail-hero>.gallery-claim{height:clamp(240px,66.67vw,320px);width:100%;border-radius:0}
 .show-detail-surface .detail-hero>.thumb .zoom-mark{top:8px;left:max(8px,env(safe-area-inset-left,0px));right:auto;bottom:auto;width:44px;height:44px;z-index:2;background:rgba(250,251,247,.7)}
 .show-detail-surface .detail-hero-caption{position:absolute;display:flex;flex-direction:column;align-items:stretch;gap:8px;left:max(20px,env(safe-area-inset-left,0px));right:calc(max(14px,env(safe-area-inset-right,0px)) + 62px);bottom:18px;z-index:2;min-width:0}
 .show-detail-surface .detail-hero-caption .detail-title-row{display:block;min-width:0}
 .show-detail-surface .detail-hero-caption h2{display:block;width:100%;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;font-size:clamp(30px,8.2vw,36px);line-height:1.15;padding:3px 0;margin:0;overscroll-behavior-x:contain}
 .show-detail-surface .detail-hero-caption h2::-webkit-scrollbar{display:none}
 .show-detail-surface .detail-title-text{display:inline-block;white-space:nowrap}
 .show-detail-surface .detail-hero-caption h2:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
 .show-detail-surface .detail-hero-actions{position:absolute;display:flex;flex-direction:column;gap:6px;right:max(14px,env(safe-area-inset-right,0px));bottom:14px;z-index:3}
 .show-detail-surface .detail-hero-actions>button,.show-detail-surface .detail-hero-actions>a{display:grid;place-items:center;flex:none;box-sizing:border-box;width:44px;height:44px;min-height:44px;padding:10px;border:0;border-radius:50%;color:var(--accent);background:rgba(250,251,247,.76);text-decoration:none}
 .show-detail-surface .detail-hero-actions>button:hover,.show-detail-surface .detail-hero-actions>a:hover{background:var(--paper)}
 .show-detail-surface .detail-hero-actions [data-save-label],.show-detail-surface .detail-hero-actions .detail-action-label{display:none}
 .show-detail-surface .detail-hero-actions .detail-symbol,.show-detail-surface .detail-hero-actions .direction-mark,.show-detail-surface .detail-hero-actions .detail-save svg{width:23px;height:23px;flex-basis:23px}
 .show-detail-surface .detail-hero-actions .detail-save[aria-pressed=true]{background:var(--wash)}
 .show-detail-surface .detail-hero-rating{display:flex;align-items:center;align-self:flex-start;min-height:44px;max-width:100%;margin:-5px 0 -8px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:13px;line-height:1.3;white-space:nowrap;text-align:left}
 .show-detail-surface .detail-hero-rating[hidden]{display:none}
 .show-detail-surface .detail-rating-score{display:inline-block;padding:5px 7px;background:var(--accent);color:white;border-radius:7px;font-weight:650;font-size:15px}
 .show-detail-surface .detail-hero-rating:hover{background:rgba(250,251,247,.7)}
 .show-detail-surface .detail-identity-row{margin-top:0}
 .show-detail-surface .detail-text .detail-actions:empty{display:none}
 .show-detail-surface .detail-hero>.gallery-claim .gallery-claim-copy{padding-bottom:80px}
}


/* Quiet, noninteractive detail imagery. Crop only inside the full-width frame. */
.show-detail-surface .detail-media{position:relative;width:100%;height:320px;overflow:hidden;background:var(--wash);border-radius:16px;isolation:isolate}
.show-detail-surface .detail-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center;pointer-events:none;user-select:none}
.show-detail-surface .detail-media img[hidden]{display:none}
.show-detail-surface .detail-art .credit[hidden]{display:none}
.show-detail-surface .detail-heading .detail-description{margin:18px 0 0;font-size:16px;line-height:1.6}
@media(max-width:760px){
 .show-detail-surface .detail-media{height:clamp(240px,66.67vw,320px);border-radius:0}
 .show-detail-surface .detail-media img{object-fit:cover;will-change:transform,opacity}
}
@media(prefers-reduced-motion:reduce){.show-detail-surface .detail-media img{will-change:auto}}

.show-detail-surface .detail-attribution{margin-top:28px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.show-detail-surface .detail-attribution summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.show-detail-surface .detail-attribution summary::-webkit-details-marker{display:none}
.show-detail-surface .detail-attribution summary:after{content:"+";font-size:18px;font-weight:400}
.show-detail-surface .detail-attribution[open] summary:after{content:"−"}
.show-detail-surface .detail-attribution-body{padding:0 0 12px}
.show-detail-surface .detail-attribution-body p{font-size:12px;line-height:1.5;margin:6px 0}
.show-detail-surface .detail-attribution-body .credit[hidden]{display:none}
.show-detail-surface .detail-attribution-body a{color:var(--muted);text-underline-offset:3px}

/* A restrained wall-label treatment for the exhibition introduction. */
.show-detail-surface .detail-about{margin-top:24px;padding-left:14px;border-left:1px solid var(--line)}
.show-detail-surface .detail-about h3{margin:0 0 9px;color:var(--muted);font:550 11px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.show-detail-surface .detail-heading .detail-about .detail-description{margin:0;color:var(--ink);font:17px/1.5 Georgia,"Times New Roman",serif;letter-spacing:0}

/* Begin the chooser with its actions; dismissal no longer reserves a header row. */
.detail-directions-sheet.control-sheet{padding:14px 16px}

/* The event time and one-off calendar action share a readable row. */
.show-detail-surface .detail-date{justify-content:space-between;align-items:center;gap:12px}
.show-detail-surface .detail-date-copy{min-width:0}
.show-detail-surface .detail-calendar-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;flex:none;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--accent);font:500 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:nowrap}
.show-detail-surface .detail-calendar-button[hidden]{display:none}
.show-detail-surface .detail-calendar-button .detail-symbol{width:20px;height:20px;flex-basis:20px}
.detail-calendar-sheet.control-sheet{padding:14px 16px}
.detail-calendar-sheet .calendar-options{display:grid;gap:10px}
.detail-calendar-sheet .calendar-option{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font:400 15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-decoration:none;box-sizing:border-box}
.detail-calendar-sheet .calendar-option:hover{background:var(--wash)}
.detail-calendar-sheet .calendar-error{margin:12px 0 0;font-size:14px;line-height:1.5}
@media(max-width:360px){.show-detail-surface .detail-date{align-items:flex-start;flex-direction:column;gap:4px}}

/* Continuous title loops share one accessible title and a visual-only repeat. */
@media(max-width:760px){
 .title-scroll-track{display:inline-flex;width:max-content;max-width:none;vertical-align:top}
 .title-scroll-source,.title-scroll-repeat{display:inline-block;flex:none;white-space:nowrap}
}
/* RSVP retains its destination; the adjacent plane opens the existing share flow. */
.show-detail-surface .detail-actions .detail-rsvp-share{display:none}
@media(max-width:760px){
 .show-detail-surface .detail-actions:has(.detail-rsvp){display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px}
 .show-detail-surface .detail-actions .detail-rsvp{width:100%;min-width:0}
 .show-detail-surface .detail-actions .detail-rsvp-share{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:auto;min-height:44px;min-width:0;margin:0;padding:9px 8px;border:1px solid var(--accent);border-radius:24px;background:transparent;color:var(--accent);font-size:15px;font-weight:500}
 .show-detail-surface .detail-actions .detail-rsvp-share svg{flex:none;width:19px;height:19px}
 .show-detail-surface .detail-actions .detail-rsvp-share:hover{background:var(--wash)}
}
@media(max-width:360px){.show-detail-surface .detail-rsvp-share-label{display:none}}
