/* A single living field; all atmosphere rules stay inside the preserve. */
.preserve{position:absolute;inset:0;z-index:40;isolation:isolate;background:#356832;color:#fffcf0;font-family:Georgia,'Times New Roman',serif;touch-action:manipulation;overflow:hidden;outline:none}
.preserve button,.preserve a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}.preserve button:hover,.preserve a:hover{color:#fff}.preserve button:focus-visible,.preserve a:focus-visible{outline:1px solid #fff7db;outline-offset:5px;border-radius:2px}.preserve button{cursor:pointer}
.preserve-view,.preserve-photo,.preserve-film{position:absolute;inset:0;width:100%;height:100%}
.preserve-view{z-index:-2;overflow:hidden;background:#356832}.preserve-photo,.preserve-film{object-fit:cover;object-position:50% 55%;user-select:none;pointer-events:none}.preserve-film{opacity:0;transition:opacity 1s}.preserve.film-ready .preserve-film{opacity:1}
.preserve-sky{position:absolute;pointer-events:none}
.preserve-exit,.preserve-sound{position:absolute;right:max(3.5%,env(safe-area-inset-right));min-height:44px;padding:10px 0;white-space:nowrap;text-shadow:0 1px 4px #102215,0 1px 14px #102215}
.preserve-exit{top:max(25px,env(safe-area-inset-top));font:italic 13px Georgia,serif}.preserve-exit span{display:inline-block;margin-right:7px;transition:transform .5s}.preserve-exit:hover span{transform:translateX(-4px)}
.preserve-sound{bottom:max(25px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;font:10px/1.5 'IBM Plex Mono',monospace}.preserve-sound svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1;filter:drop-shadow(0 1px 4px #102215)}.preserve-sound[aria-pressed=true] svg{filter:drop-shadow(0 0 4px #fff8)}
body[data-room=preserve] #apparatus> :not(#preserve-room){visibility:hidden}body[data-room=preserve]{background:#356832}
@media(max-width:800px){.preserve-exit,.preserve-sound{right:max(22px,env(safe-area-inset-right))}.preserve-exit{top:max(17px,env(safe-area-inset-top));font-size:12px}.preserve-sound{bottom:max(20px,env(safe-area-inset-bottom))}.preserve-film,.preserve-photo{object-position:49% 55%}}
@media(max-height:570px) and (min-width:600px){.preserve-exit{top:max(10px,env(safe-area-inset-top))}.preserve-sound{bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.preserve *,.preserve *::before,.preserve *::after{transition:none!important;animation:none!important}}
