:root{--ground:#b8b6b2;--ink:#20201e;--surface:#c9c7c3;--platform-top:#ceccc8;--platform-front:#a4a19d;--pad:clamp(20px,3vw,52px);--font:"Helvetica Neue",Helvetica,Arial,sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--ground);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ground);color:var(--ink);transition:background-color .8s,color .8s}body[data-colour=white]{--ground:#f1f1ee;--ink:#292927;--surface:#e7e7e3;--platform-top:#e3e3df;--platform-front:#d3d3ce}body[data-colour=black]{--ground:#191b1b;--ink:#f1f0eb;--surface:#282a2a;--platform-top:#363939;--platform-front:#242626;color-scheme:dark}body[data-colour=red]{--ground:#a52b2b;--ink:#fff5ee;--surface:#b83435;--platform-top:#bd4140;--platform-front:#8f2224;color-scheme:dark}button,a,input{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;background:none;border:0;padding:0;cursor:pointer}a{text-decoration:none}button:hover,a:hover{opacity:.7}button:active{transform:translateY(1px)}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid currentColor;outline-offset:6px}img,video{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2{font-weight:400;letter-spacing:-.055em;line-height:.94}p{font-size:clamp(16px,1.3vw,20px);line-height:1.45}small{font-size:14px}button,.text-link{font-size:16px;line-height:1.3}.text-link{display:inline-flex;align-items:center;gap:24px;min-height:44px}.text-link span{font-size:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;left:20px;top:-80px;background:var(--ink);color:var(--ground);padding:15px}.skip-link:focus{top:10px}.site-header{position:fixed;top:0;left:0;right:0;z-index:40;padding:22px var(--pad);display:flex;justify-content:space-between;align-items:center;pointer-events:none}.site-header a,.site-header button{pointer-events:auto}.brand{font-size:32px;letter-spacing:-.055em}.site-header nav{display:flex;gap:28px;align-items:center}.site-header nav button{min-height:44px}.site-header.over-film{color:#f8f5ef;text-shadow:0 1px 12px #0007}.theme-picker{position:fixed;bottom:26px;right:var(--pad);z-index:40;display:flex;gap:14px;align-items:center;font-size:16px;padding:8px 0}.theme-picker fieldset,.collection-toolbar fieldset{border:0;padding:0;margin:0;display:flex;gap:8px}.swatch{position:relative;display:grid;place-items:center;width:36px;height:36px;cursor:pointer}.swatch input{position:absolute;opacity:0}.swatch span{display:block;width:23px;height:23px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #ffffff45}.swatch input:checked+span{outline:2px solid currentColor;outline-offset:5px}.swatch:has(input:focus-visible){outline:2px solid currentColor;outline-offset:3px}.theme-picker.over-film{color:#fff}.hero{position:relative;min-height:100svh;overflow:hidden;background:#8c847a;color:#f7f2e9}.hero-media{position:absolute;inset:0}.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;object-position:65% center}.hero-media:after{content:"";position:absolute;inset:0;background:#0000001c;pointer-events:none}.hero video,.ritual video{position:absolute;inset:0;opacity:0}.has-video-frame video{opacity:1}.hero-copy{position:absolute;z-index:3;left:var(--pad);top:28%;}.hero h1{font-size:clamp(70px,8.7vw,150px);max-width:10ch}.hero-copy .text-link{margin-top:40px}.hero-endnote{position:absolute;bottom:45px;left:var(--pad);font-size:16px}.video-play{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:5;background:#f1f0eb;color:#20201e;padding:12px 20px}.scroll-scene{position:relative;height:240svh}.sticky-stage{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden}.scene-copy{position:absolute;z-index:7}.scene-copy h2{font-size:clamp(60px,7vw,116px)}.scene-copy p{margin-top:30px}.landing-copy{left:var(--pad);top:22%;width:28%}.landing-world{position:absolute;inset:0;--candle-height:min(58svh,620px)}.platform{position:absolute;bottom:18%;left:35%;width:66%;height:12%;transform:translateX(var(--platform-x,0vw));z-index:1;will-change:transform}.platform-top{position:absolute;inset:0 0 34%;background:var(--platform-top);clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);transition:background-color .8s}.platform-front{position:absolute;left:0;right:10%;bottom:0;height:35%;background:var(--platform-front);transition:background-color .8s}.candle-layer{position:absolute;left:63%;bottom:25.8%;height:var(--candle-height);width:calc(var(--candle-height)*.765);transform:translate(calc(-50% + var(--candle-x,0vw)),var(--candle-y,0px)) rotate(var(--candle-rotate,0deg));transform-origin:center bottom;z-index:4;will-change:transform}.candle-layer :is(img,svg),.craft-object :is(img,svg){position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:0;transition:opacity .55s}.candle-layer :is(img,svg).is-active,.craft-object :is(img,svg).is-active{opacity:1}.contact-shadow{position:absolute;left:63%;bottom:24.7%;width:calc(var(--candle-height)*.72);height:3.5%;background:#000;border-radius:50%;filter:blur(var(--shadow-blur,10px));opacity:var(--shadow-opacity,.2);transform:translateX(calc(-50% + var(--candle-x,0vw))) scale(var(--shadow-scale,1));z-index:2;will-change:transform,opacity}.product-note{position:absolute;bottom:8%;left:var(--pad);z-index:7}.product-note .text-link{margin-top:14px;display:flex}.product-note small{display:block;margin-top:4px}.craft{height:190svh}.craft-object{position:absolute;left:8%;top:24%;width:54%;height:50%;z-index:4;transform:translateX(var(--lid-x,0%)) rotate(var(--lid-rotate,0deg));will-change:transform}.craft-object .lid-fallback{object-fit:contain;mix-blend-mode:multiply}.craft-copy{left:68%;right:var(--pad);top:24%}.craft-copy .text-link{margin-top:24px}.craft-platform{position:absolute;left:0;right:43%;top:71%;height:4%;background:var(--platform-front);transform:translateX(var(--craft-platform-x,0%));transition:background-color .8s}.ritual{position:relative;min-height:100svh;overflow:hidden;background:#171715;color:#fff8ee}.ritual-film{position:absolute;inset:0}.ritual img,.ritual video{width:100%;height:100%;object-fit:cover;object-position:center 50%}.ritual-copy{position:absolute;left:var(--pad);bottom:13%;z-index:3}.ritual-copy h2{font-size:clamp(60px,7.8vw,130px)}.ritual-copy p{margin-top:26px}.ritual-copy .text-link{margin-top:20px}.collection-invitation{position:relative;min-height:120svh;padding:18svh var(--pad) 10svh;overflow:hidden}.collection-invitation h2{font-size:clamp(60px,8vw,132px)}.collection-invitation>.text-link{position:absolute;bottom:12%;left:var(--pad);z-index:4}.collection-composition{position:absolute;left:36%;right:5%;bottom:15%;height:65svh;display:flex;align-items:end;justify-content:center}.collection-composition :is(img,svg){object-fit:contain;width:27%;max-height:100%;height:auto;align-self:end;margin-left:-5%}.collection-composition :is(img,svg):nth-child(2){align-self:center;margin-top:10%;z-index:2}.collection-composition :is(img,svg):nth-child(3){align-self:start;margin-top:8%}.collection-composition :is(img,svg):nth-child(4){align-self:center;z-index:1;margin-top:16%}footer{padding:60px var(--pad) 32px;background:var(--surface);overflow:hidden;transition:background-color .8s}footer>p{margin-bottom:10svh}.footer-brand{display:block;font-size:23vw;line-height:.9;letter-spacing:-.07em;margin-left:-.015em}.footer-bottom{display:flex;justify-content:space-between;margin-top:42px;font-size:14px;gap:20px;padding-bottom:65px}.footer-bottom button{font-size:14px}dialog{color:var(--ink);background:var(--ground);border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;margin:0;overscroll-behavior:contain}dialog::backdrop{background:#0009}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:24px var(--pad);position:sticky;top:0;background:var(--ground);z-index:5;gap:20px}.dialog-header h2{font-size:clamp(30px,4vw,60px)}.dialog-header button{min-height:44px}.collection-toolbar{display:flex;padding:12px var(--pad) 24px;justify-content:space-between;align-items:center;gap:20px}.collection-toolbar fieldset{gap:22px}.gallery-colour-button{min-height:44px;display:flex;align-items:center;gap:10px;position:relative}.gallery-colour-button input{position:absolute;opacity:0}.gallery-colour-button .colour-dot{width:14px;height:14px;border-radius:50%;background:var(--swatch)}.gallery-colour-button:has(input:checked){font-weight:600}.gallery-colour-button:has(input:focus-visible){outline:2px solid currentColor;outline-offset:3px}.collection-toolbar p{font-size:14px}.gallery-viewer{padding:0 var(--pad)}.viewer-media{height:62svh;position:relative;background:var(--surface)}.viewer-media img,.viewer-media video{height:100%;width:100%;object-fit:contain}.viewer-media video{position:absolute;inset:0}.viewer-caption{display:flex;justify-content:space-between;align-items:start;gap:30px;padding-top:20px}.viewer-caption h3{font-size:24px;font-weight:400;letter-spacing:-.025em}.viewer-caption p{max-width:62ch;font-size:16px;margin-top:10px}.viewer-actions{display:flex;align-items:center;gap:20px;flex-shrink:0}.viewer-actions button{min-height:44px;min-width:30px}.viewer-actions a{font-size:16px;white-space:nowrap}.gallery-thumbnails{display:flex;gap:12px;padding:30px var(--pad) 45px;overflow:auto;scroll-snap-type:x proximity}.gallery-thumbnail{flex:0 0 112px;display:block;scroll-snap-align:start}.gallery-thumbnail img{width:112px;height:100px;object-fit:cover}.gallery-thumbnail span{display:block;font-size:14px;margin-top:10px;line-height:1.25}.gallery-thumbnail[aria-current=true] img{outline:2px solid currentColor;outline-offset:3px}.gallery-thumbnail:not([aria-current=true]){opacity:.6}.bag-dialog{width:min(620px,100vw);margin-left:auto;padding-bottom:40px}.bag-dialog .dialog-header{padding:28px}.bag-intro,[data-bag-items],[data-bag-status],[data-bag-summary-panel]{margin:20px 28px}.bag-item{display:grid;grid-template-columns:70px 1fr auto;gap:20px;align-items:center;padding:20px 0}.bag-item :is(img,svg){width:100%;height:100px;object-fit:contain}.bag-item h3{font-size:20px;font-weight:400}.quantity-controls{display:flex;gap:18px;align-items:center;margin-top:14px}.quantity-controls button{font-size:22px;min-width:32px;min-height:36px}.bag-item>button{font-size:14px}.primary-button{display:block;margin:30px 28px;padding:16px 24px;background:var(--ink);color:var(--ground)}[data-bag-summary-panel] h3{font-size:24px;font-weight:400;margin-bottom:15px}[data-bag-summary-panel] p+p{margin-top:20px}body.dialog-open{overflow:hidden}noscript{display:block;padding:20px var(--pad)}noscript a{display:inline-block;margin:10px}.reduced-motion .scroll-scene{height:100svh}.reduced-motion .sticky-stage{position:relative}.reduced-motion .platform,.reduced-motion .candle-layer,.reduced-motion .craft-object,.reduced-motion .craft-platform{will-change:auto}.reduced-motion{scroll-behavior:auto}.motion-paused .platform,.motion-paused .candle-layer,.motion-paused .craft-object,.motion-paused .craft-platform{will-change:auto}@media(max-width:900px){.site-header{padding-top:14px}.brand{font-size:28px}.site-header nav{gap:16px}.site-header nav button{font-size:14px}.hero-copy{top:21%}.hero h1{font-size:clamp(64px,11vw,100px)}.hero-media img,.hero-media video{object-position:64% center}.scene-copy h2{font-size:clamp(52px,8vw,80px)}.landing-copy{top:16%;width:44%;}.landing-world{--candle-height:min(48svh,500px)}.candle-layer{left:66%;bottom:27%}.contact-shadow{left:66%;bottom:25.9%}.platform{left:18%;width:95%;bottom:19.2%;height:12%}.product-note{bottom:9%}.craft-object{left:2%;width:60%;top:28%}.craft-copy{left:64%;top:23%}.craft-copy p{font-size:16px}.ritual-copy{bottom:12%;}.collection-composition{left:20%;right:0;bottom:18%;height:55svh}.collection-invitation h2{font-size:80px}.viewer-caption{flex-direction:column;gap:12px}.viewer-actions{width:100%;justify-content:space-between}.viewer-media{height:52svh}}@media(max-width:600px){.site-header nav{gap:14px}.site-header .motion-toggle{max-width:50px;text-align:left;line-height:1.15}.theme-picker{right:20px;bottom:16px;font-size:14px;gap:8px}.theme-picker .swatch{width:32px;height:32px}.theme-picker .swatch span{width:20px;height:20px}.hero{min-height:100svh}.hero-copy{top:17%;}.hero h1{font-size:clamp(52px,12vw,76px);line-height:.98}.hero-copy .text-link{margin-top:26px;font-size:16px}.hero-media img,.hero-media video{object-fit:cover;object-position:60% center}.hero-endnote{bottom:86px;font-size:16px}.sticky-stage{min-height:640px;height:100svh}.scroll-scene{height:210svh}.landing-copy{top:13%;left:20px;width:80%}.landing-copy h2{font-size:52px}.landing-copy p{display:none}.landing-world{--candle-height:min(41svh,390px)}.candle-layer{left:62%;bottom:27%}.contact-shadow{left:62%;bottom:25.8%}.platform{left:8%;width:120%;bottom:19.5%;height:11.5%}.product-note{left:20px;bottom:8%;}.product-note p{font-size:16px}.product-note .text-link{margin-top:4px}.product-note small{font-size:13px}.craft{height:170svh}.craft-object{left:8%;width:86%;height:36%;top:42%}.craft-copy{left:20px;right:20px;top:13%;}.craft-copy h2{font-size:52px}.craft-copy p{position:absolute;left:52%;top:0;margin:0;font-size:16px}.craft-copy .text-link{margin-top:18px}.craft-platform{top:75%;right:0;height:3%}.ritual{min-height:100svh}.ritual-film{top:27%;bottom:21%;}.ritual img,.ritual video{object-fit:contain;object-position:center}.ritual-copy{inset:13% 20px auto}.ritual-copy h2{font-size:52px}.ritual-copy p{position:absolute;left:50%;top:8px;margin:0;max-width:14ch}.ritual-copy .text-link{position:absolute;top:64svh;left:0;white-space:nowrap}.collection-invitation{min-height:100svh;padding:15svh 20px}.collection-invitation h2{font-size:56px}.collection-composition{left:2%;right:0;bottom:24%;height:41svh}.collection-composition :is(img,svg){width:29%;margin-left:-5%}.collection-invitation>.text-link{left:20px;bottom:14%;font-size:16px}.footer-brand{font-size:23vw}footer>p{margin-bottom:9svh}.footer-bottom{font-size:13px;gap:15px;flex-wrap:wrap;margin-top:30px;padding-bottom:55px}.footer-bottom button{font-size:13px}.dialog-header{padding:20px}.dialog-header h2{font-size:36px}.collection-toolbar{padding:0 20px 16px;align-items:start;flex-direction:column;gap:4px}.collection-toolbar fieldset{gap:20px}.gallery-colour-button{font-size:16px}.gallery-colour-button .colour-dot{display:none}.gallery-viewer{padding:0 20px}.viewer-media{height:48svh}.viewer-caption{padding-top:16px}.viewer-caption h3{font-size:24px}.viewer-caption p{font-size:16px;line-height:1.35}.viewer-actions{gap:12px;flex-wrap:wrap}.viewer-actions a{font-size:14px}.gallery-thumbnails{padding:25px 20px}.gallery-thumbnail{flex-basis:88px}.gallery-thumbnail img{width:88px;height:80px}.gallery-thumbnail span{font-size:14px}.bag-dialog .dialog-header{padding:20px}.bag-intro,[data-bag-items],[data-bag-status],[data-bag-summary-panel]{margin:20px}.bag-item{grid-template-columns:50px 1fr auto;gap:12px}.primary-button{margin:30px 20px}.reduced-motion .sticky-stage{min-height:680px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.scroll-scene{height:100svh}.sticky-stage{position:relative}.platform,.candle-layer,.craft-object,.craft-platform{will-change:auto}}

/* Theme-matched story media only: retained room films stay in the archive. */
.hero,.ritual{background:var(--ground);color:var(--ink);transition:background-color .8s,color .8s}
.hero-cutout{position:absolute;left:39%;top:-104%;width:76%;height:218%;overflow:visible;pointer-events:none}
.hero-cutout :is(img,svg),.ritual-cutout :is(img,svg){position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:0;transition:opacity .6s}
.hero-cutout :is(img,svg).is-active,.ritual-cutout :is(img,svg).is-active{opacity:1}
.hero-copy{top:29%;max-width:58%;}.hero h1{font-size:clamp(64px,8.4vw,144px)}
.hero-media:after{display:none}.hero-media img,.hero-media video{object-fit:contain;object-position:center}
.ritual-cutout{position:absolute;inset:3% 2% -40% 43%;pointer-events:none}
.ritual-copy{bottom:21%;max-width:40%}.ritual img,.ritual video{object-fit:contain}
.site-header.over-film,.theme-picker.over-film{color:var(--ink);text-shadow:none}
@media(max-width:900px){.hero-cutout{left:37%;top:-76%;width:100%;height:190%}.hero-copy{max-width:68%}.hero h1{font-size:clamp(56px,10vw,90px)}}
@media(max-width:600px){.hero-cutout{left:20%;top:-20%;width:130%;height:137%}.hero-copy{top:17%;max-width:95%}.hero h1{font-size:clamp(50px,12vw,72px)}.ritual-cutout{inset:29% -12% 10% 25%}.ritual-copy{max-width:none;bottom:auto}.hero-media img,.hero-media video{object-fit:contain}.ritual-film{top:25%;bottom:20%}}

.landing-copy{width:46%}.landing-copy h2{font-size:clamp(52px,6vw,104px)}.craft-copy h2{font-size:clamp(48px,5.1vw,86px)}.failed-image{display:none!important}.media-unavailable:after{content:"Image unavailable";position:absolute;left:20px;bottom:20px;font-size:16px;color:var(--ink)}
@media(max-width:900px){.landing-copy{width:49%}.landing-copy h2{font-size:clamp(44px,5.7vw,64px)}.craft-copy h2{font-size:clamp(36px,4.8vw,60px)}}
@media(max-width:600px){.landing-copy{width:90%}.landing-copy h2{font-size:clamp(40px,10.7vw,52px)}.craft-copy h2{font-size:clamp(40px,10.7vw,52px)}.craft-copy p{position:static;margin-top:20px;max-width:28ch}.craft-copy p br{display:none}.craft-object{top:44%;height:32%}.craft-copy .text-link{margin-top:12px}}

/* A supplied macro is displayed as its own frame, never enlarged from a catalogue thumbnail. */
.hero-cutout:has(.is-active[data-asset-kind=macro]){inset:0 0 0 34%;width:auto;height:auto;overflow:hidden}
.hero-cutout :is(img,svg)[data-asset-kind=macro]{object-fit:contain;object-position:right center;max-width:100%;max-height:100%}
@media(min-width:901px){.hero-cutout:not(:has(.is-active[data-asset-kind=macro])){height:min(145svh,1300px);width:min(76vw,950px);top:auto;bottom:-12%;left:auto;right:-8%}}
@media(max-width:600px){.hero-cutout:has(.is-active[data-asset-kind=macro]){inset:29% -10% 5% 5%}}

/* Product viewport uses the native Picsart cutout without its transparent padding. */
svg[role="img"]{display:block;overflow:hidden}
.candle-layer svg,.craft-object svg{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .55s}
.candle-layer svg.is-active,.craft-object svg.is-active{opacity:1}
.hero-cutout svg,.ritual-cutout svg{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s}
.hero-cutout svg.is-active,.ritual-cutout svg.is-active{opacity:1}
.hero-media[data-framing="material"] img,.hero-media[data-framing="material"] video{object-fit:cover;object-position:var(--film-focus,50% 50%)}

/* Author display rules must not expose inactive gallery colours or media slots. */
[hidden]{display:none!important}
.hero:has(.hero-media:not([hidden])) .hero-cutout,.ritual:has(.ritual-film:not([hidden])) .ritual-cutout{visibility:hidden}

/* The headline gives way to the engraving as the close approach reaches it. */
@media(min-width:601px){
 .hero-copy h1{transition:opacity 1s ease}
 .hero:has(.hero-media.is-detail) .hero-copy h1{opacity:0}
}

/* On phones keep the whole landscape film below the title, within one colour field. */
@media(max-width:600px){
 .hero-media{top:34%;bottom:13%}
 .hero-media[data-framing] :is(img,video){object-fit:contain;object-position:center}
 .hero:has(.hero-media:not([hidden])) .hero-cutout{visibility:hidden}
}

/* v8 product scenes: one grounded landing group, colour-specific lid film and portrait. */
.landing-world{--platform-left:35%;--platform-width:66%;--platform-bottom:18%;--platform-height:12%;--product-center:63%;--contact-bottom:23.7%;--shadow-bottom:22.9%;transform:translate3d(var(--landing-x,-25vw),0,0);opacity:var(--landing-opacity,.9);will-change:transform,opacity}
.platform{left:var(--platform-left);width:var(--platform-width);bottom:var(--platform-bottom);height:var(--platform-height);transform:none;will-change:auto}
.candle-layer{left:var(--product-center);bottom:var(--contact-bottom);transform:translateX(-50%);will-change:auto}
.contact-shadow{left:var(--product-center);bottom:var(--shadow-bottom);height:1.6%;transform:translateX(-50%);opacity:.17;will-change:auto}

.craft{position:relative;min-height:100svh;height:100svh;overflow:hidden;background:var(--ground);color:var(--ink)}
.craft-fallback,.craft-film{position:absolute;inset:0;overflow:hidden}
.craft-fallback :is(img,svg){position:absolute;inset:4% 8%;width:84%;height:92%;object-fit:contain;object-position:center}
.craft-film{background:var(--ground)}
.craft-film img,.craft-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}
.craft-film video{opacity:0}
.craft-film.has-video-frame video{opacity:1}
.craft-film .video-play{position:absolute;left:var(--pad);bottom:10%;z-index:4;color:var(--ink);background:var(--ground);padding:12px 18px}
.craft-copy{position:absolute;z-index:5;left:var(--pad);right:auto;top:auto;bottom:15%;max-width:32%}
.craft-copy h2{font-size:clamp(48px,5.5vw,82px)}
.craft-copy p{margin-top:20px;max-width:28ch}
.craft-copy .text-link{margin-top:16px}
.craft:has(.craft-film:not([hidden])) .craft-fallback{visibility:hidden}

