/* Last Glance: an editorial atlas. All type is self-hosted under the OFL. */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/instrument-serif-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/instrument-serif.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('./fonts/instrument-serif-italic-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('./fonts/instrument-serif-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('./fonts/public-sans-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('./fonts/public-sans.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root {
  color-scheme: light dark;
  --paper: #f7f5ed; --ink: #172c26; --muted: #59665d; --line: #c2c8bb;
  --accent: #2845cb; --accent-wash: #e9ecfb; --focus: #2845cb;
  --water: #173f35; --land: #dde4bc; --coast: #a3b295; --map-label: #234537;
  --grid: #35564c; --pin-ink: #fffdf5; --ended: #576657; --panel: #e8ecdf;
  --feature: #dbe879; --feature-ink: #172c26; --map-note: #e6edda;
  --display: 'Instrument Serif', Georgia, serif; --text: 'Public Sans', Arial, sans-serif;
  --gutter: clamp(1.15rem, 3.8vw, 4rem);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.2rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 1rem/1.5 var(--text); -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent); color: var(--pin-ink); }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
button, a, input { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-weight: 400; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip { position: fixed; top: 1rem; left: var(--gutter); z-index: 100; transform: translateY(-200%); background: var(--ink); color: var(--paper); padding: .8rem 1rem; min-height: 44px; }
.skip:focus { transform: none; }
.site-header, .intro, .atlas-layout, .site-footer, .work-page { width: min(100%, 1600px); margin-inline: auto; }
.site-header { display: flex; align-items: center; gap: 2rem; padding: .8rem var(--gutter); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .65rem; min-height: 44px; font: 400 1.7rem/1 var(--display); letter-spacing: -.025em; text-decoration: none; white-space: nowrap; }
.brand-mark { font-family: var(--text); font-size: 1.6rem; color: var(--accent); }
.edition { margin-right: auto; color: var(--muted); font-size: .63rem; line-height: 1.4; letter-spacing: .05em; }
.header-nav a, .header-actions button { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; font-size: .72rem; font-weight: 600; text-decoration: none; }
.header-nav a:hover { color: var(--accent); }
.header-nav { display: flex; gap: 1.2rem; }
.header-actions .share-control button { padding: .4rem 0; color: var(--ink); background: transparent; border: 0; }
.header-actions .share-control button:hover { color: var(--accent); }
.header-actions .share-status:empty { display: none; }
.intro { display: grid; grid-template-columns: minmax(0,1fr) 20rem; gap: 2rem; align-items: center; padding: 2.1rem var(--gutter) 2.2rem; }
.kicker { color: var(--muted); font-size: .65rem; font-weight: 650; text-transform: uppercase; letter-spacing: .14em; }
.intro h1 { position: relative; width: max-content; margin: .65rem 0 .7rem; font: 400 clamp(6.5rem,11vw,10.5rem)/.84 var(--display); letter-spacing: -.05em; white-space: nowrap; }
h1 em { font-weight: 400; color: var(--accent); }
.title-star { display: inline-block; vertical-align: top; margin: .05em 0 0 .18em; color: var(--accent); font: 500 .25em/1 var(--text); }
.lede { font: 400 1rem/1.5 var(--text); color: var(--muted); }
.lede br { display: none; }
.soonest-card { display: grid; grid-template-columns: auto 1fr; column-gap: 1.05rem; row-gap: .65rem; align-items: center; padding: 1.2rem 1.3rem; background: var(--feature); color: var(--feature-ink); border-top: 3px solid var(--feature-ink); }
.feature-label { grid-column: 1 / -1; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.soonest-number { font: 600 6rem/.85 var(--text); font-variant-numeric: tabular-nums; letter-spacing: -.08em; margin-left: -.055em; }
.soonest-copy { font-size: .69rem; line-height: 1.45; }
.soonest-link { display: flex; align-items: center; min-height: 44px; font: 400 1.45rem/1.05 var(--display); text-decoration: none; }
.soonest-link:hover { text-decoration: underline; }
.soonest-copy > span { display: block; font-size: .61rem; }
.atlas-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(23rem,1fr); gap: 2.2rem; padding: 0 var(--gutter) 2.5rem; align-items: start; }
.map-panel { position: sticky; top: 1rem; padding: 1.3rem; min-width: 0; background: var(--water); color: var(--map-note); }
.map-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.map-heading h2, .map-heading > span { color: var(--map-note); font: 500 .64rem/1.4 var(--text); letter-spacing: .045em; }
.map-heading > span { font-size: .6rem; white-space: nowrap; }
.atlas-map { display: block; width: 100%; height: auto; background: var(--water); overflow: visible; }
.map-water { fill: var(--water); }
.grid-line { fill: none; stroke: var(--grid); stroke-width: .7; }
.borough-land { fill: var(--land); stroke: var(--coast); stroke-width: .85; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.borough-name { font: 400 23px var(--display); letter-spacing: .015em; fill: var(--map-label); paint-order: stroke; stroke: var(--land); stroke-width: 4px; stroke-linejoin: round; pointer-events: none; }
.pin { cursor: pointer; outline: none; isolation: isolate; }
.pin-hit { fill: transparent; pointer-events: all; }
.pin-leader { fill: none; stroke: var(--accent); stroke-width: 1; vector-effect: non-scaling-stroke; pointer-events: none; }
.site-dot { fill: var(--accent); stroke: var(--land); stroke-width: 1; vector-effect: non-scaling-stroke; pointer-events: none; }
.pin-core { fill: var(--accent); stroke: var(--pin-ink); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.pin-ring { fill: none; stroke: var(--accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; opacity: .8; }
.pin-number { font: 650 11px var(--text); font-variant-numeric: tabular-nums; fill: var(--pin-ink); text-anchor: middle; pointer-events: none; }
.pin:hover .pin-core, .pin:focus-visible .pin-core, .pin.is-highlighted .pin-core { stroke: var(--feature); stroke-width: 4; }
.pin:hover .pin-ring, .pin:focus-visible .pin-ring, .pin.is-highlighted .pin-ring { stroke: var(--feature-ink); stroke-width: 2; }
.pin.phase-before .pin-core { fill: var(--land); stroke: var(--accent); }
.pin.phase-before .pin-number { fill: var(--accent); }
.pin.phase-before .pin-ring { stroke-dasharray: 3 4; }
.pin.phase-after .pin-core { fill: var(--ended); stroke: var(--land); }
.pin.phase-after .pin-ring { stroke: var(--ended); stroke-dasharray: 2 4; }
.map-caption { display: flex; gap: 1rem; align-items: center; justify-content: space-between; min-height: 44px; margin-top: .6rem; color: var(--map-note); font-size: .65rem; }
.map-caption p { max-width: 38ch; }
.map-key { display: inline-flex; align-items: center; gap: .4rem; font-size: .58rem; white-space: nowrap; }
.map-key i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--feature); }
.mobile-map-link { display: none; }
.timeline { display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; row-gap: .4rem; margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--grid); }
.timeline-label, .timeline-date { color: var(--map-note); font-size: .65rem; font-weight: 600; }
.timeline-date { text-align: right; font-variant-numeric: tabular-nums; }
.timeline input[type=range] { grid-column: 1 / -1; width: 100%; height: 44px; margin: 0; padding: 0; accent-color: var(--feature); cursor: ew-resize; }
.timeline-hint { color: var(--map-note); font-size: .61rem; max-width: 40ch; }
.reset-time { border: 0; background: transparent; color: var(--map-note); padding: 0; min-height: 44px; font-size: .62rem; text-decoration: underline; }
.simulation-banner { padding: .75rem var(--gutter); color: var(--accent); background: var(--accent-wash); font-size: .75rem; text-align: center; }
.list-panel { min-width: 0; }
.list-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .5rem 0 1rem; border-bottom: 2px solid var(--ink); }
.list-heading .kicker { margin-bottom: .3rem; }
.list-heading h2 { font: 400 2.1rem/1.05 var(--display); letter-spacing: -.02em; }
.list-heading > span { color: var(--muted); font-size: .63rem; line-height: 1.5; text-align: right; }
.records { list-style: none; padding: 0; margin: 0; }
.record-row { border-bottom: 1px solid var(--line); }
.record-row.has-photo { display: grid; grid-template-columns: 4.3rem minmax(0,1fr); gap: .8rem; align-items: center; }
.row-photo { display: flex; align-items: center; justify-content: center; margin-block: .85rem; min-height: 80px; background: var(--panel); text-decoration: none; }
.row-photo img { display: block; width: 100%; height: 88px; object-fit: contain; }
.has-photo .record-link { grid-template-columns: 1rem minmax(0,1fr) 4.7rem; gap: .45rem; }
.has-photo .row-title { font-size: 1.55rem; }
.image-fallback { padding: .6rem; font-size: .6rem; line-height: 1.5; text-align: center; }
.record-link { display: grid; grid-template-columns: 1.4rem minmax(0,1fr) 4.7rem; align-items: center; gap: .65rem; padding: .95rem .45rem .95rem 0; min-height: 91px; text-decoration: none; }
.row-number { align-self: start; color: var(--muted); font: 600 .59rem/1.5 var(--text); font-variant-numeric: tabular-nums; padding-top: .2rem; }
.row-main { min-width: 0; }
.row-title { display: block; font: 400 1.7rem/1.06 var(--display); letter-spacing: -.015em; overflow-wrap: anywhere; }
.row-artist { display: block; margin-top: .4rem; color: var(--ink); font-size: .8rem; line-height: 1.4; }
.row-site { display: block; margin-top: .15rem; color: var(--muted); font-size: .65rem; }
.row-time { color: var(--accent); text-align: right; font-variant-numeric: tabular-nums; }
.days-number { display: inline-block; font-size: 2.1rem; font-weight: 500; letter-spacing: -.065em; line-height: 1; }
.days-unit { display: block; font-size: .59rem; line-height: 1.3; }
.end-date { display: block; margin-top: .3rem; color: var(--muted); font-size: .59rem; white-space: nowrap; }
.record-row:hover, .record-row.is-highlighted { background: var(--accent-wash); }
.record-row:hover .row-title, .record-row.is-highlighted .row-title { color: var(--accent); }
.record-link:focus-visible { background: var(--accent-wash); outline-offset: -3px; }
.record-row.phase-after .row-time { color: var(--ended); }
.record-row.phase-after .days-number { font-size: .85rem; letter-spacing: 0; }
.record-row.phase-before .row-time { color: var(--muted); }
.site-footer { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; padding: 1.5rem var(--gutter) 2rem; border-top: 1px solid var(--ink); color: var(--muted); font-size: .67rem; }
.provenance { max-width: 65ch; line-height: 1.6; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .2rem 1rem; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.nojs-note { margin: 1rem var(--gutter); color: var(--muted); font-size: .75rem; }
.copy-url { width: 100%; max-width: 24rem; min-height: 44px; padding: .5rem; color: var(--ink); background: var(--paper); border: 1px solid var(--ink); font-size: .75rem; }
.share-control button { min-height: 44px; border: 1px solid var(--ink); padding: .65rem 1rem; background: var(--ink); color: var(--paper); font-size: .75rem; font-weight: 600; }
.share-control button:hover { background: var(--accent); border-color: var(--accent); color: var(--pin-ink); }
.share-status { margin-top: .5rem; color: var(--muted); font-size: .7rem; }

/* Each detail is a finished source-backed record with its listed site. */
.work-page { padding: 1.5rem var(--gutter) 3rem; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 1.5rem; font-size: .75rem; text-decoration: none; }
.back-link:hover { text-decoration: underline; }
.work-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .65rem 2rem; padding-bottom: 2rem; }
.work-heading > .kicker { grid-column: 1 / -1; }
.work-heading h1 { font: 400 clamp(4rem,7.5vw,8rem)/.9 var(--display); letter-spacing: -.04em; max-width: 15ch; overflow-wrap: anywhere; }
.work-artist { grid-column: 1; margin-top: .3rem; font: 400 clamp(1.4rem,2.3vw,2rem)/1.2 var(--display); }
.by-label { font: 600 .65rem/1.5 var(--text); text-transform: uppercase; letter-spacing: .07em; margin-right: .35rem; }
.work-time { grid-column: 2; grid-row: 2 / span 2; align-self: end; max-width: 18rem; padding: 1rem 1.2rem; color: var(--feature-ink); background: var(--feature); font-size: .75rem; line-height: 1.45; }
.work-time time { display: block; margin-top: .25rem; font: 400 1.6rem/1.1 var(--display); }
.work-days { display: block; font-size: .75rem; }
.work-layout { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(19rem,1fr); gap: 3rem; align-items: start; }
.photo-slot { position: relative; min-width: 0; margin: 0; background: var(--water); overflow: hidden; }
.slot-map { aspect-ratio: 1.12; padding: 1.5rem; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.slot-map svg { display: block; width: 100%; height: 100%; }
.slot-number { position: absolute; top: 1.35rem; left: 1.35rem; color: var(--map-note); font: 400 4.5rem/.9 var(--display); letter-spacing: -.05em; pointer-events: none; }
.slot-caption { padding: 1rem 1.25rem; color: var(--muted); background: var(--panel); font-size: .68rem; line-height: 1.5; }
.slot-caption strong { display: block; margin-bottom: .3rem; color: var(--ink); font-size: .62rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.slot-caption > span { display: block; }
.slot-caption > span + span { margin-top: .4rem; }
.work-photo-link { display: flex; align-items: center; justify-content: center; min-height: 200px; background: var(--panel); }
.work-photo-link img { display: block; width: 100%; max-height: 75vh; object-fit: contain; }
.work-photo-link .image-fallback { min-height: 200px; align-content: center; font-size: .8rem; }
.work-info { min-width: 0; }
.correction-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .75rem; color: var(--accent); margin-top: .6rem; }
.gallery-source a { display: inline-flex; align-items: center; min-height: 44px; }
.artist-spotlight { padding: 1.15rem 1.3rem .65rem; margin-bottom: 1.4rem; background: var(--accent-wash); border-top: 2px solid var(--accent); }
.artist-spotlight .kicker { color: var(--accent); margin-bottom: .6rem; }
.artist-profiles { list-style: none; padding: 0; margin: 0; }
.artist-profiles li + li { border-top: 1px solid var(--line); }
.artist-profile { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .3rem .75rem; padding: .75rem 0; min-height: 64px; text-decoration: none; }
.artist-name { font: 400 1.9rem/1.1 var(--display); overflow-wrap: anywhere; }
.artist-destination { grid-column: 1; color: var(--muted); font-size: .68rem; overflow-wrap: anywhere; }
.artist-arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--accent); font-size: 1.5rem; }
.artist-profile:hover .artist-name { color: var(--accent); text-decoration: underline; }
.facts { margin: 0 0 1.4rem; }
.facts > div { padding: .95rem 0; border-top: 1px solid var(--line); }
.facts dt { margin-bottom: .35rem; color: var(--muted); font-size: .62rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; }
.facts dd { margin: 0; font-size: .85rem; line-height: 1.5; overflow-wrap: anywhere; }
.facts dd.site { font: 400 1.85rem/1.1 var(--display); }
.work-links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: 1rem; font-size: .73rem; }
.work-links a { display: inline-flex; align-items: center; min-height: 44px; }
.date-note { color: var(--muted); font-size: .72rem; line-height: 1.55; margin-top: 1rem; }
.work-neighbors { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--ink); }
.work-neighbors a { display: flex; align-items: center; min-height: 44px; max-width: 29ch; font: 400 1.6rem/1.1 var(--display); text-decoration: none; }
.work-neighbors a:last-child { justify-self: end; text-align: right; }
.work-neighbors a:hover { color: var(--accent); }

