@font-face{font-family:Sentient;src:url('./fonts/Sentient-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:Inter;src:url('./fonts/Inter-Variable.ttf') format('truetype');font-display:swap}
:root{--paper:#f6f4ee;--ink:#111;--muted:#444;--line:#d3d0c6;--accent:#ffb401;--guide-width:342px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 Inter,Arial,sans-serif;overflow:hidden}
button,input,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;line-height:1.2;color:inherit;border:1px solid var(--ink);background:var(--paper);min-height:44px;padding:10px 15px;cursor:pointer;border-radius:0}
button:hover{background:#ebe8de}button:active{background:var(--accent)}
button[aria-pressed=true]{background:var(--accent)}
button:disabled{opacity:.5;cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
a{color:inherit;text-underline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:12px;transform:translateY(-200%);padding:12px;background:var(--accent);z-index:20}.skip-link:focus{transform:none}
.masthead{height:100px;padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}
.identity{display:block;text-decoration:none;flex-shrink:0}
h1{font:34px/1.04 Sentient,Georgia,serif;letter-spacing:-.7px;margin:0 0 7px}
.identity span{font-size:12px;color:var(--muted)}
.header-actions{display:flex;gap:8px}.header-actions button{border-color:var(--line)}
.header-actions button[aria-pressed=true]{border-color:var(--ink)}
.experience{height:calc(100dvh - 100px);display:grid;grid-template-columns:var(--guide-width) minmax(0,1fr)}
body.guide-hidden .experience{grid-template-columns:minmax(0,1fr)}
#guide{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--paper);z-index:4}
.guide-content{padding:26px 26px 30px;overflow-y:auto;flex:1;scrollbar-width:thin}
h2{font:30px/1.13 Sentient,Georgia,serif;letter-spacing:-.45px;margin:0 0 18px}
.standfirst{font-size:16px;line-height:1.55;margin:0 0 24px}
#story p{margin:0 0 17px;color:var(--muted)}
#story p:last-child{margin-bottom:0}
.sources{margin-top:27px;padding-top:17px;border-top:1px solid var(--line)}
.sources p{font-size:12px;color:var(--muted);margin:0 0 9px}
.sources a{display:block;font-size:12px;margin:9px 0;overflow-wrap:anywhere;min-height:24px}
.curation-control{border-top:1px solid var(--line);padding:17px 26px 18px}
.light-study{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:4px}
.light-study select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;min-height:36px;max-width:170px;padding:6px 8px;cursor:pointer}
.light-study select:disabled{opacity:.5;cursor:wait}
.curation-control #light-note{margin:0 0 10px;font-size:10px}
.switch{display:flex;align-items:center;gap:10px;min-height:32px;cursor:pointer;font-size:13px}
.switch input{width:18px;height:18px;accent-color:var(--ink);margin:0;flex-shrink:0;cursor:pointer}
.curation-control p{font-size:11px;color:var(--muted);margin:8px 0 0;line-height:1.5}
.curation-control .switch+.switch{margin-top:5px}
#stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#dbdcd7}
#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}
canvas:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.view-caption{position:absolute;top:23px;left:24px;padding:10px 13px;background:var(--paper);border:1px solid var(--line);pointer-events:none;font-size:13px;line-height:1.4}
.view-caption span{display:block}.view-caption span+span{font-size:11px;color:var(--muted);margin-top:2px}
.stage-tools{position:absolute;right:24px;top:23px;display:flex;gap:6px}
.stage-tools button{font-size:12px;padding:10px 12px;border-color:var(--line)}
#walk-toggle{border-color:var(--ink);background:var(--accent)}#walk-toggle:hover{background:#e9a500}
#walk-hud{position:absolute;right:24px;top:80px;width:260px;padding:12px;background:var(--paper);border:1px solid var(--line);font-size:11px;line-height:1.6}
#walk-hud p{margin:0 0 10px}#walk-hud>div{display:flex;gap:6px}#walk-hud button{font-size:11px;padding:9px 11px;border-color:var(--line)}
#walk-hud #walk-map{display:block;border-top:1px solid var(--line);margin-top:11px;padding-top:9px}
#map-floor{display:block;font-weight:600;font-size:11px;margin-bottom:5px}
#walk-map svg{display:block;width:100%;height:112px;background:#e8e7df}
#walk-map small{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.map-outline{fill:#f6f4ee;stroke:#111;stroke-width:1.5}.map-ramp{fill:none;stroke:#8a6500;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.map-partition{fill:none;stroke:#b1aea4;stroke-width:1}
#map-position{fill:var(--accent);stroke:#111;stroke-width:2}
body.walking .viewpoints,body.walking #interaction-help{display:none}
body.guided-mode .viewpoints,body.guided-mode #interaction-help,body.archive-open .viewpoints,body.archive-open #interaction-help{display:none}
#focus-marker{position:absolute;width:46px;height:46px;border:3px solid var(--accent);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--ink),0 0 0 8px rgba(255,180,1,.24);pointer-events:none;z-index:2}
#focus-marker:after{content:'';position:absolute;width:6px;height:6px;top:17px;left:17px;border-radius:50%;background:var(--ink)}
#experience-panel{position:absolute;bottom:23px;left:24px;width:min(395px,calc(100% - 48px));padding:16px;background:var(--paper);border:1px solid var(--ink);z-index:3}
.experience-panel-head,.archive-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
#experience-progress{font-size:11px;color:var(--muted)}
#experience-panel h2{font-size:25px;margin:8px 0 6px}
#experience-copy{font-size:12px;line-height:1.5;margin:0 0 12px;max-width:45ch}
.experience-panel-actions{display:flex;gap:6px}.experience-panel-actions button,#experience-close,#archive-close{font-size:11px;min-height:36px;padding:7px 11px;border-color:var(--line)}
#experience-next{background:var(--accent);border-color:var(--ink)}
#archive-panel{position:absolute;inset:18px 24px;max-width:800px;margin:auto;padding:18px;background:var(--paper);border:1px solid var(--ink);z-index:5;display:flex;flex-direction:column;min-height:0}
#archive-panel h2{font-size:25px;margin:0}
.archive-images{position:relative;flex:1;min-height:120px;margin:14px 0 10px;background:#e8e7df;overflow:hidden}
.archive-images img,.archive-images canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#archive-historic{clip-path:inset(0 50% 0 0)}
#archive-divider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--accent);box-shadow:0 0 0 1px var(--ink);pointer-events:none}
#archive-panel label{font-size:12px;font-weight:600}#archive-range{width:100%;accent-color:var(--ink);margin:8px 0}
#archive-panel p{font-size:11px;line-height:1.4;color:var(--muted);margin:2px 0 5px}
#archive-panel a{font-size:11px;line-height:1.3;overflow-wrap:anywhere}
#walk-touch{display:none}
#interaction-help{position:absolute;bottom:87px;right:24px;max-width:300px;padding:9px 12px;margin:0;background:var(--paper);border:1px solid var(--line);font-size:11px;line-height:1.5;pointer-events:none}
#interaction-help span{color:var(--muted)}
.viewpoints{position:absolute;bottom:23px;left:24px;right:24px;display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;padding-bottom:1px}
.viewpoints button{white-space:nowrap;flex-shrink:0;font-size:12px;padding:10px 13px}
#loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--paper);z-index:6;text-align:center;padding:24px}
#loading p{font:28px/1.2 Sentient,Georgia,serif;margin:0 0 14px}#load-detail{display:block;max-width:300px;font-size:13px;color:var(--muted)}
#retry{margin-top:22px}
.collection-section{font:22px/1.2 Sentient,Georgia,serif;margin:25px 0 9px}
.collection-entry{display:flex;align-items:center;gap:13px;border:0;border-bottom:1px solid var(--line);width:100%;padding:13px 0;text-align:left;background:none;min-height:65px}
.collection-entry:hover{background:#ebe8de}
.collection-entry img{width:54px;height:65px;object-fit:contain;background:#e8e4da}
.collection-entry span{display:block}.collection-entry strong{font-weight:500;font-size:13px;line-height:1.4;display:block}
.collection-entry small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:4px}
.art-detail{margin:0 0 22px}.art-detail img{display:block;width:100%;max-height:330px;object-fit:contain;background:#e8e4da}.art-detail figcaption{font-size:11px;line-height:1.5;color:var(--muted);margin-top:9px}
#item-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:21px}#item-actions:empty{margin:0}#item-actions button{font-size:12px}
body[data-story=discover] #item-actions{margin:0 0 20px}
@media(min-width:1400px){:root{--guide-width:366px}.guide-content{padding:32px}.curation-control{padding-left:32px;padding-right:32px}h2{font-size:34px}}
@media(max-width:950px){:root{--guide-width:300px}.masthead{padding-left:22px;padding-right:22px}.header-actions{gap:5px}.header-actions button{font-size:12px;padding:10px 12px}.guide-content{padding:24px 22px}.curation-control{padding-left:22px;padding-right:22px}.stage-tools{right:16px;top:16px}.view-caption{left:16px;top:16px}.viewpoints{left:16px;right:16px;bottom:16px}#interaction-help{right:16px;bottom:78px}.view-caption span+span{display:none}}
@media(max-width:700px){
  .masthead{height:124px;padding:15px 18px;display:block}h1{font-size:29px;margin-bottom:4px}.identity span{font-size:11px}.identity{width:max-content}
  .header-actions{position:absolute;top:75px;left:18px;right:18px;gap:4px}.header-actions button{min-height:44px;padding:7px 8px;font-size:10px}.header-actions button:last-child{margin-left:auto}
  .experience,body.guide-hidden .experience{height:calc(100dvh - 124px);display:block}
  #stage{height:100%}#guide{position:absolute;top:124px;left:0;right:0;bottom:0;border-right:0;z-index:8;max-width:470px}
  .guide-content{padding:24px;}.curation-control{padding:15px 24px}h2{font-size:31px}.standfirst{font-size:16px}
  .view-caption{left:14px;top:14px;padding:7px 10px;font-size:12px;max-width:calc(100% - 123px)}
  .stage-tools{right:14px;top:14px;display:block}.stage-tools button{display:block;padding:8px 9px;min-height:44px;font-size:11px}.stage-tools button+button{margin-top:5px}
  #walk-hud{top:100px;left:14px;right:auto;width:178px;padding:8px;font-size:10px}
  #walk-hud>div{justify-content:space-between}#walk-hud #mouse-look{display:none}
  #walk-hud p{margin-bottom:7px}#walk-hud #walk-map{margin-top:7px;padding-top:7px}
  #walk-map svg{height:76px}#walk-map small{font-size:8px}
  #experience-panel{left:14px;right:14px;bottom:16px;width:auto;padding:13px}
  #experience-panel h2{font-size:22px}
  #archive-panel{inset:8px 10px;padding:12px}#archive-panel h2{font-size:21px}
  #walk-touch:not([hidden]){position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:68px 78px 68px;gap:5px;grid-template-areas:'. forward .' 'left back right'}
  #walk-touch button{font-size:11px;padding:10px 5px;border-color:var(--line)}#walk-touch [data-step=forward]{grid-area:forward}#walk-touch [data-step=left]{grid-area:left}#walk-touch [data-step=back]{grid-area:back}#walk-touch [data-step=right]{grid-area:right}
  #interaction-help{left:14px;right:auto;bottom:80px;max-width:calc(100% - 28px);font-size:10px;padding:7px 9px}#interaction-help span{display:none}
  .viewpoints{left:14px;right:14px;bottom:22px;gap:4px;padding-bottom:6px}.viewpoints button{font-size:11px;padding:10px 12px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