.portrait{position:relative;min-height:110svh;padding:15svh var(--pad) 12svh;overflow:hidden;background:var(--ground);color:var(--ink)}
.portrait h2{font-size:clamp(60px,8vw,132px);position:relative;z-index:2}
.portrait-composition{position:absolute;inset:0;display:flex;align-items:end;justify-content:center;padding:18svh 4vw 11svh}
.portrait-composition .portrait-art{position:absolute;inset:26svh 3vw 11svh;width:auto;height:auto;opacity:0;visibility:hidden;transition:opacity .4s}
.portrait-composition .portrait-art.is-active,.portrait-composition .portrait-art:not([data-portrait-colour]){opacity:1;visibility:visible}
.portrait-composition .portrait-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.portrait-row{height:100%;width:100%;display:flex;align-items:end;justify-content:center;gap:0}
.portrait-row figure{position:relative;flex:1 1 25%;height:100%;display:flex;align-items:end;justify-content:center;min-width:0}
.portrait-row figure :is(img,svg){width:100%;height:92%;object-fit:contain;object-position:center bottom;position:relative;z-index:1}
.portrait-shadow{position:absolute;bottom:0;left:18%;right:18%;height:2.5%;border-radius:50%;background:#000;filter:blur(12px);opacity:.17}

.film-dialog .gallery-viewer{padding:0 var(--pad)}
.film-dialog .viewer-media{height:72svh;background:var(--ground)}
.film-dialog .viewer-media img,.film-dialog .viewer-media video{object-fit:contain}
.film-dialog .viewer-caption{padding:20px 0}
.footer-bottom a{font-size:14px}

@media(max-width:900px){
 .landing-world{--platform-left:18%;--platform-width:95%;--platform-bottom:19.2%;--platform-height:12%;--product-center:66%;--contact-bottom:24.9%;--shadow-bottom:24.1%}
 .craft-copy{max-width:38%;bottom:14%}
 .craft-copy h2{font-size:clamp(44px,6vw,72px)}
 .portrait{min-height:100svh}
 .portrait-composition{padding:22svh 2vw 14svh}
 .portrait-row figure :is(img,svg){height:88%}
}
@media(max-width:600px){
 .landing-world{--platform-left:8%;--platform-width:120%;--platform-bottom:19.5%;--platform-height:11.5%;--product-center:62%;--contact-bottom:25.025%;--shadow-bottom:24.225%}
 .craft{height:100svh;min-height:680px}
 .craft-film,.craft-fallback{inset:20% 0 35%}
 .craft-film img,.craft-film video{object-fit:contain}
 .craft-fallback :is(img,svg){inset:0;width:100%;height:100%}
 .craft-copy{left:20px;right:20px;top:auto;bottom:7%;max-width:none}
 .craft-copy h2{font-size:clamp(42px,10vw,54px)}
 .craft-copy p{font-size:16px;margin-top:10px;max-width:unset}
 .craft-copy p br{display:none}
 .craft-copy .text-link{margin-top:4px}
 .craft-film .video-play{left:20px;bottom:10%}
 .portrait{min-height:100svh;padding:15svh 20px 9svh}
 .portrait h2{font-size:clamp(50px,12vw,64px)}
 .portrait-composition{inset:0;padding:27svh 2px 10svh}
 .portrait-composition .portrait-art{inset:25svh 3vw 12svh}
 .portrait-row figure :is(img,svg){height:82%}
 .portrait-shadow{left:16%;right:16%;height:2%;filter:blur(7px)}
 .film-dialog .gallery-viewer{padding:0 20px}
 .film-dialog .viewer-media{height:55svh}
 .film-dialog .viewer-caption{gap:10px}
 .footer-bottom a{font-size:13px}
}

/* Reference-led landing: all positions share the photograph's 960 × 1280 space.
   Only the jar moves vertically; the plinth and its floor shading stay together. */
.landing.scroll-scene{height:250svh}
.landing-world{inset:auto;left:68%;bottom:7%;height:min(84svh,1060px);width:auto;aspect-ratio:3/4;transform:translateX(-50%);opacity:1;will-change:auto;pointer-events:none}
.landing-art{display:block;width:100%;height:100%;overflow:visible}
.landing-composition{transform:translateX(var(--landing-x,0px));opacity:var(--landing-opacity,1)}
.landing-jar{transform:translateY(var(--jar-y,0px));opacity:var(--jar-opacity,1)}
.landing-photographic-contact{opacity:var(--contact-opacity,1)}
.landing-product{opacity:0;transition:opacity .45s ease}
.landing-product.is-active{opacity:1}
.landing-contact{transform-origin:480px 986px;transform:scaleX(var(--contact-scale,1));opacity:calc(.45 * var(--contact-opacity,1))}
.landing-product.failed-image{opacity:0!important}
.landing-status{position:absolute;inset:40% 15% auto;text-align:center;font-size:14px}
.landing-copy{width:37%;top:23%;z-index:2}
@media(min-width:901px){.landing-copy h2{font-size:clamp(44px,5.25vw,76px)}}
@media(max-width:900px){.landing-world{left:69%;height:min(74svh,760px);max-width:71vw}.landing-copy{width:43%}}
@media(max-width:600px){
 .landing.scroll-scene{height:235svh}
 .landing-world{left:50%;top:28%;bottom:20%;height:auto;width:95vw;max-width:none;aspect-ratio:auto}
 .landing-copy{left:20px;top:12%;width:90%}
 .landing-copy h2{font-size:clamp(36px,10vw,48px)}
 .landing .product-note{bottom:6%;left:20px}
}
@media(prefers-reduced-motion:reduce){
 .landing.scroll-scene{height:100svh;min-height:680px}
 .landing-composition,.landing-jar{transform:none!important;opacity:1!important}
 .landing-contact{transform:none!important;opacity:.45!important}
 .landing-photographic-contact{opacity:1!important}
 .landing-product{transition:none}
}

/* The approved lighting study, composed as a complete page chapter. */
.eclipse{position:relative;height:250svh;background:#b5a799;color:#29231e}
.eclipse-stage{position:sticky;top:0;height:100svh;min-height:620px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding-top:98px;overflow:hidden}
.eclipse-copy{display:flex;align-items:start;justify-content:space-between;gap:32px;padding:0 var(--pad) 16px}
.eclipse-copy h2{font-size:clamp(36px,4.4vw,74px);max-width:15ch;line-height:1;letter-spacing:-.05em}
.eclipse-copy p{font-size:18px;max-width:20ch}
.eclipse-picture{position:relative;min-height:0;overflow:hidden}
.eclipse-picture canvas,.eclipse-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.eclipse-picture [data-eclipse-message]{position:absolute;bottom:12px;left:var(--pad);font-size:16px;max-width:28ch}
.eclipse-caption{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:8px var(--pad) 34px;font-size:16px}
.eclipse-caption>span{display:flex;gap:22px}
.eclipse-caption .text-link{margin-right:190px}
.eclipse-caption label:focus-within{position:absolute;bottom:85px;left:var(--pad);width:auto;height:auto;padding:15px;clip:auto;overflow:visible;background:#ded4c9}
.eclipse-caption input{min-height:44px;accent-color:#29231e}
@media(max-width:600px){.eclipse{height:250svh}.eclipse-stage{padding-top:86px;min-height:580px}.eclipse-copy{display:block;padding-bottom:4px}.eclipse-copy h2{font-size:clamp(36px,10vw,52px);max-width:12ch}.eclipse-copy p{margin-top:20px;font-size:16px}.eclipse-copy p br{display:none}.eclipse-caption{display:block;padding-bottom:82px}.eclipse-caption .text-link{margin:12px 0 0}.eclipse-picture{margin:0 -4px}}
@media(prefers-reduced-motion:reduce){.eclipse{height:auto;min-height:100svh}.eclipse-stage{position:relative}.eclipse-caption>span{visibility:hidden}}

body[data-eclipse-active=true] .site-header,body[data-eclipse-active=true] .theme-picker{color:#29231e;text-shadow:none}

/* Full-bleed editorial chapters: media fills the section, copy is overlaid. */
.eclipse-stage{display:block;padding:0;min-height:0}
.eclipse-picture{position:absolute;inset:0;margin:0}
.eclipse-picture canvas,.eclipse-poster{object-fit:cover;object-position:center}
.eclipse-copy{position:absolute;z-index:3;left:var(--pad);top:17%;right:auto;display:block;width:32%;padding:0;pointer-events:none}
.eclipse-copy h2{font-size:clamp(44px,4.4vw,74px);max-width:none}
.eclipse-copy p{margin-top:24px;font-size:18px}
.eclipse-caption{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:12px var(--pad) 34px}
.hero-media[data-framing] :is(img,video),.hero-media :is(img,video){object-fit:cover}
.craft-film,.craft-fallback,.ritual-film{inset:0}
.craft-film :is(img,video),.ritual-film :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.portrait{height:100svh;min-height:0;padding:0}
.portrait h2{position:absolute;left:var(--pad);top:14%;font-size:clamp(48px,6vw,100px)}
.portrait-composition{inset:0;padding:0}
.portrait-composition .portrait-art{inset:0;width:100%;height:100%}
.portrait-composition .portrait-art img{object-fit:cover;object-position:center}
@media(max-width:600px){
 .eclipse-stage{height:100svh;min-height:0;padding:0}
 .eclipse-picture{margin:0}
 .eclipse-poster{object-position:61% center}
 .eclipse-copy{left:20px;top:14%;width:85%;max-width:340px}
 .eclipse-copy h2{font-size:clamp(38px,10vw,52px);max-width:12ch}
 .eclipse-copy p{margin-top:18px;max-width:21ch;font-size:16px}
 .eclipse-caption{left:0;right:0;bottom:0;display:block;padding:10px 20px 90px}
 .eclipse-caption>span{display:none}
 .craft-film,.craft-fallback,.ritual-film{inset:0}
 .craft-film :is(img,video),.ritual-film :is(img,video){object-fit:cover}
 .craft-copy{top:13%;bottom:auto;max-width:85%}
 .ritual-copy{top:13%;bottom:auto}
 .portrait{height:auto;min-height:0;aspect-ratio:1200/1420}
 .portrait h2{top:8%;font-size:clamp(36px,9vw,54px)}
 .portrait-composition .portrait-art{inset:0}
}

@media(max-width:600px){.eclipse-caption{top:38%;bottom:auto;padding:0 20px}.eclipse-caption .text-link{margin:0}}

/* Lid chapter: left-hand copy and the original right-hand product composition. */
.craft-copy{left:var(--pad);right:auto;top:50%;bottom:auto;width:29%;max-width:430px;transform:translateY(-50%)}
.craft-film :is(img,video){object-position:left center}
.craft-copy p{max-width:25ch}
@media(max-width:900px) and (min-width:601px){.craft-copy{width:30%;max-width:310px}.craft-copy h2{font-size:clamp(38px,5vw,56px)}}
@media(max-width:600px){.craft-copy{left:20px;right:auto;top:13%;bottom:auto;width:85%;max-width:340px;transform:none}.craft-film :is(img,video){object-position:70% center}}

/* Reposition the original lid, keeping the engraving facing the correct way. */
.craft-film{background:#b8b7b2}
body[data-colour=white] .craft-film{background:#f1f2ed}
body[data-colour=black] .craft-film{background:#181c1b}
body[data-colour=red] .craft-film{background:#9b1e2c}
.craft-film :is(img,video){object-position:left 70%;transform:translateX(-34%)}
.craft-copy{left:auto;right:var(--pad);width:29%;max-width:430px;top:50%;bottom:auto;transform:translateY(-50%)}
.craft-fallback :is(img,svg){inset:12% auto 12% 4%;width:54%;height:76%;object-position:left center}
@media(max-width:900px) and (min-width:601px){.craft-copy{left:auto;right:var(--pad);width:30%;max-width:310px}}
@media(max-width:600px){
 .craft-copy{left:auto;right:20px;top:13%;bottom:auto;width:85%;max-width:340px;transform:none;text-align:right}
 .craft-copy p{margin-left:auto}
 .craft-film :is(img,video){width:140%;object-fit:contain;object-position:left center;transform:translateX(-38%)}
 .craft-fallback :is(img,svg){inset:32% auto 8% 0;width:80%;height:60%}
}

/* Closing portrait: the selected full-bleed still and its scroll-led pullback. */
.closing-track{position:relative;height:170svh;min-height:0;padding:0;overflow:clip;background:var(--closing-paper,#746654);color:var(--closing-ink,#f7f4ee)}
.closing-scene{position:sticky;top:0;height:100svh;min-height:0;overflow:hidden;background:var(--closing-paper,#746654);color:var(--closing-ink,#f7f4ee)}
.closing-camera{position:absolute;inset:0;overflow:hidden;transform:scale(1);transform-origin:50% 26%;will-change:transform}
.closing-camera img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.closing-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(16,17,17,.4),rgba(16,17,17,.08) 52%,transparent 60%)}
.closing-track[data-tone=light] .closing-shade{background:none}
.closing-copy{position:absolute;z-index:2;left:clamp(32px,7vw,116px);top:29%;width:min(42vw,610px)}
.closing-copy h2{font-size:clamp(42px,6.15vw,94px);line-height:.99;letter-spacing:-.055em}
.closing-support{margin:22px 0 0;font-size:clamp(16px,1.25vw,19px);line-height:1.45}
.closing-copy .text-link{margin-top:24px;padding:8px 0;min-height:44px;border-bottom:1px solid currentColor;text-shadow:none}
.closing-status{position:absolute;z-index:3;left:var(--pad);bottom:76px;max-width:38ch;padding:12px 16px;background:var(--closing-paper,#746654);color:var(--closing-ink,#f7f4ee);font-size:16px}
.site-header.over-closing,.theme-picker.over-closing{color:var(--closing-tone-ink,#f7f4ee);text-shadow:none}
.site-header.over-closing .brand svg{filter:var(--closing-logo-filter,none)}
.theme-picker.over-closing .swatch input:checked+span{outline-color:currentColor}
.closing-track.is-closing-settled{height:auto;min-height:100svh}
.closing-track.is-closing-settled .closing-scene{position:relative;top:auto;min-height:100svh}
.closing-track.is-closing-settled .closing-camera{transform:scale(1)!important;will-change:auto}
@media(max-width:900px) and (min-width:701px){.closing-copy{width:45%;top:25%}.closing-copy h2{font-size:clamp(42px,6vw,68px)}}
@media(min-aspect-ratio:2/1){.closing-camera img{object-fit:contain;object-position:center}}
@media(prefers-reduced-motion:reduce){.closing-track{height:auto;min-height:100svh}.closing-scene{position:relative;top:auto}.closing-camera{transform:scale(1)!important;will-change:auto}}

/* Lid placement is baked into the full-size media; the viewport stays filled. */
.craft-film{inset:0;width:100%;height:100%}
.craft-film :is(img,video){inset:0;width:100%;height:100%;object-fit:cover;object-position:left 70%;transform:none}
@media(max-width:600px){.craft-film :is(img,video){inset:0;width:100%;height:100%;object-fit:cover;object-position:20% center;transform:none}}