.contribution-callout { width: min(100%,1600px); margin: 0 auto; padding: 1.8rem var(--gutter); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.2rem 2rem; }
.contribution-callout h2 { margin-top: .4rem; font: 400 2.2rem/1.1 var(--display); }
.contribution-callout p:not(.kicker) { margin-top: .5rem; font-size: .8rem; color: var(--muted); }
.contribution-actions { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; }
.contribution-actions a { display: inline-flex; align-items: center; min-height: 44px; font-size: .8rem; color: var(--accent); }
.contribute-page { width: min(100%,1600px); margin-inline: auto; padding: 1.5rem var(--gutter) 3rem; }
.contribute-heading { max-width: 54rem; margin-bottom: 2.5rem; }
.contribute-heading h1, .contribute-page > h1 { font: 400 clamp(3.7rem,7vw,7rem)/.94 var(--display); letter-spacing: -.03em; margin: .8rem 0 1.2rem; }
.contribute-heading h1 span { color: var(--accent); font-size: .55em; vertical-align: top; }
.contribute-heading > p:last-child { max-width: 46ch; font-size: .95rem; color: var(--muted); }
.contribute-layout { display: grid; grid-template-columns: minmax(14rem,1fr) minmax(0,2fr); gap: 4rem; align-items: start; }
.contribute-note { padding: 1.3rem; background: var(--panel); border-top: 2px solid var(--ink); }
.contribute-note h2 { font: 400 2.5rem/1.05 var(--display); margin: .8rem 0 1rem; }
.contribute-note p:not(.kicker) { color: var(--muted); font-size: .8rem; line-height: 1.6; margin-top: .9rem; }
.contribute-note .privacy-note { border-top: 1px solid var(--line); padding-top: .9rem; }
.submission-types { border: 0; padding: 0; margin: 0 0 1.7rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.submission-types legend { padding: 0; margin-bottom: .8rem; font-size: .82rem; font-weight: 600; }
.submission-types label { cursor: pointer; display: flex; gap: .55rem; align-items: center; padding: .9rem .75rem; border: 1px solid var(--line); min-height: 64px; font-size: .8rem; }
.submission-types label:has(:checked) { background: var(--accent-wash); border-color: var(--accent); }
.submission-types input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--accent); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.form-field { min-width: 0; margin-bottom: 1.1rem; }
.form-field label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: .5rem; }
.form-field label span { font-weight: 400; color: var(--muted); }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-width: 0; min-height: 48px; padding: .75rem .8rem; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); font: 400 1rem/1.45 var(--text); }
.form-field input::placeholder { color: var(--muted); }
.form-field textarea { min-height: 150px; resize: vertical; }
.field-help { font-size: .72rem; line-height: 1.5; color: var(--muted); margin-top: .5rem; }
#source-help { margin: -.65rem 0 1.2rem; }
.contact-fields { border-top: 1px solid var(--line); padding-top: 1.2rem; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-error { padding: 1rem; border: 2px solid var(--accent); font-size: .85rem; margin-bottom: 1rem; }
.form-submit { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: center; }
.form-submit button { padding: .9rem 1.2rem; border: 1px solid var(--ink); color: var(--paper); background: var(--ink); min-height: 48px; font-weight: 600; font-size: .85rem; }
.form-submit button:disabled { cursor: wait; opacity: .7; }
.form-submit p { max-width: 30ch; font-size: .72rem; color: var(--muted); }
.submission-receipt { padding: 1.5rem; background: var(--accent-wash); border-top: 2px solid var(--accent); }
.submission-receipt h2 { font: 400 3rem/1.05 var(--display); margin: .8rem 0 1.2rem; }
.submission-receipt > p:not(.kicker) { font-size: .85rem; margin-top: 1rem; }
.receipt-reference strong { display: block; margin-top: .4rem; font-size: .75rem; overflow-wrap: anywhere; }
.receipt-links { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin-top: 1rem; }
.receipt-links a { min-height: 44px; display: inline-flex; align-items: center; font-size: .8rem; }

@media (max-width: 1100px) {
  .intro { grid-template-columns: minmax(0,1fr) 17rem; gap: 1.5rem; }
  .intro h1 { font-size: 10.5vw; }
  .soonest-card { padding: 1rem; column-gap: .75rem; }
  .soonest-number { font-size: 5rem; }
  .atlas-layout { grid-template-columns: minmax(0,1.15fr) minmax(22rem,1fr); gap: 1.5rem; }
  .map-panel { padding: 1rem; }
  .row-title { font-size: 1.5rem; }
  .work-layout { grid-template-columns: minmax(0,1.2fr) minmax(17rem,1fr); gap: 2rem; }
}
@media (max-width: 850px) {
  .contribute-layout { grid-template-columns: 1fr; gap: 1.8rem; }
  .contribute-note { max-width: none; }
  .contribute-note h2 br { display: none; }
  .site-header { gap: 1.3rem; }
  .edition { margin-right: auto; }
  .intro { padding-block: 1.6rem; }
  .intro h1 { font-size: 10.5vw; }
  .atlas-layout { grid-template-columns: 1fr; gap: 1.8rem; }
  .map-panel { position: static; top: auto; order: 1; }
  .list-panel { order: 2; }
  .map-panel .atlas-map { max-height: 590px; }
  .atlas-map .pin, .atlas-map .pin * { pointer-events: none; }
  .mobile-map-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--map-note); }
  .map-caption p { display: none; }
  .row-title { font-size: 1.85rem; }
  .work-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .slot-map { aspect-ratio: 1.3; }
  .facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
  .site-footer { flex-direction: column; gap: .6rem; }
  .footer-links { justify-content: flex-start; }
}
@media (max-width: 560px) {
  .contribute-page { padding-top: 1rem; }
  .contribute-heading h1 { font-size: 14vw; }
  .contribute-heading { margin-bottom: 1.5rem; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .submission-types { grid-template-columns: 1fr; gap: .5rem; }
  .submission-types label { min-height: 48px; }
  .submission-receipt h2 { font-size: 2.5rem; }
  .site-header { gap: 1rem; padding-block: .55rem; }
  .brand { font-size: 1.45rem; gap: .4rem; }
  .brand-mark { font-size: 1.4rem; }
  .edition, .header-nav { display: none; }
  .header-actions { margin-left: auto; }
  .header-actions .share-control button { font-size: .65rem; }
  .intro { grid-template-columns: 1fr; gap: 1.15rem; padding-top: 1.45rem; padding-bottom: 1.4rem; }
  .kicker { font-size: .59rem; }
  .intro h1 { font-size: 19vw; margin-top: .65rem; margin-bottom: .65rem; }
  .title-star { font-size: .2em; margin-top: .07em; margin-left: .12em; }
  .lede { font-size: .85rem; line-height: 1.5; }
  .lede br { display: block; }
  .soonest-card { grid-template-columns: auto 1fr; column-gap: 1.1rem; row-gap: .35rem; padding: .75rem 1rem; border-top: 0; }
  .feature-label { grid-column: 1; grid-row: 1; font-size: .54rem; }
  .soonest-number { grid-column: 1; grid-row: 2; font-size: 3.6rem; }
  .soonest-copy { grid-column: 2; grid-row: 1 / span 2; font-size: .65rem; }
  .soonest-link { font-size: 1.4rem; }
  .soonest-copy > span { font-size: .59rem; }
  .atlas-layout { gap: 1.7rem; }
  .map-panel { padding: .85rem; }
  .map-heading h2 { font-size: .57rem; }
  .map-heading > span { font-size: .54rem; }
  .map-caption { margin-top: .2rem; font-size: .66rem; gap: .4rem; }
  .map-key { font-size: .53rem; }
  .borough-name { font-size: 25px; }
  .pin-number { font-size: 13px; }
  .timeline { padding-top: .75rem; margin-top: .25rem; }
  .timeline-label, .timeline-date { font-size: .59rem; }
  .timeline-hint { font-size: .58rem; }
  .reset-time { font-size: .59rem; }
  .list-heading h2 { font-size: 2.1rem; }
  .record-link { grid-template-columns: 1.3rem minmax(0,1fr) 4.5rem; gap: .5rem; min-height: 98px; padding: .95rem .3rem .95rem 0; }
  .record-row.has-photo { grid-template-columns: 3.4rem minmax(0,1fr); gap: .5rem; }
  .has-photo .record-link { grid-template-columns: .9rem minmax(0,1fr) 4rem; gap: .3rem; }
  .has-photo .row-title { font-size: 1.4rem; }
  .row-title { font-size: 1.7rem; }
  .row-artist { font-size: .76rem; }
  .row-site { font-size: .64rem; }
  .row-number { font-size: .6rem; }
  .days-number { font-size: 2rem; }
  .days-unit, .end-date { font-size: .59rem; }
  .site-footer { font-size: .65rem; }
  .work-page { padding-top: 1rem; }
  .work-heading { grid-template-columns: 1fr; gap: .65rem; }
  .work-heading h1 { font-size: 15vw; line-height: .92; }
  .work-artist { font-size: 1.5rem; }
  .work-time { grid-column: 1; grid-row: auto; margin-top: .3rem; max-width: none; padding: .85rem 1rem; font-size: .68rem; }
  .work-time time { font-size: 1.5rem; }
  .work-days { font-size: .68rem; }
  .slot-map { aspect-ratio: 1.05; padding: 1rem; }
  .slot-number { top: 1rem; left: 1rem; font-size: 3.5rem; }
  .facts { grid-template-columns: 1fr; gap: 0; }
  .facts dd.site { font-size: 1.9rem; }
  .work-neighbors { gap: 1rem; }
  .work-neighbors a { font-size: 1.4rem; }
}
@media (max-width: 360px) {
  .brand { font-size: 1.35rem; }
  .brand-mark { font-size: 1.2rem; }
  .header-actions .share-control button { font-size: .6rem; }
  .record-link { grid-template-columns: 1.05rem minmax(0,1fr) 4rem; gap: .4rem; }
  .row-title { font-size: 1.5rem; }
  .row-artist { font-size: .74rem; }
  .days-number { font-size: 1.8rem; }
  .map-heading h2 { font-size: .51rem; }
}
@media (prefers-color-scheme: dark) {
  :root { --paper: #152923; --ink: #f1f0e3; --muted: #b6c4b6; --line: #536958; --accent: #becbff; --accent-wash: #293e40; --focus: #cbd6ff; --panel: #223c31; --water: #10231d; --land: #c7d5b0; --coast: #a3b295; --map-label: #234537; --grid: #2d483c; --pin-ink: #10231d; --ended: #d1d8bb; --feature: #dbe879; --feature-ink: #172c26; --map-note: #e6edda; }
  .pin-leader, .site-dot { stroke: #2946ad; }
  .site-dot { fill: #2946ad; }
  .pin-core { fill: #2946ad; stroke: #eff3df; }
  .pin-number { fill: #fffdf5; }
  .pin-ring { stroke: #2946ad; }
  .pin.phase-before .pin-number { fill: #2946ad; }
  .pin.phase-after .pin-core { fill: #53644e; }
  .share-control button:hover { color: #172c26; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; }
}
