*{box-sizing:border-box}html{background:#263e35;color:#e9e4d7}body{margin:0;background:radial-gradient(ellipse at 50% 38%,#78917d20,transparent 65%),#263e35;font-family:Arial,sans-serif;min-height:100svh}a{color:inherit}button{font:inherit}a:focus-visible,button:focus-visible,.gallery:focus-visible{outline:2px solid #eed49a;outline-offset:4px}.definitions{position:absolute;width:0;height:0;overflow:hidden}header{text-align:center;padding:30px 16px 18px}h1{font:400 28px/1.2 Georgia,serif;margin:0}.gallery-section{position:relative}.gallery{display:flex;position:relative;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.gallery::-webkit-scrollbar{display:none}.exhibit{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;padding:10px 64px 24px;text-align:center}.art-space{height:clamp(330px,60svh,620px);display:flex;align-items:center;justify-content:center}.frame{max-width:100%}.rawdog .frame{width:720px}.books .frame{width:680px}.elo .frame{width:236px}.paper .frame{width:440px}.caption{margin:22px auto 0;background:none;border:0;box-shadow:none}h2{font:400 25px/1.2 Georgia,serif;margin:0 0 10px}.links{display:flex;justify-content:center}.links a{display:flex;padding:5px}.links svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}.metric{display:block;font-size:12px;color:#c2c9ba;margin-top:9px}#previous,#next{position:absolute;z-index:3;top:calc(clamp(330px,60svh,620px)/2 - 12px);width:44px;height:48px;border:0;background:transparent;color:#e9e4d7;font-size:30px;cursor:pointer}#previous{left:6px}#next{right:6px}button:disabled{opacity:.2;cursor:default}footer{display:flex;justify-content:center;gap:24px;padding:10px 0 24px}footer a{padding:7px;display:flex}footer svg{width:17px;height:17px;fill:currentColor}
.frame{position:relative;box-shadow:7px 13px 12px #07120d70,1px 2px 3px #000a;transition:transform .5s ease;max-width:100%}.frame:hover{transform:translateY(-3px)}.mat{position:relative;background:#e6dfca;padding:11px;box-shadow:inset 0 1px 5px #0008}.mat img,.mat video{display:block;width:100%;height:auto}.mat a{display:block}.frame-gold{padding:22px;background:repeating-linear-gradient(90deg,#80602c 0,#bc9c52 2px,#e2cb87 3px,#a68a45 5px,#8a692d 6px);border:5px ridge #b99a53;outline:1px solid #4b3920;box-shadow:inset 0 0 0 3px #4a3a20,7px 13px 12px #07120d70}.frame-gold .mat{background:#141917;padding:7px;border:4px ridge #a38b4f}.corner{position:absolute;width:65px;height:65px;fill:none;stroke:#e0c77f;stroke-width:2.7;filter:drop-shadow(1px 2px 1px #39240f);z-index:2;pointer-events:none}.tl{top:-9px;left:-9px}.tr{top:-9px;right:-9px;transform:rotate(90deg)}.bl{bottom:-9px;left:-9px;transform:rotate(-90deg)}.br{bottom:-9px;right:-9px;transform:rotate(180deg)}.frame-ebony{padding:15px;background:repeating-linear-gradient(90deg,#171d1b,#3a4239 2px,#151b18 4px,#343b32 5px);border:4px ridge #494f40;outline:1px solid #101710}.frame-ebony:before,.frame-ebony:after{content:'◆';position:absolute;left:calc(50% - 8px);color:#b9a269;font-size:16px;z-index:2;line-height:16px}.frame-ebony:before{top:-5px}.frame-ebony:after{bottom:-5px}.frame-ebony .mat{padding:8px;background:#d4d0bb;border:1px solid #aa986a}.elo .frame{width:198px}.frame-walnut{padding:20px;background:repeating-linear-gradient(6deg,#3a2016,#5e3d27 3px,#4d2b1c 5px,#7b5435 7px,#482c1d 9px);border:5px ridge #684c31;outline:1px solid #241b13}.frame-walnut .mat{padding:13px;background:#d7ceaf;border:3px double #8c774e}.frame-ivory{width:290px;padding:18px;background:linear-gradient(90deg,#aaa28a,#efead9 8%,#b5ab8d 15%,#f0eada 26%,#e5d9b8 72%,#a59875 87%,#e9dfc3);border:4px ridge #b5a26d;outline:1px solid #776b48}.frame-ivory .mat{padding:9px;background:#f7f3e9;border:2px solid #af9867}.frame-ivory .corner{width:45px;height:45px;stroke:#998348;stroke-width:2;filter:drop-shadow(1px 1px 0 #fff)}
.elo .frame{width:236px}.paper .frame{width:440px}.frame:hover{transform:none}@media(max-width:700px){header{padding:25px 12px 15px}h1{font-size:25px}.exhibit{padding:10px 40px 22px}.art-space{height:350px}.rawdog .frame,.books .frame{width:100%}.elo .frame{width:164px}.paper .frame{width:260px}.frame-gold,.frame-walnut{padding:12px;border-width:4px}.frame-gold .mat{padding:3px;border-width:2px}.frame-walnut .mat{padding:6px}.frame-ivory{padding:12px}.corner{width:46px;height:46px}#previous,#next{top:160px;width:36px}#previous{left:0}#next{right:0}.caption{margin-top:16px}h2{font-size:23px}.metric{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* AI-generated photographic frame overlays; project media remains the original. */
.generated-frame{padding:0!important;border:0!important;outline:0;background:none;box-shadow:none;filter:drop-shadow(3px 7px 5px #07120d80)}
.generated-frame .mat{position:absolute;left:var(--opening-left);top:var(--opening-top);width:var(--opening-width);height:var(--opening-height);padding:0;border:0;background:none;box-shadow:none;overflow:hidden}
.generated-frame .mat a{width:100%;height:100%}
.generated-frame .mat img,.generated-frame .mat video{width:100%;height:100%;object-fit:contain}
.frame-art{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat;pointer-events:none}
/* Bottom-anchored natural caption; frame centered in the remaining viewing region. */
html,body{height:100%;overflow:hidden}
body{height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:radial-gradient(ellipse at 50% 32%,#8da18a16,transparent 70%),url('assets/plaster.webp') repeat,#263e35}
header{position:relative;padding:14px 5vw 10px;text-align:center}h1{font-size:26px}
.social{position:absolute;right:5vw;top:50%;transform:translateY(-50%);display:flex;gap:14px}
.social a{display:flex;padding:6px}.social svg{width:17px;height:17px;fill:currentColor}
main,.gallery-section,.gallery{height:100%;min-height:0;min-width:0;width:100%}
.gallery{overflow:hidden;scroll-snap-type:none;touch-action:pan-y}
.exhibit{height:100%;padding:10px 5vw 18px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-content:stretch;gap:20px;text-align:left}
.art-space{height:auto;min-height:0;min-width:0;width:100%;align-items:center}
.frame{flex:none;max-width:100%;transition:none}
.caption{position:relative;isolation:isolate;margin:0;width:min(760px,100%);max-width:760px;text-align:left;min-height:max-content}
.caption:before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-65px;top:-26px;width:min(800px,110%);height:170px;max-height:calc(100% + 26px);background:radial-gradient(ellipse at 35% 0%,#f4e2b72b 0%,#ead9ab14 26%,#e9dcad07 52%,transparent 73%);filter:blur(9px)}
h2{font-size:24px;margin:0 0 5px}
.features{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:16px;row-gap:2px;margin:0 0 7px;color:#bec9b9;font-size:12px;line-height:1.45}
.features .launch,.features .metric{display:inline;margin:0;font:inherit;color:inherit}
.caption p{font-size:14px;line-height:1.45;margin:0}
.caption p a{display:inline;padding:0;text-underline-offset:3px;white-space:nowrap}
#previous,#next{top:var(--arrow-top,40%);transform:translateY(-50%);width:36px;height:44px;font-size:27px}#previous{left:0}#next{right:0}
.scroll-fallback{overflow-y:auto;grid-template-rows:100px auto;align-content:start;overscroll-behavior-y:contain}.scroll-fallback .art-space{height:100px}.scroll-fallback .caption{padding-bottom:12px}
@media(max-width:700px){header{padding:12px 5vw 8px}h1{font-size:24px}.social{right:4vw;gap:6px}.social a{padding:5px}.social svg{width:15px;height:15px}.exhibit{padding:8px 7vw 16px;gap:16px}h2{font-size:22px}.caption p{font-size:13px}.features{font-size:11px;column-gap:12px}.caption:before{left:-30px}}
@media(max-height:500px){header{padding:5px 5vw}h1{font-size:20px}.exhibit{padding-top:4px;padding-bottom:8px;gap:12px}h2{font-size:18px;margin-bottom:3px}.caption p{font-size:11px;line-height:1.3}.features{font-size:10px;margin-bottom:4px}.caption:before{height:100px}}
