:root{font:13px Arial,Helvetica,sans-serif;color:#f3eee2;background:#102329;--paper:#f3eee2;--ink:#152d30;--accent:#f4a471;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a,summary{color:inherit;font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border:0;background:none;padding:0;cursor:pointer}a{text-decoration:none}button:hover,a:hover{text-decoration:underline;text-underline-offset:5px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}#atlas{position:relative;height:100svh;overflow:hidden;isolation:isolate}#landscape{position:absolute;inset:0;touch-action:none;cursor:grab;outline-offset:-5px}#landscape.dragging{cursor:grabbing}canvas{width:100%;height:100%;display:block;opacity:0}#atlas[data-state=ready] canvas{opacity:1}.scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#071a2460,transparent 27%,transparent 78%,#071a2480)}header{position:absolute;z-index:4;left:32px;right:32px;top:28px;pointer-events:none}.wordmark{font:400 106px/.8 'Bodoni 72',Didot,'Times New Roman',serif;letter-spacing:-7px;pointer-events:auto}header p{font-size:11px;margin:20px 0 0}header nav{position:absolute;right:0;top:8px;display:flex;gap:28px;pointer-events:auto}header nav a{padding:10px 0;font-size:13px}footer{position:absolute;z-index:5;left:32px;right:32px;bottom:22px;display:flex;gap:30px;align-items:center;pointer-events:none;font-size:11px}footer button,footer details{pointer-events:auto}.location,.navigation{display:flex;align-items:center;gap:24px}.navigation{margin-left:auto;gap:16px}footer button,summary{min-height:44px;display:flex;align-items:center}.source summary span{margin-left:8px;opacity:.55;font-size:10px}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.help summary{border:1px solid #f3eee245;border-radius:50%;min-height:28px;width:28px;justify-content:center;font-size:12px}.source>div,.help>div{position:absolute;bottom:calc(100% + 12px);width:300px;max-width:calc(100vw - 44px);max-height:calc(100svh - 100px);overflow:auto;background:#10272df5;padding:20px;line-height:1.7;font-size:11px;border-top:1px solid #f3eee245}.source>div{left:0}.help>div{right:0}.source p,.help p{margin:0 0 12px}.source a{text-decoration:underline}.source button{color:var(--accent);touch-action:none;user-select:none;-webkit-user-select:none}#ground[aria-pressed=true]{text-decoration:underline}.subtle{opacity:.6;font-size:10px}.help b{font-weight:400;color:var(--accent);display:inline-block;min-width:66px}#hint{font-size:10px;opacity:.8;transition:opacity .6s ease;pointer-events:none;line-height:1.6;margin:0}.exploring #hint{opacity:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#archive{position:absolute;z-index:3;inset:0;background:#111f24;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s}#archive figure{position:absolute;inset:70px 22% 90px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}#archive img{max-width:100%;max-height:calc(100% - 80px);object-fit:contain;width:auto;height:auto}#archive figcaption{font-size:10px;display:flex;gap:5px 20px;flex-wrap:wrap;justify-content:center;line-height:1.7}#archive figcaption small{width:100%;text-align:center;opacity:.65;font-size:9px}#archive figcaption a{text-decoration:underline}#atlas[data-history=open] #archive{opacity:1;visibility:visible;pointer-events:auto}#atlas[data-history=open] #reset,#atlas[data-history=open] .help,#atlas[data-history=open] #hint{display:none}#history-status{position:absolute;left:32px;bottom:80px;z-index:6;font-size:11px}#history-status:empty{display:none}
@media(max-width:900px){footer{flex-wrap:wrap;gap:0 24px}#hint{position:absolute;bottom:100%;left:0;margin-bottom:5px}#archive figure{inset:175px 24px 110px}}
@media(max-width:600px){header{left:22px;right:22px;top:25px}.wordmark{font-size:78px;letter-spacing:-5px}header p{font-size:10px;margin-top:16px;max-width:170px}header nav{gap:17px;top:0}header nav a{font-size:11px}footer{left:22px;right:22px;bottom:16px;font-size:10px;gap:0 12px}.location{gap:18px}.source summary{flex-wrap:wrap;max-width:110px;line-height:1.5;align-content:center}.source summary span{margin-left:0;display:block;width:100%;font-size:9px}.navigation{gap:10px}.help summary{min-height:26px;width:26px}.source>div,.help>div{width:276px}#hint{font-size:9px;max-width:270px}#archive figure{inset:160px 20px 110px}#archive figcaption{font-size:9px;gap:4px 14px}#history-status{left:22px;bottom:90px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#landscape:focus-visible{outline:1px solid #f3eee24a}#landscape.dragging{outline:none}

/* Work uses a quiet, stationary view of the current landscape. */
:is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) footer{display:none}
:is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header{color:var(--paper);top:0;left:0;right:0;padding:20px 32px 18px;height:120px;background:linear-gradient(#091d22f5,#091d22e6 70%,#071a20bc)}
:is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header nav{right:32px;top:28px}
:is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header .wordmark{font-size:64px;letter-spacing:-4px}
:is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header p{display:none}
#work-link[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.work{display:none;position:absolute;inset:120px 0 0;z-index:5;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-color:#a1a99a #102329;outline:none;padding:22px clamp(24px,5vw,76px) 56px;color:var(--paper);background:linear-gradient(180deg,#071a20bc,#071a20df 65%,#071a20e9);scroll-padding:24px}
.work-return{position:fixed;z-index:5;left:32px;top:83px;font-size:11px;line-height:1.5;min-height:30px;display:flex;align-items:center;pointer-events:auto}
.projects{max-width:1280px;margin:0 auto}
.work:not([hidden]) .projects{animation:work-enter .28s ease both}
.project{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,1.6fr);grid-template-rows:auto 1fr;column-gap:clamp(32px,6vw,90px);padding:64px 0 70px;border-top:1px solid #f3eee233;align-items:start}
.project:first-child{padding-top:0;border-top:0}
.project-heading{grid-column:1;grid-row:1;min-width:0}
.project-summary{grid-column:1;grid-row:2;min-width:0}
.project-number{font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em;color:#bfbdab;margin:0 0 20px}
.work h2{font:400 clamp(32px,3.8vw,55px)/1.04 'Bodoni 72',Didot,Georgia,serif;letter-spacing:-.045em;margin:0 0 25px}
.project-role{font-size:11px;line-height:1.6;color:#c8c8b9;margin:0 0 22px}
.project-summary p:not([class]){font-size:14px;line-height:1.8;max-width:32em;margin:0 0 27px}
.project-link{font-size:12px;display:inline-block;padding:8px 0;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#f4a47188;color:#fac49a}
.project figure{margin:0;min-width:0;grid-column:2;grid-row:1 / span 2}
.project-image{position:relative;display:block;overflow:hidden;background:#f6f5f1;line-height:0}
.project--snow .project-image{aspect-ratio:1141/1230}
.project--map .project-image{aspect-ratio:1280/720}
.project--nucla .project-image{aspect-ratio:1599/1029;background:transparent}
.project-image img{display:block;width:100%;height:auto;opacity:0;transition:opacity .2s ease}
.project-image[data-image=ready] img{opacity:1}
.image-open{position:absolute;right:12px;bottom:12px;background:#102329ed;color:#f3eee2;padding:10px 12px;line-height:1;font-size:10px;opacity:0;transition:opacity .15s ease;pointer-events:none}
.project-image:hover .image-open,.project-image:focus-visible .image-open{opacity:1}
.image-fallback{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;font-size:14px;line-height:1.5;color:#102329;background:#eee9df}
.work figcaption{font-size:10px;line-height:1.7;color:#d0d1c5;padding-top:13px;display:flex;flex-direction:column;gap:3px}
.figure-note{font-size:9px;color:#b4b9b0}
.work figcaption a{text-decoration:underline;text-underline-offset:3px}
.project--map{grid-template-columns:1fr 1fr;row-gap:30px}
.project--map h2{font-size:clamp(32px,4.6vw,62px);margin-bottom:0}
.project--map .project-summary{grid-column:2;grid-row:1;padding-top:4px}
.project--map figure{grid-column:1 / -1;grid-row:2}
.work-end{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #f3eee233;padding:32px 0 16px;font-size:12px}
.work-end a:first-child{color:#fac49a}
@keyframes work-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.project--snow{grid-template-columns:minmax(240px,1fr) minmax(0,760px)}}
@media(max-width:700px){
 :is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header{padding:20px 22px;height:112px}
 :is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header nav{right:22px;top:25px}
 :is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header .wordmark{font-size:54px;letter-spacing:-3px}
 :is(#atlas[data-view=work],html:not(.enhanced) #atlas:has(#work:target)) header p{margin-top:14px}
 .work{top:112px;padding:13px 22px 30px}
 .work-return{left:22px;top:76px;font-size:10px}
 .project{display:flex;flex-direction:column;gap:0;padding:42px 0 44px}
 .project-number{font-size:9px;margin-bottom:13px}
 .work h2,.project--map h2{font-size:37px;margin-bottom:17px}
 .project-role{font-size:10px;margin-bottom:16px}
 .project-summary p:not([class]){font-size:13px;line-height:1.75;margin-bottom:13px}
 .project-link{font-size:11px}
 .project figure{width:100%;margin:6px 0 24px}
 .project--map .project-summary{padding:0}
 .image-open{opacity:1;font-size:9px;right:8px;bottom:8px;padding:9px}
 .work figcaption{font-size:9px;line-height:1.65}
 .figure-note{font-size:9px}
 .work-end{font-size:10px;padding-top:26px}
}
@media(prefers-reduced-motion:reduce){.work:not([hidden]) .projects{animation:none}}

/* Native fragment routes also work before modules load or with JS disabled. */
header h1{margin:0;font:inherit}
html:not(.enhanced) .work:target,.enhanced #atlas[data-view=work] .work{display:block}
#atlas[data-state=fallback] #landscape{background:#102329 url('./fallback.webp') center/cover no-repeat}
html:not(.enhanced) #hint{display:none}
html:not(.enhanced) .image-fallback{display:flex!important}
html:not(.enhanced) .project-image{aspect-ratio:auto;min-height:120px}
html:not(.enhanced) .project-image img,html:not(.enhanced) :is(#reset,#history-toggle,.help,#ground,#hint){display:none}
#atlas[data-state=fallback] canvas{opacity:0}
#atlas[data-state=fallback] .help{display:none}
#atlas[data-state=loading] #history-toggle{pointer-events:none;opacity:.5}
@media(min-width:701px){.project--snow .project-image{width:min(100%,calc(68svh * 1141 / 1230));margin-left:auto}.project--snow figcaption{max-width:calc(68svh * 1141 / 1230);margin-left:auto}}
@media(max-height:500px) and (min-width:601px){header{top:18px}.wordmark{font-size:70px}header p{margin-top:12px}footer{bottom:10px}#archive figure{inset:100px 14% 70px}#archive figcaption{font-size:9px;gap:4px 14px}}

/* Keep source attribution visible without adding another footer control. */
.source summary{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}
.source summary .place{margin:0;font:inherit;opacity:1;display:block;width:auto}
.source summary .data-credit{margin:0;font-size:10px;opacity:.8;display:block;width:auto;white-space:nowrap}
@media(max-width:600px){.source summary{max-width:none;line-height:1.3}.source summary .place>span{display:inline;width:auto;margin-left:5px}.source summary .data-credit{font-size:9px}.location{gap:12px}}
