/* Scales Parfum — homepage showpiece (honey-pour intro + velvet curtain reveal)
   Self-contained. Requires assets/showpiece.js (loaded in <head>, not deferred). */
html.sp-lock,html.sp-lock body{overflow:hidden!important}
/* Pre-mount cover so the page never flashes before the curtain canvas paints.
   Failsafe: fades itself away after 4s even if the script never runs. */
html.sp-cover::after{content:"";position:fixed;inset:0;z-index:2147483646;background:#060505;pointer-events:none;animation:sp-cover-failsafe .4s 4s forwards}
@keyframes sp-cover-failsafe{to{opacity:0;visibility:hidden}}
.sp-layer{position:fixed;inset:0;width:100vw;height:100vh;height:100lvh;pointer-events:none;contain:strict}
.sp-layer canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.sp-curtain{z-index:2147483600;pointer-events:auto;background:transparent}
.sp-curtain.sp-open{pointer-events:none}
.sp-curtain.sp-fading{transition:opacity .55s ease;opacity:0}
.sp-honey{z-index:2147483610}
.sp-honey.sp-fading{transition:opacity .35s ease;opacity:0}
.sp-tassel{position:absolute;top:0;left:0;width:46px;height:128px;transform-origin:50% 0;opacity:0;will-change:transform,opacity;filter:drop-shadow(0 6px 8px rgba(0,0,0,.55))}
.sp-skip{position:fixed;right:clamp(16px,3vw,40px);bottom:clamp(18px,3.4vw,40px);z-index:2147483620;display:inline-flex;align-items:center;gap:.7em;font:500 10.5px/1 Jost,system-ui,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#f5f0e6;background:rgba(8,7,6,.38);border:1px solid rgba(201,169,106,.75);padding:12px 16px 12px 20px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;animation:sp-skip-in .5s .25s forwards;transition:background .25s,color .25s,opacity .3s}
.sp-skip:after{content:"";width:16px;height:1px;background:currentColor;opacity:.8}
.sp-skip:hover,.sp-skip:focus-visible{background:#c9a96a;color:#111110;outline:none}
.sp-skip.sp-gone{opacity:0!important;pointer-events:none}
@keyframes sp-skip-in{to{opacity:1}}
/* Hero spotlight (driven by JS custom properties) */
.sp-hero-light{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.sp-hero-light i{position:absolute;display:block}
.sp-dim{inset:0;background:#030303;opacity:var(--sp-dim,0)}
.sp-glow{inset:0;mix-blend-mode:screen;opacity:var(--sp-glow,0);background:radial-gradient(ellipse calc(var(--bw,300px)*1.15) calc(var(--bw,300px)*1.25) at var(--bx,70%) var(--by,48%),rgba(255,205,130,.30) 0,rgba(255,180,90,.12) 38%,rgba(255,170,80,0) 72%)}
.sp-beam{top:-4%;height:calc(var(--byp,480px) + var(--bw,300px)*.7);left:calc(var(--bxp,1000px) - var(--bw,300px)*1.1);width:calc(var(--bw,300px)*2.2);mix-blend-mode:screen;opacity:var(--sp-beam,0);background:linear-gradient(180deg,rgba(255,228,175,.13),rgba(255,214,150,.06) 55%,rgba(255,200,130,0));clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);filter:blur(34px)}
.sp-pool{left:calc(var(--bxp,1000px) - var(--bw,300px)*1.2);width:calc(var(--bw,300px)*2.4);top:calc(var(--byp,480px) + var(--bw,300px)*.62);height:calc(var(--bw,300px)*.5);border-radius:50%;mix-blend-mode:screen;opacity:var(--sp-glow,0);background:radial-gradient(closest-side,rgba(255,196,110,.22),rgba(255,180,90,0));filter:blur(6px)}
@media (prefers-reduced-motion:reduce){.sp-layer,.sp-skip{display:none!important}html.sp-cover::after{display:none}}
/* The seal (emblem + SCALES PARFUM) is rendered inside the gold WebGL canvas at full devicePixelRatio (no SVG overlay). */
.sp-honey canvas{will-change:auto}
