:root{color-scheme:dark;font-family:Georgia,serif;color:#f8e9d2;background:#080d20}
*{box-sizing:border-box}
body{margin:0;overflow:hidden}
.viewer{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(ellipse at bottom,#211d38,#080d20 65%)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));min-height:58px;border-bottom:1px solid #d3b47a35}
a{color:#f5d89b;text-underline-offset:4px}
.toolbar a{text-decoration:none;font-size:15px}
.brand{font-size:16px;color:#d8c4a1;text-align:center}
button{font:inherit;font-size:15px;border:1px solid #d3b47a88;border-radius:28px;background:#cba66412;color:#f5d89b;padding:9px 16px;cursor:pointer}
button:hover{background:#cba66430}
a:focus-visible,button:focus-visible,audio:focus-visible{outline:2px solid #ffe3a7;outline-offset:4px}
[hidden]{display:none!important}
.artwork{margin:0;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#050916}
.artwork img{display:block;width:100%;height:100%;object-fit:contain}
.artwork p{max-width:34em;padding:24px;line-height:1.7}
.listening{padding:12px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));text-align:center}
h1{font-size:18px;line-height:1.4;font-weight:normal;margin:0 0 8px;color:#ffe4ae}
audio{display:block;width:min(100%,740px);height:44px;margin:0 auto;accent-color:#e6c38a}
.feedback{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;line-height:1.4;min-height:24px;margin-top:7px;color:#d8c4a1}
.feedback p{margin:0}.feedback p:empty{display:none}.feedback a{font-size:12px}.feedback button{font-size:13px;padding:5px 12px}
@media(max-width:650px){.brand{display:none}.toolbar{gap:10px}.toolbar a,button{font-size:14px}h1{font-size:16px}.listening{padding-top:10px}}
@media(max-height:500px){.toolbar{min-height:40px;padding-top:5px;padding-bottom:5px}.brand{display:none}.toolbar button{padding:5px 12px}.listening{padding-top:5px;padding-bottom:5px}h1{display:none}audio{height:36px}.feedback{margin-top:3px;font-size:11px;min-height:16px}.feedback a{font-size:11px}}

/* Fullscreen: the picture owns the canvas; controls float above it. */
.viewer.immersive{position:fixed;inset:0;z-index:1000;width:100vw;height:100vh;height:100dvh;max-width:none;display:block;background:#050916}
.viewer.immersive .artwork{position:absolute;inset:0;width:100%;height:100%}
.viewer.immersive .toolbar,.viewer.immersive .listening{position:absolute;left:0;right:0;z-index:2;opacity:0;pointer-events:none;transition:opacity .25s ease}
.viewer.immersive .toolbar{top:0;min-height:48px;border:0;background:linear-gradient(#050916ed,#05091680,transparent)}
.viewer.immersive .listening{bottom:0;padding:24px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(transparent,#050916d9)}
.viewer.immersive.controls-visible .toolbar,.viewer.immersive.controls-visible .listening,.viewer.immersive .toolbar:focus-within,.viewer.immersive .listening:focus-within{opacity:1;pointer-events:auto}
.viewer.immersive .listening h1,.viewer.immersive .footer-privacy,.viewer.immersive .footer-signatures{display:none}
@media(prefers-reduced-motion:reduce){.viewer.immersive .toolbar,.viewer.immersive .listening{transition:none}}

/* Short landscape viewports and landscape touchscreens scroll without shrinking the image. */
@media (orientation:landscape) and (max-height:600px),
       (orientation:landscape) and (any-pointer:coarse){
  body{overflow-x:hidden;overflow-y:auto}
  .viewer:not(.immersive){height:auto;min-height:100vh;min-height:100dvh;grid-template-rows:auto auto auto}
  .viewer:not(.immersive) .artwork{width:100%;height:auto;aspect-ratio:16/9}
  .viewer:not(.immersive) .artwork img{width:100%;height:100%;object-fit:contain}
  body:has(.viewer.immersive){overflow:hidden}
}
