/* The city and its buttons share one uncropped coordinate plane; the reading desk does not transform. */
.city-portal{background:#f5fafc;padding-top:12px}
.portal-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;max-width:1640px;margin:auto;padding:0 20px;align-items:start}
.city-stage{display:grid;isolation:isolate;overflow:clip;border-radius:18px;align-self:start}
.city-coordinate-plane{grid-area:1/1;position:relative;aspect-ratio:1586/992;transform-origin:55% 52%;transition:transform .45s ease}
.city-exterior,.city-exterior img{display:block;width:100%;height:auto;aspect-ratio:1586/992;object-fit:contain}
.city-portal-copy{grid-area:1/1;z-index:3;align-self:start;justify-self:start;width:25%;margin:3% 0 0 4%;padding:10px;background:#ffffffe8;border-radius:14px;color:#173039}
.gateway-kicker{font-size:16px;font-weight:800;letter-spacing:.08em}
.city-portal #city-gateway-title{font:800 clamp(27px,2.5vw,38px)/1.35 var(--serif);margin:8px 0 16px;letter-spacing:.02em}
.gateway-search{display:flex;gap:4px;max-width:440px;padding:4px;border:1px solid #739cab;border-radius:14px;background:#ffffff;box-shadow:0 3px 12px #17303912}
.gateway-search input{flex:1 1 0;min-width:0;width:100%;padding:8px;border:0;background:transparent;color:#173039;font-size:16px}
.gateway-search input::placeholder{color:#465e63;opacity:1}
.gateway-search button{flex:0 0 auto;min-width:64px;min-height:44px;padding:8px 12px;white-space:nowrap;border:0;border-radius:10px;color:#ffffff;background:#135e75;font-size:16px;font-weight:800}
.city-coordinate-plane .city-building{position:absolute;display:flex;align-items:center;gap:6px;translate:-22px -50%;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:#173039;text-decoration:none;line-height:1.5;z-index:1}
.city-building>span:first-child{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;background:#ffffff;border:2px solid #135e75;border-radius:50%;font:800 20px/1 var(--serif);box-shadow:0 3px 8px #17303933}
.building-sign{padding:5px 9px;background:#fffffff2;border:1px solid #739cab;border-radius:7px;font-size:16px;font-weight:800;white-space:nowrap;box-shadow:0 2px 6px #1730391a}
.city-building[aria-expanded=true]>span:first-child,.city-building:is(:hover,:focus-visible)>span:first-child{background:#173039;color:#ffffff;box-shadow:0 0 0 5px #ffffff99}
.city-coordinate-plane .building-map{left:15%;top:71%}.city-coordinate-plane .building-moon{left:18%;top:44%}.city-coordinate-plane .building-sound{left:92%;top:20%}.city-coordinate-plane .building-octopus{left:90%;top:44%}.city-coordinate-plane .building-rain{left:87%;top:68%}.city-coordinate-plane .building-sky{left:53%;top:73%}
.city-coordinate-plane :is(.building-sound,.building-octopus,.building-rain){flex-direction:row-reverse;translate:calc(-100% + 22px) -50%}
.city-library-door{position:absolute;left:55%;top:52%;translate:-50% -50%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid #135e75;border-radius:10px;background:#fffffff2;color:#173039;text-decoration:none;white-space:nowrap;font-size:16px;z-index:1}
.city-library-door>span:first-child{font:800 22px var(--serif);color:#135e75}
.city-preview-desk{min-width:0;padding:24px 0 16px;border-bottom:8px solid #e9cfaa;color:#173039}
.city-preview-desk h2{font:800 28px/1.55 var(--serif);margin:12px 0 18px}
.city-preview-desk p{font-size:18px;line-height:1.85}
.city-preview-desk .eyebrow,.city-preview-desk .small,.city-preview-desk .room-note{font-size:16px}
.city-preview-desk a:not(.button){display:inline-flex;align-items:center;min-height:44px;font-weight:800}
.city-preview-desk [data-building-hint]>p:not(:first-child){margin:18px 0}
.city-preview .room-vignette{width:100%;height:116px;object-fit:cover;border-radius:14px;margin:14px 0}
.city-preview-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 6px}
.city-preview-actions .button{flex:1 0 auto;min-height:48px}
.city-preview-actions .save-button[aria-pressed=false]{background:#ffffff;color:var(--ink)}
.city-preview .preview-close{font-size:16px}
.city-art-credit{max-width:1600px;padding:10px 24px;margin:auto;font-size:16px;color:#465e63;line-height:1.75}
.city-building-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;max-width:1400px;margin:0 auto;padding:8px 28px 24px}
.city-building-index>a{display:flex;align-items:center;gap:12px;min-height:64px;border-bottom:1px solid #b8cdd2;padding:14px 0;text-decoration:none}
.city-building-index strong{display:block;font:800 20px/1.5 var(--serif)}
.city-building-index div>span{display:block;font-size:16px;margin-top:4px}
.city-building-index>a>span:last-child{margin-left:auto}
.city-building-index a:hover strong{text-decoration:underline}
.city-door-number{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid #135e75;border-radius:50%;font-size:16px;font-weight:800;color:#135e75}
.city-enter-library{display:flex;align-items:center;justify-content:center;gap:28px;min-height:56px;padding:14px 24px;border-top:1px solid #b8cdd2;color:#173039;font-weight:800;font-size:18px;text-decoration:none;background:#e8f3ee}
.city-library{background:#ffffff;scroll-margin-top:24px}
.library-arrival{display:grid;max-width:1640px;margin:auto;isolation:isolate}
.library-arrival>picture{grid-area:1/1}
.library-arrival img{display:block;width:100%;height:auto;aspect-ratio:1586/992;object-fit:contain}
.library-welcome{grid-area:1/1;z-index:1;align-self:end;justify-self:center;max-width:760px;width:70%;padding:24px 32px;background:#ffffffed;border-radius:24px 24px 0 0;text-align:center}
.library-welcome h2{font:800 clamp(28px,3vw,40px)/1.5 var(--serif);margin:10px 0 14px}
.library-welcome nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0 22px}
.library-welcome nav a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:800}
.library-image-note{max-width:1400px;margin:auto;padding:12px 24px;font-size:16px;color:#465e63}
.home-bookshelf{max-width:1320px;margin:auto;padding:40px 28px}
.bookshelf-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;border-bottom:1px solid #8baeb6;padding-bottom:20px;margin-bottom:18px}
.bookshelf-heading h2{font:800 clamp(28px,3vw,40px)/1.5 var(--serif);margin-top:8px}
.bookshelf-heading>a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:800}
.home-bookshelf>[data-shelf-status]{font-size:16px}
.home-bookshelf .library-book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.library-room-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:1320px;margin:auto;padding:20px 28px 48px}
.library-room-guide>a{display:flex;flex-direction:column;gap:12px;padding:22px 26px;border-left:5px solid #4f8c73;background:#f0f7f3;border-radius:0 24px 24px 0;text-decoration:none}
.library-room-guide>a>span{font-size:16px;font-weight:800}
.library-room-guide strong{font:800 25px/1.65 var(--serif)}
.library-room-guide a:hover strong{text-decoration:underline}
@media(max-width:1100px){.portal-layout{grid-template-columns:minmax(0,1fr);gap:0;padding:0}.city-preview-desk{margin:0 24px;padding:20px 0}.city-preview-desk [data-building-hint]{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.city-preview-desk [data-building-hint]>.eyebrow{grid-column:1/-1}.city-preview-desk [data-building-hint] h2{grid-row:2/4;margin:4px 0}.city-preview-desk [data-building-hint]>p:not(:first-child){margin:4px 0}.city-preview{display:grid;grid-template-columns:180px minmax(0,1fr);gap:0 24px}.city-preview .room-vignette{grid-column:1;grid-row:2/5;height:180px}.city-preview .eyebrow{grid-column:1/-1}.city-preview h2{grid-column:2;font-size:26px}.city-preview>p:not(.eyebrow),.city-preview-actions,.city-preview>.preview-close{grid-column:2}.city-stage{border-radius:0}.city-portal-copy{width:25%}.city-portal #city-gateway-title{font-size:clamp(27px,3.1vw,38px)}}
@media(max-width:700px){.city-portal{padding:0}.city-stage{display:flex;flex-direction:column}.city-portal-copy{width:100%;margin:0;padding:22px 20px;background:#edf7fa;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px 20px}.city-portal-copy .gateway-kicker{grid-column:1/-1}.city-portal #city-gateway-title{font-size:30px;margin:2px 0 0}.gateway-search{min-width:0;margin:0}.city-coordinate-plane{width:100%;flex:0 0 auto}.building-sign{display:none}.city-coordinate-plane :is(.building-sound,.building-octopus,.building-rain){flex-direction:row;translate:-22px -50%}.city-library-door{padding:8px 10px;gap:6px}.city-building-index{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 20px 20px;gap:0 20px}.city-building-index>a{gap:8px;align-items:start}.city-building-index strong{font-size:18px}.city-building-index div>span{font-size:16px}.city-building-index>a>span:last-child{display:none}.city-door-number{flex-basis:28px;width:28px;height:28px}.city-preview{display:block}.city-preview .room-vignette{float:right;width:100px;height:84px;margin:0 0 8px 16px}.city-preview-desk{margin:0 20px}.city-preview-desk h2{font-size:25px}.city-preview-desk [data-building-hint]{display:block}.city-preview-desk [data-building-hint] h2 br{display:none}.city-preview-actions{clear:both}.library-welcome{grid-area:auto;width:100%;max-width:none;padding:24px 20px;background:#ffffff;text-align:left;border-radius:0}.library-welcome nav{justify-content:start}.library-welcome h2{font-size:28px}.home-bookshelf{padding:30px 20px}.bookshelf-heading{display:block}.bookshelf-heading>a{margin-top:12px}.home-bookshelf .library-book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.home-bookshelf .library-book{padding-inline:0}.home-bookshelf .library-book-cover{padding:16px 12px;min-height:280px}.home-bookshelf .library-book h3{font-size:20px}.home-bookshelf .book-endpaper{display:block}.home-bookshelf .save-button{width:100%}.home-bookshelf .book-endpaper>a{font-size:16px}.library-room-guide{grid-template-columns:1fr;padding:20px 20px 32px}.library-image-note{padding-inline:20px}.city-enter-library{font-size:18px;gap:16px}}
@media(max-width:480px){.city-portal-copy{display:block}.city-portal #city-gateway-title{font-size:30px;margin:8px 0 14px}.city-portal #city-gateway-title br{display:none}.gateway-search{max-width:none}.city-art-credit{padding:10px 20px}.city-building-index{gap:0 16px}.city-building-index>a{min-height:72px}.city-library-door>span:first-child{display:none}.city-library-door{font-size:16px;min-height:44px}.city-preview-desk p{font-size:18px}}
@media(forced-colors:active){.city-building>span:first-child,.building-sign,.city-library-door,.city-portal-copy{background:Canvas;color:CanvasText;border-color:CanvasText}.city-building[aria-expanded=true]>span:first-child{background:Highlight;color:HighlightText}.city-portal :is(a,button,input):focus-visible{outline:3px solid Highlight;outline-offset:4px}.city-coordinate-plane .city-building{forced-color-adjust:none}.library-welcome{background:Canvas;color:CanvasText}}

.atlas-home{--atlas-ink:#173039;--atlas-paper:#ffffff;color:#173039;background:#f5fafc;font-size:1.125rem;line-height:1.8}
.atlas-home *{min-width:0}
.atlas-home .atlas-label{font-size:16px;font-weight:800;letter-spacing:.06em}
.atlas-home .atlas-caption{font-size:16px;line-height:1.75}
.atlas-home [hidden]{display:none!important}
.atlas-home a:focus-visible,.atlas-home button:focus-visible,.atlas-home summary:focus-visible,.atlas-home input:focus-visible{outline:3px solid #00677d;outline-offset:4px}
.city-scene{position:relative;border-top:1px solid #bfd5d9;padding:48px max(28px,calc((100vw - 1320px)/2));scroll-margin-top:84px}
.city-scene article{scroll-margin-top:84px}
.city-scene-heading{margin-bottom:38px}
.city-scene-heading h2{font-size:clamp(30px,4vw,52px);line-height:1.35;margin:12px 0 18px}
.city-scene-heading>p:last-child{max-width:38em}
.city-exhibit-title{font:800 20px/1.5 var(--serif);margin-bottom:10px}
.city-read{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:14px 0;font-size:20px;font-weight:800;border-block:2px solid currentColor;text-decoration:none;margin:22px 0}
.city-read>span{font-size:28px}
.city-read:hover{text-decoration:underline}
.city-exit{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;border-top:1px solid #819091;margin-top:42px;padding-top:22px}
.city-exit-sign{font-size:16px;font-weight:800;border-left:6px solid #4f8c73;padding-left:12px;align-self:start}
.city-next{display:flex;align-items:center;justify-content:space-between;min-height:48px;gap:20px;font:800 24px/1.6 var(--serif);text-decoration:none}
.city-next>span{font:700 36px/1 var(--sans)}
.city-exit p{font-size:16px;line-height:1.85;max-width:60em;margin:12px 0}
.city-exit div>a:last-child{display:inline-flex;align-items:center;min-height:44px;font-size:16px}
.city-workshop{padding-top:40px;background:#f6faf7;color:#173039}
.city-workshop-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 24px;margin-bottom:14px}
.city-workshop-heading>.atlas-label{display:flex;justify-content:space-between;gap:20px;flex:1 0 100%}
.city-workshop-heading .atlas-label>span{font-weight:500}
.city-workshop-heading h2{font:900 clamp(28px,3vw,40px)/1.3 var(--serif);letter-spacing:-.02em}
.city-workshop-heading>p:last-child{font-size:22px;padding-bottom:8px}
.city-first-view{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:start}
.city-map-apparatus{border:1px solid #8baeb6;border-radius:18px;background:#ffffff;color:#173039;box-shadow:0 8px 0 #e9cfaa}
.city-map-apparatus :is(a,button,input,summary):focus-visible{outline-color:#9c3823}
.city-map-apparatus>.city-read{margin:0;padding:16px 22px;border:0;background:#081725;color:#fffaf0}
.city-map-apparatus>.city-read:focus-visible{outline-color:#135e75}

.atlas-home .media-photo{width:100%;background:#ffffff}
.atlas-home .media-photo img{display:block;width:100%;height:auto;object-fit:contain}
.atlas-home .media-photo figcaption{display:block;padding:10px 0;font-size:16px;line-height:1.75;background:#ffffff;color:#173039}

.city-wayfinder{position:sticky;box-shadow:0 3px 12px #1730391a;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#e7f2f5;color:#173039;padding:6px max(28px,calc((100vw - 1320px)/2));border-bottom:1px solid #9cbbb8}
.city-current-label{font-size:16px}
.city-wayfinder>div{display:flex;flex-wrap:wrap;gap:4px 14px}
.city-wayfinder a{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;font-size:16px;font-weight:800;text-decoration:none}
.city-wayfinder a[aria-current]{background:#173039;color:#ffffff;text-decoration:underline}
.city-wayfinder a:focus-visible{outline-color:#00677d}
.city-night{background:#eaf3f8;color:#173039;padding-top:32px;padding-bottom:56px}
.city-night .atlas-label{color:#135e75}
.city-night .city-scene-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:4px 32px;margin-bottom:18px}
.city-night .city-scene-heading>.atlas-label{grid-column:1/-1}
.city-night .city-scene-heading h2{font-size:clamp(28px,3vw,38px);line-height:1.3;margin:8px 0 0}
.city-night-plan{display:grid;grid-template-columns:minmax(0,8fr) minmax(260px,3fr);gap:40px;align-items:start;margin-top:18px}
.city-moon-lab{min-width:0}
.city-moon-comparison{max-width:none}
.city-experiment-prompt{font-size:16px;margin-bottom:18px}
.city-orbit-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:24px}
.city-orbit-model{margin:0}
.city-orbit-model figcaption{font-size:18px;font-weight:800;margin-bottom:6px}
.city-orbit-model svg{display:block;width:100%;max-width:340px;height:auto;margin-inline:auto;background:transparent}
.city-orbit-model>p{font-size:16px;margin-top:4px}
.city-orbit-track{fill:none;stroke:#9cbbb8;stroke-width:2;stroke-dasharray:4 5}
.city-earth{fill:#20556a;stroke:#9cbbb8;stroke-width:1.5}
.city-earth-label{fill:#fffaf0;font:700 18px var(--sans)}
.city-moon-disc{fill:#f0d97d;stroke:#173039;stroke-width:2}
.city-moon-mark{fill:#173039;font:800 32px var(--sans)}
.city-orbit-label{fill:#173039;font:700 20px var(--sans)}
[data-moon-point][data-active=true] .city-moon-disc{stroke:#f0d97d;stroke-width:4}
.city-current-moon{fill:#f0d97d;stroke:#173039;stroke-width:2}
.city-night [data-moon-moving]{color:#173039}
.city-moon-comparison[data-moon-mounted=true] [data-moon-point] .city-moon-disc{fill:none;stroke:#9cbbb8;stroke-width:1}
.city-moon-comparison[data-moon-mounted=true] [data-moon-point] .city-moon-mark{visibility:hidden}
.city-moon-slider{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,2fr);align-items:center;gap:4px 16px;border:0;border-bottom:1px solid #9cbbb8;margin:10px 0 6px;padding:6px 0 10px}
.city-moon-slider legend{color:#135e75;font-size:18px}
.city-moon-slider label{display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:18px;font-weight:800}
.city-moon-slider output{font:800 30px/1.4 var(--serif)}
.city-moon-slider input[type=range]{display:block;width:100%;min-height:48px;accent-color:#135e75;margin:0}
.city-moon-slider p{grid-column:1/-1;font-size:16px}
.city-moon-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.city-moon-controls button{min-height:48px;padding:10px 8px;border:1px solid #6b929d;background:#ffffff;color:#173039;font-size:18px;font-weight:800}
.city-moon-controls button[aria-pressed=true]{background:#173039;color:#ffffff}
.city-moon-controls small{font-size:16px}
.city-night :is(a,button,input,summary):focus-visible{outline-color:#00677d}
.city-moon-result{font-size:16px;border-left:3px solid #135e75;padding-left:12px;margin:12px 0}
.city-moon-table{table-layout:fixed;min-width:0;width:100%;border-collapse:collapse;margin:24px 0;font-size:16px}
.city-moon-table caption{text-align:left;font-size:16px;margin-bottom:8px}
.city-moon-table th,.city-moon-table td{border:1px solid #9cbbb8;padding:10px 4px;text-align:center;background:#ffffff;color:#173039;font-size:16px}
.city-moon-table th:first-child{width:34%}
.city-moon-table td{font-size:24px;font-weight:800}
.city-moon-conclusion{font-size:16px;border-top:1px solid #9cbbb8;padding-top:12px;margin:14px 0 10px}
.city-moon-conclusion strong{display:block;font:800 23px/1.5 var(--serif);margin-bottom:6px}
.city-sound-tower{padding-top:24px;border-top:1px solid #8baeb6}
.city-sound-tower::before{content:"";display:block;width:100%;height:150px;background:url(/media/city/room-sound.webp) center 22%/cover;border-radius:18px;border:1px solid #bfd5d9;margin-bottom:20px}
.city-sound-tower h3{font:800 clamp(28px,3vw,42px)/1.4 var(--serif);margin:18px 0 24px}
.city-sound-machine{border-left:3px solid #9cbbb8;padding:20px 0 20px 20px}
.machine-input{font-size:16px;font-weight:800;border-bottom:1px solid #9cbbb8;padding-bottom:12px}
.machine-channel{display:flex;align-items:center;gap:20px;margin:16px 0 38px}
.machine-channel>span{font:700 64px/1.3 var(--serif);color:#135e75}
.machine-channel strong{font-size:20px}
.city-night .city-exit{border-color:#9cbbb8}
.city-night .city-exit-sign{border-color:#135e75}
.city-night .city-next{font-size:22px}
.city-sound-tower .city-exit{display:block}
.city-sound-tower .city-exit-sign{display:block;margin-bottom:18px}

.city-market{background:#eff7ef;color:#173039;padding-top:48px;padding-bottom:64px}
.city-market>.city-scene-heading{max-width:900px;border-bottom:2px solid #4f8c73;padding-bottom:20px}
.city-market-plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.city-pump-stall h3,.city-rain-window h3{font:800 clamp(28px,3.5vw,44px)/1.35 var(--serif);margin:18px 0 32px}
.city-heart-pipes{color:#173039;background:#ffffff;border:1px solid #8baeb6;padding:12px;margin:30px 0}
.city-heart-pipes>div{display:grid;grid-template-columns:100px minmax(30px,1fr) minmax(100px,1.3fr);align-items:center;gap:16px;padding:20px 0}
.city-heart-pipes>div+div{border-top:1px solid #9c3823}
.pump-count{font:800 clamp(72px,8vw,112px)/1 var(--serif);color:#9c3823}
.city-heart-pipes svg{width:100%;height:auto;color:#9c3823}
.city-heart-pipes p strong{display:block;font-size:23px}
.city-heart-pipes p span{display:block;font-size:16px}
.city-pump-stall>.media-photo{border:1px solid #8baeb6;max-width:400px;margin:36px 0 26px}
.city-rain-window{margin-top:90px;border-top:1px solid #8baeb6;padding-top:20px}
.city-rain-window>.media-photo{margin:30px 0;border:1px solid #8baeb6;border-radius:24px 24px 0 0}
.city-rain-window>.media-photo img{border-radius:24px 24px 0 0}
.city-rain-ledger{list-style:none;padding:0;margin:30px 0}
.city-rain-ledger li{display:grid;grid-template-columns:130px 1fr;align-items:start;gap:20px;border-top:2px solid #20556a;padding:22px 0}
.city-rain-ledger time{font:800 clamp(42px,5vw,66px)/1.1 var(--serif)}
.city-rain-ledger h4{font-size:20px;margin-top:8px}
.city-rain-ledger span{font-size:16px}
.city-market .city-exit{border-color:#8baeb6;margin-top:28px;grid-template-columns:76px 1fr}
.city-market .city-next{font-size:22px}

.city-sky{background:#e4f3fb;color:#173039;padding-top:48px;padding-bottom:64px}
.city-sky .city-scene-heading{display:grid;grid-template-columns:1fr 1fr;gap:8px 40px}
.city-sky .city-scene-heading .atlas-label{grid-column:1/-1}
.city-sky .city-scene-heading h2{grid-column:1/-1;margin-bottom:0}
.city-sky-diagram{margin:32px 0 28px;background:#ffffff;color:#173039;border:1px solid #8baeb6;padding:20px;box-shadow:0 8px 0 #c9e1e8}
.city-sky-diagram svg{display:block;width:100%;height:auto}
.city-light-labels{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:3px solid #20556a;padding-top:24px;margin-top:20px}
.city-light-labels p{font-size:20px;margin:0}
.city-light-labels strong{display:block;font:800 32px/1.5 var(--serif);margin-bottom:12px}
.city-light-labels p+ p{border-top:3px solid #9c3823;padding-top:20px;margin-top:-27px}
.city-sky-diagram figcaption{font-size:16px;margin:26px 0}
.city-sky .city-read{max-width:560px}

.city-interchange{background:#f4f8f7;color:#173039;padding-top:76px}
.city-network{border-top:1px solid #8baeb6;padding:24px 0 0;margin:0 0 46px}
.city-network-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:12px 40px;align-items:end}
.city-network-heading>.atlas-label{grid-column:1/-1;color:#135e75}
.city-network-heading h2{font:800 clamp(32px,4vw,54px)/1.4 var(--serif)}
.city-network-controls{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 16px}
.city-network-controls button{background:#ffffff;color:#173039;border:1px solid #9cbbb8;min-height:48px;padding:10px 18px;font-size:18px;font-weight:800}
.city-network-controls button[aria-pressed=true]{background:#173039;color:#ffffff;border-color:#135e75}
.city-network a:focus-visible,.city-network button:focus-visible{outline-color:#135e75}
.city-network-status{font-size:16px;min-height:2em;margin:14px 0}
.city-network-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:start}
.city-network-map{margin:0}
.city-network-map>svg{display:block;width:100%;height:auto}
.city-network-lines>path{fill:none;stroke:#6b929d;stroke-width:2;opacity:.8}
.city-network-lines>path[data-active=true]{stroke:#135e75;stroke-width:5;opacity:1}
.city-station>circle{fill:#ffffff;stroke:#135e75;stroke-width:4}
.city-station[data-selected=true]>circle,.city-station:focus-visible>circle{fill:#173039;stroke:#135e75;stroke-width:5}
.city-station-number{fill:#173039;font:800 23px var(--sans)}
.city-station[data-selected=true]>.city-station-number,.city-station:focus-visible>.city-station-number{fill:#ffffff}
.city-station-name{fill:#173039;font:800 30px var(--sans)}
.city-network-map figcaption{font-size:16px;border-top:1px solid #9cbbb8;padding-top:16px}
.city-network-reasons{display:grid;gap:24px}
.city-connection{border-top:4px solid #135e75;padding:20px 0;scroll-margin-top:90px}
.city-connection h3{font:800 25px/1.6 var(--serif);margin:10px 0 18px}
.city-connection h3 a{display:block;min-height:44px}
.city-connection ol{list-style:none;padding:0}
.city-connection li{border-top:1px solid #9cbbb8;padding-top:12px;margin-top:18px}
.city-connection li>a{display:flex;align-items:center;min-height:44px;text-decoration:underline;font-size:18px;font-weight:800}
.city-connection li>p{font-size:16px;line-height:1.9;margin-top:10px}
.city-network-index{display:flex;align-items:center;min-height:48px;text-decoration:underline;margin-top:22px;font-weight:800}
.city-trail-index{border-block:1px solid #9cbbb8;margin:34px 0}
.city-trail-index>summary{font-size:20px;padding:18px 0}

.atlas-switchyard{padding:24px 0;margin:0 0 28px}
.atlas-switchyard h2{font:800 30px/1.5 var(--serif);margin:12px 0}
.atlas-route-control-slot{min-height:64px;margin:22px 0}
.atlas-route-controls{display:flex;flex-wrap:wrap;gap:10px}
.atlas-route-controls[hidden],.atlas-route-path[hidden]{display:none}
.atlas-route-controls button{min-height:48px;padding:10px 16px;border:1px solid #6b929d;background:#ffffff;color:#173039;font-size:18px;font-weight:800}
.atlas-route-controls button[aria-pressed=true]{background:#173039;color:#ffffff}
.atlas-route-controls button:focus-visible{outline:3px solid #00677d;outline-offset:4px}
.atlas-route-status{font-size:16px;min-height:3.5em}
.atlas-route-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:20px}
.atlas-route-paths:has(>[hidden]){grid-template-columns:minmax(0,1fr)}
.atlas-route-path{padding:18px 0;border-top:2px solid #9cbbb8}
.atlas-route-path h3{font:800 24px/1.5 var(--serif)}
.atlas-route-path ol{list-style:none;padding:0;display:grid;gap:18px;margin-top:20px}
.atlas-route-paths:has(>[hidden]) .atlas-route-path ol{grid-template-columns:repeat(3,minmax(0,1fr))}
.atlas-route-path li{display:flex;gap:12px;border-top:1px solid #9cbbb8;padding-top:14px}
.atlas-route-step{flex:0 0 28px;font-size:24px;font-weight:800}
.atlas-route-path a{display:flex;align-items:center;min-height:44px;font-weight:800;text-decoration:underline}
.atlas-route-path li p{font-size:16px;margin-top:10px}
.atlas-switchyard>.atlas-caption{margin-top:20px}
.atlas-source-index{padding-top:28px;border-top:4px solid #135e75;margin:52px 0 36px}
.atlas-source-index h2{font:800 30px/1.5 var(--serif)}
.atlas-source-index nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:24px}
.atlas-source-index a{display:flex;flex-direction:column;justify-content:center;min-height:48px;padding:16px 0;border-bottom:1px solid #9cbbb8;font-size:16px}
.atlas-source-index a span{font-size:22px;font-weight:800}
.atlas-colophon{border-top:2px solid #9cbbb8;padding:24px 0}
.atlas-colophon nav{display:flex;flex-wrap:wrap;gap:8px 28px;margin:20px 0 0}
.atlas-colophon a{display:flex;align-items:center;min-height:44px;font-size:16px}
.atlas-colophon>p{font-size:16px}
.city-extra article{margin:36px 0}

@media(max-width:1100px){

.city-night-plan{grid-template-columns:minmax(0,7fr) minmax(240px,3fr);gap:36px}
.city-night .city-scene-heading{gap:20px}
.city-market-plan{gap:36px}
.city-market .city-exit{display:block}
.city-exit-sign{display:block;margin-bottom:12px}
.city-market .city-next{font-size:23px}
.city-sound-tower{padding-top:60px}
.city-network-layout{gap:28px}
}

@media(max-width:820px){.city-scene{padding:44px 24px;scroll-margin-top:118px}
.city-scene article{scroll-margin-top:118px}

.city-workshop-heading>p:last-child{font-size:18px}

.city-night-plan{grid-template-columns:1fr;gap:48px}
.city-night .city-scene-heading{display:block}
.city-night .city-scene-heading h2{margin:10px 0}
.city-night .city-scene-heading>p:last-child{margin-top:10px}
.city-sound-tower{padding-top:20px;border-top:3px solid #9cbbb8}
.city-sound-machine{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}
.city-sound-machine>.atlas-caption{grid-column:1/-1}
.city-sound-tower .city-exit{display:grid}
.city-market-plan{grid-template-columns:minmax(0,1fr);gap:48px}
.city-pump-stall{max-width:650px}
.city-rain-window{margin:0 0 0 10%;border-top:3px solid #20556a;padding-top:26px}
.city-rain-window h3{font-size:40px}
.city-rain-window .city-exit{display:grid}
.city-wayfinder{display:block;padding:8px 24px}
.city-wayfinder>div{justify-content:space-between;gap:0 12px}
.city-wayfinder a{padding:6px}
.city-network-heading,.city-network-layout{grid-template-columns:1fr}
.city-network-map{max-width:720px}
.city-network-reasons{grid-template-columns:repeat(2,minmax(0,1fr))}
.city-network-reasons:has(>[hidden]){grid-template-columns:1fr}
.atlas-route-paths,.atlas-route-paths:has(>[hidden]) .atlas-route-path ol{grid-template-columns:1fr}
}

@media(max-width:600px){.city-scene{padding:36px 16px}
.city-workshop{padding-top:18px}
.city-workshop-heading{display:block;margin-bottom:12px}
.city-workshop-heading>.atlas-label{font-size:16px}
.city-workshop-heading .atlas-label>span{display:none}
.city-workshop-heading h2{font-size:29px;line-height:1.3;margin:8px 0}
.city-workshop-heading>p:last-child{font-size:18px;padding:0}
.city-first-view{gap:0}
.city-map-apparatus{border-top-width:4px}
.city-map-apparatus>.city-read{padding:14px 12px;font-size:18px}
.city-exit,.city-market .city-exit,.city-sound-tower .city-exit,.city-rain-window .city-exit{display:block;margin-top:30px}
.city-exit-sign{margin-bottom:12px;font-size:16px}
.city-next,.city-market .city-next{font-size:23px}
.city-exit p{font-size:16px}
.city-scene-heading h2{font-size:42px;line-height:1.2;margin:18px 0}
.city-night{padding-top:28px}
.city-night-plan{margin-top:14px}
.city-exhibit-title{font-size:20px}
.city-orbit-model figcaption{font-size:18px;margin:10px 0 6px}
.city-moon-controls{gap:6px}
.city-moon-controls button{font-size:18px;padding:10px 4px}
.city-moon-slider{grid-template-columns:minmax(0,1fr);padding:4px 0 8px}
.city-moon-slider legend{font-size:16px}

.city-moon-conclusion strong{font-size:22px}
.city-moon-table th,.city-moon-table td{padding:10px 2px}
.city-moon-table td{font-size:24px}
.city-sound-machine{display:block;padding-left:18px}
.city-sound-tower h3{font-size:34px}
.machine-channel{margin-bottom:32px}
.city-pump-stall h3,.city-rain-window h3{font-size:38px}
.city-heart-pipes>div{grid-template-columns:68px minmax(26px,1fr) minmax(110px,1.5fr);gap:12px}
.pump-count{font-size:78px}
.city-heart-pipes p strong{font-size:21px}
.city-pump-stall>.media-photo{max-width:90%;margin-left:10%}
.city-rain-window{margin-left:0}
.city-rain-ledger li{grid-template-columns:100px minmax(0,1fr);gap:14px}
.city-rain-ledger time{font-size:44px}
.city-rain-ledger h4{font-size:19px}
.city-sky .city-scene-heading{display:block}
.city-sky-diagram{margin-top:28px}
.city-light-labels{gap:20px}
.city-light-labels p{font-size:18px}
.city-light-labels strong{font-size:27px}
.city-light-labels p+p{padding-top:20px}
.city-wayfinder{padding:6px 16px}
.city-current-label{font-size:16px}
.city-wayfinder>div{gap:0 4px}
.city-wayfinder a{font-size:16px;padding:6px 8px}
.city-network-heading h2{font-size:34px}
.city-network-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.city-network-controls button{font-size:16px;padding:10px 4px}
.city-network-status{min-height:3.5em}
.city-network-layout{gap:26px}
.city-network-reasons{grid-template-columns:1fr}
.city-connection h3{font-size:24px}
.city-trail-index>summary{font-size:19px}
.atlas-route-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.atlas-route-controls button{font-size:16px;padding:10px 8px}
.atlas-route-control-slot{min-height:112px}
.atlas-route-status{min-height:5.5em}
.atlas-source-index h2{font-size:27px}
.atlas-source-index nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.atlas-colophon nav{display:block}
}

@media(prefers-reduced-motion:reduce){.atlas-home *{scroll-behavior:auto;transition:none;animation:none}
}

@media(forced-colors:active){.city-wayfinder a[aria-current]{border:2px solid Highlight}
.city-night :is(a,button,input,summary):focus-visible,.city-interchange :is(a,button,input,summary):focus-visible{outline-color:Highlight}
}

/* In a short or zoomed viewport, the guide returns to ordinary flow. */
@media(max-height:500px){.city-wayfinder{position:static}}

/* The latitude workbench is a flat, fixed-scale instrument inside the exhibition frame. */
.area-workbench{margin:0;padding:14px 18px 18px}
.area-workbench h2{font:800 22px/1.4 var(--serif);margin:0 0 8px}
.area-control-slot{min-height:86px}
.area-control-slot>[data-area-hint]{font-size:16px;padding:16px 0}
.area-workbench fieldset{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:4px 24px;margin:6px 0 10px;padding:0;border:0}
.area-workbench legend{font-size:16px;padding:0;font-weight:700}
.area-range-row{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:18px}
.area-range-row label{display:flex;align-items:baseline;gap:8px;font-size:18px;font-weight:800}
.area-range-row output{font-size:24px;min-width:4em}
.area-range-row input{width:100%;min-height:48px;accent-color:#345b89}
.area-presets{display:flex;gap:8px}
.area-presets button{min-height:44px;min-width:48px;padding:8px 12px;border:1px solid #173039;background:#ffffff;color:#173039;font-size:18px;font-weight:700}
.area-presets button[aria-pressed=true]{background:#173039;color:#fffaf0}
.area-conclusion{font-size:18px;border-block:1px solid #819091;padding:9px 0;margin:6px 0 12px}
.area-conclusion strong{margin-right:12px}
.area-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.area-panel header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}
.area-panel h3{font:800 22px/1.4 var(--serif)}
.area-panel h3 span{display:block;font:500 16px/1.6 var(--sans)}
.area-panel header>p{display:flex;flex-direction:column;align-items:end;font-size:16px}
.area-panel [data-area-ratio]{font:800 clamp(32px,3.4vw,44px)/1.2 var(--serif);font-variant-numeric:tabular-nums}
.area-panel svg{display:block;width:100%;max-width:560px;height:auto;aspect-ratio:640/444;margin:0 auto;background:#ffffff}
.area-world-outline{fill:#e5ece7;stroke:#607b77;stroke-width:1.5}
.area-graticule{fill:none;stroke:#91a6a0;stroke-width:1}
.area-equator{fill:none;stroke:#4d6662;stroke-width:2}
.area-panel [data-area-patch]{stroke:#173039;stroke-width:1;fill-opacity:.92}
.area-panel [data-area-label]{fill:#fffaf0;font:800 28px var(--sans);pointer-events:none}
.area-domain{font-size:16px;margin-top:4px}
.area-workbench figcaption{margin-top:14px;font-size:16px;line-height:1.7}
.area-workbench figcaption p+p{margin-top:8px}
.area-key{font-weight:700}
.area-workbench details{border-top:1px solid #819091;margin-top:12px}
.area-workbench details a{display:inline-flex;align-items:center;min-height:44px}
.city-map-afternote{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:32px;align-items:center;margin-top:24px}
.city-map-afternote>.media-photo{margin:0}
.city-night-link{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:10px;min-height:90px;text-decoration:none;border-top:1px solid currentColor;padding:18px 0}
.city-night-link strong{font:800 26px/1.5 var(--serif)}
.city-exit-reason{display:flex;align-items:center;gap:6px;min-height:44px;margin:4px 0 8px;font-size:16px}
.city-interchange :is(a,button,input,summary):focus-visible{outline-color:#135e75}
@media(max-width:820px){.area-workbench fieldset{grid-template-columns:minmax(0,1fr);gap:4px}.area-control-slot{min-height:142px}.area-presets{justify-content:start}.area-panel header{align-items:start;flex-direction:column;gap:4px}.area-panel header>p{align-items:start}.city-map-afternote{gap:20px;grid-template-columns:minmax(0,1fr) 220px}}
@media(max-width:600px){.area-workbench{padding:12px}.area-workbench h2{font-size:21px}.area-panels{grid-template-columns:minmax(0,1fr);gap:22px}.area-panel header{flex-direction:row;align-items:center;gap:12px}.area-panel header>p{align-items:end}.area-panel h3{font-size:21px}.area-panel [data-area-ratio]{font-size:36px}.area-conclusion{font-size:18px}.area-conclusion strong{display:block}.area-range-row{gap:10px;grid-template-columns:auto minmax(100px,1fr)}.area-range-row output{font-size:22px;min-width:3.5em}.area-presets{gap:10px}.area-presets button{min-width:52px}.city-map-afternote{grid-template-columns:minmax(0,1fr)}.city-map-afternote>.media-photo{max-width:280px}.city-night-link strong{font-size:24px}}
@media(forced-colors:active){.city-interchange :is(a,button,input,summary):focus-visible{outline-color:Highlight}.area-panel [data-area-patch]{stroke:CanvasText}.area-presets button{border:1px solid CanvasText}}

.room-note{display:block;font-size:16px;line-height:1.75;color:#465e63;margin-top:8px}
.city-first-walk{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;max-width:840px;margin:0 auto 24px;font-size:16px}.city-first-walk a{display:inline-flex;align-items:center;min-height:44px;font-weight:800;color:#135e75}

@media(forced-colors:active){.atlas-home :is(a,button,input,summary):focus-visible,.atlas-home .gateway-search :is(input,button):focus-visible,.city-map-apparatus :is(a,button,input,summary):focus-visible,.city-map-apparatus>.city-read:focus-visible{outline-color:Highlight}}

/* A single short scenic walk. Runtime numbers are set only by the external controller. */
.city-walk-track{position:relative}
.journey-interior{grid-area:1/1;z-index:1;pointer-events:none;opacity:var(--interior-opacity,0);transform:scale(var(--interior-zoom,1));transform-origin:center;transition:opacity .12s linear,transform .12s linear}
.journey-interior img{display:block;width:100%;height:auto;aspect-ratio:1586/992;object-fit:contain}
.journey-arrival-question{grid-area:1/1;z-index:2;align-self:end;justify-self:center;width:72%;max-width:600px;margin:0 0 16px;padding:18px 24px;background:#fffffff2;border-radius:20px;color:#173039;box-shadow:0 4px 24px #1730391a}
.journey-arrival-question .eyebrow{font-size:16px}
.journey-arrival-question h2{font:800 28px/1.45 var(--serif);margin:8px 0}
.journey-arrival-question a{display:inline-flex;align-items:center;min-height:44px;font-size:18px;font-weight:800;color:#135e75}
.library-journey[data-journey-motion=on] [data-journey-frame]{position:sticky;top:0;z-index:2;background:#f5fafc}
.library-journey[data-journey-motion=on] .city-coordinate-plane{transform:scale(var(--city-zoom,1));opacity:var(--city-opacity,1);transition:transform .12s linear,opacity .12s linear}
.library-journey[data-journey-motion=on] .city-portal-copy{background:#ffffffe8;border-radius:14px;padding:10px;width:27%;margin:2% 0 0 3%}
.library-journey[data-journey-motion=on] .library-arrival>picture{display:none}
.library-journey[data-journey-motion=on] .library-welcome{grid-area:auto;max-width:1320px;width:100%;text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:8px 32px;padding:28px}
.library-journey[data-journey-motion=on] .library-welcome>.eyebrow{grid-column:1/-1}
.library-journey[data-journey-motion=on] .library-welcome h2{margin:0}
.library-journey[data-journey-motion=on] .library-welcome nav{align-content:center;justify-content:start}
@media(max-width:700px){.library-journey[data-journey-motion=on] .city-stage{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}.library-journey[data-journey-motion=on] .city-portal-copy{grid-area:1/1;width:100%;margin:0;padding:20px;border-radius:0;background:#edf7fa}.library-journey[data-journey-motion=on] :is(.city-coordinate-plane,.journey-interior,.journey-arrival-question){grid-area:2/1}.journey-arrival-question{width:92%;margin-bottom:10px;padding:10px 16px}.journey-arrival-question h2{font-size:22px}.journey-arrival-question h2 br{display:none}.journey-arrival-question a{font-size:18px}.library-journey[data-journey-motion=on] .library-welcome{display:block;padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.library-journey[data-journey-motion] [data-journey-frame]{position:static}.library-journey[data-journey-motion] .city-coordinate-plane{transform:none;opacity:1;transition:none}.journey-interior{transition:none}}
@media(forced-colors:active){.journey-arrival-question{background:Canvas;color:CanvasText;border:1px solid CanvasText;box-shadow:none}.journey-arrival-question a:focus-visible{outline:3px solid Highlight}}
