:root{--ink:#17211c;--acid:#d9ff54;--orange:#ff6c35;--wall:#d9d4ca}
*{box-sizing:border-box}html,body,#gallery{margin:0;width:100%;min-height:100%;overflow:hidden}body{font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--wall)}button,a{font:inherit}[v-cloak]{display:none}
.gallery-wall{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 4vw 38px;background-color:var(--wall);background-image:radial-gradient(ellipse at 50% 15%,rgba(255,255,255,.45),transparent 57%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.68' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E")}
.wall-title{flex:none;margin:0 0 20px;text-align:center}.wall-title span{display:block;margin-bottom:5px;color:#70746e;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.wall-title h1{margin:0;font-family:"Instrument Serif",serif;font-size:clamp(28px,3.2vw,48px);font-weight:400;line-height:1;letter-spacing:-.02em}
.display-screen{position:relative;flex:none;width:min(90vw,calc((100vh - 165px)*16/9),1600px);aspect-ratio:16/9;overflow:hidden;background:#fff;border:1px solid rgba(23,33,28,.14);box-shadow:0 26px 55px rgba(45,39,30,.2),0 5px 12px rgba(45,39,30,.15),0 0 0 7px rgba(244,242,236,.65)}
.screen-message{position:absolute;z-index:5;inset:0;display:grid;place-content:center;justify-items:center;background:#fff;text-align:center}.screen-message i{width:22px;height:22px;border:2px solid rgba(23,33,28,.14);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}.screen-message p{font-family:"Instrument Serif",serif;font-size:22px}.screen-message button,.screen-message a{border:0;background:var(--ink);color:#fff;padding:11px 16px;text-decoration:none;cursor:pointer}.screen-message.empty>span{font-size:8px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.screen-message h2{margin:10px 0 22px;font-family:"Instrument Serif",serif;font-size:clamp(32px,5vw,68px);font-weight:400;line-height:.92}.screen-message h2 em{color:var(--orange);font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.gallery-wall{padding:20px 14px 28px}.wall-title{margin-bottom:15px}.display-screen{width:min(calc(100vw - 28px),calc((100vh - 125px)*16/9));box-shadow:0 16px 38px rgba(45,39,30,.2),0 3px 8px rgba(45,39,30,.13),0 0 0 4px rgba(244,242,236,.65)}}
@media(prefers-reduced-motion:reduce){}

/* Use the homepage tour presentation at gallery scale. */
.invitation-art-screen{position:absolute;inset:0;overflow:hidden;background:#fff}
.invitation-art-drift{display:block;width:100%;height:100%}
.invitation-motion-toggle{position:absolute;left:8px;bottom:8px;width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid #16241d26;border-radius:50%;background:#ffffffd9;color:#6f6b62;font-size:12px;cursor:pointer}
.invitation-motion-toggle:hover{color:var(--ink);background:#fff}
.invitation-art-caption{position:absolute;width:max-content;max-width:80%;transform:translateX(-50%);text-align:center;pointer-events:none;color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.3;background:#fff;border:1px solid rgba(23,33,28,.035);border-radius:6px;box-shadow:0 3px 14px rgba(23,33,28,.075);padding:7px 12px 8px}
.invitation-art-caption strong{display:block;font-size:clamp(12px,1.1vw,16px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.015em}
.invitation-art-caption span{display:block;font-size:clamp(10px,.85vw,12px);color:#69716d;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.invitation-art-caption span:empty{display:none}
.display-screen{border:12px solid #eee9dc;box-shadow:inset 0 0 0 1px #ded9cd,0 18px 45px #342b1914,3px 4px 0 #d9d1bf}
.invitation-motion-toggle{width:36px;height:36px;left:12px;bottom:12px}
@media(max-width:700px){.display-screen{border-width:7px}}
@media(prefers-reduced-motion:reduce){.invitation-motion-toggle{display:none}}

/* Keep the screen centered and reserve space for the title plus a 48px top gap. */
.gallery-stage{position:absolute;inset:0;margin:auto;height:fit-content;width:min(76vw,calc((100dvh - 240px)*16/9),1600px)}
.gallery-stage .wall-title{position:absolute;bottom:100%;left:0;width:100%;margin:0 0 24px}
.gallery-stage .display-screen{width:100%}
.gallery-humphrey{position:absolute;z-index:3;right:calc(100% - 24px);bottom:-24px;height:auto;width:min(22%,calc((100vw - 100%)/2 + 8px));max-width:none;object-fit:contain;pointer-events:none}
@media(max-width:700px){
 .gallery-stage{width:min(calc(100vw - 40px),calc((100dvh - 210px)*16/9))}
 .gallery-stage .wall-title{margin-bottom:20px}
 .gallery-humphrey{right:auto;left:-8px;top:calc(100% - 8px);bottom:auto;width:auto;height:clamp(90px,22dvh,180px)}
}

.gallery-home{position:fixed;z-index:10;top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 10px;border-radius:5px;color:#62665f;font-size:13px;text-decoration:none}
.gallery-home:hover{color:var(--ink);background:#ffffff40}
.gallery-home:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
