:root{color-scheme:dark;--black:#19221d;--yellow:#dcc269;--cream:#eee9dc;--muted:#a6ad9e;--line:rgba(225,229,209,.18);--paper:#e8e4d6;--ink:#28362c;--red:#994737;--mono:'IBM Plex Mono',monospace;--sans:'Manrope','PingFang SC',sans-serif;--serif:'Libre Caslon Display',Georgia,serif;--display:'Barlow Condensed',sans-serif;--header:78px;}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{color:var(--cream);background:var(--black);font:13px/1.6 var(--sans)}button,input,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}[hidden]{display:none!important}.glass{background:rgba(39,49,40,.88);border:1px solid var(--line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.ambient{display:none}.grain{position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.cursor-dot{display:none;position:fixed;z-index:1000;width:23px;height:23px;background:var(--yellow);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);animation:cursor-breathe 2.6s ease-in-out infinite;opacity:.86}@keyframes cursor-breathe{50%{transform:translate(-50%,-50%) scale(1.18)}}@media(pointer:fine){body.cursor-ready,body.cursor-ready button,body.cursor-ready a,body.cursor-ready .art-card{cursor:none}body.cursor-ready .cursor-dot{display:block}}
/* A permanent museum header keeps the site and collection one step apart. */
.site-header{position:fixed;inset:0 0 auto;height:var(--header);z-index:40;display:flex;align-items:center;background:#202a24;border-bottom:1px solid var(--line);padding:0 30px;gap:40px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font:600 24px/.95 var(--display);letter-spacing:.09em;min-width:256px}.brand small{display:block;font:8px var(--mono);letter-spacing:.17em;margin-top:7px;color:#afb5a4}.brand-mark{position:relative;display:grid;place-items:center;width:41px;height:43px;border:1px solid #88917d;color:var(--yellow);font:500 21px var(--display);letter-spacing:-.03em}.brand-mark>span{position:absolute;top:-9px;right:-7px;background:#202a24;font:16px var(--sans)}.site-nav{align-self:stretch;display:flex;gap:28px}.site-nav button{position:relative;background:none;color:#8f998a;font:9px var(--mono);display:flex;gap:10px;align-items:center;white-space:nowrap}.site-nav button span{font:12px var(--sans);color:#b5bdac}.site-nav button.active{color:var(--yellow)}.site-nav button.active span{color:var(--cream)}.site-nav button.active:after{content:'';position:absolute;bottom:-1px;height:3px;left:0;right:0;background:var(--yellow)}.header-end{margin-left:auto;display:flex;align-items:center;gap:25px}.museum-meta{display:flex;align-items:center;gap:7px;font:8px var(--mono);letter-spacing:.04em;color:#a6af9c}.museum-meta #work-count{color:var(--cream)}.live-dot{width:5px;height:5px;background:var(--yellow);border-radius:50%}.about-trigger{padding:9px 0 9px 23px;border-left:1px solid var(--line);background:none;font-size:11px}.about-trigger span{color:var(--yellow);margin-left:12px}
.fort-map{position:fixed;inset:var(--header) 0 0;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);z-index:2;transition:opacity .35s,visibility .35s}.form-kicker{margin:0 0 14px;font:9px var(--mono);color:var(--yellow);letter-spacing:.12em}
.map-viewport{position:relative;min-width:0;min-height:0;overflow:hidden;color:var(--ink);background:radial-gradient(ellipse at 50% 45%,#f3efe3 0%,#e7e3d5 67%,#d6d2c1 100%)}.map-viewport:before{content:'';position:absolute;inset:20px;pointer-events:none;border:1px solid rgba(57,71,46,.13);background:linear-gradient(rgba(67,80,54,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(67,80,54,.035) 1px,transparent 1px);background-size:60px 60px}.map-viewport:after{content:'FORT YORK / TORONTO';position:absolute;right:32px;bottom:80px;writing-mode:vertical-rl;font:8px var(--mono);letter-spacing:.2em;opacity:.4;pointer-events:none}#fort-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none;opacity:0;transition:opacity .6s}.map-viewport.ready #fort-canvas{opacity:1}.map-tools{position:absolute;right:40px;top:38px;display:flex;border:1px solid #b8bba6;background:#eeeade;box-shadow:0 4px 12px #343b2010}.map-tools button{width:38px;height:36px;font-size:20px;background:none;color:#46523c}.map-tools button+button{border-left:1px solid #cccdbb}.map-tools button:hover{background:#d7d9c6}.map-compass{position:absolute;right:41px;top:97px;width:53px;height:53px;border:1px solid #b4b9a0;border-radius:50%;background:transparent;color:#626e50}.map-compass:after{content:'';position:absolute;inset:5px;border:1px dotted #a1aa8c;border-radius:50%;pointer-events:none}.map-compass i{position:relative;display:block;width:100%;height:100%}.map-compass i:before{content:'';position:absolute;left:50%;top:6px;margin-left:-3px;border:3px solid transparent;border-bottom:10px solid var(--red);border-top:0}.map-compass b{position:absolute;left:0;right:0;top:20px;font:9px var(--mono)}.map-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .5s}.map-viewport.ready .map-labels{opacity:1}.map-pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:7px;padding:0;border:0;background:none;color:#28362c;font-size:9px;white-space:nowrap;pointer-events:auto;will-change:transform;filter:drop-shadow(0 2px 3px #191f1625)}.map-pin:after{content:'';position:absolute;left:13px;top:100%;width:1px;height:13px;background:#6e7759}.map-pin i{display:grid;place-items:center;width:27px;height:27px;border:1px solid #ede8d6;border-radius:50%;background:#354934;color:#eee9dc;font:500 9px var(--mono);font-style:normal}.map-pin span{display:none;background:#f0ecdf;padding:5px 8px;border:1px solid #b6bca4}.map-pin.hover span,.map-pin:focus-visible span,.map-pin.active span{display:inline}.map-pin.hover i,.map-pin.active i{background:var(--red)}.map-pin.active{z-index:3}.space-hint{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:9px;color:#8b9681;pointer-events:none;margin:0}.space-hint span{font:8px var(--mono);color:#b9c2a9}.space-hint i{width:2px;height:2px;border-radius:50%;background:currentColor;margin:0 7px}.map-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:11px/1.8 var(--mono);color:#657257;text-align:center}.map-loading.failed{max-width:300px;background:var(--paper);padding:20px}.map-card{position:absolute;left:30px;right:30px;bottom:77px;padding:22px 26px;background:#f2eee2f5;border:1px solid #bec2aa;box-shadow:0 12px 40px #27301d18;display:grid;grid-template-columns:1.1fr 1.5fr;column-gap:26px;backdrop-filter:blur(16px)}.map-card h2{font:400 29px/1.05 var(--serif);margin:0 0 8px;grid-column:1;max-width:300px}.map-card .primary-button{grid-column:1/-1;justify-self:start;margin-top:18px}.map-card .dialog-close{right:9px;top:9px;color:#7c866e;border-color:#c6cbb4}.primary-button,.secondary-button{min-height:39px;padding:10px 18px;border-radius:2px;font:10px var(--sans);font-weight:600;transition:background .2s}.primary-button{background:var(--yellow);color:#263020}.primary-button:hover{background:#ecd48b}.map-card .primary-button{background:var(--red);color:#fff9eb}.map-card .primary-button:hover{background:#79392c}.secondary-button{background:transparent;border:1px solid var(--line);color:#b6c09d}
/* The collection is an exhibition room, with restrained brass fittings. */
body[data-mode=hall] .fort-map{opacity:0;visibility:hidden;pointer-events:none}.museum,.dock,.pager{transition:opacity .35s,visibility .35s}body[data-mode=map] .museum,body[data-mode=map] .dock,body[data-mode=map] .pager{opacity:0;visibility:hidden;pointer-events:none}.museum{position:fixed;inset:var(--header) 0 0;background:radial-gradient(ellipse at 50% 38%,#364032 0%,#1d271f 65%,#151f18 100%)}.museum-space{position:relative;width:100%;height:100%;overflow:hidden}.hall-head{position:absolute;z-index:12;top:29px;left:32px;right:32px;display:flex;align-items:center;gap:22px}.hall-back{display:flex;align-items:center;gap:9px;border-radius:2px;padding:10px 14px;background:transparent;font-size:10px}.hall-back span{color:var(--yellow);font-size:16px}.hall-title .form-kicker{font-size:8px;margin:0 0 4px;color:#9da98f}.hall-title h2{font:400 26px/1.2 var(--serif);margin:0}.horizon{position:absolute;left:8%;right:8%;top:54%;height:1px;background:linear-gradient(90deg,transparent,#b7ba8e30,transparent)}.floor-grid{position:absolute;left:-50%;right:-50%;height:65%;top:64%;opacity:.05;transform:perspective(600px) rotateX(69deg);transform-origin:center top;background-image:linear-gradient(#e9de9b 1px,transparent 1px),linear-gradient(90deg,#e9de9b 1px,transparent 1px);background-size:75px 75px;mask-image:radial-gradient(ellipse at center top,#000,transparent 65%);pointer-events:none}.camera-rig{position:absolute;inset:0;perspective:1250px;perspective-origin:50% 48%;touch-action:none;overflow:hidden}.scene{position:absolute;left:50%;top:45%;width:0;height:0;transform-style:preserve-3d;will-change:transform}.art-card{position:absolute;left:0;top:0;width:clamp(140px,13.5vw,194px);transform-style:preserve-3d;transition:transform 1.3s cubic-bezier(.2,.76,.16,1);cursor:pointer;outline-offset:12px}.art-card-float{transform-style:preserve-3d}.scene-wave .art-card-float{animation:wave-breathe 6.5s ease-in-out infinite;animation-delay:var(--float-delay)}@keyframes wave-breathe{0%,100%{transform:translateY(13px)}50%{transform:translateY(-19px)}}.art-card-shell{transform-style:preserve-3d;transition:transform .4s ease,filter .4s}.art-card:hover .art-card-shell,.art-card:focus-visible .art-card-shell{transform:translateZ(28px) scale(1.035);filter:brightness(1.08)}.art-frame{position:relative;aspect-ratio:3/4;padding:7px;border:1px solid #b9b39470;background:#d9d4bf;box-shadow:0 25px 55px #0006}.art-media{width:100%;height:100%;overflow:hidden;background:#283022}.art-media img,.art-media video{display:block;width:100%;height:100%;object-fit:cover}.art-number{position:absolute;left:13px;bottom:13px;color:#f8efdb;font:9px var(--mono);background:#1d291ce6;padding:3px 6px}.art-open-mark{position:absolute;right:13px;bottom:12px;font-size:17px;text-shadow:0 2px 6px #000;opacity:0;transition:opacity .25s}.art-card:hover .art-open-mark,.art-card:focus-visible .art-open-mark{opacity:1}.art-label{display:block;padding:12px 0 0;color:#d6d9c6;font-size:10px}.art-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.art-date{display:block;color:#8f9a80;font:7px var(--mono);padding-top:5px;letter-spacing:.06em}.museum .space-hint{position:absolute;bottom:156px;left:50%;transform:translateX(-50%)}.dock{position:fixed;z-index:20;left:50%;bottom:25px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;height:58px;padding:6px;border-radius:40px;box-shadow:0 10px 30px #0003}.layout-switcher{display:flex;gap:4px;height:100%}.layout-button{display:flex;align-items:center;gap:8px;height:100%;padding:0 18px;border-radius:30px;background:transparent;color:#b0baa2;font-size:10px;white-space:nowrap}.layout-button:hover{background:#ffffff0a}.layout-button.active{background:#d8c996;color:#253027}.layout-button i{display:block;position:relative;width:16px;height:15px}.wave-icon:before,.wave-icon:after{content:'';position:absolute;left:0;right:0;top:4px;height:5px;border-top:1px solid currentColor;border-radius:50%;transform:rotate(-15deg)}.wave-icon:after{top:9px;transform:rotate(15deg)}.random-icon{background:radial-gradient(circle,currentColor 1.3px,transparent 1.8px) 0 0/7px 7px}.circle-icon{border:1px solid currentColor;border-radius:50%}.dock-divider{height:23px;width:1px;background:var(--line)}.upload-trigger{display:flex;align-items:center;gap:7px;height:100%;padding:0 18px 0 8px;border-radius:30px;background:transparent;color:var(--yellow);font-size:10px;white-space:nowrap}.upload-trigger b{font-size:20px;font-weight:400}.pager{position:fixed;z-index:20;left:50%;bottom:96px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:3px;border-radius:30px}.pager button{width:30px;height:30px;border-radius:50%;background:none;color:var(--yellow);font-size:14px}.pager span{min-width:44px;text-align:center;font:9px var(--mono);color:#c2c9b2}
dialog{padding:0;border:1px solid var(--line);color:var(--cream);background:#253027;box-shadow:0 40px 100px #0006}dialog::backdrop{background:#101710bf;backdrop-filter:blur(8px)}.viewer{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border:0;background:#e7e3d5;color:var(--ink);overflow:hidden}.viewer-shell{height:100%;padding:24px 32px 20px;display:grid;grid-template-columns:minmax(0,1fr) 306px;grid-template-rows:47px minmax(0,1fr) 39px;gap:18px 30px}.viewer-toolbar{grid-column:1/-1;justify-self:stretch;display:flex;align-items:center;gap:7px;padding:0 0 14px;background:none;border:0;border-bottom:1px solid #bec3ab;backdrop-filter:none}.toolbar-button{display:flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 12px;background:transparent;color:#4c5c40;font-size:10px;white-space:nowrap}.toolbar-button:first-child{padding-left:0;margin-right:auto}.toolbar-button:hover{background:#d5d8c5}.toolbar-button span{font-size:18px}.toolbar-divider{display:none}.magnifier-toggle i{display:block;width:12px;height:12px;border:1px solid currentColor;border-radius:50%;position:relative;margin-right:3px}.magnifier-toggle i:after{content:'';position:absolute;width:5px;height:1px;right:-4px;bottom:-2px;transform:rotate(45deg);background:currentColor}.magnifier-toggle[aria-pressed=true]{background:var(--ink);color:var(--cream)}.danger{color:var(--red)}.viewer-stage{position:relative;min-width:0;min-height:0;display:flex;justify-content:center;align-items:center;padding:20px;perspective:1200px;touch-action:pan-y;background:radial-gradient(ellipse,#f6f2e6,#dbd8c9);border:1px solid #c5c8b3}.viewer-art{position:relative;flex:0 0 auto;padding:7px;aspect-ratio:3/4;border:1px solid #b6b89e;background:#f2eddd;box-shadow:0 22px 50px #29352230;transform-style:preserve-3d;transition:transform .2s ease-out}.viewer-art img,.viewer-art video{display:block;width:100%;height:100%;object-fit:contain;background:#20291e;user-select:none}.viewer-copy{align-self:center;max-height:100%;overflow:auto;padding:26px 4px 26px 0;border:0;background:transparent;backdrop-filter:none}.viewer-index{margin-bottom:25px;color:var(--red);font:9px var(--mono);letter-spacing:.12em}.viewer-copy h1{margin:0 0 16px;font:400 39px/1.1 var(--serif);letter-spacing:-.02em;overflow-wrap:anywhere}.viewer-year{margin:0 0 24px;padding-bottom:22px;border-bottom:1px solid #c0c6ab;color:#7b836a;font:9px var(--mono)}.viewer-description{margin:0;color:#657156;font-size:12px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}.source-link{display:inline-block;margin-top:24px;font-size:10px;color:#4d5d40;text-underline-offset:5px}.viewer-navigation{grid-column:1/-1;justify-self:center;display:flex;align-items:center;gap:27px;padding:0;background:none;border:0;backdrop-filter:none}.viewer-navigation button{width:36px;height:36px;background:none;color:var(--ink);font-size:20px}.viewer-navigation span{font:9px var(--mono);letter-spacing:.12em;color:#6e7b5e}.magnifier{position:fixed;z-index:5;display:none;width:190px;height:190px;overflow:hidden;border:2px solid var(--red);border-radius:50%;pointer-events:none;background:#20291e;box-shadow:0 16px 50px #0004}.magnifier.visible{display:block}.magnifier canvas{width:100%;height:100%;display:block}.media-error{display:grid;height:100%;place-items:center;padding:20px;color:var(--muted);font-size:11px;text-align:center}.metadata-dialog,.about-dialog,.confirm-dialog{width:min(490px,calc(100vw - 28px));max-height:calc(100dvh - 32px);border-radius:3px;background:#253027}#metadata-form,.about-content,.confirm-dialog>div{position:relative;padding:34px}.dialog-close{position:absolute;right:16px;top:15px;width:27px;height:27px;border:1px solid var(--line);background:transparent;color:#c4ccaf;font-size:19px}.metadata-dialog h2,.about-dialog h2,.confirm-dialog h2{margin:0 0 16px;font:400 36px/1.1 var(--serif)}.form-intro,.confirm-dialog p{color:#aab59c;font-size:11px;line-height:1.8;margin:0 0 22px}#metadata-form label{display:block;margin:0 0 14px;color:#c1c8ac;font-size:11px}#metadata-form input,#metadata-form textarea{display:block;width:100%;margin-top:7px;padding:10px 12px;background:#ffffff06;border:1px solid #dfe9ae33;border-radius:2px;resize:vertical;outline-offset:2px;font-size:12px}#metadata-form input::placeholder,#metadata-form textarea::placeholder{color:#7e8c71}.file-field{padding:13px;border:1px dashed #eaf1bc40}.file-field input{padding:0!important;border:0!important;background:transparent!important;font-size:10px!important}.file-field span{display:block;color:#8b9a7b;font-size:9px;margin-top:9px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:22px}.form-error{margin:0;color:#e2b097;font-size:11px}.form-error:empty{display:none}.danger-fill{background:#d3a68a}.about-content>p:not(.form-kicker){color:#b6c0a7;font-size:12px;line-height:1.95}.about-content .about-note{font-size:10px!important;color:#8f9e7f!important}.about-links{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.about-links a{color:var(--yellow);font-size:10px;text-decoration:none}.status-note{position:fixed;z-index:100;bottom:108px;left:50%;transform:translateX(-50%);padding:10px 18px;max-width:calc(100vw - 30px);color:#dbddc6;background:#303d29;border:1px solid var(--line);font-size:11px;text-align:center}
@media(max-width:1100px){.site-header{gap:26px;padding:0 24px}.brand{min-width:238px}.header-end{gap:18px}.museum-meta #meta-label{display:none}.map-card{left:22px;right:22px;column-gap:16px}.map-card h2{font-size:25px}}
@media(max-width:800px){:root{--header:66px;}.site-header{padding:0 18px;gap:22px}.brand{min-width:200px;font-size:21px}.brand-mark{width:34px;height:36px}.brand small{font-size:6px}.site-nav{gap:18px}.site-nav button{font-size:8px;gap:5px}.site-nav button span{font-size:10px}.museum-meta{display:none}.about-trigger{padding-left:15px}.map-tools{right:25px;top:112px;flex-direction:column}.map-tools button+button{border-left:0;border-top:1px solid #cccdbb}.map-compass{right:23px;top:26px}.map-card{display:block;bottom:70px;padding:17px 20px}.map-card .primary-button{margin-top:13px}.viewer-shell{grid-template-columns:minmax(0,1fr) 240px;gap:16px 22px;padding:20px}.viewer-copy h1{font-size:33px}}
@media(max-width:600px){:root{--header:64px}.site-header{padding:0 16px;gap:15px}.brand{min-width:0;gap:9px;font-size:20px}.brand small{font-size:5px;letter-spacing:.12em}.brand-mark{width:31px;height:33px;font-size:18px}.brand-mark>span{font-size:13px}.site-nav{margin-left:auto;gap:15px}.site-nav button{font-size:0;gap:0}.site-nav button span{font-size:10px}.header-end{margin-left:0;gap:0}.about-trigger{font-size:0;border:0;padding:8px 0}.about-trigger span{font-size:18px;margin:0}.fort-map{display:flex;flex-direction:column}.map-viewport{flex:1;width:100%}.map-viewport:before{inset:12px}.map-viewport:after{display:none}.map-tools{right:23px;top:93px}.map-tools button{width:30px;height:30px;font-size:17px}.map-compass{width:42px;height:42px;top:23px;right:23px}.map-compass i:before{top:3px;border-bottom-width:8px}.map-compass b{top:15px;font-size:8px}.map-card{left:18px;right:18px;bottom:62px;padding:16px 18px}.map-card h2{font-size:27px;max-width:calc(100% - 15px)}.map-card .primary-button{min-height:35px;padding:8px 13px;font-size:9px;margin-top:12px}.map-pin i{width:24px;height:24px;font-size:8px}.map-pin span{font-size:8px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.map-pin:after{left:12px;height:10px}.hall-head{left:18px;right:18px;top:20px;gap:12px;align-items:flex-start}.hall-back{font-size:0;min-width:34px;height:35px;padding:0;justify-content:center}.hall-back span{font-size:18px}.hall-title{min-width:0}.hall-title .form-kicker{font-size:7px}.hall-title h2{font-size:23px}.art-card{width:128px}.art-frame{padding:5px}.art-date{font-size:6px}.art-label{font-size:9px}.dock{bottom:19px;max-width:calc(100vw - 22px);gap:6px;height:53px;padding:5px}.layout-button{padding:0 12px;gap:6px;font-size:9px}.layout-button i{width:13px;height:13px}.upload-trigger{gap:4px;padding:0 10px 0 5px;font-size:9px}.pager{bottom:83px}.museum .space-hint{bottom:128px;font-size:8px;gap:4px}.museum .space-hint span{font-size:7px}.space-hint i{margin:0 3px}.viewer-shell{padding:13px 14px 12px;grid-template-columns:minmax(0,1fr);grid-template-rows:40px minmax(0,1fr) auto 34px;gap:10px}.viewer-toolbar{grid-column:1;padding-bottom:8px;gap:0}.toolbar-button{height:30px;padding:0 8px;font-size:9px;gap:4px}.viewer-stage{padding:10px}.viewer-copy{grid-column:1;width:100%;max-height:23dvh;align-self:stretch;padding:7px 3px}.viewer-index{font-size:7px;margin-bottom:8px}.viewer-copy h1{font-size:29px;margin-bottom:6px}.viewer-year{font-size:8px;margin-bottom:10px;padding-bottom:10px}.viewer-description{font-size:10px;line-height:1.75}.source-link{font-size:9px;margin-top:12px}.viewer-navigation{grid-column:1}.viewer-navigation button{width:31px;height:31px}.magnifier{width:144px;height:144px}#metadata-form,.about-content,.confirm-dialog>div{padding:28px 23px}.status-note{bottom:92px}}
@media(max-width:370px){.site-nav{gap:10px}.site-nav button span{font-size:9px}.brand small{display:none}.layout-button{padding:0 9px}.toolbar-button{padding:0 6px;font-size:8px}}
@media(max-height:620px) and (min-width:601px){.viewer-shell{padding:12px 20px;grid-template-rows:40px minmax(0,1fr) 32px;gap:8px 20px}.viewer-copy{padding:12px 0}.viewer-copy h1{font-size:28px}.viewer-description{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.map-compass{background:#ece8d9d9}
@media(max-width:370px){.brand{font-size:17px;gap:7px;letter-spacing:.07em;white-space:nowrap}.brand-mark{width:28px;height:31px;font-size:16px;flex-shrink:0}.site-header{gap:12px}}

/* An open sky, a quiet identity, and controls that float above the model. */
:root { --map-ink:#253e47; --map-glass:rgba(249,252,252,.64); --map-edge:rgba(255,255,255,.76); }
.brand { font:600 25px/1.05 var(--sans); letter-spacing:-.045em; gap:12px; }
.brand-mark { width:42px; height:42px; padding:4px; border:0; border-radius:13px; color:inherit; flex-shrink:0; }
.brand-mark svg { display:block; width:100%; height:100%; }
.brand small { font:7px var(--mono); letter-spacing:.17em; margin-top:7px; }
.directory-toggle { display:none; }
body[data-mode="map"] .site-header { display:flex; height:auto; padding:29px 36px; background:linear-gradient(180deg,rgba(226,239,245,.35),rgba(226,239,245,0)); border:0; box-shadow:none; pointer-events:none; }
body[data-mode="map"] .brand { color:var(--map-ink); min-width:0; pointer-events:auto; font-size:29px; }
body[data-mode="map"] .brand small { display:block; color:#607b86; font-size:7px; letter-spacing:.18em; }
body[data-mode="map"] .brand-mark { background:rgba(255,255,255,.33); border:1px solid rgba(255,255,255,.55); backdrop-filter:blur(18px); }
body[data-mode="map"] .site-nav,body[data-mode="map"] .header-end { display:none; }
body[data-mode="map"] .directory-toggle { display:flex; align-items:center; justify-content:center; gap:9px; margin-left:auto; pointer-events:auto; min-height:44px; padding:0 17px; border-radius:99px; border:1px solid var(--map-edge); background:var(--map-glass); color:var(--map-ink); font-size:11px; font-weight:600; box-shadow:0 6px 24px #34536b0c,inset 0 1px 0 #fff9; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); transition:background .2s; }
.directory-toggle svg { width:17px; height:17px; }
body[data-mode="map"] .directory-toggle:hover,body[data-mode="map"] .directory-toggle[aria-expanded="true"] { background:rgba(255,255,255,.9); }
.map-directory { position:fixed; z-index:50; top:87px; right:36px; width:294px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 108px); overflow:auto; padding:9px; border-radius:24px; border:1px solid var(--map-edge); color:var(--map-ink); background:rgba(249,252,252,.8); box-shadow:0 20px 70px #213f5626,inset 0 1px 0 #fff; backdrop-filter:blur(36px) saturate(120%); -webkit-backdrop-filter:blur(36px) saturate(120%); animation:directory-reveal .24s ease-out; scrollbar-width:thin; }
body[data-mode="hall"] .map-directory { display:none; }
.directory-heading { display:flex; align-items:center; justify-content:space-between; padding:5px 7px 11px 12px; margin:0 0 4px; border-bottom:1px solid #38576413; font-size:11px; font-weight:600; }
.directory-heading button { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; color:#64808b; background:#34536409; font-size:19px; }
#directory-items { display:grid; gap:3px; }
.directory-place { width:100%; display:flex; align-items:center; gap:13px; padding:11px 12px; border-radius:13px; background:transparent; color:inherit; text-align:left; }
.directory-place:hover,.directory-place:focus-visible { background:#fff9; }
.directory-place[aria-pressed="true"] { background:#29474f; color:#fff; }
.place-number { flex:0 0 21px; font:9px var(--mono); opacity:.5; }
.place-name { flex:1; font-size:11px; font-weight:500; line-height:1.6; }
.place-arrow { font-size:14px; opacity:.45; }
@keyframes directory-reveal { from { opacity:0; transform:translateY(-7px) scale(.98); } to { opacity:1; transform:none; } }
.fort-map { inset:0; display:block; }
.map-viewport { width:100%; height:100%; color:var(--map-ink); background:radial-gradient(ellipse at 82% 22%,rgba(255,236,214,.72),transparent 49%),radial-gradient(ellipse at 12% 8%,rgba(177,210,233,.85),transparent 58%),linear-gradient(180deg,#b6d0e1 0%,#dbe7eb 33%,#f1eee7 66%,#d8ddd1 100%); }
.map-viewport::before,.map-viewport::after { display:none; }
#fort-canvas { transition:opacity 1s ease; }
.grain { opacity:.012; }
.arrival-control { position:absolute; z-index:5; bottom:35px; left:50%; transform:translateX(-50%); transition:opacity .45s,visibility .45s; }
.start-exploring { position:relative; display:flex; align-items:center; justify-content:space-between; gap:26px; min-width:205px; height:58px; padding:7px 8px 7px 25px; border:1px solid #ffffff40; border-radius:99px; color:#f7fbfb; background:rgba(37,62,71,.94); box-shadow:0 10px 34px #213d4c24,inset 0 1px 0 #ffffff20; backdrop-filter:blur(24px); font-size:12px; font-weight:500; letter-spacing:.01em; overflow:hidden; }
.start-exploring:hover { background:#1c343d; }
.start-exploring svg { width:40px; height:40px; padding:10px; border-radius:50%; background:#ffffff14; }
body[data-journey="arriving"] .start-exploring::after { content:''; position:absolute; bottom:0; left:22px; right:22px; height:2px; background:#b8d7e1; transform-origin:left; transform:scaleX(var(--arrival-progress,0)); }
body[data-journey="exploring"] .arrival-control,.map-viewport:not(.ready) .arrival-control { opacity:0; visibility:hidden; pointer-events:none; }
body:not([data-journey="exploring"]) .map-viewport .map-labels { opacity:0; visibility:hidden; pointer-events:none; }
body:not([data-journey="exploring"]) .map-viewport .map-tools,body:not([data-journey="exploring"]) .map-viewport .map-compass { opacity:0; visibility:hidden; pointer-events:none; }
.map-tools { top:auto; right:32px; bottom:30px; flex-direction:row; gap:2px; padding:6px; border:1px solid var(--map-edge); border-radius:99px; background:var(--map-glass); box-shadow:0 7px 26px #2b4a5c14,inset 0 1px 0 #fff9; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); transition:opacity .5s,visibility .5s; }
.map-tools button { display:grid; place-items:center; width:38px; height:36px; border-radius:50%; color:#3e5963; }
.map-tools button+button { border:0; }
.map-tools button:hover { background:#fff9; }
.map-tools svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.map-compass { top:91px; right:39px; width:41px; height:41px; padding:0; border:1px solid var(--map-edge); color:#66808a; background:#f9fcfc55; box-shadow:0 4px 18px #28495808; backdrop-filter:blur(12px); transition:opacity .5s,visibility .5s; }
.map-compass::after { display:none; }
.map-compass i::before { top:6px; border-bottom:6px solid #42626c; }
.map-compass b { top:18px; color:#66808a; font:8px var(--mono); }
.map-pin { width:29px; height:29px; display:block; filter:none; }
.map-pin i { width:29px; height:29px; background:rgba(248,253,253,.78); border:1px solid #ffffffd9; color:#29454c; font:500 8px var(--mono); box-shadow:0 3px 12px #233d4926,inset 0 1px 0 #fffd; backdrop-filter:blur(10px); }
.map-pin::after { left:14px; height:13px; background:linear-gradient(#eaf4f2a6,#667d6955); }
.map-pin.hover i,.map-pin.active i,.map-pin:focus-visible i { background:#29474f; color:#fff; border-color:#e5f1ef; }
.map-pin span { position:absolute; top:50%; left:calc(100% + 7px); transform:translateY(-50%); padding:7px 11px; border:1px solid var(--map-edge); border-radius:99px; color:#29454c; background:#f9fcfce6; font-size:9px; max-width:205px; overflow:hidden; text-overflow:ellipsis; box-shadow:0 3px 16px #304e5920; }
.map-pin.label-left span { left:auto; right:calc(100% + 7px); }
.map-card { left:50%; right:auto; bottom:30px; width:max-content; max-width:calc(100% - 350px); transform:translateX(-50%); display:flex; align-items:center; gap:17px; padding:12px 13px 12px 22px; border:1px solid var(--map-edge); border-radius:24px; background:rgba(249,252,252,.82); color:var(--map-ink); box-shadow:0 12px 40px #28475420,inset 0 1px 0 #fffd; backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); }
.map-card h2 { max-width:340px; margin:0; font:600 15px/1.5 var(--sans); letter-spacing:-.025em; }
.map-card .primary-button { margin:0; min-height:40px; padding:9px 18px; border-radius:99px; color:#fff; background:#29474f; font-size:10px; white-space:nowrap; flex-shrink:0; }
.map-card .primary-button:hover { background:#1d363e; }
.map-card .dialog-close { position:static; flex-shrink:0; width:29px; height:29px; border:0; border-radius:50%; color:#6e858c; background:#3859670a; }
.map-loading { color:#55747f; font:10px var(--sans); letter-spacing:.04em; }
.map-loading.failed { background:#f9fcfccc; border-radius:16px; }
.map-fallback { position:absolute; top:55%; left:50%; transform:translateX(-50%); display:grid; gap:8px; width:min(280px,calc(100% - 40px)); }
.map-fallback button { padding:10px 14px; background:var(--map-ink); color:#fff; border-radius:12px; }
@media(max-width:700px) {
  body[data-mode="map"] .site-header { padding:22px 22px; }
  body[data-mode="map"] .brand { font-size:25px; gap:10px; }
  body[data-mode="map"] .brand small { font-size:6px; letter-spacing:.12em; }
  body[data-mode="map"] .brand-mark { width:37px; height:37px; border-radius:12px; }
  body[data-mode="map"] .directory-toggle { padding:0 13px; min-height:40px; font-size:10px; gap:7px; }
  .directory-toggle svg { width:15px; height:15px; }
  .map-directory { top:77px; right:20px; max-height:calc(100dvh - 100px); }
  .map-compass { top:85px; right:23px; width:36px; height:36px; }
  .map-compass i::before { top:4px; }
  .map-compass b { top:16px; font-size:7px; }
  .map-tools { right:20px; bottom:24px; padding:5px; }
  .map-tools button { width:34px; height:34px; }
  .arrival-control { bottom:30px; }
  .start-exploring { height:55px; min-width:200px; font-size:11px; }
  .start-exploring svg { width:37px; height:37px; }
  .map-card { bottom:91px; max-width:calc(100% - 34px); gap:12px; padding:12px 13px 12px 17px; border-radius:22px; }
  .map-card h2 { font-size:13px; }
  .map-card .primary-button { min-height:37px; padding:8px 14px; font-size:9px; }
  .map-pin,.map-pin i { width:27px; height:27px; }
  .map-pin::after { left:13px; }
  .map-pin span { font-size:8px; max-width:160px; }
}
@media(max-width:380px) {
  body[data-mode="map"] .site-header { padding:19px 18px; }
  body[data-mode="map"] .brand { font-size:23px; gap:8px; }
  body[data-mode="map"] .brand small { font-size:5px; }
  body[data-mode="map"] .brand-mark { width:33px; height:33px; padding:3px; }
  .map-directory { right:16px; top:70px; }
  .map-card { flex-wrap:wrap; }
  .map-card h2 { flex:1 1 calc(100% - 40px); order:0; }
  .map-card .dialog-close { order:1; }
  .map-card .primary-button { order:2; }
}
@media(prefers-reduced-motion:reduce) { .map-directory { animation:none; } }

/* The exhibition and its dialogs share the map's light and glass materials. */
:root {
  color-scheme:light;
  --black:#e4edef;
  --cream:#253e47;
  --muted:#69828c;
  --line:rgba(55,89,103,.15);
  --paper:#eef3f3;
  --ink:#253e47;
  --red:#ad5a52;
  --sky-background:radial-gradient(ellipse at 82% 22%,rgba(255,236,214,.72),transparent 49%),radial-gradient(ellipse at 12% 8%,rgba(177,210,233,.85),transparent 58%),linear-gradient(180deg,#b6d0e1 0%,#dbe7eb 33%,#f1eee7 66%,#d8ddd1 100%);
}
.map-viewport { background:var(--sky-background); }
.glass { color:var(--map-ink); border:1px solid var(--map-edge); background:var(--map-glass); box-shadow:0 8px 30px #2a4d5d0d,inset 0 1px 0 #fffa; backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline-color:#548ba3; }
body[data-mode="hall"] .site-header { height:auto; padding:29px 36px; gap:24px; color:var(--map-ink); background:linear-gradient(180deg,#e2eff559,#e2eff500); border:0; }
body[data-mode="hall"] .brand { min-width:0; font-size:29px; }
body[data-mode="hall"] .brand small { color:#607b86; font-size:7px; }
body[data-mode="hall"] .brand-mark { background:#ffffff55; border:1px solid #ffffff8c; backdrop-filter:blur(18px); }
.site-nav { position:absolute; left:50%; top:29px; transform:translateX(-50%); align-self:auto; height:44px; padding:4px; gap:3px; border:1px solid var(--map-edge); border-radius:99px; background:var(--map-glass); box-shadow:0 5px 24px #2a4d5d08; backdrop-filter:blur(24px); }
.site-nav button { font-size:0; gap:0; padding:0 18px; border-radius:99px; color:#63818b; }
.site-nav button span { color:#5f7b85; font-size:10px; }
.site-nav button:hover { background:#ffffff80; }
.site-nav button.active { background:#29474f; box-shadow:0 3px 10px #2b48551a; }
.site-nav button.active span { color:#f9fcfc; }
.site-nav button.active::after { display:none; }
.header-end { gap:12px; }
.museum-meta { height:38px; padding:0 13px; border:1px solid #ffffff80; border-radius:99px; background:#f9fcfc55; color:#657e88; font-size:8px; }
.museum-meta #work-count { color:#29474f; font-weight:500; }
.live-dot { background:#8aabae; }
.about-trigger { display:flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:0 12px; border:1px solid var(--map-edge); border-radius:99px; color:#46646e; background:#f9fcfc88; font-size:10px; }
.about-trigger svg { width:17px; height:17px; }
.about-trigger span { margin:0; color:inherit; font-size:10px; }
.museum { inset:0; color:var(--map-ink); background:radial-gradient(ellipse at 50% 52%,#ffffffad,transparent 72%),var(--sky-background); }
.hall-head { top:119px; left:36px; right:36px; flex-direction:column; align-items:flex-start; gap:16px; pointer-events:none; }
.hall-back { min-height:34px; height:auto; padding:7px 12px; border-radius:99px; gap:7px; font-size:10px; pointer-events:auto; }
.hall-back:hover { background:#ffffffe0; }
.hall-back svg { width:16px; height:16px; }
.hall-back span { font-size:10px; color:inherit; }
.hall-title { max-width:min(660px,100%); }
.hall-title .form-kicker { display:block; margin:0 0 8px; color:#6a858e; font-size:8px; letter-spacing:.12em; }
.hall-title h2 { margin:0; font:600 29px/1.25 var(--sans); letter-spacing:-.045em; text-wrap:balance; }
.scene { top:51%; }
.art-card-shell { transition:transform .4s ease,filter .4s; }
.art-card:hover .art-card-shell,.art-card:focus-visible .art-card-shell { filter:none; }
.art-frame { padding:5px; border:1px solid #ffffffd9; border-radius:16px; background:#fbfdfd99; box-shadow:0 22px 55px #36596926,0 4px 12px #2c4a5910,inset 0 1px 0 #fff; }
.art-media { border-radius:11px; background:#e4ecec; }
.art-media img,.art-media video { opacity:1; }
.art-number { left:12px; bottom:12px; padding:3px 7px; border:1px solid #ffffff80; border-radius:99px; color:#29474f; background:#f9fcfccc; font-size:8px; backdrop-filter:blur(12px); }
.art-open-mark { display:grid; place-items:center; right:11px; bottom:11px; width:26px; height:26px; border:1px solid #ffffff80; border-radius:50%; color:#29474f; background:#f9fcfccc; text-shadow:none; font-size:15px; backdrop-filter:blur(12px); }
.art-label { padding:13px 3px 0; color:#29474f; font-size:10px; font-weight:500; }
.art-date { padding-top:5px; font-size:7px; font-weight:400; color:#6c858d; letter-spacing:.06em; }
.dock { bottom:29px; gap:10px; height:60px; padding:6px; border-radius:99px; box-shadow:0 10px 40px #36596917,inset 0 1px 0 #fff; }
.layout-button { padding:0 18px; color:#647f89; font-size:10px; font-weight:500; }
.layout-button:hover { background:#ffffff80; color:#29474f; }
.layout-button.active { background:#29474f; color:#f9fcfc; box-shadow:0 4px 14px #29474f17; }
.dock-divider { background:#54717d24; }
.upload-trigger { padding:0 17px 0 9px; gap:7px; color:#3b5c68; font-size:10px; font-weight:500; }
.upload-trigger svg { width:18px; height:18px; }
.upload-trigger:hover { background:#ffffff80; }
.pager { bottom:104px; padding:4px; gap:17px; border-radius:99px; box-shadow:0 5px 24px #3659690d; }
.pager button { color:#426572; }
.pager button:hover { background:#ffffff8c; }
.pager span { color:#657f89; }

dialog { color:var(--map-ink); border:1px solid var(--map-edge); background:#f7faf9e8; box-shadow:0 30px 100px #203f5533,inset 0 1px 0 #fff; }
dialog::backdrop { background:#2c4d6233; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.viewer { background:radial-gradient(ellipse at 40% 48%,#ffffffb3,transparent 70%),var(--sky-background); border:0; box-shadow:none; }
.viewer::backdrop { background:#dbe7eb; }
.viewer-shell { padding:27px 36px 24px; grid-template-columns:minmax(0,1fr) 322px; grid-template-rows:46px minmax(0,1fr) 42px; gap:22px 30px; }
.viewer-toolbar { align-self:stretch; padding:0; gap:8px; border:0; border-radius:0; color:var(--map-ink); background:none; box-shadow:none; backdrop-filter:none; }
.toolbar-button { height:40px; padding:0 15px; gap:7px; border:1px solid var(--map-edge); border-radius:99px; color:#466670; background:#f9fcfc99; font-size:10px; box-shadow:0 5px 22px #36596908; backdrop-filter:blur(20px); }
.toolbar-button:first-child { padding-left:13px; margin-right:auto; }
.toolbar-button:hover { background:#ffffffe6; }
.toolbar-button svg { width:18px; height:18px; }
.toolbar-button span { color:inherit; }
.magnifier-toggle[aria-pressed="true"] { color:#fff; background:#29474f; border-color:#29474f; }
.danger { color:#ad5a52; }
.viewer-stage { padding:20px; border:0; border-radius:24px; background:none; }
.viewer-art { padding:6px; border:1px solid #ffffffd9; border-radius:18px; background:#f9fcfc99; box-shadow:0 25px 65px #36596926,0 5px 15px #2c4a5912,inset 0 1px 0 #fff; }
.viewer-art img,.viewer-art video { border-radius:11px; background:#f4f8f7; }
.viewer-copy { padding:26px; border:1px solid var(--map-edge); border-radius:26px; background:#f9fcfc9e; box-shadow:0 12px 40px #3659690a,inset 0 1px 0 #fff; backdrop-filter:blur(28px); }
.viewer-index { margin-bottom:23px; color:#6b8791; font-size:9px; letter-spacing:.1em; }
.viewer-copy h1 { margin:0 0 13px; font:600 27px/1.25 var(--sans); letter-spacing:-.045em; }
.viewer-year { color:#6b858f; font:9px/1.8 var(--mono); margin:0 0 22px; padding-bottom:18px; border-bottom:1px solid #4064701a; }
.viewer-description { color:#59757f; font-size:12px; line-height:1.9; }
.source-link { margin-top:23px; color:#3f6676; font-size:10px; text-decoration-color:#7899a68c; text-underline-offset:5px; }
.viewer-navigation { padding:3px 7px; border:1px solid var(--map-edge); border-radius:99px; background:#f9fcfc99; box-shadow:0 6px 24px #3659690a; backdrop-filter:blur(20px); }
.viewer-navigation button { width:33px; height:33px; border-radius:50%; color:#426572; font-size:18px; }
.viewer-navigation button:hover { background:#fff9; }
.viewer-navigation span { color:#657f89; }
.magnifier { border:2px solid #ffffffd9; background:#f4f8f7; box-shadow:0 12px 40px #2a4a5b40,0 0 0 1px #66899440; }
.media-error { color:#69828c; }

.metadata-dialog,.about-dialog,.confirm-dialog { width:min(490px,calc(100vw - 32px)); border:1px solid var(--map-edge); border-radius:28px; background:linear-gradient(145deg,#f9fcfcf5,#edf4f4f2); backdrop-filter:blur(32px); }
#metadata-form,.about-content,.confirm-dialog>div { padding:34px; }
.dialog-close { width:32px; height:32px; top:18px; right:18px; border:1px solid #ffffffb3; border-radius:50%; color:#6b858f; background:#dbe8ed66; }
.form-kicker { color:#78919a; font-size:8px; }
.metadata-dialog h2,.about-dialog h2,.confirm-dialog h2 { padding-right:17px; margin:0 0 15px; font:600 27px/1.25 var(--sans); letter-spacing:-.045em; }
.form-intro,.confirm-dialog p { color:#6a838d; font-size:11px; line-height:1.85; }
#metadata-form label { color:#52717d; font-size:11px; font-weight:500; }
#metadata-form input,#metadata-form textarea { padding:11px 13px; border:1px solid #a7beca4d; border-radius:12px; color:#29474f; background:#ffffff8c; font-size:12px; box-shadow:inset 0 1px 2px #2f536008; }
#metadata-form input::placeholder,#metadata-form textarea::placeholder { color:#96aab1; }
.file-field { padding:14px; border:1px dashed #8fadb866; border-radius:15px; background:#ffffff66; }
.file-field input { color:#6b858f!important; }
.file-field input::file-selector-button { padding:7px 10px; margin:0 9px 0 0; border:1px solid #ffffffd9; border-radius:99px; background:#e1ebee; color:#466670; font:10px var(--sans); cursor:pointer; }
.file-field span { color:#8b9fa7; font-size:9px; }
.primary-button,.secondary-button { min-height:41px; padding:10px 18px; border-radius:99px; font-size:11px; }
.primary-button { background:#29474f; color:#fff; }
.primary-button:hover { background:#1d363e; }
.secondary-button { color:#5b7985; border:1px solid #adbfca66; background:#ffffff66; }
.secondary-button:hover { background:#fff; }
.danger-fill { background:#b36158; }
.danger-fill:hover { background:#974d45; }
.form-error { color:#af5c52; }
.about-content>p:not(.form-kicker) { color:#59757f; font-size:12px; line-height:1.9; }
.about-content .about-note { color:#7c929a!important; font-size:10px!important; }
.about-links { border-color:#4064701a; }
.about-links a { color:#3f6676; font-size:10px; }
.status-note { color:#fff; border:1px solid #ffffff40; border-radius:99px; background:#29474ff2; box-shadow:0 8px 30px #2a4d5d24; backdrop-filter:blur(20px); }

@media(max-width:1000px) {
  .museum-meta #meta-label { display:none; }
  .viewer-shell { grid-template-columns:minmax(0,1fr) 270px; gap:18px 22px; padding:25px 28px 22px; }
  .viewer-copy { padding:22px; }
  .viewer-copy h1 { font-size:24px; }
}
@media(max-width:700px) {
  body[data-mode="hall"] .site-header { padding:22px; }
  body[data-mode="hall"] .brand { font-size:25px; gap:10px; }
  body[data-mode="hall"] .brand small { font-size:6px; }
  body[data-mode="hall"] .brand-mark { width:37px; height:37px; }
  .site-nav { top:22px; height:40px; }
  .site-nav button { padding:0 13px; }
  .site-nav button span { font-size:9px; }
  .header-end { gap:7px; }
  .about-trigger { padding:0 10px; }
  .about-trigger span { display:none; }
  .hall-head { top:106px; left:22px; right:22px; gap:13px; }
  .hall-title h2 { font-size:25px; max-width:570px; }
  .hall-title .form-kicker { font-size:7px; }
  .hall-back { min-height:32px; padding:6px 11px; }
  .hall-back span { font-size:9px; }
  .dock { bottom:23px; height:56px; gap:6px; padding:5px; }
  .layout-button { padding:0 13px; font-size:9px; }
  .upload-trigger { padding:0 12px 0 7px; font-size:9px; gap:5px; }
  .upload-trigger svg { width:16px; height:16px; }
  .pager { bottom:93px; gap:14px; padding:3px; }
  .art-frame { border-radius:13px; padding:4px; }
  .art-media { border-radius:9px; }
  .art-label { padding-top:11px; font-size:9px; }
  .art-date { font-size:6px; }
  .art-number { left:9px; bottom:9px; font-size:7px; }
  .art-open-mark { right:9px; bottom:9px; width:23px; height:23px; }
  .viewer-shell { padding:16px 17px 15px; grid-template-columns:minmax(0,1fr); grid-template-rows:41px minmax(0,1fr) auto 38px; gap:12px; }
  .viewer-toolbar { grid-column:1; gap:6px; }
  .toolbar-button { height:36px; padding:0 11px; gap:6px; font-size:9px; }
  .toolbar-button:first-child { padding-left:10px; }
  .toolbar-button svg { width:16px; height:16px; }
  .viewer-stage { padding:10px; }
  .viewer-art { padding:5px; border-radius:15px; }
  .viewer-art img,.viewer-art video { border-radius:9px; }
  .viewer-copy { grid-column:1; align-self:stretch; max-height:26dvh; padding:17px 19px; border-radius:22px; }
  .viewer-index { margin-bottom:8px; font-size:8px; }
  .viewer-copy h1 { margin-bottom:7px; font-size:22px; }
  .viewer-year { margin-bottom:12px; padding-bottom:11px; font-size:8px; }
  .viewer-description { font-size:11px; line-height:1.8; }
  .source-link { margin-top:14px; font-size:9px; }
  .viewer-navigation { grid-column:1; padding:2px 6px; }
  .viewer-navigation button { width:30px; height:30px; }
  #metadata-form,.about-content,.confirm-dialog>div { padding:29px 25px; }
  .metadata-dialog h2,.about-dialog h2,.confirm-dialog h2 { font-size:25px; }
}
@media(max-width:600px) { .site-nav { display:none; } .header-end { margin-left:auto; } .scene { top:52%; } }
@media(max-width:370px) {
  body[data-mode="hall"] .site-header { padding:19px 18px; }
  body[data-mode="hall"] .brand { font-size:23px; gap:8px; }
  body[data-mode="hall"] .brand small { display:block; font-size:5px; }
  body[data-mode="hall"] .brand-mark { width:33px; height:33px; }
  .hall-head { top:97px; left:18px; right:18px; }
  .hall-title h2 { font-size:23px; }
  .layout-button { padding:0 10px; }
  .upload-trigger { padding-right:10px; }
  .viewer-shell { padding:12px; gap:10px; }
  .viewer-toolbar { gap:4px; }
  .toolbar-button { font-size:8px; padding:0 8px; gap:5px; }
  .toolbar-button:first-child { padding-left:8px; }
  .viewer-copy { padding:15px 17px; }
}
@media(max-height:650px) and (min-width:701px) {
  body[data-mode="hall"] .site-header { padding-top:18px; padding-bottom:18px; }
  .site-nav { top:18px; }
  .hall-head { top:92px; gap:10px; }
  .hall-title h2 { font-size:23px; }
  .scene { top:56%; }
  .art-card { width:136px; }
  .dock { height:52px; bottom:18px; }
  .pager { bottom:83px; }
  .viewer-shell { padding:14px 24px; grid-template-rows:40px minmax(0,1fr) 36px; gap:10px 22px; }
  .viewer-copy { padding:19px; }
  .viewer-copy h1 { font-size:22px; }
  .viewer-description { font-size:11px; }
}

/* Exhibition appearance is independent of the daylight site map. */
.theme-toggle { display:none; width:38px; height:38px; flex-shrink:0; padding:9px; border:1px solid var(--map-edge); border-radius:50%; color:#466670; background:#f9fcfc88; }
body[data-mode="hall"] .theme-toggle { display:grid; place-items:center; }
.theme-toggle svg { width:18px; height:18px; }
.theme-toggle .theme-sun { display:none; }
.theme-toggle[aria-pressed="true"] .theme-sun { display:block; }
.theme-toggle[aria-pressed="true"] .theme-moon { display:none; }
.theme-toggle:hover { background:#ffffffe6; }
.exhibition-night {
  color-scheme:dark;
  --map-ink:#e3edf2;
  --map-glass:rgba(150,183,205,.1);
  --map-edge:rgba(211,231,244,.18);
  --cream:#e3edf2;
  --muted:#94adbd;
  --line:rgba(211,231,244,.15);
  --paper:#304858;
  --ink:#e3edf2;
  --night-background:radial-gradient(ellipse at 12% 3%,#7294aa30,transparent 60%),radial-gradient(ellipse at 85% 72%,#ab9d8612,transparent 50%),linear-gradient(160deg,#344b5d,#263a4a 60%,#233646);
}
.exhibition-night .museum,.exhibition-night .viewer { color:#e3edf2; background:var(--night-background); }
body.exhibition-night .site-header { color:#e3edf2; background:linear-gradient(180deg,#344b5d55,#344b5d00); }
body.exhibition-night .brand small { color:#96b2c3; }
body.exhibition-night .brand-mark { background:#bed9eb0a; border-color:#d3e7f429; }
.exhibition-night .glass { color:#d4e3ec; box-shadow:0 10px 35px #071b2d20,inset 0 1px 0 #e3f3ff0a; }
.exhibition-night .site-nav { background:#b6d5e810; box-shadow:0 5px 24px #10253717; }
.exhibition-night .site-nav button span { color:#afc5d3; }
.exhibition-night .site-nav button:hover { background:#cce5f00d; }
.exhibition-night .site-nav button.active { background:#d7e7ef; box-shadow:0 3px 12px #091b2a18; }
.exhibition-night .site-nav button.active span { color:#2e4b5c; }
.exhibition-night .museum-meta { color:#9cb6c7; border-color:#d3e7f426; background:#bdd8eb0a; }
.exhibition-night .museum-meta #work-count { color:#d8e8f1; }
.exhibition-night .live-dot { background:#9ac0cb; }
.exhibition-night .theme-toggle,.exhibition-night .about-trigger { color:#c4d9e5; background:#bdd8eb10; border-color:#d3e7f42e; }
.exhibition-night .theme-toggle:hover,.exhibition-night .about-trigger:hover { background:#bdd8eb20; }
.exhibition-night .hall-back:hover { background:#c8e0ef1c; }
.exhibition-night .hall-title .form-kicker { color:#99b1c1; }
.exhibition-night .art-frame { background:#c1dbea10; border-color:#d7e9f24d; box-shadow:0 24px 60px #071a2d40,0 5px 16px #0d233326,inset 0 1px 0 #e1f2ff17; }
.exhibition-night .art-media { background:#304858; }
.exhibition-night .art-label { color:#d6e4ec; }
.exhibition-night .art-date { color:#91aebe; }
.exhibition-night .dock { box-shadow:0 12px 45px #091e3033,inset 0 1px 0 #e1f2ff0d; }
.exhibition-night .layout-button { color:#abc3d2; }
.exhibition-night .layout-button:hover { background:#cee5f00d; color:#e3edf2; }
.exhibition-night .layout-button.active,.exhibition-night .layout-button.active:hover { color:#2e4b5c; background:#d7e7ef; box-shadow:0 3px 12px #10253426; }
.exhibition-night .dock-divider { background:#bdd8eb24; }
.exhibition-night .upload-trigger { color:#c3d8e4; }
.exhibition-night .upload-trigger:hover { background:#cee5f00d; }
.exhibition-night .pager button,.exhibition-night .viewer-navigation button { color:#b6d0e0; }
.exhibition-night .pager span,.exhibition-night .viewer-navigation span { color:#acc4d3; }
.exhibition-night .pager button:hover,.exhibition-night .viewer-navigation button:hover { background:#cee5f00d; }
.exhibition-night dialog { color:#e3edf2; border-color:#d3e7f42e; box-shadow:0 35px 100px #071a2d66,inset 0 1px 0 #e1f2ff0d; }
.exhibition-night dialog::backdrop { background:#091b2d55; }
.exhibition-night .viewer { border:0; box-shadow:none; }
.exhibition-night .viewer::backdrop { background:#263a4a; }
.exhibition-night .viewer-toolbar { background:none; border:0; box-shadow:none; }
.exhibition-night .toolbar-button { color:#c2d7e3; border-color:#d3e7f42e; background:#bdd8eb10; box-shadow:0 5px 22px #0c223017; }
.exhibition-night .toolbar-button:hover { background:#bdd8eb20; }
.exhibition-night .magnifier-toggle[aria-pressed="true"] { color:#294857; background:#d7e7ef; border-color:#d7e7ef; }
.exhibition-night .viewer-art { background:#c1dbea10; border-color:#d7e9f24d; box-shadow:0 25px 65px #071a2d4d,0 5px 15px #0d233326,inset 0 1px 0 #e1f2ff17; }
.exhibition-night .viewer-art img,.exhibition-night .viewer-art video { background:#263f50; }
.exhibition-night .viewer-copy { background:#bdd8eb0d; border-color:#d3e7f429; box-shadow:0 12px 40px #071a2d17,inset 0 1px 0 #e1f2ff0a; }
.exhibition-night .viewer-index,.exhibition-night .viewer-year { color:#98b5c8; }
.exhibition-night .viewer-year { border-color:#bdd8eb1f; }
.exhibition-night .viewer-description { color:#b2c8d5; }
.exhibition-night .source-link { color:#b4d3e4; text-decoration-color:#8cbbd380; }
.exhibition-night .magnifier { background:#263f50; border-color:#d2e7f2a6; box-shadow:0 12px 40px #071a2d66,0 0 0 1px #d7e9f229; }
.exhibition-night .metadata-dialog,.exhibition-night .about-dialog,.exhibition-night .confirm-dialog { background:linear-gradient(145deg,#354e60f5,#2b4153f2); }
.exhibition-night .dialog-close { color:#adc6d6; border-color:#d3e7f41f; background:#bdd8eb0d; }
.exhibition-night .form-kicker { color:#99b4c6; }
.exhibition-night .form-intro,.exhibition-night .confirm-dialog p { color:#a9c0d0; }
.exhibition-night #metadata-form label { color:#c1d5e2; }
.exhibition-night #metadata-form input,.exhibition-night #metadata-form textarea { color:#e0ebf2; border-color:#afcddd33; background:#112c3d33; box-shadow:inset 0 1px 2px #0d233317; }
.exhibition-night #metadata-form input::placeholder,.exhibition-night #metadata-form textarea::placeholder { color:#8ca6b8; }
.exhibition-night .file-field { background:#bdd8eb08; border-color:#afcddd40; }
.exhibition-night .file-field input { color:#abc4d4!important; }
.exhibition-night .file-field input::file-selector-button { background:#92b5ca26; color:#cfe0eb; border-color:#bdd8eb26; }
.exhibition-night .file-field span { color:#90acbf; }
.exhibition-night .primary-button { background:#d7e7ef; color:#294857; }
.exhibition-night .primary-button:hover { background:#e6f1f6; }
.exhibition-night .secondary-button { color:#c3d8e5; border-color:#bdd8eb33; background:#bdd8eb0d; }
.exhibition-night .secondary-button:hover { background:#bdd8eb20; }
.exhibition-night .danger,.exhibition-night .form-error { color:#e3aaa0; }
.exhibition-night .danger-fill { background:#d4a197; color:#332c30; }
.exhibition-night .danger-fill:hover { background:#e3b3aa; }
.exhibition-night .about-content>p:not(.form-kicker) { color:#b2c8d5; }
.exhibition-night .about-content .about-note { color:#91aebe!important; }
.exhibition-night .about-links { border-color:#bdd8eb24; }
.exhibition-night .about-links a { color:#b4d3e4; }
.exhibition-night .status-note { background:#d7e7eff2; color:#294857; border-color:#e6f1f633; }
.exhibition-night :focus-visible { outline-color:#a4cadf; }

/* One card per exhibit; its other views stay close to the photograph. */
.art-photo-count { position:absolute; bottom:14px; right:14px; z-index:2; padding:4px 9px; border:1px solid #ffffff5c; border-radius:99px; color:#fff; background:#172b3a9e; backdrop-filter:blur(16px); font:9px var(--sans); letter-spacing:.02em; }
.photo-group { margin:0 0 21px; padding-bottom:17px; border-bottom:1px solid #4064701a; }
.photo-group-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; color:#657f89; font-size:10px; }
.photo-group-heading>div { display:flex; gap:3px; }
.photo-group-heading button { width:29px; height:29px; border-radius:50%; background:#ffffff80; color:#426572; font-size:15px; }
.photo-group-heading button:hover { background:#fff; }
.photo-thumbnails { display:flex; gap:8px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; padding:4px; margin:0 -4px; }
.photo-thumbnail { flex:0 0 68px; height:56px; padding:3px; border:1px solid #9cb3bf59; border-radius:11px; background:#e0e9ec66; transition:border-color .2s,background .2s; }
.photo-thumbnail img,.photo-thumbnail video { display:block; width:100%; height:100%; object-fit:contain; border-radius:7px; }
.photo-thumbnail[aria-pressed="true"] { border-color:#3a6678; background:#fff; box-shadow:0 0 0 1px #3a6678; }
.photo-caption { margin:9px 0 0; color:#6b858f; font-size:10px; line-height:1.6; }
.magnifier-options { position:absolute; z-index:6; bottom:0; left:50%; transform:translateX(-50%); display:flex; align-items:center; flex-wrap:wrap; justify-content:center; gap:7px 13px; width:min(330px,calc(100% - 12px)); padding:11px 17px; border-radius:20px; color:#466670; background:#f9fcfce6; box-shadow:0 10px 30px #26495c12; }
.magnifier-options label { display:flex; gap:10px; align-items:center; font-size:10px; }
.magnifier-options output { min-width:25px; font:11px var(--mono); }
.magnifier-options input { flex:1; min-width:90px; accent-color:#3a6678; }
.magnifier-options>span { width:100%; text-align:center; font-size:9px; color:#6b858f; }
.viewer-stage.is-magnifying { touch-action:none; padding-bottom:84px; }
.viewer-stage.is-magnifying .viewer-art { transition:none; }
#metadata-form select { display:block; width:100%; margin-top:7px; padding:11px 12px; border:1px solid #b2c9d666; border-radius:12px; background:#ffffff99; color:#3e5c68; font:12px var(--sans); }
.field-hint { display:block; margin-top:6px; color:#78919a; font-size:10px; }
.exhibition-night .viewer-navigation { background:#bdd8eb10; border-color:#d3e7f42e; box-shadow:0 6px 24px #071a2d20; }
.exhibition-night .photo-group { border-color:#bdd8eb1f; }
.exhibition-night .photo-group-heading,.exhibition-night .photo-caption { color:#98b5c8; }
.exhibition-night .photo-group-heading button { color:#b6d0e0; background:#bdd8eb10; }
.exhibition-night .photo-group-heading button:hover { background:#bdd8eb24; }
.exhibition-night .photo-thumbnail { background:#bdd8eb0a; border-color:#bdd8eb33; }
.exhibition-night .photo-thumbnail[aria-pressed="true"] { border-color:#c5e1f1; box-shadow:0 0 0 1px #c5e1f1; background:#bdd8eb29; }
.exhibition-night .magnifier-options { color:#c2d7e3; background:#2b4354ed; border-color:#d3e7f42e; }
.exhibition-night .magnifier-options>span { color:#98b5c8; }
.exhibition-night .magnifier-options input { accent-color:#c5e1f1; }
.exhibition-night #metadata-form select { color:#e0ebf2; background:#253e50; border-color:#afcddd33; color-scheme:dark; }
.exhibition-night .field-hint { color:#90acbf; }
@media(max-width:600px) {
  .photo-group { margin-bottom:13px; padding-bottom:12px; }
  .photo-group-heading { margin-bottom:5px; }
  .photo-thumbnail { flex-basis:60px; height:47px; }
  .photo-caption { font-size:9px; margin-top:6px; }
  .viewer-copy:has(.photo-group:not([hidden])) { max-height:32dvh; }
  .magnifier-options { border-radius:16px; padding:8px 13px; gap:3px 9px; }
  .magnifier-options>span { font-size:8px; }
  .viewer-stage.is-magnifying { padding-bottom:68px; }
  .art-photo-count { bottom:10px; right:10px; font-size:8px; padding:3px 7px; }
}
