*{box-sizing:border-box}body{margin:0;background:#e9e9e5;color:#171717;font-family:Arial,Helvetica,sans-serif}header{display:flex;justify-content:space-between;gap:20px;padding:25px 5%;border-bottom:1px solid #bcbcb6;font-size:14px;letter-spacing:1.2px}header>span:first-child{font-weight:700}main{max-width:1440px;padding:42px 5% 60px;margin:auto}.topline{display:flex;align-items:end;justify-content:space-between;gap:32px}.eyebrow{font-size:12px;letter-spacing:1.8px;margin:0 0 12px}h1{font:normal clamp(32px,4vw,58px)/1.08 Georgia,serif;letter-spacing:-1.6px;margin:0}.intro{font-size:16px;line-height:1.6;margin:0}nav{display:flex;gap:7px;flex-wrap:wrap;margin:32px 0 20px}button{font:14px Arial,sans-serif;color:inherit;background:transparent;border:1px solid #adada6;padding:13px 18px;cursor:pointer;min-height:44px}.selected{background:#171717;color:white;border-color:#171717}button:focus-visible{outline:3px solid #987a2a;outline-offset:3px}.stage-section{background:#202020;padding:20px;display:flex;justify-content:center;min-height:240px}.stage{position:relative;overflow:hidden;width:min(100%,1120px);aspect-ratio:1952/1277;background:#303135;isolation:isolate}.stage.portrait{width:min(100%,510px);aspect-ratio:1388/1792}.stage img{display:block;width:100%;height:100%;object-fit:contain}.stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.curtain{position:absolute;inset:0;background:#202020;z-index:5;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.stage.enter .curtain{animation:opening 1.8s cubic-bezier(.65,0,.25,1) forwards}.stage:not(.enter) .curtain{display:none}@keyframes opening{from{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}to{clip-path:polygon(110% 0,210% 0,100% 100%,100% 100%)}}.controls{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid #bcbcb6}.mode,.playback{display:flex;gap:6px}.caption{display:grid;grid-template-columns:1fr 2fr;gap:35px;padding-top:22px}.caption h2{font:normal 28px Georgia;margin:0}.caption p{margin:0;font-size:16px;line-height:1.7;max-width:760px}footer{border-top:1px solid #bcbcb6;padding:24px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:1px}.sheen{position:absolute;inset:0;pointer-events:none;display:none;clip-path:polygon(49% 52%,68% 49%,75% 58%,71% 76%,54% 75%,48% 62%);background:linear-gradient(115deg,transparent 35%,#fff0 43%,#ffffff80 49%,#ffffffbd 50%,#fff0 57%,transparent 65%);background-size:400% 100%;mix-blend-mode:screen}.stage.jewelry .sheen{display:block;animation:diamondsheen 5s 1.8s ease-in-out infinite}@keyframes diamondsheen{0%,15%{background-position:130% 0;opacity:0}20%{opacity:.9}55%{background-position:-25% 0;opacity:.9}65%,100%{background-position:-25% 0;opacity:0}}body.still canvas,body.still .sheen{display:none}body.paused .sheen{animation-play-state:paused}body.still .curtain{display:none}@media(max-width:650px){header{padding:18px 5%;font-size:12px}.edition{max-width:135px;text-align:right;line-height:1.5}main{padding-top:28px}.topline{display:block}.intro{margin-top:18px}nav{margin-top:24px}nav button{flex:1;min-width:130px;padding:12px 10px}.stage-section{padding:8px}.caption{grid-template-columns:1fr;gap:12px}.controls button{font-size:13px;padding:12px}.controls{gap:10px}.caption h2{font-size:25px}footer{flex-direction:column;line-height:1.5}}
@media(prefers-reduced-motion:reduce){body:not(.playrequested) .curtain,body:not(.playrequested) .sheen{animation:none;display:none}}

/* Trace the existing spread motif, then reveal the original artwork. */
.z-trace{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;display:none;fill:none;stroke-linejoin:miter;stroke-linecap:butt}
.z-shadow{stroke:#303135;stroke-width:155}.z-line{stroke:#fff;stroke-width:34}
.stage.sothebys.enter .curtain{display:none;animation:none}
.stage.sothebys.enter .z-trace{display:block;animation:tracefade 4.1s linear both}
.stage.sothebys.enter .z-line,.stage.sothebys.enter .z-shadow{stroke-dasharray:1000;animation:zdraw 3.1s cubic-bezier(.3,0,.2,1) both}
.stage.sothebys.enter>img{animation:spreadreveal 4.1s ease both}
@keyframes zdraw{0%{stroke-dashoffset:1000}28%{stroke-dashoffset:789}36%{stroke-dashoffset:762}65%{stroke-dashoffset:470}72%{stroke-dashoffset:447}100%{stroke-dashoffset:0}}
@keyframes tracefade{0%,76%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes spreadreveal{0%,73%{opacity:0;clip-path:inset(0 100% 0 0)}100%{opacity:1;clip-path:inset(0)}}
.sheen{clip-path:none;-webkit-mask-image:radial-gradient(ellipse 9% 6% at 64% 55%,#000 20%,transparent 100%),radial-gradient(ellipse 6% 12% at 62% 65%,#000 0%,transparent 100%);mask-image:radial-gradient(ellipse 9% 6% at 64% 55%,#000 20%,transparent 100%),radial-gradient(ellipse 6% 12% at 62% 65%,#000 0%,transparent 100%)}
body.paused .z-trace,body.paused .z-line,body.paused .z-shadow,body.paused .stage.sothebys.enter>img{animation-play-state:paused}
body.still .z-trace{display:none!important}body.still .stage.sothebys.enter>img{animation:none;opacity:1;clip-path:none}
@media(prefers-reduced-motion:reduce){body:not(.playrequested) .z-trace{display:none!important}body:not(.playrequested) .stage.sothebys.enter>img{animation:none;opacity:1;clip-path:none}}

/* The ring now uses a traveling light following its band. */
.stage.jewelry .sheen{display:none}

/* Ads meet the frame edges without a surrounding mat. */
.stage-section{padding:0;background:transparent;min-height:0;width:100%;max-width:100%;margin:0 auto}.stage{width:min(1120px,100%)}.stage.portrait{width:min(510px,100%)}


/* Preserve the approved ad sizes and exact source proportions. */
.stage-section{padding:0;background:transparent}.stage{width:min(100%,1120px)}.stage.portrait{width:min(100%,510px)}.stage img{object-fit:contain}.z-shadow{stroke-width:163}.z-line{stroke-width:36}

/* Portrait frame follows the image itself, eliminating reserved bands above and below. */
.stage.portrait{aspect-ratio:auto!important;height:auto;line-height:0;background:transparent}.stage.portrait>img{height:auto;aspect-ratio:auto;object-fit:contain}.stage.portrait canvas{height:100%;width:100%}.stage-section{border:0;outline:0;box-shadow:none}

/* Approved ONE Sotheby’s display contrast correction; original artwork stays intact. */
.stage.sothebys{filter:contrast(1.16) saturate(1.08) brightness(.98)}
