*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cream: #faf6f0;--ivory: #f5efe6;--gold: #c9a84c;--gold-light: #e8c96d;--gold-dark: #a07830;--gold-glow: rgba(201, 168, 76, .4);--sage: #7a9e7e;--sage-light: #a8c5ac;--sage-dark: #4a6b4e;--text-dark: #2c2416;--text-medium: #5a4a32;--text-light: #8a7a62;--deep: #1a1208}html{scroll-behavior:smooth}body{font-family:Cormorant Garamond,Georgia,serif;background:var(--deep);color:var(--cream);overflow-x:hidden;cursor:none}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--deep)}::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}.shimmer-gold{background:linear-gradient(90deg,var(--gold-dark) 0%,var(--gold-light) 40%,#fff8e0 50%,var(--gold-light) 60%,var(--gold-dark) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s linear infinite}.shimmer-white{background:linear-gradient(90deg,#ffffff80,#fff 40%,#fffc,#fff 60%,#ffffff80);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 5s linear infinite}@keyframes shimmer{to{background-position:200% center}}.glass{background:#ffffff0d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(201,168,76,.2);border-radius:24px}.glass-light{background:#fff8e614;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(201,168,76,.25);border-radius:20px}.envelope-entrance{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:24px;background:radial-gradient(ellipse at 50% 43%,rgba(201,168,76,.13),transparent 38%),radial-gradient(ellipse at center,#21180b,#0e0a05 62%,#070604);perspective:1400px}.wedding-envelope{position:relative;flex:0 0 auto;width:min(84vw,540px);height:350px;transform-style:preserve-3d;filter:drop-shadow(0 32px 36px rgba(0,0,0,.46));cursor:pointer}.envelope-body{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border:1px solid rgba(201,168,76,.85);border-radius:9px;background:linear-gradient(145deg,#d6bd7e,#f2e8d1 34%,#c8a85b);box-shadow:inset 0 0 0 5px #fffae857,inset 0 0 32px #704f1a29}.envelope-body:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:1;border:1px solid rgba(160,120,48,.34);border-radius:4px;pointer-events:none}.envelope-letter{position:absolute;z-index:2;top:8%;left:9%;display:flex;width:82%;height:84%;align-items:center;flex-direction:column;justify-content:flex-start;padding:16px;border:1px solid rgba(201,168,76,.72);border-radius:5px;background:radial-gradient(ellipse at 50% 28%,rgba(42,24,0,.75),transparent 58%),radial-gradient(ellipse at 82% 84%,rgba(5,18,5,.8),transparent 54%),linear-gradient(145deg,#1a1208,#0d0a06 55%,#101006);box-shadow:0 8px 22px #0000005c,inset 0 0 0 4px #c9a84c14;text-align:center;color:#faf6f0}.envelope-letter:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(201,168,76,.23);pointer-events:none}.envelope-letter-eyebrow{margin-top:8px;color:#a8c5acd1;font-family:Lato,sans-serif;font-size:.54rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.envelope-letter h1{margin-top:20px;margin-bottom:16px;color:#fff8e0;font-family:Great Vibes,cursive;font-size:clamp(2.25rem,6vw,3.6rem);font-weight:700;line-height:1.2;text-shadow:0 0 24px rgba(201,168,76,.3)}.envelope-letter h1 span{color:var(--gold-light)}.envelope-letter-date{margin-top:8px;color:#c9a84ceb;font-family:Cinzel,serif;font-size:.62rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.envelope-letter-venue{margin-top:5px;color:#c8b48cb3;font-family:Cormorant Garamond,serif;font-size:.82rem;font-weight:700;font-style:italic}.envelope-pocket{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#d7c18d,#f1e5c8,#c3a45c);filter:drop-shadow(0 -1px 1px rgba(127,91,31,.45))}.envelope-pocket:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(160,120,48,.4);clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%)}.envelope-flap{position:absolute;top:0;left:0;z-index:4;width:100%;height:59%;clip-path:polygon(0 0,100% 0,50% 100%);border-top:1px solid rgba(255,251,231,.72);background:linear-gradient(165deg,#f5ecd8,#d8c18b 58%,#b59145);transform-origin:top center;backface-visibility:hidden}.envelope-front-copy{position:absolute;z-index:5;right:8%;bottom:8%;left:8%;text-align:center;color:#705322;pointer-events:none}.envelope-front-copy p{font-family:Great Vibes,cursive;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:700;line-height:1}.envelope-front-copy p span{color:#a07830}.envelope-front-copy small{display:block;margin-top:6px;color:#4f3a1a;font-family:Cinzel,serif;font-size:.58rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.envelope-seal{position:absolute;z-index:6;right:0;left:0;display:flex;justify-content:center;top:45%}.envelope-open-button{display:grid;width:68px;height:68px;place-items:center;padding:8px;border:1px solid rgba(255,248,224,.7);border-radius:50%;background:radial-gradient(circle at 32% 28%,#d5b867,#a98237 58%,#76531f);color:#2c2416;font-family:Cinzel,serif;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 5px 18px #49310e52,inset 0 0 0 3px #fff8e024,inset 0 1px #ffffff47;line-height:1}.envelope-open-button:disabled{cursor:default}@media(max-width:600px){.wedding-envelope{width:min(88vw,460px);height:min(63vw,305px);min-height:235px}.envelope-letter{padding:12px 8px}.envelope-letter>svg{width:30px;height:30px}.envelope-letter-eyebrow{font-size:.46rem;letter-spacing:.15em}.envelope-letter h1{margin-top:16px;margin-bottom:12px;font-size:clamp(1.9rem,7vw,2.7rem);line-height:1.2}.envelope-letter-date{font-size:.52rem;letter-spacing:.1em}.envelope-letter-venue{font-size:.72rem}.envelope-front-copy{bottom:8%}.envelope-front-copy p{font-size:clamp(1.65rem,7vw,2.2rem)}.envelope-front-copy small{font-size:.48rem;letter-spacing:.1em}.envelope-open-button{width:62px;height:62px;padding:7px;font-size:.61rem;letter-spacing:.06em}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes floatSlow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(3deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px var(--gold-glow)}50%{box-shadow:0 0 60px var(--gold-glow),0 0 120px #c9a84c26}}@keyframes rotateSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.2)}28%{transform:scale(1)}42%{transform:scale(1.15)}70%{transform:scale(1)}}@keyframes textReveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes sideFlowLeft{0%{transform:translate(-120px) translateY(0) rotate(0);opacity:0}10%{opacity:.7}90%{opacity:.4}to{transform:translate(calc(100vw + 120px)) translateY(var(--dy)) rotate(720deg);opacity:0}}@keyframes sideFlowRight{0%{transform:translate(calc(100vw + 120px)) translateY(0) rotate(0);opacity:0}10%{opacity:.7}90%{opacity:.4}to{transform:translate(-120px) translateY(var(--dy)) rotate(-720deg);opacity:0}}@keyframes riseUp{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.6}80%{opacity:.3}to{transform:translateY(-100px) rotate(360deg);opacity:0}}@keyframes auraPulse{0%,to{opacity:.4;transform:scale(1) rotate(0)}50%{opacity:.7;transform:scale(1.1) rotate(180deg)}}.cursor{position:fixed;width:10px;height:10px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:transform .05s}.cursor-ring{position:fixed;width:32px;height:32px;border:1px solid rgba(201,168,76,.6);border-radius:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:left .12s ease,top .12s ease}.cd-num{font-family:Cinzel,serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:700;line-height:1}.cd-label{font-family:Lato,sans-serif;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--text-light)}@media(max-width:768px){.cd-num{font-size:1.5rem}}
