/* Shared, theme-aware cinematic invitation treatment. All artwork remains vector-sharp. */
.cinematic-invitation{--cinema-accent:var(--gold,var(--accent,#b69765));--cinema-ink:var(--accent-ink,var(--ink));--cinema-paper:var(--bg,#fff8f1);--cinema-line:var(--line,#dfcba9)}
.cinematic-invitation .cover{background:var(--backdrop,#efe0d6);transition:opacity .2s,visibility .2s;transform:none;perspective:1800px;isolation:isolate}
.cinematic-invitation .cover.open{transform:none;opacity:0;visibility:hidden}
.cinematic-invitation .cover-inner{isolation:isolate;background:transparent!important;perspective:1800px;overflow-x:clip}
.cinema-gates{position:absolute;inset:0;z-index:0;perspective:1800px;overflow:clip;pointer-events:none;background:var(--cinema-paper)}
.cinema-door{position:absolute;top:0;bottom:0;width:50%;background:var(--cinema-paper);transform:translate3d(0,0,0);box-shadow:0 0 35px #0000000a;overflow:hidden}
.cinema-door-left{left:0;transform-origin:0 50%;border-right:1px solid color-mix(in srgb,var(--cinema-accent) 50%,transparent)}
.cinema-door-right{right:0;transform-origin:100% 50%;border-left:1px solid color-mix(in srgb,var(--cinema-accent) 50%,transparent)}
.cinema-door-art{position:absolute;inset:0;opacity:.74;pointer-events:none}.cinema-door-art>.design-art{position:absolute;top:0;left:0;width:200%;height:100%;max-width:none}.cinema-door-right .cinema-door-art>.design-art{left:-100%}
.cinema-door-frame{position:absolute;inset:16px 13px;border:1px solid color-mix(in srgb,var(--cinema-accent) 45%,transparent);border-radius:130px 130px 4px 4px;pointer-events:none}
.cinema-door-frame:after{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--cinema-accent) 23%,transparent);border-radius:inherit}
.cinema-door-seam{position:absolute;top:6%;bottom:6%;left:50%;width:1px;background:linear-gradient(transparent,var(--cinema-accent),transparent);opacity:.45}
.cinema-light{display:none}
.cinematic-invitation:not(.theme-royal) .cover-content{padding:25px 0;position:relative;z-index:2;max-width:360px}
.cinematic-invitation:not(.theme-royal) .cover .names{font-size:clamp(35px,10vw,49px);margin:12px 0;line-height:1.02;text-shadow:0 1px 12px var(--cinema-paper)}
.cinematic-invitation:not(.theme-royal) .cover .names .amp{margin:2px 0;line-height:1.15}
.cinematic-invitation:not(.theme-royal) .cover .to{margin-top:15px;text-shadow:0 1px 8px var(--cinema-paper)}
.cinematic-invitation:not(.theme-royal) .cover .cover-note{margin-top:12px}
.cinema-envelope{position:relative;width:min(66vw,270px);aspect-ratio:1.65;margin:20px auto 17px;perspective:1300px;filter:none}
.cinema-env-back{position:absolute;inset:0;border-radius:5px;background:color-mix(in srgb,var(--cinema-paper) 83%,var(--cinema-accent))}
.cinema-env-letter{position:absolute;inset:9% 7% 7%;z-index:2;border:1px solid var(--cinema-line);border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;background:var(--cinema-paper);color:var(--cinema-ink);gap:8px;overflow:hidden}
.cinema-env-letter>span{font:400 clamp(17px,5vw,27px)/1.2 var(--font-script,cursive);overflow-wrap:anywhere;max-width:100%}.cinema-env-letter small{font:400 6px var(--font-ui);letter-spacing:.25em}.cinema-env-letter i{font-family:var(--font-display);font-size:.7em}
.cinema-env-pocket{position:absolute;inset:0;z-index:3;clip-path:polygon(0 0,50% 61%,100% 0,100% 100%,0 100%);border-radius:5px;background:linear-gradient(135deg,color-mix(in srgb,var(--cinema-paper) 88%,var(--cinema-accent)),color-mix(in srgb,var(--cinema-paper) 72%,var(--cinema-accent)))}
.cinema-env-flap{position:absolute;inset:0 0 39%;z-index:4;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0%;backface-visibility:visible;background:linear-gradient(color-mix(in srgb,var(--cinema-paper) 75%,var(--cinema-accent)),color-mix(in srgb,var(--cinema-paper) 58%,var(--cinema-accent)))}
.cinema-env-seal{position:absolute;top:61%;left:50%;translate:-50% -50%;z-index:6;border-radius:50%;width:45px;height:45px;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#ecd4a5,#ab814c);color:#583c21;border:3px double #f3dfb686;box-shadow:0 4px 10px #0003;font:400 13px/1 var(--font-display)}
.cinema-skip{display:block;margin:10px auto 0;padding:7px 12px;min-height:34px;border:0;background:none;color:var(--muted);font:400 10px var(--font-ui);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.cinema-replay{display:inline-flex;align-items:center;justify-content:center;margin:20px auto 0;min-height:42px;padding:10px 18px;border:1px solid var(--cinema-line);border-radius:25px;background:var(--cinema-paper);color:var(--cinema-ink);font:400 11px var(--font-ui);cursor:pointer}
.cinema-replay:active{transform:scale(.97)}
.cinema-ready .reveal{opacity:1;transform:none;transition:none}
.cinematic-invitation .names:focus{outline:none}
.cinema-scene{position:relative;isolation:isolate}
.cinema-decor{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;color:var(--cinema-accent);opacity:1}
.cinema-pattern{position:absolute;width:140px;height:190px;opacity:.15;pointer-events:none;transform-origin:center}.cinema-pattern svg{display:block;width:100%;height:100%}.cinema-pattern-a{left:-68px;top:10px;rotate:-17deg}.cinema-pattern-b{right:-70px;bottom:8px;rotate:164deg}
.cinema-trace{position:absolute;top:0;left:16%;right:16%;height:1px;opacity:.55;transform-origin:center;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--cinema-accent) 55%,transparent),transparent)}
.cinema-scene[data-cinema-scene=hero]>.cinema-decor{z-index:0;opacity:.5}.cinema-scene[data-cinema-scene=hero]>.cinema-decor .cinema-pattern{display:none}
.cinema-scene[data-cinema-scene=closing]{min-height:380px;padding-top:60px;padding-bottom:45px;overflow:clip}
.cinema-scene[data-cinema-scene=closing] .cinema-pattern{width:210px;height:290px;opacity:.25}
.cinema-scene[data-cinema-scene=closing] .cinema-pattern-a{left:-65px;top:auto;bottom:-30px}.cinema-scene[data-cinema-scene=closing] .cinema-pattern-b{right:-65px;bottom:-30px}
[data-cinema-family=heritage] .cinema-pattern{opacity:.11;width:180px;height:240px}
[data-cinema-family=minimal] .cinema-pattern{opacity:.12;width:180px;height:240px}
.cinema-finale-art{position:absolute;inset:0;z-index:-1;opacity:.16;pointer-events:none;overflow:hidden}.cinema-finale-art>.design-art{width:100%;height:100%;object-fit:cover}
.cinema-monogram{display:flex;align-items:center;justify-content:center;gap:12px;width:95px;height:95px;border:1px solid var(--cinema-line);border-radius:50%;margin:0 auto 27px;color:var(--cinema-ink);font:400 35px var(--font-script,cursive);position:relative}.cinema-monogram:after{content:"";position:absolute;inset:-7px;border:1px solid color-mix(in srgb,var(--cinema-accent) 25%,transparent);border-radius:50%}.cinema-monogram i{font:italic 400 19px var(--font-display)}
.theme-royal .cinema-door{background:#fff8f1;background-image:repeating-linear-gradient(45deg,transparent 0 22px,#c39a5b05 22px 23px)}
.theme-royal .cinema-door svg{width:75%;height:65%;position:absolute;top:15%;left:15%;color:#c39a5b;opacity:.21}.theme-royal .cinema-door-right svg{transform:scaleX(-1)}
.theme-royal .cinema-door img{position:absolute;bottom:0;left:0;width:100%;height:auto;max-width:none}
.theme-royal .rb-cover-bg{z-index:1}.theme-royal .rb-cover-content{z-index:3}.theme-royal .cinema-light{z-index:5}
.theme-royal .rb-cover-inner{background:transparent!important}.theme-royal .rb-cover .rb-flash{display:none}
.theme-royal .cinema-scene[data-cinema-scene=closing]{padding:0;min-height:560px}
@media(max-width:370px){.cinema-envelope{width:225px;margin-top:16px;margin-bottom:14px}.cinematic-invitation:not(.theme-royal) .cover .names{font-size:36px}.cinema-pattern-a{left:-78px}.cinema-pattern-b{right:-80px}}
@media(max-height:680px){.cinema-envelope{width:210px;margin:13px auto}.cinematic-invitation:not(.theme-royal) .cover-content{padding:12px 0!important}.cinematic-invitation:not(.theme-royal) .cover .names{font-size:34px;margin:8px 0}.cinematic-invitation:not(.theme-royal) .cover .to{margin-top:10px}.cinema-skip{margin-top:4px}}
@media(prefers-reduced-motion:reduce){.cinema-door,.cinema-env-flap,.cinema-env-letter,.cinema-env-seal,.cinema-pattern,.cinema-trace{animation:none!important;transition:none!important;will-change:auto}.cinema-pattern{transform:none!important}.cinema-light{display:none}}
.cinematic-invitation .cover,.cinematic-invitation .cinema-gates{background:transparent}
.cinematic-invitation:not(.theme-royal) .cover-content:before{content:"";position:absolute;inset:-8px -20px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,color-mix(in srgb,var(--cinema-paper) 93%,transparent) 25%,transparent 72%)}

.cinematic-invitation .cover.is-opening .cinema-door{will-change:transform}
.cinematic-invitation .cover.is-opening .cover-content{animation:none}
.cinema-prepared .cinema-scene:not([data-cinema-scene=hero]):not(.cinema-entered)>.cinema-item{opacity:0;translate:0 12px}
.cinema-prepared .cinema-entered>.cinema-item{transition:opacity .85s cubic-bezier(.22,1,.36,1),translate 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--cinema-delay,0ms)}
.cinematic-invitation .art-sway,.cinematic-invitation .art-float,.cinematic-invitation .art-twinkle,.cinematic-invitation .art-drift{animation:none}
.cinema-pattern svg{animation:cinema-botanical-breathe 12s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:50% 90%}
.cinema-pattern-b svg{animation-delay:-6s}
.cinema-visible>.cinema-decor .cinema-pattern svg{animation-play-state:running}
.cinematic-invitation .dock,.cinematic-invitation .music{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}
.theme-royal .rb-l{will-change:auto;translate:none}
.theme-royal .rb-sway{animation:none}
.theme-royal .cinema-visible .rb-l-fore-left .rb-sway,.theme-royal .cinema-visible .rb-l-fore-right .rb-sway{animation:rb-sway 12s ease-in-out infinite alternate}
.theme-royal .rb-petal{will-change:auto;animation-play-state:paused}
.theme-royal .cinema-visible .rb-petal,.theme-royal .rb-cover .rb-petal{animation-play-state:running}
.cinematic-invitation .art-offscreen *{animation-play-state:paused!important}
.cinema-css-opening .cinema-env-seal{animation:cinema-seal .3s forwards}
.cinema-css-opening .cinema-env-flap{animation:cinema-flap .6s .18s ease-in-out forwards}
.cinema-css-opening .cinema-env-letter{animation:cinema-letter .8s .4s ease-out forwards}
.cinema-css-opening .cover-content,.cinema-css-opening .rb-cover-content{animation:cinema-content-out .55s .65s ease-in-out forwards}
.cinema-css-opening .cinema-door-left{animation:cinema-door-l 1.35s .82s cubic-bezier(.65,0,.35,1) forwards}
.cinema-css-opening .cinema-door-right{animation:cinema-door-r 1.35s .82s cubic-bezier(.65,0,.35,1) forwards}
@keyframes cinema-seal{to{scale:.82;opacity:0}}
@keyframes cinema-flap{to{rotate:x 165deg}}
@keyframes cinema-letter{to{transform:translateY(-15%)}}
@keyframes cinema-content-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes cinema-door-l{to{transform:translate3d(-102%,0,0)}}
@keyframes cinema-door-r{to{transform:translate3d(102%,0,0)}}
@keyframes cinema-botanical-breathe{from{transform:rotate(-.6deg) translate3d(0,2px,0)}to{transform:rotate(.6deg) translate3d(0,-2px,0)}}
@media(prefers-reduced-motion:reduce){.cinema-item{opacity:1!important;translate:none!important;transition:none!important}.cinema-pattern svg,.rb-petal,.rb-sway{animation:none!important}}

.theme-royal .rb-scroll svg{animation-play-state:paused}.theme-royal .cinema-visible .rb-scroll svg{animation-play-state:running}
.cinema-painted-edge{position:absolute;width:165px;height:235px;right:-55px;bottom:-30px;opacity:.13;pointer-events:none}
.cinema-painted-edge img{width:100%;height:100%;object-fit:contain;object-position:right bottom;transform-origin:90% 90%;animation:cinema-painted-breathe 10s ease-in-out infinite alternate;animation-play-state:paused}
.cinema-painted-left{right:auto;left:-55px;scale:-1 1}
.cinema-painted-ribbon{right:-15px;bottom:-25px;width:140px;height:140px;opacity:.09}
.cinema-painted-landscape{width:100%;height:140px;right:0;bottom:-18px;opacity:.13}
.cinema-visible>.cinema-decor .cinema-painted-edge img{animation-play-state:running}
@keyframes cinema-painted-breathe{from{transform:rotate(-.5deg)}to{transform:rotate(.5deg)}}
@media(prefers-reduced-motion:reduce){.cinema-painted-edge img{animation:none!important}}

/* One paired hinge for every Catalog design. Only the two leaves composite. */
.cover.gate-opening{background:transparent!important;overflow:hidden}
.cover.gate-opening>.cover-inner{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.opening-gate-stage{position:absolute;top:0;bottom:0;left:50%;translate:-50% 0;max-width:100%;perspective:1600px;pointer-events:none}
.opening-gate-leaf{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;backface-visibility:hidden;will-change:transform,opacity;background:var(--bg,#fff8f1);box-shadow:0 0 18px #00000024}
.opening-gate-left{left:0;transform-origin:0 50%;border-right:1px solid color-mix(in srgb,var(--accent,#b69765) 35%,transparent)}
.opening-gate-right{right:0;transform-origin:100% 50%;border-left:1px solid color-mix(in srgb,var(--accent,#b69765) 35%,transparent)}
.cover .opening-gate-face{position:absolute!important;top:0!important;bottom:0!important;max-width:none!important;height:100%!important;visibility:visible!important;pointer-events:none!important;overflow:hidden!important}
.opening-gate-face *{animation-play-state:paused!important;pointer-events:none!important}
.opening-gate-face .cover-content,.opening-gate-face .rb-cover-content{animation:none!important;opacity:1;transform:none}
body:has(.gate-opening) .hero .reveal,body:has(.gate-opening) .hero .cinema-item,body:has(.gate-opening) .rb-hero .cinema-item{opacity:1!important;transform:none!important;translate:none!important;animation:none!important}

.opening-gate-skip{position:absolute;z-index:10;bottom:20px;left:50%;translate:-50% 0;padding:10px 20px;border:1px solid var(--line,#dcc8ae);border-radius:24px;background:var(--bg,#fff8f1);color:var(--ink,#514638);font:400 12px var(--font-ui);cursor:pointer}

.petalfold-front.gate-opening .fold-seal:before{animation:fold-wax-awaken 1.2s .05s both;animation-play-state:running!important}

.invitation-motion-toggle{position:fixed;z-index:70;top:max(12px,env(safe-area-inset-top));right:12px;min-height:36px;padding:8px 13px;border:1px solid #b49a70;border-radius:24px;background:#fffaf2;color:#624b2e;font:500 11px/1.2 Arial,sans-serif;cursor:pointer}

body:not(.locked) .invitation-motion-toggle{display:none}

/* Keep the real first page painted during and after the door reveal. */
.hero.opening-revealed,.rb-hero.opening-revealed,.opening-revealed>.cinema-item{opacity:1!important;transform:none!important;translate:none!important;animation:none!important;transition:none!important}
