/* Five original, finite opening scenes. Animate transforms/opacity, never page layout. */
.premium-gate{--intro-ease:cubic-bezier(.22,.8,.22,1);padding-block:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-bottom));gap:16px}
.premium-gate:before{border-radius:2px}.premium-opening-copy{flex-shrink:0}.premium-gate .premium-opening-copy>p:last-child{margin-bottom:0}.premium-skip{flex-shrink:0}
.intro-art{position:relative;width:min(400px,100%);height:min(40svh,350px);min-height:170px;flex-shrink:0;isolation:isolate}
.intro-art button{font:inherit;cursor:pointer}.intro-art button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.intro-script{font:italic 500 clamp(34px,8vw,64px)/1.1 var(--serif,Georgia);overflow-wrap:anywhere}
.intro-open{border:1px solid var(--accent);padding:12px 22px;border-radius:30px;background:var(--primary);color:white;letter-spacing:.6px;font-size:12px!important;box-shadow:0 8px 24px #0002}.intro-open span{margin-left:12px}
.intro-filigree{width:min(230px,75%);height:auto;color:var(--accent);stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.premium-gate.is-opening{animation:intro-scene-exit .4s 1.9s ease both}.premium-gate.opening-elegant_reveal.is-opening{animation:intro-scene-exit .4s 1.3s ease both}
.premium-gate.opening-floral_bloom.is-opening{animation:intro-scene-exit .4s 1.6s ease both}.premium-gate.opening-cinematic_reveal.is-opening{animation:intro-scene-exit .45s 1.7s ease both}
@keyframes intro-scene-exit{to{opacity:0;visibility:hidden}}
.gate-locked .premium-card.premium-open .hero-content>*{opacity:1;transform:none}
/* Royal: break the wax seal, unfold the envelope, lift the enclosed card. */
.opening-royal_seal .premium-envelope{max-height:40svh}.opening-royal_seal .premium-letter{transition:transform 1.1s var(--intro-ease) .8s,opacity .6s 1.5s}.opening-royal_seal.is-opening .premium-letter{transform:translateY(-22%) scale(1.08)}
.opening-royal_seal.is-opening .premium-seal{transform:translate(-50%,-75%) rotate(-18deg) scale(.65)}
/* Theatre: velvet pleats, tied gold bow and two independent curtains. */
.intro-theatre{border:1px solid var(--accent);border-radius:160px 160px 10px 10px;overflow:hidden;background:#f7f0e3;box-shadow:0 22px 60px #0004}
.intro-stage{position:absolute;inset:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;border:1px solid var(--accent);border-radius:145px 145px 2px 2px;color:var(--primary)}.intro-stage-star{color:var(--accent);font-size:30px}
.intro-curtain{position:absolute;top:0;bottom:0;width:51%;background:repeating-linear-gradient(90deg,#0003 0,#fff1 8%,transparent 15%,#0004 23%),var(--primary);transition:transform 1.3s var(--intro-ease) .35s;border-bottom:3px solid var(--accent)}.curtain-left{left:0;border-right:1px solid var(--accent);transform-origin:0 0}.curtain-right{right:0;border-left:1px solid var(--accent);transform-origin:100% 0}
.intro-curtain-valance{position:absolute;inset:0 0 auto;height:48px;border-radius:0 0 50% 50%;background:linear-gradient(165deg,var(--accent),#b18b46);box-shadow:0 5px 12px #0003}
.intro-curtain:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 10%,#fff2 30%,transparent 55%);opacity:.8;pointer-events:none}.intro-curtain-valance:after{content:'';position:absolute;inset:6px 6px 5px;border-bottom:1px solid #fff8;border-radius:0 0 50% 50%}
.intro-bow{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:160px;height:70px;border:0;border-radius:50%;background:none;color:var(--primary);transition:transform .5s var(--intro-ease),opacity .35s}.intro-bow>span{position:absolute;background:linear-gradient(140deg,#fff4,var(--accent));box-shadow:inset 0 0 0 1px #fff5,0 5px 10px #0003}.bow-left{left:7px;top:8px;width:70px;height:45px;border-radius:12px 70% 20% 65%;transform:rotate(12deg)}.bow-right{right:7px;top:8px;width:70px;height:45px;border-radius:70% 12px 65% 20%;transform:rotate(-12deg)}.intro-bow .bow-knot{inset:16px auto auto 64px;width:32px;height:32px;border-radius:9px;display:grid;place-items:center}
.is-opening .intro-bow{transform:translate(-50%,-50%) scale(1.25) rotate(-15deg);opacity:0}.is-opening .curtain-left{transform:translateX(-96%) rotate(-4deg)}.is-opening .curtain-right{transform:translateX(96%) rotate(4deg)}
.intro-bow .bow-tail{top:37px;width:28px;height:68px;background:linear-gradient(90deg,#b08d4a,var(--accent) 45%,#fff6 55%,var(--accent));clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);box-shadow:none}.tail-left{left:48px;transform:rotate(14deg)}.tail-right{right:48px;transform:rotate(-14deg)}
/* Letter: folded stationery, restrained calligraphy and a hinged paper cover. */
.intro-letter{width:min(340px,90%);perspective:1100px;transform:rotate(-3deg);color:var(--primary)}
.intro-letter .intro-script{font:400 clamp(42px,10vw,72px)/1.1 NyanzaScript,cursive}
.intro-letter-page{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:30px;background:#fffaf0;border:1px solid #d6c7ae;box-shadow:8px 12px 0 #ffffff16,0 20px 50px #0004;transition:transform 1.2s var(--intro-ease) .15s}.intro-letter-page>span:last-child{font:italic 20px/1.35 var(--serif,Georgia);overflow-wrap:anywhere;max-width:100%}.intro-letter-rule{width:55%;height:1px;background:var(--accent)}
.intro-letter-botanical{position:absolute;right:0;bottom:0;width:48%;height:auto;transform:rotate(180deg);opacity:.65;pointer-events:none}.intro-letter-page>span{position:relative}.intro-letter-page:before{content:'';position:absolute;inset:10px;border:1px solid #d6c7ae80;pointer-events:none}
.intro-letter-fold{position:absolute;inset:0 0 48%;display:grid;place-items:center;background:linear-gradient(135deg,#f8efde,#e7dcc8);border:1px solid #d6c7ae;box-shadow:0 6px 12px #0002;transform-origin:50% 0;backface-visibility:hidden;transition:transform 1.1s var(--intro-ease),opacity .6s .5s}.intro-letter-mark{font-size:38px;color:var(--accent)}.intro-letter-button{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);white-space:nowrap;transition:opacity .3s}
.is-opening .intro-letter-fold{transform:rotateX(165deg);opacity:0}.is-opening .intro-letter-page{transform:rotate(3deg) translateY(-8px) scale(1.06)}.is-opening .intro-letter-button{opacity:0}
/* Garden: photographic rose/peony bouquets, restrained gold halo and a wax centre. */
.intro-garden{width:min(350px,95%);height:auto;aspect-ratio:1;min-height:0;max-height:40svh}.intro-garden-ring{position:absolute;inset:8%;border:1px solid var(--accent);border-radius:50%;box-shadow:inset 0 0 0 12px #ffffff06;transition:transform 1.6s var(--intro-ease),opacity 1s .6s}
.intro-petal{position:absolute;left:50%;top:50%;width:34%;height:46%;border-radius:60% 60% 48% 48%;background:linear-gradient(150deg,#fff8,var(--accent) 65%,#a28249);border:1px solid #fff4;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(calc(var(--petal)*45deg));box-shadow:0 6px 15px #0002;transition:transform 1.3s var(--intro-ease),opacity 1s .4s;transition-delay:calc(var(--petal)*35ms)}
.intro-flower-heart{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:39%;aspect-ratio:1;border:1px solid var(--accent);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:white;box-shadow:0 8px 30px #0004;transition:transform .9s var(--intro-ease),opacity .6s .5s}.intro-flower-heart>span{font:italic 28px var(--serif,Georgia)}.intro-flower-heart small{font-size:10px}
.is-opening .intro-petal{transform:translate(-50%,-100%) rotate(calc(var(--petal)*45deg)) translateY(-65%) scale(.75);opacity:0}.is-opening .intro-garden-ring{transform:scale(1.4) rotate(30deg);opacity:0}.is-opening .intro-flower-heart{transform:translate(-50%,-50%) scale(1.3);opacity:0}
.intro-garden .intro-petal{width:26%;height:42%;background:linear-gradient(150deg,#ffffff0a,#ffffff03);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:none}
.intro-botanical{position:absolute;width:80%;height:auto;pointer-events:none;transition:transform 1.4s var(--intro-ease),opacity 1s .45s}.botanical-top{left:0;top:0;transform:rotate(-8deg)}.botanical-bottom{right:0;bottom:0;transform:rotate(172deg)}
.intro-garden .intro-flower-heart{z-index:2;width:43%;background:radial-gradient(circle at 35% 20%,#ffffff18,transparent 65%),var(--primary);box-shadow:0 8px 30px #0004,inset 0 0 0 5px var(--primary),inset 0 0 0 6px var(--accent)}
.is-opening .botanical-top{transform:translate(-18%,-18%) rotate(-22deg) scale(1.08);opacity:0}.is-opening .botanical-bottom{transform:translate(18%,18%) rotate(186deg) scale(1.08);opacity:0}
/* Cinema: actual cover photograph, letterbox shutters and a slow camera push. */
.intro-cinema{width:min(430px,100%);height:min(44svh,380px);border-radius:12px;overflow:hidden;background:radial-gradient(ellipse at top right,var(--accent),transparent 75%),var(--primary);box-shadow:0 22px 65px #0005}
.intro-cinema-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--intro-ease)}.intro-cinema:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#0008);pointer-events:none}.intro-cinema-frame{position:absolute;inset:24px;border:1px solid var(--accent);z-index:2;transition:transform 1.4s var(--intro-ease),opacity 1s}.intro-cinema-title{position:absolute;inset:35px 24px;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:white;text-shadow:0 2px 15px #0008;transition:transform 1.4s var(--intro-ease),opacity 1s}.intro-cinema-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:3px}.intro-shutter{position:absolute;left:0;right:0;height:13%;background:#09121c;z-index:4;transition:transform 1.5s var(--intro-ease) .15s}.shutter-top{top:0}.shutter-bottom{bottom:0}.intro-cinema-button{position:absolute;bottom:18%;left:50%;transform:translateX(-50%);white-space:nowrap;z-index:5;transition:opacity .35s}
.is-opening .intro-cinema-photo{transform:scale(1.18)}.is-opening .intro-cinema-frame{transform:scale(1.2);opacity:0}.is-opening .intro-cinema-title{transform:translateY(-15px);opacity:0}.is-opening .shutter-top{transform:translateY(-100%)}.is-opening .shutter-bottom{transform:translateY(100%)}.is-opening .intro-cinema-button{opacity:0}
@media(max-height:620px){.premium-gate{gap:10px}.premium-opening-copy h2{font-size:26px}.intro-art{height:32svh;min-height:130px}.intro-garden{height:auto;width:min(230px,75%)}.premium-gate .premium-envelope{width:min(320px,100%)}.intro-letter-page{gap:10px;padding:16px}.intro-letter-page .intro-script{font-size:32px}}
@media(prefers-reduced-motion:reduce){.premium-gate,.premium-gate *{animation:none!important;transition:none!important}}
@media print{.premium-gate{display:none!important}}
