/* ============================================================
   CONCEPTO P — REALIZATION (instruments checkout)
   Absolute highlight. The quiet band reclassifies as packaging.
   One easing: cubic-bezier(.22,.68,.26,1). Nothing overshoots.
   ============================================================ */
.rz-root{
  --rz-ease: cubic-bezier(.22,.68,.26,1);
  --rz-p: 0;
  --rz-tip: 0deg;
  --rz-paper: var(--paper, #ECEAE5);
  --rz-chalk: var(--chalk, #F6F5F2);
  --rz-void: var(--void, #0A0A0A);
  --rz-kraft: #C4A574;
  --rz-kraft-deep: #8B6B3F;
  --rz-sun: var(--sun, #E0BE84);

  position:fixed; inset:0; z-index:80;
  background:var(--rz-void);
  perspective:1800px;
  perspective-origin:50% 42%;
  opacity:0; pointer-events:none;
  transition:opacity .9s var(--rz-ease);
  overflow:hidden;
}
.rz-root.is-on{ opacity:1; pointer-events:auto; }
.rz-root.is-soft-out{ transition:opacity 1.1s var(--rz-ease); }
.rz-root.is-cut, .rz-root.is-cut *{ transition:none !important; animation:none !important; }

/* —— atmosphere —— */
.rz-void{ position:absolute; inset:0; pointer-events:none; }
.rz-void-glow{
  position:absolute; inset:-10%;
  background:
    radial-gradient(ellipse 55% 40% at 50% 42%, rgba(236,234,229,.06) 0%, transparent 70%),
    radial-gradient(ellipse 30% 24% at 50% 70%, rgba(194,166,116,.04) 0%, transparent 70%);
  opacity:calc(0.28 + var(--rz-p) * 0.72);
  transition:opacity 1.8s var(--rz-ease);
}
.rz-root.is-deep .rz-void-glow{
  opacity:1;
  background:
    radial-gradient(ellipse 48% 36% at 50% 38%, rgba(236,234,229,.1) 0%, transparent 68%),
    radial-gradient(ellipse 36% 28% at 50% 72%, rgba(194,166,116,.09) 0%, transparent 70%);
}
.rz-void-grain{
  position:absolute; inset:0; opacity:.045; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23f)' opacity='0.9'/%3E%3C/svg%3E");
}
.rz-void-vignette{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 70% 60% at 50% 48%, transparent 35%, rgba(0,0,0,.55) 100%);
  opacity:calc(0.35 + var(--rz-p) * 0.4);
  transition:opacity 1.6s var(--rz-ease);
}

.rz-floor{
  position:absolute; left:10%; right:10%; bottom:8%; height:28%;
  pointer-events:none; opacity:0;
  background:
    radial-gradient(ellipse 50% 40% at 50% 0%, rgba(224,190,132,.14), transparent 70%),
    radial-gradient(ellipse 70% 55% at 50% 30%, rgba(236,234,229,.04), transparent 75%);
  transform:perspective(600px) rotateX(68deg) scale(0.85);
  transition:opacity 2.2s var(--rz-ease) .6s, transform 2.4s var(--rz-ease) .4s;
}
.rz-root.is-reveal .rz-floor{
  opacity:1;
  transform:perspective(600px) rotateX(68deg) scale(1);
}

/* iris exposure — house language, slow close */
.rz-veil{
  position:absolute; inset:0; z-index:40; pointer-events:none;
  background:radial-gradient(circle at 50% 48%, transparent 0%, transparent 18%, #000 72%);
  opacity:0;
  transform:scale(2.4);
  transition:opacity .65s var(--rz-ease), transform .85s var(--rz-ease);
}
.rz-root.is-iris .rz-veil{
  opacity:1;
  transform:scale(0.28);
}

.rz-root[data-ritual="optics"].is-lift{
  background:radial-gradient(ellipse 60% 50% at 50% 28%, #161410 0%, var(--rz-void) 72%);
}
.rz-root[data-ritual="slot"].is-emit{
  background:linear-gradient(180deg, #10100e 0%, var(--rz-void) 58%);
}

/* —— dismiss (after reveal only) —— */
.rz-dismiss{
  position:absolute; top:22px; right:clamp(16px,3.4vw,48px); z-index:50;
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(236,234,229,.22);
  opacity:0; pointer-events:none;
  transition:opacity 1.1s var(--rz-ease) 1.2s, border-color .5s var(--rz-ease);
}
.rz-root.is-settle .rz-dismiss{ opacity:1; pointer-events:auto; }
.rz-dismiss:hover{ border-color:rgba(236,234,229,.5); }
.rz-dismiss::before, .rz-dismiss::after{
  content:""; position:absolute; left:50%; top:50%;
  width:14px; height:1px; background:rgba(236,234,229,.7);
}
.rz-dismiss::before{ transform:translate(-50%,-50%) rotate(45deg); }
.rz-dismiss::after{ transform:translate(-50%,-50%) rotate(-45deg); }

/* —— world / false floor —— */
.rz-world{
  position:absolute; left:50%; top:50%;
  width:min(1080px, 92vw); height:min(400px, 48vh);
  max-width:92vw;
  transform:translate(-50%,-50%) rotateX(var(--rz-tip));
  transform-style:preserve-3d;
  transition:
    width 2.6s var(--rz-ease),
    height 2.6s var(--rz-ease),
    transform 2.6s var(--rz-ease);
  will-change:transform, width, height;
  overflow:visible;
}
.rz-root.is-deep .rz-world{
  transform:translate(-50%,-50%) rotateX(calc(var(--rz-tip) + 2deg)) scale(0.985);
}
.rz-root.is-shrink .rz-world{
  width:min(340px, 70vw); height:min(280px, 42vh);
  transform:translate(-50%,-40%) rotateX(16deg) scale(1);
}
.rz-root[data-ritual="optics"].is-lift .rz-world{
  transform:translate(-50%,-18%) rotateX(56deg) scale(.9);
}

/* —— the band (false UI) —— */
.rz-shell{
  position:absolute; inset:0;
  overflow:hidden;
  width:100%; height:100%;
  min-width:0;
  background:var(--rz-paper);
  box-shadow:
    0 0 0 1px rgba(236,234,229,.06),
    0 40px 80px rgba(0,0,0,.35),
    0 2px 0 rgba(255,255,255,.35) inset;
  transition:
    opacity 1.4s var(--rz-ease),
    transform 2.4s var(--rz-ease),
    box-shadow 1.8s var(--rz-ease),
    border-radius 1.8s var(--rz-ease);
  transform-origin:50% 50%;
}
.rz-root.is-deep .rz-shell{
  box-shadow:
    0 0 0 1px rgba(236,234,229,.08),
    0 50px 100px rgba(0,0,0,.5),
    0 2px 0 rgba(255,255,255,.4) inset;
}
.rz-root.is-gone .rz-shell{
  opacity:0; pointer-events:none;
}
/* continuous morph: the band collapses into the ribbon strip itself */
.rz-root.is-morph .rz-shell{
  overflow:visible;
  background:var(--rz-paper);
  border-radius:1px;
  box-shadow:
    0 0 0 1px rgba(17,17,17,.1),
    0 18px 40px rgba(0,0,0,.35),
    0 1px 0 rgba(255,255,255,.45) inset;
}
.rz-root[data-ritual="ribbon"].is-morph .rz-shell,
.rz-root[data-ritual="seal"].is-morph .rz-shell{
  transform:scaleX(1.02) scaleY(0.22);
  transform-origin:50% 50%;
}
.rz-root.is-morph .rz-band,
.rz-root.is-morph .rz-tear,
.rz-root.is-morph .rz-hint{ opacity:0; transition:opacity .35s var(--rz-ease); }
.rz-root.is-morph .rz-ghost{ opacity:.85; }
/* the highlight: band collapses into the ribbon that was always there */
.rz-root[data-ritual="ribbon"].is-gone .rz-shell{
  transform:scaleX(.12) scaleY(.1) translateY(0);
  border-radius:1px;
  opacity:0;
}
.rz-root[data-ritual="seal"].is-gone .rz-shell{
  transform:translateY(-6%) scale(.94);
}

.rz-band{
  display:flex; height:100%; width:100%;
  min-width:0; max-width:100%;
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.rz-band::-webkit-scrollbar{ display:none; }
.rz-band:focus-visible{ outline:none; }

.rz-panel{
  position:relative;
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  max-width:100%;
  height:100%;
  scroll-snap-align:start;
  background:var(--rz-paper);
  box-sizing:border-box;
}
.rz-skin{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 44% 22% at 28% 48%, rgba(255,255,255,.75) 0%, transparent 70%),
    radial-gradient(ellipse 32% 18% at 58% 56%, rgba(255,255,255,.5) 0%, transparent 70%),
    radial-gradient(ellipse 26% 15% at 76% 38%, rgba(255,255,255,.38) 0%, transparent 70%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(17,17,17,.04), transparent 60%);
  animation:rz-breathe 11s var(--rz-ease) infinite alternate;
}
.rz-root[data-ritual="optics"] .rz-skin{
  filter:contrast(1.18) brightness(1.06);
  animation-duration:7s;
}
@keyframes rz-breathe{
  from{ opacity:.82; transform:scale(1); }
  to{ opacity:1; transform:scale(1.012); }
}
.rz-grain{
  position:absolute; inset:0; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23f)'/%3E%3C/svg%3E");
}
.rz-haze{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 70% 50% at 50% 48%, rgba(255,255,255,.2), transparent 68%);
  opacity:calc(0.15 + var(--rz-p) * 0.35);
  mix-blend-mode:soft-light;
  transition:opacity 1.4s var(--rz-ease);
}
.rz-perf{
  position:absolute; left:6%; right:6%; top:50%; height:1px;
  background:repeating-linear-gradient(90deg, rgba(17,17,17,.18) 0 3px, transparent 3px 9px);
  opacity:calc(0.2 + var(--rz-p) * 0.45);
  pointer-events:none;
  transition:opacity .8s var(--rz-ease), box-shadow .8s var(--rz-ease);
  box-shadow:0 0 0 0 rgba(17,17,17,0);
}
.rz-root.is-deep .rz-perf{
  opacity:0;
  box-shadow:0 12px 28px rgba(0,0,0,.2);
}

.rz-wm{
  position:absolute; border-radius:50%;
  border:1px solid rgba(17,17,17,0);
  opacity:0; pointer-events:none;
  transform:scale(.84);
  transition:opacity 1.8s var(--rz-ease), border-color 1.8s var(--rz-ease), transform 1.8s var(--rz-ease), box-shadow 1.8s var(--rz-ease);
}
.rz-wm.is-in{
  opacity:.5;
  border-color:rgba(17,17,17,.2);
  transform:scale(1);
  box-shadow:0 0 24px rgba(255,255,255,.25) inset;
}
.rz-wm-a{ left:14%; top:24%; width:76px; height:76px; }
.rz-wm-b{ right:15%; top:40%; width:52px; height:52px; }
.rz-wm-c{ left:47%; bottom:20%; width:38px; height:38px; }

.rz-commit{
  position:absolute; right:28px; bottom:28px; z-index:4;
  width:52px; height:52px; border-radius:50%;
  border:1px solid rgba(17,17,17,.32);
  background:transparent;
  opacity:0; pointer-events:none;
  transition:opacity 1.1s var(--rz-ease), transform .7s var(--rz-ease), border-color .6s var(--rz-ease), box-shadow .6s var(--rz-ease);
}
.rz-commit.is-live{
  opacity:1; pointer-events:auto;
  animation:rz-pulse 3.2s var(--rz-ease) infinite;
}
.rz-commit::after{
  content:""; position:absolute; inset:14px; border-radius:50%;
  background:rgba(17,17,17,.88); transform:scale(0);
  transition:transform .7s var(--rz-ease);
}
.rz-commit.is-live::after{ transform:scale(1); }
.rz-commit:hover{ transform:scale(1.04); border-color:rgba(17,17,17,.55); }
.rz-commit:focus-visible{ outline:1px solid rgba(17,17,17,.5); outline-offset:4px; }
@keyframes rz-pulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(17,17,17,.0); }
  50%{ box-shadow:0 0 0 14px rgba(17,17,17,.05); }
}

/* wordless scroll tell */
.rz-hint{
  position:absolute; left:50%; bottom:22px; z-index:3;
  display:flex; gap:7px; transform:translateX(-50%);
  opacity:0; pointer-events:none;
  transition:opacity 1.2s var(--rz-ease);
}
.rz-root.is-on:not(.is-near):not(.is-locked) .rz-hint{ opacity:.4; }
.rz-hint-dot{
  width:5px; height:5px; border-radius:50%;
  background:rgba(17,17,17,.35);
  animation:rz-hint 2.4s var(--rz-ease) infinite;
}
.rz-hint-dot:nth-child(2){ animation-delay:.28s; }
.rz-hint-dot:nth-child(3){ animation-delay:.56s; }
@keyframes rz-hint{
  0%,100%{ opacity:.22; transform:translateX(0); }
  50%{ opacity:1; transform:translateX(6px); }
}
.rz-root.is-ready .rz-skin{
  filter:brightness(1.04);
}
.rz-root.is-locked .rz-commit{ opacity:0 !important; pointer-events:none; }

/* —— ghost ribbon (band afterimage → wrap) —— */
.rz-ghost{
  position:absolute; inset:0; z-index:7; pointer-events:none;
  opacity:0;
}
.rz-ghost-h, .rz-ghost-v{
  position:absolute; background:var(--rz-paper);
  box-shadow:0 0 0 1px rgba(17,17,17,.1), 0 8px 24px rgba(0,0,0,.2);
}
.rz-ghost-h{
  left:0; right:0; top:46%; height:14%;
  transform:scaleX(1);
}
.rz-ghost-v{
  top:0; bottom:0; left:46%; width:12%;
  transform:scaleY(0);
  transform-origin:50% 50%;
}
.rz-root.is-cinch .rz-ghost{ opacity:1; }
.rz-root.is-morph .rz-ghost-h{
  animation:none;
  left:0; right:0; top:43%; height:16%;
  transform:scaleX(1);
  transition:left 1.1s var(--rz-ease), right 1.1s var(--rz-ease), top 1.1s var(--rz-ease), height 1.1s var(--rz-ease), transform 1.1s var(--rz-ease);
}
.rz-root.is-cinch .rz-ghost-h{
  animation:rz-cinch-h 1.55s var(--rz-ease) forwards;
}
.rz-root.is-cinch .rz-ghost-v{
  animation:rz-cinch-v 1.5s var(--rz-ease) .18s forwards;
}
.rz-root.is-reveal .rz-ghost{ opacity:0; transition:opacity .45s var(--rz-ease); }
@keyframes rz-cinch-h{
  0%{ transform:scaleX(1); left:0; right:0; top:43%; height:16%; }
  100%{ transform:scaleX(1); left:12%; right:12%; top:46%; height:13%; }
}
@keyframes rz-cinch-v{
  0%{ transform:scaleY(0); opacity:0; }
  35%{ opacity:1; }
  100%{ transform:scaleY(1); opacity:1; top:-8%; bottom:-8%; left:46%; width:11%; }
}

/* during morph the parcel is already rising under the ribbon */
.rz-root.is-morph .rz-parcel{
  opacity:.55;
  transform:scale(.96) translateY(10px);
}

/* —— tear / seal —— */
.rz-tear{ position:absolute; inset:0; z-index:6; pointer-events:none; opacity:0; }
.rz-root.is-tear .rz-tear{ opacity:1; }
.rz-tear-a, .rz-tear-b, .rz-tear-curl{
  position:absolute; left:0; right:0;
  transition:transform 2.3s var(--rz-ease), opacity 1.8s var(--rz-ease);
}
.rz-tear-a{
  top:0; height:50%; background:var(--rz-paper);
  clip-path:polygon(0 0,100% 0,100% 88%,98% 100%,96% 86%,94% 100%,92% 84%,90% 100%,88% 86%,86% 100%,84% 84%,82% 100%,80% 86%,78% 100%,76% 84%,74% 100%,72% 86%,70% 100%,68% 84%,66% 100%,64% 86%,62% 100%,60% 84%,58% 100%,56% 86%,54% 100%,52% 84%,50% 100%,48% 86%,46% 100%,44% 84%,42% 100%,40% 86%,38% 100%,36% 84%,34% 100%,32% 86%,30% 100%,28% 84%,26% 100%,24% 86%,22% 100%,20% 84%,18% 100%,16% 86%,14% 100%,12% 84%,10% 100%,8% 86%,6% 100%,4% 84%,2% 100%,0 86%);
  box-shadow:0 22px 48px rgba(0,0,0,.28);
}
.rz-tear-curl{
  top:42%; height:18%;
  background:linear-gradient(180deg, rgba(236,234,229,.0), rgba(236,234,229,.95) 40%, rgba(200,190,170,.8));
  transform-origin:100% 50%;
  transform:rotate(0deg) scaleY(0);
  opacity:0;
  filter:drop-shadow(-12px 8px 16px rgba(0,0,0,.35));
}
.rz-tear-b{
  bottom:0; height:50%;
  background:
    linear-gradient(0deg, var(--rz-kraft) 0%, var(--rz-kraft-deep) 100%),
    repeating-linear-gradient(90deg, transparent 0 11px, rgba(0,0,0,.03) 11px 12px);
}
.rz-root.is-tear .rz-tear-a{ transform:translateY(-118%) rotate(-2.6deg); }
.rz-root.is-tear .rz-tear-curl{
  opacity:1;
  transform:rotate(-18deg) scaleY(1) translate(8%, -20%);
}
.rz-root.is-tear .rz-tear-b{ transform:translateY(4%); }
.rz-root.is-gone .rz-tear{ opacity:0; transition:opacity .4s var(--rz-ease); }

/* —— slot feed —— */
.rz-slot{
  position:absolute; left:50%; top:16%;
  width:min(540px, 72vw); height:10px;
  transform:translateX(-50%) scaleX(0);
  background:linear-gradient(180deg, #1a1a18, #050505);
  border:1px solid transparent;
  opacity:0; z-index:3;
  transition:opacity .65s var(--rz-ease), transform 1.3s var(--rz-ease), border-color .65s var(--rz-ease), box-shadow .65s var(--rz-ease);
}
.rz-root[data-ritual="slot"].is-emit .rz-slot{
  opacity:1; transform:translateX(-50%) scaleX(1);
  border-color:rgba(236,234,229,.4);
  box-shadow:0 0 0 1px rgba(236,234,229,.08), 0 12px 40px rgba(0,0,0,.5);
}
.rz-root[data-ritual="slot"].is-emit .rz-shell{
  top:16%; height:0; bottom:auto;
  width:min(440px, 58vw); left:50%; right:auto;
  transform:translateX(-50%);
  max-height:60vh; overflow:hidden;
  animation:rz-feed 2s var(--rz-ease) forwards;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
@keyframes rz-feed{
  0%{ height:0; opacity:1; }
  70%{ height:min(400px, 48vh); opacity:1; }
  100%{ height:min(400px, 48vh); opacity:0; }
}

/* —— optics orbs —— */
.rz-orbs{ position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity 1.3s var(--rz-ease); }
.rz-root[data-ritual="optics"].is-lift .rz-orbs{ opacity:1; }
.rz-orb{
  position:absolute; width:16px; height:16px; border-radius:50%;
  background:radial-gradient(circle at 40% 35%, #fff, var(--rz-sun) 42%, transparent 72%);
  box-shadow:0 0 28px rgba(224,190,132,.5);
  animation:rz-drift 5.5s var(--rz-ease) infinite alternate;
}
.rz-orb:nth-child(1){ left:38%; top:16%; }
.rz-orb:nth-child(2){ left:46%; top:10%; width:13px; height:13px; animation-delay:.35s; }
.rz-orb:nth-child(3){ left:54%; top:14%; width:11px; height:11px; animation-delay:.7s; }
.rz-orb:nth-child(4){ left:61%; top:20%; width:9px; height:9px; animation-delay:1s; }
.rz-orb:nth-child(5){ left:42%; top:22%; width:10px; height:10px; animation-delay:1.3s; }
.rz-orb:nth-child(6){ left:50%; top:8%; width:8px; height:8px; animation-delay:.2s; }
.rz-orb:nth-child(7){ left:57%; top:26%; width:12px; height:12px; animation-delay:1.6s; }
@keyframes rz-drift{
  from{ transform:translateY(0) translateX(0); }
  to{ transform:translateY(14px) translateX(4px); }
}

/* —— parcel —— */
.rz-parcel{
  position:absolute; inset:0;
  display:grid; place-items:center;
  opacity:0; pointer-events:none;
  transform:scale(.88) translateY(22px);
  transition:
    opacity 1.6s var(--rz-ease) .25s,
    transform 2.4s var(--rz-ease) .1s;
}
.rz-root.is-cinch .rz-parcel{
  opacity:.4;
  transform:scale(.95) translateY(10px);
}
.rz-root.is-reveal .rz-parcel{
  opacity:1;
  transform:scale(1) translateY(0);
}

.rz-box{
  width:76%; height:58%; position:relative;
  transform-style:preserve-3d;
}
.rz-box-face{
  position:absolute; inset:0;
  background:
    linear-gradient(145deg, #e0ccaa 0%, var(--rz-kraft) 42%, var(--rz-kraft-deep) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 -1px 0 rgba(0,0,0,.15) inset,
    0 28px 60px rgba(0,0,0,.45);
}
.rz-box-edge{
  position:absolute; left:0; right:0; bottom:-6%; height:8%;
  background:linear-gradient(180deg, var(--rz-kraft-deep), #5c4528);
  transform:skewX(-8deg) scaleY(.7);
  opacity:.55;
  filter:blur(.3px);
}
.rz-root[data-shape="block"] .rz-box-face,
.rz-root[data-shape="dark"] .rz-box-face{
  background:linear-gradient(145deg, #2e2e2c, #141412 55%, #080808);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 28px 60px rgba(0,0,0,.55);
}
.rz-root[data-shape="paper"] .rz-box-face{
  background:linear-gradient(145deg, #f2eee6, #d9d2c6 50%, #b8b0a4);
}
.rz-shadow{
  position:absolute; left:12%; right:12%; bottom:-18%; height:18%;
  background:radial-gradient(ellipse at 50% 40%, rgba(0,0,0,.45), transparent 70%);
  filter:blur(8px);
  opacity:0;
  transition:opacity 1.2s var(--rz-ease) .5s;
}
.rz-root.is-reveal .rz-shadow{ opacity:1; }

.rz-rib-h, .rz-rib-v{
  position:absolute; background:var(--rz-paper);
  box-shadow:0 0 0 1px rgba(17,17,17,.1), 0 2px 8px rgba(0,0,0,.12);
  opacity:0;
  transition:opacity .6s var(--rz-ease);
}
.rz-root.is-reveal .rz-rib-h,
.rz-root.is-reveal .rz-rib-v{ opacity:1; }
.rz-rib-h{
  left:-8%; right:-8%; top:46%; height:13%; z-index:2;
  transform:scaleX(.2);
  transition:opacity .6s var(--rz-ease), transform 1.1s var(--rz-ease) .15s;
}
.rz-root.is-reveal .rz-rib-h{ transform:scaleX(1); }
.rz-rib-v{
  top:-12%; bottom:-12%; left:46%; width:11%; z-index:1;
  transform:scaleY(.2);
  transition:opacity .6s var(--rz-ease), transform 1.1s var(--rz-ease) .28s;
}
.rz-root.is-reveal .rz-rib-v{ transform:scaleY(1); }
.rz-knot{
  position:absolute; left:50%; top:50%;
  width:17%; aspect-ratio:1; transform:translate(-50%,-50%) scale(0);
  background:
    radial-gradient(circle at 40% 35%, var(--rz-chalk), #d8d4cc 60%, #b8b4ac);
  border-radius:50%;
  box-shadow:0 2px 12px rgba(0,0,0,.3), 0 0 0 1px rgba(17,17,17,.08);
  z-index:3;
  transition:transform .7s var(--rz-ease) .75s;
}
.rz-root.is-reveal .rz-knot{ transform:translate(-50%,-50%) scale(1); }

.rz-root[data-ritual="optics"] .rz-rib-h,
.rz-root[data-ritual="optics"] .rz-rib-v,
.rz-root[data-ritual="optics"] .rz-knot,
.rz-root[data-ritual="optics"] .rz-box-edge{ display:none; }
.rz-root[data-ritual="optics"] .rz-box-face{
  background:
    radial-gradient(circle at 50% 38%, rgba(255,255,255,.14), transparent 42%),
    linear-gradient(180deg, #222220, #0a0a0a);
  border-radius:2px;
}

/* —— object: sealed form, not a product photograph —— */
.rz-object{
  position:absolute; left:50%; bottom:8%;
  transform:translateX(-50%) translateY(28px) scale(.94);
  width:min(220px, 48vw);
  opacity:0;
  z-index:6;
  pointer-events:none;
  transition:
    opacity 1.6s var(--rz-ease) .55s,
    transform 1.8s var(--rz-ease) .55s;
}
.rz-root.is-reveal .rz-object,
.rz-root.is-settle .rz-object{
  opacity:1;
  transform:translateX(-50%) translateY(0) scale(1);
}
.rz-root.is-settle .rz-world{
  transform:translate(-50%,-52%) rotateX(10deg);
}
.rz-root.is-settle .rz-object{
  transform:translateX(-50%) translateY(-10px) scale(1);
}
.rz-bloom{
  position:absolute; left:50%; top:50%;
  width:170%; height:170%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(224,190,132,.2), transparent 64%);
  opacity:0; pointer-events:none;
  transition:opacity 1.8s var(--rz-ease) 1.4s;
}
.rz-root.is-reveal .rz-bloom{ opacity:1; }

.rz-seal-form{
  position:relative; z-index:1;
  width:120px; height:120px; margin:0 auto; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.38) 0 5%, transparent 6%),
    radial-gradient(circle at 50% 50%, transparent 34%, rgba(236,234,229,.18) 35% 36%, transparent 37%),
    radial-gradient(circle at 40% 34%, rgba(255,255,255,.5), transparent 44%),
    radial-gradient(circle at 50% 55%, #3a3a36, #0a0a0a 72%);
  box-shadow:
    0 0 60px rgba(224,190,132,.18),
    0 28px 52px rgba(0,0,0,.5),
    0 0 0 1px rgba(236,234,229,.12);
}
.rz-root[data-shape="block"] .rz-seal-form{
  border-radius:4px; width:148px; height:96px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.1), transparent 42%),
    linear-gradient(135deg, #323230, #0e0e0e);
  box-shadow:0 24px 48px rgba(0,0,0,.55), 0 0 0 1px rgba(236,234,229,.08);
}
.rz-root[data-shape="paper"] .rz-seal-form{
  width:108px; height:152px; border-radius:2px 2px 8px 8px;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(255,255,255,.28), transparent 50%),
    linear-gradient(180deg, #eceae5, #cfc8bc);
  box-shadow:0 0 48px rgba(236,234,229,.12), 0 22px 44px rgba(0,0,0,.42);
}
.rz-root[data-shape="strip"] .rz-seal-form{
  width:158px; height:38px; border-radius:1px;
  background:repeating-linear-gradient(90deg, #111 0 8px, #eceae5 8px 10px);
  box-shadow:0 18px 36px rgba(0,0,0,.45);
}

/* —— signature + hush —— */
.rz-sig{
  position:absolute; left:50%; top:14%;
  transform:translateX(-50%) translateY(10px);
  font-family:var(--display,'Instrument Serif',Georgia,serif);
  font-size:clamp(32px, 4.4vw, 52px);
  letter-spacing:-.02em; line-height:.9;
  color:rgba(236,234,229,.62);
  opacity:0; pointer-events:none; white-space:nowrap;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
  transition:none;
}
.rz-root.is-reveal .rz-sig{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  transition:
    opacity 1.8s var(--rz-ease) 1.5s,
    transform 1.8s var(--rz-ease) 1.5s;
}
.rz-hush{
  position:absolute; left:50%; bottom:clamp(28px,6vh,52px);
  transform:translateX(-50%) translateY(8px);
  margin:0; font-size:9.5px; letter-spacing:.32em;
  color:rgba(236,234,229,.42);
  opacity:0; pointer-events:none;
  transition:none;
}
.rz-root.is-held .rz-hush{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  transition:
    opacity 1.4s var(--rz-ease) .4s,
    transform 1.4s var(--rz-ease) .4s;
}

@media (prefers-reduced-motion: reduce){
  .rz-root, .rz-root *{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
  .rz-root.is-reveal .rz-sig,
  .rz-root.is-reveal .rz-object,
  .rz-root.is-reveal .rz-parcel,
  .rz-root.is-held .rz-hush{ transition-delay:0s !important; }
}
