@font-face{font-family:Cinzel;src:url('/fotografias-assets/fonts/CinzelDecorative-Regular.ttf')}@font-face{font-family:Pinyon;src:url('/fotografias-assets/fonts/PinyonScript-Regular.ttf')}@font-face{font-family:Inter;src:url('/fotografias-assets/fonts/inter.ttf');font-weight:100 900}
:root{color-scheme:dark;--navy:#030a12;--ink:#f6f1e8;--gold:#d5b37b;--muted:#b8c6cb;--ease-out:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}body{margin:0;background:var(--navy);color:var(--ink);font:14px/1.6 Inter,sans-serif;height:100svh;overflow:hidden}::selection{background:#d5b37b;color:#030a12}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #e3c88f;outline-offset:5px}button:active{opacity:.8}#museum-header{position:relative;z-index:50}#museum-header nav a[aria-current=page]{color:#d5b37b}#exposicao{height:calc(100svh - 94px);position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 58% 45%,#102333 0%,#07131f 42%,#030a12 82%)}.room-title{position:absolute;left:5.6%;top:22px;z-index:4;pointer-events:none;text-shadow:0 2px 12px #030a12}.room-title h1{font:400 clamp(27px,2.7vw,42px)/1.2 Cinzel,serif;margin:0}.room-title p{font:29px/1.3 Pinyon,cursive;color:var(--gold);margin:4px 0 0}#gallery{position:absolute;inset:100px 0 78px;overflow:hidden;touch-action:pinch-zoom;overscroll-behavior:contain;cursor:grab;outline:none;user-select:none;-webkit-user-select:none}#gallery:focus-visible{outline:1px solid #d5b37b80;outline-offset:-8px}#gallery.dragging{cursor:grabbing}#world{position:absolute;inset:0;pointer-events:none}.memory{position:absolute;left:0;top:0;border:0;padding:0;background:transparent;pointer-events:auto;transform-origin:center;cursor:pointer;contain:layout style}.memory .object{width:100%;height:100%;display:block;filter:drop-shadow(9px 19px 12px #0008);transform-origin:center}.memory svg{width:100%;height:100%;display:block;overflow:visible;backface-visibility:hidden}.memory:focus-visible{outline:2px solid var(--gold);outline-offset:8px}.memory .photo-image{opacity:0;transition:opacity 180ms var(--ease-out)}.memory.loaded .photo-image{opacity:1}.memory.failed{opacity:.6}.memory .frame-image{pointer-events:none}.memory[data-depth="0"] .object{filter:drop-shadow(5px 12px 10px #0008)}.memory[data-depth="2"] .object{filter:drop-shadow(14px 25px 16px #000a)}
#orientation{position:absolute;bottom:22px;left:5.6%;margin:0;pointer-events:none;color:#e6dfd0;font-size:13px;line-height:1.6;z-index:5;text-shadow:0 2px 8px #030a12;transition:opacity 200ms var(--ease-out)}#orientation span{display:block;color:var(--muted);font-size:12px}#orientation.dismissed{opacity:0}.room-controls{position:absolute;bottom:22px;right:5.6%;display:flex;align-items:center;gap:24px;z-index:6}.room-controls>span{color:var(--muted);font-size:12px}.room-controls button{display:flex;align-items:center;gap:9px;border:1px solid #d5b37b66;min-height:44px;padding:8px 14px;background:#07111ee8;color:var(--gold);border-radius:2px}.room-controls svg,.close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}#error{position:absolute;inset:35% 20%;z-index:10;text-align:center}#error button{padding:12px 22px;background:#142a39;border:1px solid var(--gold);color:var(--ink);min-height:44px}
dialog{position:fixed;inset:0;width:min(1280px,94vw);max-width:none;max-height:92svh;padding:0;border:0;background:#07131d;color:var(--ink);overflow:auto;box-shadow:0 24px 70px #0009}dialog[open]{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}dialog::backdrop{background:#02070fee}.close{position:absolute;right:14px;top:14px;z-index:2;width:44px;height:44px;display:grid;place-items:center;background:#030a12;border:1px solid #d5b37b77;color:var(--gold)}.photo-display{min-height:420px;display:flex;align-items:center;justify-content:center;padding:28px;background:#02080e}.photo-display img{display:block;width:100%;height:72svh;max-height:800px;object-fit:contain}.photo-display p{padding:24px}.photo-info{padding:56px 32px 28px}.photo-info h2{font:400 24px/1.4 Cinzel,serif;margin:12px 0 22px;overflow-wrap:anywhere}dl{margin:0 0 24px}dt{color:var(--gold);font-size:12px;margin-top:17px}dd{margin:3px 0 0;color:#cad4d6;line-height:1.6;font-size:13px;overflow-wrap:anywhere}[hidden]{display:none!important}
@media(hover:hover) and (pointer:fine){.room-controls button:hover,.close:hover{background:#1b2b36}}
@media(max-width:900px){#exposicao{height:calc(100svh - 90px)}.room-title{left:6.15%;top:20px}.room-title h1{font-size:28px}.room-title p{font-size:26px}dialog[open]{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr)}.photo-info{padding:58px 22px 24px}.photo-info h2{font-size:21px}.room-controls>span{display:none}}
@media(max-width:600px){#gallery{top:92px;bottom:110px}.room-title{top:18px}.room-title h1{font-size:26px}.room-title p{font-size:25px}#orientation{left:6.15%;bottom:78px;font-size:12px;max-width:70%}#orientation span{display:none}.room-controls{right:6.15%;bottom:20px}.room-controls button{min-height:44px;padding:8px 12px;font-size:12px}dialog{width:94vw;max-height:94svh}dialog[open]{display:block}.photo-display{min-height:0;padding:56px 14px 16px}.photo-display img{height:39svh}.photo-info{padding:18px 22px 26px}.photo-info h2{font-size:20px;margin-bottom:16px}.memory .object{filter:drop-shadow(7px 13px 9px #0008)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
@media(forced-colors:active){.room-controls button,.close{border:1px solid ButtonText}.memory:focus-visible{outline:2px solid Highlight}}

/* Missão 09.1: three frontal planes; light and shadows remain static during gestures. */
.memory[data-depth="0"] .object{filter:brightness(.87) drop-shadow(4px 8px 7px #0007)}
.memory[data-depth="1"] .object{filter:brightness(1) drop-shadow(10px 20px 12px #0009)}
.memory[data-depth="2"] .object{filter:brightness(1.09) drop-shadow(19px 37px 20px #000c)}


/* Missão 09.2: optical focus changes only when the focal plane changes. */
.optics{width:100%;height:100%;display:block;transition:filter 260ms var(--ease-out)}
.memory:not(.in-view) .optics{filter:none!important;transition:none}
.memory:focus-visible .optics{filter:none!important}
.frame-light{opacity:0;pointer-events:none;transition:opacity 220ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.memory[data-interacting] .optics{filter:none!important}.memory[data-interacting] .frame-light{opacity:.95}}
#gallery.dragging .frame-light{opacity:0}
.photo-info{display:flex;flex-direction:column;justify-content:center;padding:60px 34px 38px}
.photo-info h2{font-size:26px;line-height:1.45;margin:0 0 32px;text-wrap:balance}
.photo-info dl{margin:0}.photo-info dt{margin-top:22px}.photo-info dd{line-height:1.7}
@media(max-width:900px){.photo-info{padding:58px 24px 28px}.photo-info h2{font-size:23px}}
@media(max-width:600px){.photo-info{padding:22px 24px 30px}.photo-info h2{font-size:22px;margin-bottom:14px}.photo-info dt{margin-top:16px}}
@media(prefers-contrast:more),(forced-colors:active){.optics{filter:none!important}.frame-light{display:none}}
