
.rose-demo-switch{position:fixed;top:auto;bottom:20px;right:20px;z-index:9999;display:flex;align-items:center;gap:5px;padding:6px;border-radius:50px;background:#fffdf8ee;box-shadow:0 5px 30px #60354b33;backdrop-filter:blur(14px);font:600 12px/1.2 'DM Sans',sans-serif;color:#82546d}
.rose-demo-label{padding:0 9px;letter-spacing:1px;font-size:10px}
.rose-demo-switch button{border:0;border-radius:30px;padding:9px 12px;cursor:pointer;background:transparent;color:#875772;font-weight:700}
.rose-demo-switch button.active{background:#ad6e8e;color:white}
body.rose-intro-locked{overflow:hidden}
.rose-intro{position:fixed;inset:0;z-index:999;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#fff3f5 0%,#f6dce6 48%,#ddaabf 100%);isolation:isolate;color:#85526d;transition:opacity .85s ease,visibility .85s ease}
.rose-intro.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.intro-glow{position:absolute;inset:-30%;background:radial-gradient(circle at 20% 25%,#fff8 0%,transparent 30%),radial-gradient(circle at 80% 75%,#ffffff85 0%,transparent 24%);animation:introGlow 8s ease-in-out infinite alternate}
.intro-sparkles{position:absolute;inset:0;opacity:.6;background-image:radial-gradient(circle,#fff 0 2px,transparent 3px),radial-gradient(circle,#fff 0 1px,transparent 2px);background-size:113px 137px,73px 97px;background-position:15px 21px,54px 36px;animation:introSparkles 14s linear infinite}
.intro-content{width:min(94vw,480px);text-align:center;position:relative;z-index:1;padding:34px 5px}
.intro-eyebrow{letter-spacing:.27em;font:600 10px 'DM Sans',sans-serif;color:#a77892}
.intro-heading{font:normal clamp(31px,7vw,44px) 'Great Vibes',cursive;margin:12px 0 -7px}
.intro-envelope-scene{height:320px;display:flex;align-items:center;justify-content:center;perspective:1000px}
.intro-envelope{position:relative;width:min(76vw,310px);height:195px;margin-top:82px;filter:drop-shadow(0 19px 15px #76465e43);transform-style:preserve-3d;transition:transform 1.4s ease}
.intro-envelope-back{position:absolute;inset:0;background:linear-gradient(140deg,#c88ba7,#e8b6ca);border-radius:6px}
.intro-card{position:absolute;bottom:12px;left:8%;width:84%;height:255px;background:linear-gradient(145deg,#fffefd,#fff5f4);border:1px solid #ecd0d9;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 2px 9px #975c7c3a;transition:transform 1.55s cubic-bezier(.15,.85,.2,1);z-index:2}
.intro-flower{font-size:25px;color:#cf91ab}.intro-card-small{font:700 10px 'DM Sans',sans-serif;letter-spacing:.18em}.intro-card-xv{font:42px 'Great Vibes',cursive;line-height:1.1}.intro-card-name{font:48px 'Great Vibes',cursive;line-height:1.1}.intro-card-date{font:600 10px 'DM Sans',sans-serif;letter-spacing:.12em}.intro-card-bottom{font:14px 'Great Vibes',cursive;margin-top:10px}
.intro-envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 64%);background:linear-gradient(170deg,#f9d9e4,#e7adc4);transform-origin:top center;z-index:5;transition:transform .85s ease,z-index 0s linear .45s;backface-visibility:visible}
.intro-envelope-front{position:absolute;inset:0;clip-path:polygon(0 0,50% 51%,100% 0,100% 100%,0 100%);background:linear-gradient(155deg,#eebdd0,#dba2ba);z-index:4;border-radius:5px}
.intro-envelope-front::after{content:'';position:absolute;inset:0;clip-path:polygon(0 100%,50% 39%,100% 100%);background:#efc4d5}
.intro-wax{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:23px 'Great Vibes',cursive;color:#fff;background:linear-gradient(130deg,#bb7497,#8b4c6c);border:3px double #f6d6e3;z-index:7;box-shadow:0 4px 12px #69435a40;transition:opacity .2s}
.intro-open-btn{background:#9d637f;color:white;border:1px solid #89546f;border-radius:40px;padding:15px 30px;box-shadow:0 7px 22px #784c6c3d;cursor:pointer;font:700 13px 'DM Sans',sans-serif;letter-spacing:.05em;transition:transform .2s,opacity .3s}
.intro-open-btn:hover{transform:translateY(-3px)}.intro-hint{font:13px 'Great Vibes',cursive;margin-top:18px;font-size:22px;color:#a3748d}.intro-skip{position:absolute;bottom:19px;right:22px;background:#fff7;border:1px solid #ffffffa0;padding:8px 12px;border-radius:20px;color:#885974;cursor:pointer;font:12px 'DM Sans',sans-serif}
.rose-intro.opening .intro-envelope-flap{transform:rotateX(180deg);z-index:1}.rose-intro.opening .intro-wax{opacity:0}.rose-intro.opening .intro-card{transform:translateY(-162px)}.rose-intro.opening .intro-envelope{transform:translateY(33px) scale(1.06)}.rose-intro.opening .intro-open-btn{opacity:0;pointer-events:none}
@keyframes introSparkles{to{background-position:15px -253px,54px -158px}}@keyframes introGlow{to{transform:translate(6%,3%)}}
@media(max-width:520px){.rose-demo-switch{top:auto;bottom:12px;right:50%;transform:translateX(50%);white-space:nowrap}.rose-demo-label{display:none}.intro-skip{bottom:65px;right:12px}.intro-envelope-scene{height:330px}}
@media(prefers-reduced-motion:reduce){.rose-intro *, .rose-intro{animation:none!important;transition:none!important}}
