:root{--olive:var(--color-olive);--sand:var(--color-sand);--amber:var(--color-amber);--burgundy:var(--color-burgundy);--cream:var(--color-cream);--charcoal:var(--color-charcoal);--ivory:var(--color-ivory);--forest:var(--color-forest);--gold:var(--color-gold);--font-headline:var(--font-heading);--font-accent:var(--font-label)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{background-color:var(--cream);color:var(--charcoal);font-family:var(--font-body);font-weight:300;letter-spacing:.01em;line-height:1.65;overflow:hidden;min-height:100dvh}body.scrollable{overflow-y:auto;overflow-x:hidden}::selection{background:rgba(231,198,157,.5);color:var(--charcoal)}img{display:block;max-width:100%}button{cursor:pointer;border:none;background:none}button,input{font:inherit}:focus{outline:none}:focus-visible{outline:1px solid var(--sand);outline-offset:4px}.texture-overlay{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.linen-bg{background-color:var(--cream);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.4' numOctaves='2' result='a'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.4 0.01' numOctaves='2' result='b'/%3E%3CfeBlend mode='multiply' in='a' in2='b' result='c'/%3E%3CfeColorMatrix type='matrix' values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23l)'/%3E%3C/svg%3E")}#envelope-screen{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.envelope-noise{position:absolute;inset:0;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply;pointer-events:none}.envelope-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;width:100%;max-width:420px;padding:0 24px}.header-text{text-align:center;margin-bottom:48px}.header-label{font-family:var(--font-accent);font-weight:300;font-size:10px;color:var(--olive);text-transform:uppercase;letter-spacing:.25em;margin-bottom:24px;line-height:1.4}.header-names{font-family:var(--font-headline);font-weight:300;font-size:56px;color:var(--charcoal);letter-spacing:-.02em;line-height:1}.header-names em{font-style:italic;color:var(--amber)}.envelope-wrapper{position:relative;width:100%;max-width:320px;aspect-ratio:3/2;margin-bottom:64px;perspective:800px}.env-botanical-left{left:-48px;top:-40px;width:128px;height:128px;transform:rotate(-12deg)}.env-botanical-left,.env-botanical-right{position:absolute;color:var(--sand);opacity:.8;pointer-events:none}.env-botanical-right{right:-40px;bottom:-32px;width:96px;height:96px;transform:rotate(120deg)}.envelope-back{position:absolute;inset:0;background:var(--cream);border-radius:2px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.4' numOctaves='2' result='a'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.4 0.01' numOctaves='2' result='b'/%3E%3CfeBlend mode='multiply' in='a' in2='b' result='c'/%3E%3CfeColorMatrix type='matrix' values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23l)'/%3E%3C/svg%3E")}.envelope-stamp{position:absolute;top:8px;right:12px;width:60px;height:60px;z-index:15;transform:rotate(15deg);opacity:.82;pointer-events:none;mix-blend-mode:multiply}.envelope-interior{background:var(--ivory);opacity:0}.envelope-flaps,.envelope-interior{position:absolute;inset:0;border-radius:2px}.envelope-flaps{width:100%;height:100%;overflow:hidden}.envelope-top-flap{position:absolute;top:0;left:0;width:100%;height:56.3%;transform-origin:top center;transform-style:preserve-3d;will-change:transform}.flap-back,.flap-front{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden}.flap-back{transform:rotateX(180deg)}.wax-seal{position:absolute;top:calc(56.3% - 2px);left:50%;transform:translate(-50%,-50%);width:112px;height:112px;z-index:20;cursor:pointer;-webkit-tap-highlight-color:transparent;transform-style:preserve-3d;padding:0;border:none;background:none;will-change:transform,opacity,filter}.wax-seal:before{content:"";position:absolute;inset:-12%;border-radius:50%;background:radial-gradient(circle,transparent 38%,rgba(121,73,0,.04) 58%,transparent 73%);pointer-events:none}.seal-svg{width:100%;height:100%;position:relative;z-index:1;border-radius:50%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2)) drop-shadow(0 4px 8px rgba(0,0,0,.15)) drop-shadow(0 8px 16px rgba(0,0,0,.1))}.seal-shimmer{inset:0;z-index:2;background:radial-gradient(circle at 30% 30%,rgba(255,215,0,.08),transparent 60%);background-size:200% 200%;animation:sealShimmer 5s ease-in-out infinite}.seal-shimmer,.wax-residue{position:absolute;border-radius:50%;pointer-events:none}.wax-residue{inset:5%;background:radial-gradient(circle,rgba(122,42,44,.12) 30%,transparent 70%);opacity:0}@keyframes sealShimmer{0%,to{background-position:15% 15%}50%{background-position:85% 85%}}.seal-glow-ring{inset:-10px;border-radius:50%;z-index:0;background:radial-gradient(circle,rgba(197,162,83,.5) 0,rgba(197,162,83,.1) 60%,transparent 100%);opacity:.3;transform:scale(.9);will-change:transform,opacity}.particles-container,.seal-glow-ring{position:absolute;pointer-events:none}.particles-container{top:calc(56.3% - 2px);left:50%;transform:translate(-50%,-50%);width:0;height:0;z-index:30}.cta-text{font-family:var(--font-accent);font-weight:300;font-size:10px;color:var(--olive);text-transform:uppercase;letter-spacing:.25em;opacity:.75;will-change:transform,opacity}.sound-toggle{position:fixed;top:24px;right:24px;z-index:60;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(92,113,12,.2);background:rgba(255,252,247,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:rgba(92,113,12,.6);transition:color .3s ease}.sound-toggle:hover{color:var(--olive)}.sound-toggle svg{width:16px;height:16px}#reveal-screen{min-height:auto;flex-direction:column;align-items:center;padding:80px 24px 40px;overflow:hidden;will-change:background-color}#reveal-screen,.card-stack{position:relative;display:flex}.card-stack{width:100%;max-width:340px;height:480px;margin-top:20px;margin-bottom:40px;justify-content:center}.envelope-base{position:absolute;bottom:20px;width:300px;height:200px;background:var(--cream);border-radius:2px;box-shadow:inset 0 2px 8px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.06)}.envelope-base-flap{position:absolute;bottom:100%;left:0;width:100%;height:150px}.botanical-left,.botanical-right{position:absolute;will-change:transform,opacity;pointer-events:none}.botanical-left{left:-40px;bottom:70px;width:128px;height:128px;transform:translateY(50px) rotate(-25deg)}.botanical-left,.botanical-right{color:rgba(45,74,30,.6);opacity:0}.botanical-right{right:-30px;bottom:90px;width:96px;height:96px;transform:translateY(50px) rotate(30deg)}.photo-card{position:absolute;top:100px;left:50%;width:160px;background:var(--cream);padding:12px 12px 16px;border:1px solid rgba(121,73,0,.08);z-index:10;display:flex;flex-direction:column;opacity:0;transform:translateX(-50%) translateY(40px);will-change:transform,opacity;box-shadow:0 2px 8px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.08)}.photo-placeholder{width:100%;aspect-ratio:1;background:linear-gradient(155deg,#F5EDE0,#EDE4D4 50%,#F0E8DA);overflow:hidden;margin-bottom:12px;position:relative;display:flex;align-items:center;justify-content:center}.photo-placeholder svg{width:60%;height:60%;opacity:.08}.photo-placeholder:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(121,73,0,.015) 0,rgba(121,73,0,.015) 5px)}.photo-caption{font-family:var(--font-headline);font-style:italic;font-weight:300;font-size:18px;text-align:center;color:rgba(58,48,40,.8);margin-top:2px}.date-card{position:absolute;top:120px;left:50%;width:256px;height:128px;background:var(--cream);border-radius:2px;display:flex;align-items:center;justify-content:center;z-index:20;opacity:0;transform:translateX(-50%) translateY(30px) scale(.95);will-change:transform,opacity;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.1);border:1px solid rgba(255,252,247,.8)}.date-card:after,.date-card:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:20px;height:20px;background:var(--cream);border-radius:50%;box-shadow:inset 0 1px 3px rgba(0,0,0,.08)}.date-card:before{left:-10px}.date-card:after{right:-10px}.date-card-inner{width:88%;height:80%;border:1px solid rgba(92,113,12,.3);border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--olive)}.date-card-label{font-family:var(--font-accent);font-weight:300;font-size:10px;letter-spacing:.25em;text-transform:uppercase;line-height:1.4}.date-card-date{font-family:var(--font-detail);font-weight:400;font-size:24px;letter-spacing:.25em;margin-top:12px;line-height:1.6}.date-card-sub{font-family:var(--font-body);font-weight:300;font-size:14px;margin-top:8px;opacity:.9}.envelope-overlay{position:absolute;bottom:20px;width:300px;height:200px;z-index:30;pointer-events:none}.reveal-text{text-align:center;z-index:30;max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;opacity:0;transform:translateY(15px)}.reveal-names{font-family:var(--font-headline);font-weight:300;font-size:56px;color:var(--charcoal);letter-spacing:-.02em;line-height:1;margin-bottom:32px}.reveal-names em{font-style:italic;color:var(--amber)}.reveal-date{font-family:var(--font-detail);font-weight:400;text-transform:uppercase;color:var(--charcoal);font-size:14px;letter-spacing:.35em;margin-bottom:40px;line-height:1.6}.reveal-tagline{font-family:var(--font-body);font-weight:300;font-size:18px;color:rgba(92,113,12,.8);font-style:italic;letter-spacing:.03em}#rsvp-section{padding:96px 24px;background:var(--olive);position:relative;border-top:1px solid rgba(255,252,247,.1)}.rsvp-content{max-width:560px;margin:0 auto}.rsvp-divider{display:flex;align-items:center;gap:16px;margin-bottom:48px}.rsvp-divider span{height:1px;flex:1;background:rgba(255,252,247,.2)}.rsvp-divider h2{font-family:var(--font-accent);font-weight:300;font-size:20px;color:var(--cream);letter-spacing:.25em;text-transform:uppercase}.rsvp-heading{text-align:center;margin-bottom:64px}.rsvp-heading h3{font-family:var(--font-headline);font-weight:300;font-size:32px;color:var(--cream);font-style:italic;letter-spacing:-.01em;line-height:1.2;margin-bottom:16px}.rsvp-heading p{font-family:var(--font-body);font-weight:300;font-size:18px;color:rgba(255,252,247,.9);max-width:400px;margin:0 auto;line-height:1.65}.attendance-row{display:flex;justify-content:center;gap:64px;margin-bottom:64px;border-top:1px solid rgba(255,252,247,.1);border-bottom:1px solid rgba(255,252,247,.1);padding:32px 0}.attendance-btn{padding:12px 32px;border-radius:2px;border:1px solid rgba(255,252,247,.3);color:rgba(255,252,247,.7);font-family:var(--font-accent);font-weight:400;font-size:12px;letter-spacing:.25em;text-transform:uppercase;transition:all .3s ease;line-height:1}.attendance-btn:hover{border-color:rgba(255,252,247,.6);background:rgba(255,252,247,.08)}.attendance-btn.active-accept{border-color:var(--cream);background:var(--cream);color:var(--olive)}.attendance-btn.active-decline{border-color:var(--amber);background:var(--amber);color:var(--cream)}.form-fields{display:flex;flex-direction:column;gap:48px}.field-group label{display:block;font-family:var(--font-accent);font-weight:300;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,252,247,.85);margin-bottom:12px}.field-group input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,252,247,.35);padding:8px 0;color:var(--cream);font-size:20px;font-family:var(--font-headline);font-weight:300;outline:none;transition:border-color .3s ease;border-radius:0;-webkit-appearance:none}.field-group input::placeholder{color:rgba(255,252,247,.4);font-family:var(--font-body);font-size:16px}.field-group input:focus{border-bottom-color:var(--cream);background:rgba(255,252,247,.05)}.field-group input[type=email],.field-group input[type=tel]{font-family:var(--font-body);font-size:18px}.submit-btn{display:block;width:100%;max-width:320px;margin:48px auto 0;padding:16px;border:1px solid var(--cream);border-radius:2px;color:var(--cream);font-family:var(--font-accent);font-weight:400;font-size:12px;letter-spacing:.25em;text-transform:uppercase;background:transparent;transition:all .3s ease;line-height:1}.submit-btn:hover{background:var(--cream);color:var(--olive)}.field-error{font-family:var(--font-body);font-size:12px;color:var(--sand);opacity:0;max-height:0;overflow:hidden;transition:opacity .25s ease,max-height .25s ease;margin-top:6px}.field-error.visible{opacity:1;max-height:40px}#attendance-error{text-align:center;margin-top:8px}#submit-error{text-align:center;margin-top:16px}.field-group input.has-error{border-bottom-color:var(--sand)}.submit-btn .spinner{display:inline-block;width:14px;height:14px;border:1.5px solid rgba(255,252,247,.3);border-top:1.5px solid var(--cream);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:8px}.submit-btn:hover .spinner{border-color:rgba(92,113,12,.3)}@keyframes spin{to{transform:rotate(1turn)}}.sincerely{margin-top:96px;text-align:center}.sincerely-label{font-family:var(--font-accent);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,252,247,.7)}.sincerely-label,.sincerely-names{font-weight:300;margin-bottom:24px}.sincerely-names{font-family:var(--font-headline);font-size:48px;color:var(--cream);letter-spacing:-.02em;line-height:1}.sincerely-names em{font-style:italic;color:var(--amber)}.sincerely-date{font-family:var(--font-detail);font-weight:400;font-size:14px;letter-spacing:.35em;color:rgba(255,252,247,.7)}.thank-you{display:none;text-align:center;padding:128px 0}.thank-you.visible{display:block}.thank-you h3{font-family:var(--font-headline);font-weight:300;font-size:56px;color:var(--sand);font-style:italic;letter-spacing:.02em;margin-bottom:24px}.thank-you p{font-family:var(--font-body);font-weight:300;font-size:20px;color:rgba(255,252,247,.8);margin-bottom:64px}.thank-you-footer{display:flex;flex-direction:column;align-items:center;gap:24px}.thank-you-footer .divider-line{width:48px;height:1px;background:rgba(121,73,0,.4)}.thank-you-footer .footer-label{font-family:var(--font-accent);font-weight:300;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,252,247,.7)}.rsvp-form-wrapper{display:block}.rsvp-form-wrapper.hidden{display:none}.scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:32px;opacity:0;z-index:30}.scroll-indicator-text{font-family:var(--font-accent);font-weight:300;font-size:10px;color:var(--olive);text-transform:uppercase;letter-spacing:.25em;opacity:.7}.scroll-indicator-chevron{width:20px;height:20px;color:var(--olive);opacity:.6}@media (min-width:768px){.header-names,.reveal-names{font-size:72px}.reveal-date{font-size:16px}.date-card{width:320px;height:148px}.date-card-date{font-size:32px;letter-spacing:.35em}.rsvp-heading h3{font-size:40px}.cta-text,.date-card-label,.field-group label,.header-label{font-size:11px}}@media (max-width:480px){#rsvp-section{padding:56px 20px}.attendance-row{gap:32px;padding:24px 0}.form-fields{gap:32px}.sincerely{margin-top:64px}.env-botanical-left{left:-24px;width:96px;height:96px}.env-botanical-right{right:-20px;width:72px;height:72px}}@media (max-width:340px){.attendance-row{flex-direction:column;align-items:center;gap:16px}.attendance-btn{width:100%;max-width:200px;text-align:center}}@media (prefers-reduced-motion:reduce){#envelope-screen{display:none!important}.seal-glow-ring,.seal-shimmer{animation:none!important}.botanical-left,.botanical-right,.date-card,.photo-card,.reveal-text{opacity:1!important;transform:none!important}body{overflow-y:auto!important;overflow-x:hidden!important}.scroll-indicator{opacity:1!important}.scroll-indicator-chevron{animation:none!important}}