/* Reusable artwork detail and hands-on zoom viewer */
.piece-header{text-align:center;background:linear-gradient(180deg,#eaf6f5 0%,#fffdf9 100%);padding:30px 15px 31px}.back-link{display:inline-block;font-size:.91rem;color:#245b70;text-underline-offset:5px;margin-bottom:18px}.piece-header h1{font:400 clamp(2.3rem,5vw,3.5rem)/1.15 Georgia,serif;color:#11365b;margin:10px 0}.piece-description{max-width:610px;margin:8px auto 0;color:#597482}.piece-shell{padding-top:24px;padding-bottom:65px}.piece-full{text-align:center}.piece-full img{display:block;max-width:min(100%,790px);max-height:760px;width:auto;height:auto;object-fit:contain;margin:0 auto;box-shadow:0 14px 38px rgba(17,44,70,.13)}.artwork-caption{font-style:italic;font-family:Georgia,serif;color:#67818c;margin:12px 0 0}.detail-intro{text-align:center;max-width:710px;margin:48px auto 22px}.detail-intro h2{font:400 clamp(2rem,4vw,2.7rem)/1.2 Georgia,serif;color:#11365b;margin:0 0 10px}.detail-intro h2 em{color:#4c8295}.detail-intro p{color:#597482;margin:0}.presets{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:0 auto 22px}.detail-preset{border:1px solid #d6e6e4;background:white;padding:8px;width:150px;max-width:31%;cursor:pointer;text-align:left;color:#153958;font-size:.83rem;transition:border-color .2s,box-shadow .2s}.detail-preset:hover,.detail-preset:focus-visible{border-color:#3a8195;box-shadow:0 6px 16px #1d526c23}.detail-preset.selected{border:2px solid #3d879d;padding:7px}.detail-preset img{display:block;width:100%;height:93px;object-fit:cover;background:#f1f5f4;margin-bottom:7px}.detail-preset span{display:block;white-space:normal}.zoom-card{max-width:910px;margin:0 auto;border:1px solid #dbe9e7;background:#fff;box-shadow:0 8px 25px #173e5820}.zoom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:13px 18px;background:#eff7f6;color:#13395a}.zoom-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.zoom-actions button{border:1px solid #bdd2d5;background:#fff;color:#123a56;padding:6px 12px;cursor:pointer;border-radius:4px;font:inherit}.zoom-actions label{font-size:.82rem}.zoom-actions input{width:120px;accent-color:#377e91}.zoom-viewport{height:min(66vw,560px);min-height:320px;overflow:auto;position:relative;scrollbar-color:#9dbcc6 #edf6f5;touch-action:pan-x pan-y;cursor:grab;background:#f4f7f6;user-select:none}.zoom-viewport.dragging{cursor:grabbing;touch-action:none}.zoom-viewport img{width:100%;height:auto;max-width:none;display:block;pointer-events:none}.zoom-help{text-align:center;font-size:.83rem;color:#66808a;margin:12px 15px 15px}.full-piece{text-decoration:none}.full-piece:focus-visible{outline:3px solid #377e91;outline-offset:3px}
@media(max-width:700px){.piece-full img{max-height:540px}.zoom-viewport{min-height:300px;height:390px}.zoom-toolbar{display:block}.zoom-toolbar strong{display:block;margin-bottom:9px}.detail-preset{width:126px;max-width:31%}.detail-preset img{height:77px}.zoom-actions input{width:95px}}

/* Version 12: make the fabric explorer flow directly after the artwork */
.detail-intro{margin:34px auto 18px}

/* Version 13: a single inviting preview reveals the fabric explorer on click. */
#fabric-explorer[hidden]{display:none!important}
.explore-launch{display:flex;align-items:center;gap:18px;text-align:left;max-width:590px;width:100%;margin:0 auto 24px;padding:12px 17px 12px 12px;background:#f1f8f7;color:#13395a;border:1px solid #c7deda;border-radius:10px;cursor:pointer;box-shadow:0 5px 18px rgba(17,44,70,.07);font:inherit;transition:box-shadow .2s,border-color .2s,transform .2s}
.explore-launch:hover{border-color:#6c9caa;box-shadow:0 10px 25px rgba(17,44,70,.13);transform:translateY(-2px)}
.explore-launch:focus-visible{outline:3px solid #377e91;outline-offset:3px}
.explore-launch img{width:105px;height:88px;flex:none;object-fit:cover;object-position:center;border-radius:5px;background:#e6eeeb}
.explore-launch span:not(.explore-chevron){display:flex;flex-direction:column;gap:5px;flex:1}
.explore-launch strong{font:400 1.28rem/1.25 Georgia,serif}
.explore-launch small{font-size:.87rem;color:#587987;line-height:1.35}
.explore-chevron{font-size:1.6rem;color:#4a8596}
#fabric-explorer{scroll-margin-top:20px}
@media(max-width:480px){.explore-launch{gap:12px}.explore-launch img{width:86px;height:78px}.explore-launch strong{font-size:1.1rem}.explore-launch small{font-size:.78rem}}

/* V20: Personal stories, without inventory labels */
.storm-story{max-width:700px;margin:30px auto 12px;padding:24px 30px;background:#f0f7f5;border-left:3px solid #89b6b4;color:#335969;border-radius:3px}.storm-story[hidden]{display:none}.storm-story h2{font:400 1.65rem Georgia,serif;color:#143b58;margin:0 0 10px}.storm-story p{white-space:pre-line;line-height:1.7;margin:0}.artwork-meta[hidden],#piece-kind[hidden],.piece-description[hidden]{display:none}
@media(max-width:600px){.storm-story{padding:20px}}

/* V27 framed painting thumbnail and full-view lightbox; artwork and zoom styles unchanged. */
.framed-gallery[hidden],.framed-dialog[hidden]{display:none!important}
.framed-gallery{display:flex;justify-content:center;margin:22px auto 0}
.framed-thumb{width:150px;border:1px solid #d0e1df;border-radius:5px;background:#fffdf9;padding:8px 8px 10px;cursor:pointer;color:#173e58;font:500 .88rem/1.4 inherit;box-shadow:0 4px 16px rgba(22,59,78,.09);transition:border-color .2s,box-shadow .2s}
.framed-thumb:hover,.framed-thumb:focus-visible{border-color:#44889a;box-shadow:0 6px 20px rgba(22,59,78,.2)}
.framed-thumb img{display:block;width:100%;height:110px;object-fit:contain;margin:0 0 8px;background:#f3f7f6}
.framed-thumb span{display:block;text-align:center;font-size:.89rem}
.framed-dialog{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(8,29,43,.85);overflow:auto}
.framed-dialog-panel{position:relative;text-align:center;width:min(100%,1080px);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;align-items:center;justify-content:center}
.framed-dialog-panel img{display:block;max-width:100%;max-height:calc(100dvh - 118px);object-fit:contain;box-shadow:0 12px 42px #071a2699}
.framed-dialog-panel p{color:white;margin:12px 0 0;font:italic 1rem Georgia,serif}
.framed-close{align-self:flex-end;margin-bottom:10px;border:1px solid #dde9eb;border-radius:4px;background:white;color:#173e58;cursor:pointer;font-size:1.1rem;padding:5px 12px}
.framed-close span{font-size:.88rem}
body.framed-dialog-open{overflow:hidden}
@media(max-width:600px){.framed-thumb{width:140px}.framed-dialog{padding:12px}.framed-dialog-panel{max-height:calc(100dvh - 24px)}.framed-dialog-panel img{max-height:calc(100dvh - 105px)}}

/* V28: never upscale framed photos beyond source pixels; shrink only to fit screens. */
.framed-dialog-panel img{width:auto;height:auto;max-width:100%;object-fit:contain;image-rendering:auto}
