
.party-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:#211a31ee;box-shadow:0 5px 30px #60354b33;backdrop-filter:blur(14px);font:600 12px/1.2 'Poppins',sans-serif;color:#ffffff}
.party-demo-label{padding:0 9px;letter-spacing:1px;font-size:10px}
.party-demo-switch button{border:0;border-radius:30px;padding:9px 12px;cursor:pointer;background:transparent;color:#ffffff;font-weight:700}
.party-demo-switch button.active{background:#ff4fa3;color:white}
body.party-intro-locked{overflow:hidden}
.party-intro{position:fixed;inset:0;z-index:999;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#3e214f 0%,#211a31 48%,#151122 100%);isolation:isolate;color:#ffffff;transition:opacity .85s ease,visibility .85s ease}
.party-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 'Poppins',sans-serif;color:#6ee7ff}
.intro-heading{font:normal clamp(31px,7vw,44px) 'Bebas Neue',sans-serif;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,#6b2c91,#ff4fa3);border-radius:6px}
.intro-card{position:absolute;bottom:12px;left:8%;width:84%;height:255px;background:linear-gradient(145deg,#fff5fa,#fce6f3);border:1px solid #ff4fa3;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:#ff4fa3}.intro-card-small{font:700 10px 'Poppins',sans-serif;letter-spacing:.18em}.intro-card-xv{font:42px 'Bebas Neue',sans-serif;line-height:1.1}.intro-card-name{font:48px 'Bebas Neue',sans-serif;line-height:1.1}.intro-card-date{font:600 10px 'Poppins',sans-serif;letter-spacing:.12em}.intro-card-bottom{font:14px 'Bebas Neue',sans-serif;margin-top:10px}
.intro-envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 64%);background:linear-gradient(170deg,#ffb3d8,#9c3fa3);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,#be55be,#6b2c91);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:#db68b5}
.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 'Bebas Neue',sans-serif;color:#fff;background:linear-gradient(130deg,#ff4fa3,#822ca8);border:3px double #6ee7ff;z-index:7;box-shadow:0 4px 12px #69435a40;transition:opacity .2s}
.intro-open-btn{background:#ff4fa3;color:white;border:1px solid #ff4fa3;border-radius:40px;padding:15px 30px;box-shadow:0 7px 22px #784c6c3d;cursor:pointer;font:700 13px 'Poppins',sans-serif;letter-spacing:.05em;transition:transform .2s,opacity .3s}
.intro-open-btn:hover{transform:translateY(-3px)}.intro-hint{font:13px 'Bebas Neue',sans-serif;margin-top:18px;font-size:22px;color:#6ee7ff}.intro-skip{position:absolute;bottom:19px;right:22px;background:#fff7;border:1px solid #ffffffa0;padding:8px 12px;border-radius:20px;color:#ffffff;cursor:pointer;font:12px 'Poppins',sans-serif}
.party-intro.opening .intro-envelope-flap{transform:rotateX(180deg);z-index:1}.party-intro.opening .intro-wax{opacity:0}.party-intro.opening .intro-card{transform:translateY(-162px)}.party-intro.opening .intro-envelope{transform:translateY(33px) scale(1.06)}.party-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){.party-demo-switch{top:auto;bottom:12px;right:50%;transform:translateX(50%);white-space:nowrap}.party-demo-label{display:none}.intro-skip{bottom:65px;right:12px}.intro-envelope-scene{height:330px}}
@media(prefers-reduced-motion:reduce){.party-intro *, .party-intro{animation:none!important;transition:none!important}}

.party-intro[hidden]{display:none}.party-demo-switch[hidden]{display:none}

.party-intro{overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(circle at 20% 20%,rgba(255,79,163,.32),transparent 35%),radial-gradient(circle at 80% 25%,rgba(80,212,255,.22),transparent 35%),radial-gradient(circle at 50% 85%,rgba(145,93,255,.28),transparent 40%),#151122}
.intro-card{color:#211a31}.intro-card-xv{font-size:65px;color:#ff4fa3}.intro-card-name{font-size:45px}.intro-card-bottom{font:400 12px var(--body-font)}
.intro-heading{letter-spacing:.025em}.intro-hint{font:400 13px var(--body-font);color:#6ee7ff}
.intro-open-btn{font-family:var(--body-font);box-shadow:0 7px 28px #ff4fa344}.intro-skip{background:#211a31;border-color:#3a2e50}
.party-demo-switch{background:rgba(33,26,49,.95);border:1px solid var(--line);box-shadow:0 5px 30px #0005;font-family:var(--body-font)}
.party-demo-switch button{font-family:inherit}.party-demo-label{font-size:10px;color:#6ee7ff}
.party-demo-switch button.active{background:#ff4fa3;color:#fff}
.intro-eyebrow{font-family:var(--body-font);color:#6ee7ff}.intro-wax{font-size:28px}
.intro-skip:focus-visible,.intro-open-btn:focus-visible,.party-demo-switch button:focus-visible{outline:3px solid #6ee7ff;outline-offset:3px}
@media(max-width:520px){.party-demo-switch{max-width:calc(100% - 24px);bottom:12px}.party-demo-label{display:block;padding:0 5px;font-size:9px}.party-demo-switch button{padding:9px 10px}.back-index{bottom:76px}}
@media(max-height:650px){.intro-content{padding:14px 5px}.intro-envelope-scene{height:260px}.intro-heading{font-size:32px}}
@media(max-height:440px){.intro-envelope-scene{height:185px;transform:scale(.7)}.intro-heading{margin:0}.intro-eyebrow,.intro-hint{display:none}.intro-content{padding:8px}.intro-open-btn{padding:10px 20px}}

.intro-skip{bottom:82px}
@media(max-width:520px){.intro-skip{bottom:74px}}
