@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=DM+Sans:wght@400;450;500;550;600&display=swap');

:root{--paper:#f4f0e9;--ink:#382d2b;--muted:#857a74;--accent:#8a6a74;--hairline:rgba(81,61,54,.17);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}::selection{color:var(--paper);background:var(--accent)}[hidden]{display:none!important}.skip-link{position:fixed;top:10px;left:12px;transform:translateY(-180%);z-index:50;background:var(--ink);color:var(--paper);padding:12px 18px}.skip-link:focus{transform:translateY(0)}
#story{height:520vh;height:520svh;position:relative}#stage{height:100vh;height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;isolation:isolate;background:var(--paper)}.site-header{position:absolute;z-index:6;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:34px 4.3%}.wordmark{font-family:var(--serif);font-size:36px;line-height:1;letter-spacing:.1em;font-weight:500}.wordmark span{display:block;font-family:var(--sans);font-size:7px;letter-spacing:.42em;text-align:center;margin-top:7px;padding-left:2px}.edition{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;color:var(--muted);font-size:9px;font-weight:500;letter-spacing:.19em}.edition-line{height:1px;width:37px;background:var(--hairline)}.product-link{font-size:11px;border-bottom:1px solid var(--hairline);padding-bottom:8px;letter-spacing:.01em}.product-link span{margin-left:26px;font-size:16px}.product-link:hover{color:var(--accent);border-color:var(--accent)}
.scene-background{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 65% 40%,#fffdf8 0,rgba(255,253,248,.42) 25%,transparent 62%)}.studio-glow{position:absolute;width:55%;height:80%;left:43%;top:-7%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.5),transparent 64%);filter:blur(40px)}.scene-orbit{position:absolute;width:44vw;height:44vw;left:calc(64% - 22vw);top:calc(46% - 22vw);border:1px solid rgba(100,81,72,.065);border-radius:50%}#scene{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1;outline:none;touch-action:pan-y}.editorial{position:absolute;top:22.5%;left:7%;width:31%;z-index:3;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:11px;font-size:8px;letter-spacing:.17em;font-weight:500;margin:0 0 26px}.eyebrow>span{display:block;height:1px;width:22px;background:var(--accent)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,4.2vw,74px);line-height:.99;letter-spacing:-.045em;margin:0}h1 em{font-weight:400;color:var(--accent)}.story-copy{position:relative;height:140px;margin-top:43px}.copy-panel{position:absolute;top:0;left:0;width:100%;opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .5s ease;will-change:opacity}.copy-panel.is-active{opacity:1;transform:translateY(0)}.chapter{color:var(--accent);font-size:8px;font-weight:500;letter-spacing:.15em}.copy-panel h2{font-size:14px;font-weight:500;letter-spacing:.1em;margin:15px 0 12px}.copy-panel p{font-size:10px;font-weight:400;letter-spacing:.045em;line-height:2.15;margin:0;color:var(--muted)}.object-caption{position:absolute;right:6%;top:49%;display:flex;align-items:center;gap:14px;color:var(--muted);font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.15;z-index:2;pointer-events:none}.caption-line{width:35px;height:1px;background:var(--hairline)}
#loading{position:absolute;z-index:4;left:64%;top:45%;transform:translate(-50%,-50%);color:var(--muted);font-size:10px;letter-spacing:.06em;display:flex;align-items:center;gap:10px;pointer-events:none}.loading-dot{height:5px;width:5px;border-radius:50%;background:var(--accent);animation:breathe 1.2s ease infinite alternate}@keyframes breathe{to{opacity:.2}}#fallback{position:absolute;left:43%;top:20%;width:43%;z-index:2;text-align:center}#fallback img{width:100%;max-height:45vh;object-fit:contain;mix-blend-mode:multiply}#fallback p{font-size:11px;line-height:1.8;color:var(--muted)}
.motion-bottom{position:absolute;z-index:5;left:4.3%;right:4.3%;bottom:19px}.motion-hint{display:flex;justify-content:center;align-items:center;gap:11px;font-size:8px;font-weight:500;letter-spacing:.18em;color:var(--muted);margin:0 0 27px}.scroll-mark{height:19px;width:11px;border:1px solid rgba(133,122,116,.5);border-radius:8px;position:relative}.scroll-mark:after{content:'';position:absolute;top:4px;left:4px;width:1px;height:4px;background:var(--accent)}.motion-controls{border-top:1px solid var(--hairline);padding-top:17px}.timeline-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.phase-buttons{display:flex;gap:30px}.phase-buttons button,.playback-controls button{border:0;background:none;padding:5px 0;font-size:9px;letter-spacing:.05em;color:var(--muted);transition:color .2s}.phase-buttons button>span{font-size:8px;font-family:var(--sans);margin-right:8px;opacity:.55}.phase-buttons button.is-active,.phase-buttons button[aria-pressed=true]{color:var(--ink)}.phase-buttons button.is-active>span,.phase-buttons button[aria-pressed=true]>span{color:var(--accent);opacity:1}.phase-buttons button:hover,.playback-controls button:hover{color:var(--ink)}.playback-controls{display:flex;align-items:center;gap:27px}.play-icon{font-size:14px;margin-right:7px;vertical-align:-1px}#reset-view{border-left:1px solid var(--hairline);padding-left:26px}#reset-view>span{font-size:15px;margin-left:8px;vertical-align:-1px}.timeline-track{display:flex;align-items:center;gap:22px;margin-top:12px}#scrubber{display:block;appearance:none;-webkit-appearance:none;flex:1;min-width:0;height:22px;margin:0;background:transparent;cursor:ew-resize}#scrubber::-webkit-slider-runnable-track{height:1px;background:var(--hairline)}#scrubber::-moz-range-track{height:1px;background:var(--hairline)}#scrubber::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:9px;height:9px;border-radius:50%;border:0;background:var(--accent);margin-top:-4px;box-shadow:0 0 0 5px rgba(138,106,116,.08)}#scrubber::-moz-range-thumb{width:9px;height:9px;border-radius:50%;border:0;background:var(--accent);box-shadow:0 0 0 5px rgba(138,106,116,.08)}#progress-value{font-size:10px;font-variant-numeric:tabular-nums;width:39px;text-align:right;letter-spacing:.03em;color:var(--muted)}#progress-value span{font-size:8px;margin-left:2px}.stage-footnote{margin-top:13px;display:flex;justify-content:space-between;color:var(--muted);font-size:7px;letter-spacing:.18em;opacity:.7}
@media(min-width:1600px){.editorial{left:9%;top:24%}.story-copy{margin-top:47px}.copy-panel h2{font-size:16px}.copy-panel p{font-size:12px}.chapter{font-size:10px}.eyebrow{font-size:10px}.phase-buttons button,.playback-controls button{font-size:11px}.motion-bottom{bottom:27px}.motion-hint{margin-bottom:38px}.motion-controls{padding-top:23px}}
@media(max-width:1000px){.editorial{left:5.5%;width:37%;top:23%}h1{font-size:48px}.object-caption{right:3%;font-size:13px;top:57%}.caption-line{width:16px}.phase-buttons{gap:20px}.playback-controls{gap:17px}#reset-view{padding-left:17px}.story-copy{margin-top:30px}}
@media(max-width:900px){#story{height:490svh}#stage{min-height:620px}.site-header{padding:23px 6%}.wordmark{font-size:29px}.wordmark span{font-size:6px;margin-top:5px}.edition{display:none}.product-link{font-size:9px;padding-bottom:6px}.product-link span{margin-left:17px;font-size:13px}.editorial{left:7%;right:7%;top:116px;width:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 15px;align-items:start}.editorial>.eyebrow{grid-column:1 / -1;font-size:7px;letter-spacing:.13em;margin-bottom:16px}.eyebrow>span{width:16px}h1{font-size:39px;line-height:.97;letter-spacing:-.045em}.story-copy{height:115px;margin-top:4px}.chapter{font-size:6px;letter-spacing:.08em}.copy-panel h2{font-size:11px;letter-spacing:.02em;margin:12px 0 9px}.copy-panel p{font-size:8px;line-height:1.9;letter-spacing:0}.copy-panel p br{display:none}.scene-background{background:radial-gradient(ellipse at 50% 52%,#fffdf9 0,rgba(255,253,248,.35) 31%,transparent 72%)}.scene-orbit{width:82vw;height:82vw;left:9vw;top:calc(55% - 41vw)}.object-caption{display:none}#loading{left:50%;top:56%;font-size:9px}.motion-bottom{left:6%;right:6%;bottom:15px}.motion-hint{font-size:7px;gap:9px;margin-bottom:17px}.scroll-mark{height:16px;width:10px}.scroll-mark:after{left:3.5px;height:3px}.motion-controls{padding-top:12px}.timeline-top{flex-wrap:wrap;gap:11px}.phase-buttons{justify-content:space-between;width:100%;gap:5px}.phase-buttons button{font-size:8px;letter-spacing:0;padding:5px 0}.phase-buttons button>span{font-size:6px;margin-right:5px}.playback-controls{width:100%;justify-content:space-between;gap:12px}.playback-controls button{font-size:8px;padding:0}.play-icon{font-size:13px}#reset-view{border-left:0;padding-left:0}#reset-view>span{font-size:13px}.timeline-track{margin-top:5px;gap:14px}#progress-value{font-size:8px}.stage-footnote{font-size:5.5px;letter-spacing:.12em;margin-top:5px}#fallback{left:15%;top:34%;width:70%}#fallback img{max-height:30vh}#fallback p{font-size:8px}}
@media(max-width:380px){h1{font-size:35px}.editorial{column-gap:8px}.copy-panel h2{font-size:10px}.copy-panel p{font-size:7.5px}.phase-buttons button{font-size:7px}.phase-buttons button>span{margin-right:3px}}
@media(max-height:720px) and (min-width:901px){#stage{min-height:560px}.site-header{padding-top:24px}.editorial{top:20%}h1{font-size:46px}.story-copy{margin-top:25px}.copy-panel h2{margin-top:10px}.motion-hint{margin-bottom:15px}.motion-bottom{bottom:13px}.stage-footnote{margin-top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Keep the sculpture clear of editorial labels and maintain readable controls. */
.object-caption{display:none}#scene{cursor:grab}#scene.dragging{cursor:grabbing}.copy-panel p{font-size:12px}.phase-buttons button,.playback-controls button{font-size:11px}.motion-hint{font-size:10px}.copy-panel{transform:none;transition:none}
@media(max-width:900px){.copy-panel p{font-size:10px}.copy-panel h2{font-size:12px}.chapter{font-size:8px}.phase-buttons button,.playback-controls button{font-size:10px}.motion-hint{font-size:9px}.editorial{top:103px}h1{font-size:37px}}
@media(max-width:380px){.phase-buttons button{font-size:9px}h1{font-size:32px}.copy-panel p{font-size:9px}}
@media(max-height:680px) and (max-width:900px){#stage{min-height:620px}}

/* Photographic satin plate, reconstructed from the supplied product photograph. */
.scene-background{background:#f3ecdd url('./assets/ivory-satin-photo.png') center center / cover no-repeat}
.studio-glow,.scene-orbit{display:none}
#scene{filter:drop-shadow(1px var(--contact-y,2px) var(--contact-blur,1.4px) rgba(91,70,34,.29)) drop-shadow(4px var(--soft-y,6px) var(--soft-blur,5px) rgba(111,82,36,.18))}
.editorial{color:#342e27;text-shadow:0 1px 7px rgba(255,255,255,.65)}
.copy-panel p,.motion-hint{color:#655b4c}
.motion-bottom:before{content:'';position:absolute;inset:-30px -6vw -25px;z-index:-1;pointer-events:none;background:linear-gradient(transparent,rgba(255,253,246,.30) 35%,rgba(255,253,246,.57))}
.motion-controls{border-color:rgba(84,69,45,.24)}
.phase-buttons button,.playback-controls button{color:#665b4d}
.phase-buttons button.is-active,.phase-buttons button[aria-pressed=true]{color:#2c251d}


#motion-end{height:0;overflow:hidden}
.has-fallback #fallback{top:43%;color:var(--ink)}
