.jae-explorer{position:relative;width:100%;height:100svh;min-height:560px;overflow:hidden;background:#f3f0e8;isolation:isolate;touch-action:none;user-select:none}
.jae-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab}
.jae-viewport.is-dragging{cursor:grabbing}
.jae-world{position:absolute;left:0;top:0;width:var(--jae-world-w);height:var(--jae-world-h);will-change:transform;transform:translate3d(0,0,0);transform-origin:0 0}
.jae-artwork{position:absolute;left:var(--jae-x);top:var(--jae-y);width:var(--jae-w);max-width:none;display:block;transform:translate(-50%,-50%) rotate(var(--jae-r));text-decoration:none;color:#111;outline-offset:8px;z-index:1}
.jae-artwork img{display:block;width:100%;height:auto;max-width:none;box-shadow:0 15px 45px rgba(0,0,0,.12);transition:transform .35s cubic-bezier(.2,.75,.2,1),box-shadow .35s ease;pointer-events:none}
.jae-artwork-caption{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:10px;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease;font-size:14px;line-height:1.25}
.jae-artwork-caption small{font-size:11px;text-align:right;opacity:.62}
.jae-artwork:hover{z-index:3}
.jae-artwork:hover img,.jae-artwork:focus-visible img{transform:scale(1.025);box-shadow:0 24px 60px rgba(0,0,0,.2)}
.jae-artwork:hover .jae-artwork-caption,.jae-artwork:focus-visible .jae-artwork-caption{opacity:1;transform:none}
.jae-intro{position:fixed;left:50%;top:50%;z-index:5;width:min(90vw,800px);transform:translate(-50%,-50%);text-align:center;pointer-events:none;transition:opacity .65s ease,transform .65s ease}
.jae-intro strong{display:block;font-size:clamp(38px,6vw,92px);line-height:.95;letter-spacing:-.055em}
.jae-intro span{display:block;margin-top:18px;font-size:13px;letter-spacing:.09em;text-transform:uppercase}
.jae-explorer.is-exploring .jae-intro{opacity:0;transform:translate(-50%,-50%) scale(.96)}
.jae-instruction-touch{display:none!important}
.jae-progress{position:absolute;right:20px;bottom:20px;z-index:6;width:70px;height:3px;background:rgba(0,0,0,.15);pointer-events:none}
.jae-progress span{display:block;height:100%;width:0;background:#111;transition:width .15s linear}
.jae-empty{padding:24px;background:#fff4c7;border:1px solid #e2ca68}
body:has(.jae-explorer){overflow:hidden}
@media(max-width:767px),(pointer:coarse){.jae-instruction-desktop{display:none!important}.jae-instruction-touch{display:block!important}.jae-artwork{width:var(--jae-w)}.jae-artwork-caption{opacity:1;transform:none}.jae-artwork-caption small{display:none}.jae-progress{display:none}}
@media(prefers-reduced-motion:reduce){.jae-world{will-change:auto}.jae-artwork img,.jae-artwork-caption,.jae-intro{transition:none}}

.jae-artwork.jae-image-pending{opacity:0;pointer-events:none}
.jae-artwork.jae-image-ready{animation:jae-image-reveal .3s ease both}
@keyframes jae-image-reveal{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.jae-artwork.jae-image-ready{animation:none}}
