@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap');
:root{font-family:'Fira Code','SFMono-Regular',Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;color:#000;background:#fbf7ee;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #9f987b;outline-offset:4px}[hidden]{display:none!important}
#gallery{position:fixed;inset:0;width:100%;height:100%;touch-action:none}
header{position:fixed;inset:16px 18px auto;z-index:4;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.brand{font:28px 'Fira Code',monospace;color:#fff7eb;text-decoration:none;text-shadow:0 1px 7px #0005;pointer-events:auto}.brand span{font:9px 'Fira Code',monospace;letter-spacing:1px;margin-left:12px;opacity:.65}.has-started .brand{visibility:hidden}
#menu-open{pointer-events:auto;border:1px solid #ffffff26;border-radius:5px;background:#20231fb3;color:#f6f5ef;padding:9px 12px;font-size:11px;display:flex;align-items:center;gap:8px;backdrop-filter:blur(8px)}#menu-open:hover{background:#242821e6}#menu-open>span{font-size:12px;line-height:1}
#welcome{position:fixed;left:24px;bottom:24px;z-index:3;background:#fffdf5ee;padding:23px 25px;width:290px;border-radius:5px;backdrop-filter:blur(10px)}h1{font:34px/1.05 'Fira Code',monospace;font-weight:400;margin:0 0 13px;letter-spacing:-.5px}.intro{font-size:11px;line-height:1.75;color:#6f746c;margin:0 0 17px}#enter,.primary{border:0;background:#303a31;color:#fffef7;padding:11px 17px;font-size:11px;border-radius:3px}#enter:hover,.primary:hover{background:#465146}button:disabled{opacity:.5;cursor:wait}#load-status{font-size:8px;color:#8a8e84;line-height:1.5;margin:10px 0 0}
#reticle{position:fixed;left:50%;top:50%;width:2px;height:2px;margin:-1px 0 0 -1px;border-radius:50%;background:#ffffff70;pointer-events:none;z-index:2}
dialog{border:0;border-radius:6px;background:#fbfaf5;color:#252825;width:calc(100% - 40px);max-width:540px;max-height:calc(100dvh - 40px);padding:32px;box-shadow:0 12px 70px #0004}dialog::backdrop{background:#10161070;backdrop-filter:blur(3px)}dialog h2{font:400 38px/1.05 'Fira Code',monospace;margin:0 0 18px;letter-spacing:-.5px}dialog p{font-size:12px;line-height:1.75;color:#74796f}dialog a{font-size:11px;color:#586854;text-underline-offset:4px}.eyebrow{font-size:8px;font-weight:500;letter-spacing:1.25px;color:#858b7f;margin:0 0 12px}.close{position:absolute;right:10px;top:8px;background:transparent;border:0;width:32px;height:32px;font-size:23px;color:#868b80;z-index:5}.close:hover{color:#242821}.note{font-size:9px!important;line-height:1.65!important;color:#92988b!important}
#menu-dialog{left:auto;right:18px;top:16px;margin:0;width:250px;max-width:calc(100% - 36px);padding:23px;background:#202620f5;color:#f6f6ed;box-shadow:0 8px 35px #0003;border:1px solid #ffffff1c;backdrop-filter:blur(12px)}#menu-dialog::backdrop{background:#10141010;backdrop-filter:none}#menu-dialog h2{font:500 14px 'Fira Code',monospace;margin:0 0 16px;letter-spacing:0}#menu-dialog .close{color:#a9b0a3}#room-location{font-size:8px;letter-spacing:.5px;color:#929e8c;line-height:1.8;margin-bottom:15px}#room-location span{display:block;font-size:11px;color:#d1d8ca;letter-spacing:0}#menu-dialog nav{display:flex;flex-direction:column;gap:1px}#menu-dialog nav button{border:0;background:transparent;color:#f0f2e8;padding:11px 0;text-align:left;font-size:11px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff0f}#menu-dialog nav button:hover{color:#c2d4b5}#menu-dialog nav button span{font-size:9px;color:#87967b;font-weight:400}#menu-dialog .menu-help{font-size:9px;color:#808d76;line-height:1.9;margin:15px 0 0;padding-top:13px;border-top:1px solid #ffffff12}
#art-dialog{max-width:920px;padding:0;overflow:auto}.art-detail-layout{display:grid;grid-template-columns:1.15fr 1fr;min-height:500px}.art-image-panel{position:relative;background:#232722;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:36px 30px 58px;min-height:420px}.art-image-panel img{width:100%;height:100%;max-height:60dvh;object-fit:contain;transform-origin:center;transition:transform .18s;user-select:none}.art-image-panel>p{position:absolute;bottom:11px;left:20px;font-size:8px;color:#7d8777}.zoom-controls{position:absolute;right:17px;bottom:17px;display:flex;gap:4px;z-index:2}.zoom-controls button{border:1px solid #ffffff12;background:#30382d;color:#dbe1d3;border-radius:3px;font-size:12px;padding:7px 10px}.art-copy{padding:43px 34px 28px}.art-copy .artist{font-size:12px;color:#75806a;line-height:1.5;margin:0 0 9px}.art-copy h2{font-size:36px;margin-bottom:12px}.art-copy .year{font-size:10px;color:#99a18d;margin:0 0 22px}dl{font-size:10px;margin:23px 0}dl>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #e1e5d8}dt{color:#959d89}dd{margin:0;text-align:right}#return-gallery{margin-top:22px;width:100%;text-align:left;display:flex;justify-content:space-between}.art-copy .note{margin-bottom:18px}
#collection-dialog{max-width:960px}.guide-intro{font-size:11px!important;margin-top:-5px;margin-bottom:24px}#collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}#collection-grid button{border:0;text-align:left;background:transparent;padding:0;color:#303b29}#collection-grid button:hover img{filter:brightness(1.08)}#collection-grid img{height:140px;object-fit:contain;background:#e8ebe2;width:100%;display:block;margin-bottom:10px;padding:8px;transition:filter .2s}#collection-grid strong{display:block;font:20px/1.1 'Fira Code',monospace;margin-bottom:6px}#collection-grid small{font-size:8px;color:#8b967f;display:block}.work-location{display:block;color:#849176;font-size:7px;letter-spacing:.4px;margin-top:8px}
.source-links{display:flex;flex-direction:column;gap:12px;margin:20px 0}#about-dialog{max-width:600px}#map-dialog{max-width:900px}#room-map{width:100%;background:#eef0e8;margin:12px 0 18px;padding:14px;overflow:visible}#map-rooms rect{fill:#885748;stroke:#eef0e8;stroke-width:.8}#map-rooms rect[data-room="711"]{fill:#426274}#map-rooms text{fill:#fff7e9;font:2.7px 'Fira Code',monospace;text-anchor:middle;pointer-events:none}#room-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#room-shortcuts button{background:#edf0e6;border:0;border-radius:3px;padding:14px 10px;text-align:left;color:#626f54;font-size:10px}#room-shortcuts button:hover{background:#e1e7d6}#room-shortcuts strong{display:block;font:24px 'Fira Code',monospace;margin-bottom:4px}
#touch-controls{position:fixed;bottom:20px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:end;z-index:2;pointer-events:none}#touch-controls>div{text-align:center;pointer-events:auto}#touch-controls button{width:42px;height:38px;background:#20261f80;border:1px solid #ffffff1c;color:#e1e7d9;border-radius:4px;margin:2px;touch-action:none;font-size:18px}#touch-controls>span{display:none}
@media(max-width:650px){header{inset:14px}#menu-dialog{top:14px;right:14px}#welcome{left:18px;bottom:18px;width:270px;padding:22px}.art-detail-layout{grid-template-columns:1fr}.art-image-panel{min-height:260px;height:40dvh;padding:25px 25px 55px}.art-copy{padding:29px}.art-copy h2{font-size:32px}#collection-grid{grid-template-columns:repeat(2,1fr)}#collection-grid img{height:125px}#collection-dialog{padding:28px}#room-shortcuts{grid-template-columns:repeat(2,1fr)}}

/* The gallery interface follows saivenna.com's paper, type, and navigation. */
header{display:none}.has-started header{display:flex}
#welcome{inset:0;left:0;bottom:0;width:100%;height:100dvh;padding:56px;background:#fbf7ee;border-radius:0;overflow:auto;backdrop-filter:none}
.welcome-shell{display:flex;min-height:100%;align-items:flex-start}
.site-nav{width:64px;flex:0 0 64px;margin-right:56px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:14px;line-height:24px}
.site-nav a{color:#000;text-decoration:none}.site-nav a:hover{text-decoration:underline}.site-nav .current{font-weight:600}
.welcome-content{border-left:1px solid #d8cfbf;padding-left:56px;max-width:672px;min-height:100%;flex:1;min-width:0}
#welcome h1{font:600 18px/1.5 'Fira Code',monospace;letter-spacing:0;margin:0 0 32px;text-transform:lowercase}
.welcome-label{font-size:11px;line-height:1.7;color:#a89c84;letter-spacing:.05em;margin:0 0 12px}
.gallery-preview{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border:1px solid #e6dcc9;border-radius:4px;margin:0 0 22px}
#welcome .intro{font-size:13px;line-height:1.85;color:#6b6357;margin:0 0 18px}
#enter,.primary{background:transparent;border:1px solid #d8cfbf;border-radius:4px;color:#000;padding:9px 14px;font-size:12px;line-height:1.5}
#enter:hover,.primary:hover{background:#f1eadc}#enter span{margin-left:8px}
.welcome-controls{font-size:10px;line-height:1.85;color:#8b806d;margin:19px 0 0}
#load-status{font-size:10px;line-height:1.75;color:#a89c84;margin:14px 0 0}
#menu-open{background:#fbf7eeed;border:1px solid #d8cfbf;color:#000;border-radius:4px;text-transform:lowercase;backdrop-filter:blur(8px)}#menu-open:hover{background:#f1eadc}
dialog{background:#fbf7ee;color:#000;border:1px solid #d8cfbf;border-radius:4px;box-shadow:0 12px 50px #0002}
dialog::backdrop{background:#17140f40;backdrop-filter:blur(2px)}dialog h2{font:600 18px/1.5 'Fira Code',monospace;letter-spacing:0;margin-bottom:20px}dialog p{color:#6b6357}dialog a{color:#000}.eyebrow{color:#a89c84;letter-spacing:.05em}.close{color:#8b806d}.note{color:#8b806d!important}
#menu-dialog{background:#fbf7eef5;border:1px solid #d8cfbf;color:#000;padding:23px;box-shadow:0 8px 35px #0002}#menu-dialog h2{font:600 14px/1.5 'Fira Code',monospace;text-transform:lowercase}#menu-dialog .close{color:#8b806d}
#room-location{color:#a89c84}#room-location span{color:#6b6357}#menu-dialog nav button{color:#000;border-top:1px solid #e6dcc9;text-transform:lowercase}#menu-dialog nav button:hover{color:#6b6357}#menu-dialog nav button span{color:#a89c84}
#menu-dialog .menu-help{color:#8b806d;border-color:#e6dcc9}.back-projects{border-top:1px solid #e6dcc9;color:#6b6357!important;text-decoration:none;font-size:10px!important;padding-top:13px;margin-top:4px}.back-projects:hover{text-decoration:underline}
.art-image-panel{background:#eae3d6}.art-image-panel>p{color:#8b806d}.zoom-controls button{background:#fbf7ee;color:#000;border:1px solid #d8cfbf}.art-copy h2{font-size:20px;line-height:1.4}.art-copy .artist{color:#6b6357}.art-copy .year{color:#a89c84}dl>div{border-color:#e6dcc9}dt{color:#8b806d}
#collection-grid button{color:#000}#collection-grid img{background:#f1eadc}#collection-grid strong{font:500 13px/1.5 'Fira Code',monospace}#collection-grid small,.work-location{color:#8b806d}
#room-map{background:#f1eadc}#map-rooms rect{stroke:#fbf7ee}#room-shortcuts button{background:#f1eadc;color:#6b6357;border:1px solid #e6dcc9}#room-shortcuts button:hover{background:#eae3d6}#room-shortcuts strong{font:500 18px 'Fira Code',monospace}
@media(max-width:767px){#welcome{padding:24px}.welcome-shell{display:block}.site-nav{width:100%;flex-direction:row;justify-content:flex-end;gap:16px;margin:0 0 48px;font-size:12px;line-height:20px}.welcome-content{border:0;padding-left:0;max-width:616px}#welcome h1{margin-bottom:30px}#welcome .intro{font-size:12px}.art-copy h2{font-size:20px}}
@media(min-width:768px) and (max-width:1100px){#welcome{padding:40px}.site-nav{font-size:13px;margin-right:40px}.welcome-content{padding-left:40px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Phone and tablet ergonomics, including notches and short landscape viewports. */
.welcome-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.return-home{font-size:11px;line-height:1.7;color:#6b6357;text-decoration:none;padding:10px 0}.return-home:hover{text-decoration:underline}
#welcome{overscroll-behavior:contain}.gallery-preview{max-width:100%}dialog{overscroll-behavior:contain;overflow:auto;overflow-wrap:anywhere}.art-detail-layout>*,#collection-grid>*{min-width:0}#detail-image{min-width:0}#detail-source{display:inline-block;overflow-wrap:anywhere}
.touch-ui #welcome{padding: max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
.touch-ui #enter,.touch-ui .return-home,.touch-ui .site-nav a{min-height:44px;display:inline-flex;align-items:center}.touch-ui .site-nav{gap:4px 16px;margin-bottom:28px}
.touch-ui header{inset:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) auto calc(12px + env(safe-area-inset-left))}.touch-ui #menu-open{min-height:44px;padding:10px 14px;font-size:12px}
#touch-controls{bottom:calc(16px + env(safe-area-inset-bottom));left:calc(14px + env(safe-area-inset-left));right:calc(14px + env(safe-area-inset-right));user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#touch-controls button{width:54px;height:54px;margin:3px;background:#fbf7eed9;color:#252015;border:1px solid #d8cfbf99;font-size:20px;backdrop-filter:blur(5px)}#touch-controls button.pressed{background:#d8cfbf;color:#000;transform:translateY(1px)}#touch-controls>span{display:block;align-self:flex-end;margin-bottom:5px;padding:7px 9px;border-radius:4px;background:#fbf7eebd;color:#6b6357;font-size:10px;line-height:1.5}
.touch-ui dialog{width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:24px 20px}
.touch-ui .close{width:44px;height:44px;background:#fbf7eef5;border:1px solid #e6dcc9;border-radius:4px;right:8px;top:8px}
.touch-ui dialog h2{padding-right:34px}.touch-ui dialog p{font-size:12px}.touch-ui .eyebrow{padding-right:34px;line-height:1.7}
.touch-ui #menu-dialog{right:calc(12px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));width:280px}.touch-ui #menu-dialog nav button{min-height:46px;font-size:12px}.touch-ui .back-projects{min-height:44px;display:flex;align-items:center;font-size:11px!important}
.touch-ui #art-dialog{padding:0}.touch-ui .art-detail-layout{grid-template-columns:1fr;min-height:0}.touch-ui .art-image-panel{min-height:0;height:clamp(200px,34dvh,340px);padding:44px 18px 60px}.touch-ui .art-image-panel>p{font-size:9px;left:16px}.touch-ui .art-copy{padding:24px 20px}.touch-ui .art-copy h2{font-size:19px;padding-right:0}.touch-ui .art-copy .note{font-size:10px!important}.touch-ui .zoom-controls{right:12px;bottom:12px}.touch-ui .zoom-controls button{min-width:44px;min-height:44px;font-size:14px}.touch-ui #return-gallery{min-height:44px;font-size:12px}.touch-ui dl{font-size:11px}.touch-ui dl>div{display:grid;grid-template-columns:85px minmax(0,1fr);gap:12px}.touch-ui dt,.touch-ui dd{overflow-wrap:anywhere}
.touch-ui #collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.touch-ui #collection-grid img{height:125px}.touch-ui #collection-grid small{font-size:10px;line-height:1.6}.touch-ui .work-location{font-size:9px;line-height:1.6}.touch-ui #room-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.touch-ui #room-shortcuts button{min-height:60px;font-size:11px}.touch-ui .source-links a{min-height:44px;display:flex;align-items:center}
@media(max-width:360px){#touch-controls button{width:50px;height:50px}.touch-ui #welcome{padding:16px}.touch-ui .site-nav{gap:4px 12px}.touch-ui #collection-grid{gap:18px 10px}.touch-ui #collection-grid img{height:105px}}
@media(max-height:500px) and (max-width:1000px){#welcome{padding-top:16px;padding-bottom:24px}.site-nav{margin-bottom:16px}.gallery-preview{max-height:180px;width:auto;max-width:100%}#welcome h1{margin-bottom:16px}#touch-controls button{width:48px;height:48px;margin:2px}#touch-controls{bottom:calc(8px + env(safe-area-inset-bottom))}.touch-ui #menu-dialog .menu-help{display:none}.touch-ui .art-image-panel{height:230px}.touch-ui #menu-dialog{padding:18px 20px}}

.art-close-bar,.dialog-close-bar{position:sticky;top:0;height:0;z-index:5}
