:root{--olive:#6b8e23;--olive-dark:#556b2f;--cream:#f5f2e8;--paper:#fbfaf5;--text:#2f3a1f;--gold:#c7b06a;--gold-soft:#c7b06a8c}.frame.hidden{opacity:0;pointer-events:none}.frame.visible{opacity:1;animation:.8s ease-out fadeIn}body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(#00000009 1px,#0000 1px),radial-gradient(#00000005 1px,#0000 1px);background-size:3px 3px,7px 7px;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(120px 120px at 0 0,#0000000f,#0000 60%),radial-gradient(120px 120px at 100% 0,#0000000d,#0000 60%),radial-gradient(140px 140px at 0 100%,#0000000d,#0000 65%),radial-gradient(140px 140px at 100% 100%,#0000000f,#0000 65%);position:fixed;inset:0}.frame{background:var(--paper);z-index:1;border-radius:2px;max-width:980px;margin:2.5rem auto 3rem;padding:0;position:relative;box-shadow:0 8px 28px #0000000f}.frame:before{content:"";border:2px solid var(--olive);pointer-events:none;position:absolute;inset:14px;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000014}.frame:after{content:"";border:1px solid var(--gold-soft);pointer-events:none;position:absolute;inset:22px}.olive-ornament{background-image:radial-gradient(circle at 10% 50%,var(--olive)2px,transparent 3px),radial-gradient(circle at 20% 60%,var(--olive-dark)2px,transparent 3px),radial-gradient(circle at 30% 50%,var(--olive)2px,transparent 3px),radial-gradient(circle at 40% 60%,var(--olive-dark)2px,transparent 3px),linear-gradient(var(--olive-dark),var(--olive-dark));opacity:.35;background-position:0 22px,0 26px,0 22px,0 26px,50% 32px;background-repeat:repeat-x;background-size:14px 14px,14px 14px,14px 14px,14px 14px,120px 1px;width:100%;height:48px;margin:1.6rem auto 0}.wedding-header{background:linear-gradient(180deg,var(--olive-dark),var(--olive));color:#fff;text-align:center;padding:4.5rem 1rem 4rem;animation:1.2s ease-out both fadeIn}.wedding-title{letter-spacing:.12em;text-transform:lowercase;font-variant:small-caps;font-size:2.8rem;font-family:var(--font-cinzel),"Georgia",serif;margin:0}.wedding-subtitle{opacity:.95;margin-top:1.2rem;font-size:1.1rem;font-style:italic}.wedding-main{padding:3.5rem 2rem 3rem}.wedding-main section{opacity:0;margin-bottom:4rem;animation:1.2s ease-out .35s forwards fadeUp}.section-title{border-bottom:1px solid var(--gold);letter-spacing:.12em;text-transform:lowercase;font-variant:small-caps;font-size:1.45rem;font-weight:400;font-family:var(--font-cinzel),"Georgia",serif;margin-bottom:1.6rem;padding-bottom:.35rem;display:inline-block}.card{padding:2rem}.info-list{margin:0;padding:0;list-style:none}.info-list li{margin-bottom:.85rem}.story-text{font-size:1.1rem;line-height:1.8}.vintage-photo-container{justify-content:center;margin:2rem auto;padding:2rem;display:flex}.vintage-frame{background:linear-gradient(135deg,#f8f6f0 0%,#e8e4d8 100%);border:15px solid;border-image:linear-gradient(135deg,#d4c5a0,#a89968,#d4c5a0) 1;max-width:600px;padding:30px;position:relative;box-shadow:0 10px 40px #0003,inset 0 0 20px #0000000d}.vintage-frame:before{content:"";pointer-events:none;border:2px solid #c7b06a66;position:absolute;inset:8px}.vintage-frame:after{content:"";pointer-events:none;background-image:repeating-linear-gradient(45deg,#0000,#0000 10px,#ffffff1a 10px 20px),repeating-linear-gradient(-45deg,#0000,#0000 10px,#ffffff0d 10px 20px);border:3px solid #6b8e231a;position:absolute;inset:-15px}.lace-border{opacity:.3;pointer-events:none;background-repeat:repeat;position:absolute}.lace-border.top{background-image:repeating-linear-gradient(90deg,var(--gold)0px,var(--gold)2px,transparent 2px,transparent 6px,var(--gold)6px,var(--gold)8px,transparent 8px,transparent 12px);height:20px;top:0;left:0;right:0}.lace-border.bottom{background-image:repeating-linear-gradient(90deg,var(--gold)0px,var(--gold)2px,transparent 2px,transparent 6px,var(--gold)6px,var(--gold)8px,transparent 8px,transparent 12px);height:20px;bottom:0;left:0;right:0}.lace-border.left{background-image:repeating-linear-gradient(0deg,var(--gold)0px,var(--gold)2px,transparent 2px,transparent 6px,var(--gold)6px,var(--gold)8px,transparent 8px,transparent 12px);width:20px;top:0;bottom:0;left:0}.lace-border.right{background-image:repeating-linear-gradient(0deg,var(--gold)0px,var(--gold)2px,transparent 2px,transparent 6px,var(--gold)6px,var(--gold)8px,transparent 8px,transparent 12px);width:20px;top:0;bottom:0;right:0}.vintage-frame img{filter:sepia(10%)contrast(1.05);width:100%;height:auto;display:block;box-shadow:0 4px 15px #00000026}.music-control{text-align:center;margin-bottom:3rem}.music-control button{border:1px solid var(--gold);color:var(--olive-dark);cursor:pointer;letter-spacing:.04em;background:0 0;padding:.45rem .9rem;font-family:inherit;transition:all .3s}.music-control button:hover{background:var(--gold-soft)}.blessing-section{text-align:center;border-top:1px solid var(--gold);margin-top:2rem;padding:2rem}.blessing-button{background:linear-gradient(180deg,var(--olive),var(--olive-dark));border:1px solid var(--gold);color:#fff;cursor:pointer;font-family:var(--font-cinzel),"Georgia",serif;letter-spacing:.08em;padding:.75rem 1.5rem;font-size:1rem;transition:all .3s;box-shadow:0 2px 8px #0000001a}.blessing-button:hover{background:linear-gradient(180deg,var(--olive-dark),var(--olive));transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.blessing-text{color:var(--olive-dark);opacity:0;min-height:3rem;margin-top:1.5rem;font-size:1.2rem;font-style:italic;transition:opacity .5s}.blessing-text.show{opacity:1}.name-collection{border-top:1px solid var(--gold);margin-top:2rem;padding:2rem}.name-form{flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.name-input{border:1px solid var(--olive);background:var(--paper);width:100%;max-width:400px;font-family:var(--font-cormorant),"Georgia",serif;color:var(--text);padding:.75rem 1rem;font-size:1.1rem}.name-input:focus{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft);outline:none}.name-input:disabled{opacity:.6;cursor:not-allowed}.submit-button{background:linear-gradient(180deg,var(--olive),var(--olive-dark));border:1px solid var(--gold);color:#fff;cursor:pointer;font-family:var(--font-cinzel),"Georgia",serif;letter-spacing:.08em;padding:.75rem 2rem;font-size:1rem;transition:all .3s;box-shadow:0 2px 8px #0000001a}.submit-button:hover:not(:disabled){background:linear-gradient(180deg,var(--olive-dark),var(--olive));transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.submit-button:disabled{opacity:.5;cursor:not-allowed}.message{color:var(--olive-dark);text-align:center;margin-top:1rem;font-style:italic}.guest-list-container{text-align:center;margin-top:2rem}.guest-list-scroll{border:1px solid var(--gold);background:var(--paper);max-height:300px;margin-top:1rem;padding:1.5rem;overflow-y:auto;box-shadow:inset 0 2px 8px #0000000d}.guest-list-scroll::-webkit-scrollbar{width:8px}.guest-list-scroll::-webkit-scrollbar-track{background:var(--cream)}.guest-list-scroll::-webkit-scrollbar-thumb{background:var(--olive);border-radius:4px}.guest-list{margin:0;padding:0;list-style:none}.guest-list li{border-bottom:1px dotted var(--gold-soft);padding:.5rem 0;font-size:1.1rem}.guest-list li:last-child{border-bottom:none}.guest-count{color:var(--olive-dark);margin-top:1rem;font-size:.95rem;font-style:italic}.wedding-footer{text-align:center;letter-spacing:.04em;background:0 0;padding:2.8rem 1rem 3rem;font-size:.9rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{animation:none!important}}@media (max-width:1024px){.frame{max-width:90%;margin:2rem auto}.wedding-header{padding:3.5rem 1rem 3rem}.wedding-title{font-size:2.4rem}.wedding-main{padding:2.5rem 1.5rem}.vintage-frame{max-width:500px;padding:25px}}@media (max-width:768px){.frame{max-width:95%;margin:1.5rem auto}.frame:before{inset:10px}.frame:after{inset:16px}.wedding-header{padding:3rem 1rem 2.5rem}.wedding-title{letter-spacing:.08em;font-size:2rem}.wedding-subtitle{font-size:1rem}.wedding-main{padding:2rem 1.25rem}.wedding-main section{margin-bottom:3rem}.section-title{font-size:1.3rem}.vintage-photo-container{padding:1rem}.vintage-frame{border-width:12px;max-width:100%;padding:20px}.story-text{font-size:1rem}.card{padding:1.5rem}.guest-list-scroll{max-height:250px;padding:1rem}.blessing-section{padding:1.5rem}.blessing-text{font-size:1.1rem}}@media (max-width:480px){.frame{border-radius:0;max-width:100%;margin:0}.frame:before{border-width:1px;inset:6px}.frame:after{inset:10px}.wedding-header{padding:2.5rem .75rem 2rem}.wedding-title{letter-spacing:.06em;font-size:1.5rem}.wedding-subtitle{margin-top:1rem;font-size:.9rem}.olive-ornament{height:36px;margin:1rem auto 0}.wedding-main{padding:1.5rem 1rem}.wedding-main section{margin-bottom:2.5rem}.section-title{letter-spacing:.08em;font-size:1.15rem}.vintage-photo-container{padding:.5rem}.vintage-frame{border-width:8px;padding:12px}.lace-border.top,.lace-border.bottom{height:12px}.lace-border.left,.lace-border.right{width:12px}.card{padding:1rem}.info-list li{margin-bottom:.75rem;font-size:.95rem}.story-text{font-size:.95rem;line-height:1.7}.name-form{gap:.75rem}.name-input{padding:.6rem .8rem;font-size:1rem}.submit-button,.blessing-button{padding:.6rem 1.25rem;font-size:.9rem}.guest-list-scroll{max-height:200px;padding:.75rem}.guest-list li{padding:.4rem 0;font-size:1rem}.blessing-section{padding:1rem}.blessing-text{min-height:2.5rem;font-size:1rem}.wedding-footer{padding:2rem 1rem;font-size:.85rem}.music-control button{padding:.4rem .75rem;font-size:.9rem}}@media (max-width:360px){.wedding-title{font-size:1.3rem}.wedding-subtitle{font-size:.85rem}.section-title{font-size:1.05rem}.vintage-frame{border-width:6px;padding:8px}}.easter-egg{border-top:1px dashed var(--gold-soft);text-align:center;opacity:0;margin-top:3rem;padding:2rem;animation:1s ease-out 2s forwards fadeIn}.easter-egg-container{cursor:pointer;background:linear-gradient(135deg,#f8f6f0 0%,#e8e4d8 100%);border:8px solid;border-image:linear-gradient(135deg,#d4c5a0,#a89968,#d4c5a0) 1;max-width:280px;padding:15px;transition:transform .3s,box-shadow .3s;display:inline-block;position:relative;box-shadow:0 6px 20px #00000026}.easter-egg-container:hover{transform:scale(1.02);box-shadow:0 8px 25px #0003}.easter-egg-container img{filter:sepia(5%);border-radius:2px;width:100%;height:auto;display:block}.easter-egg-text{color:var(--olive-dark);letter-spacing:.02em;margin-top:1rem;font-size:.95rem;font-style:italic}@media (max-width:480px){.easter-egg{margin-top:2rem;padding:1.5rem 1rem}.easter-egg-container{border-width:6px;max-width:220px;padding:10px}.easter-egg-text{font-size:.85rem}}.invitation-overlay{background:linear-gradient(180deg,var(--cream)0%,#e8e4d8 100%);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.invitation-envelope{perspective:1000px;width:380px;height:280px;position:relative}.envelope-back{background:linear-gradient(135deg,#e8e0d0 0%,#d4c8b0 100%);border-radius:4px;width:100%;height:100%;position:absolute;box-shadow:0 10px 40px #00000026}.envelope-pattern{border:2px solid var(--gold-soft);opacity:.5;position:absolute;inset:8px}.envelope-letter{background:var(--paper);z-index:1;border-radius:2px;height:220px;transition:transform .8s ease-out;position:absolute;top:15px;left:15px;right:15px;transform:translateY(0);box-shadow:0 2px 10px #0000001a}.invitation-envelope.opening .envelope-letter{transform:translateY(-180px)}.letter-content{text-align:center;color:var(--text);padding:1.5rem}.letter-ornament{color:var(--gold);margin-bottom:.5rem;font-size:1.5rem}.letter-ornament.bottom{margin-top:.5rem;margin-bottom:0;transform:rotate(180deg)}.letter-content h2{color:var(--olive-dark);margin:.5rem 0;font-size:1rem;font-style:italic;font-weight:400}.letter-content p{color:var(--olive);margin:.3rem 0;font-size:.9rem}.letter-content h1{font-family:var(--font-cinzel),"Georgia",serif;letter-spacing:.08em;color:var(--olive-dark);margin:.8rem 0;font-size:1.6rem;font-weight:400}.letter-date{font-style:italic;color:var(--gold)!important}.envelope-flap{transform-origin:top;z-index:3;width:100%;height:140px;transition:transform .6s ease-out;position:absolute;top:0;left:0;transform:rotateX(0)}.invitation-envelope.opening .envelope-flap{transform:rotateX(180deg)}.flap-inner{border-top:140px solid #c9bda5;border-left:190px solid #0000;border-right:190px solid #0000;width:0;height:0;position:relative}.flap-inner:after{content:"";border-top:138px solid #d8cbb5;border-left:188px solid #0000;border-right:188px solid #0000;width:0;height:0;position:absolute;top:-138px;left:-188px}.envelope-front{z-index:2;background:linear-gradient(#d8cbb5 0%,#c9bda5 100%);border-radius:0 0 4px 4px;width:100%;height:160px;position:absolute;bottom:0;left:0}.envelope-seal{background:linear-gradient(135deg,#b8a070,#8b7355);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:absolute;top:-25px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.envelope-seal span{font-family:var(--font-cinzel),"Georgia",serif;color:#f5f2e8;letter-spacing:.05em;font-size:.7rem}.open-invitation-btn{background:linear-gradient(180deg,var(--olive),var(--olive-dark));border:2px solid var(--gold);color:#fff;cursor:pointer;font-family:var(--font-cinzel),"Georgia",serif;letter-spacing:.1em;white-space:nowrap;padding:.8rem 2rem;font-size:1rem;transition:all .3s;position:absolute;bottom:-60px;left:50%;transform:translate(-50%);box-shadow:0 4px 15px #00000026}.open-invitation-btn:hover{background:linear-gradient(180deg,var(--olive-dark),var(--olive));transform:translate(-50%)translateY(-2px);box-shadow:0 6px 20px #0003}.countdown-section{text-align:center;background:linear-gradient(#6b8e230d 0%,#6b8e2305 100%);border-radius:4px;margin:3rem 0;padding:2rem}.countdown-timer{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.countdown-unit{flex-direction:column;align-items:center;min-width:80px;padding:1rem;display:flex}.countdown-number{font-family:var(--font-cinzel),"Georgia",serif;color:var(--olive-dark);font-size:2.5rem;line-height:1}.countdown-label{color:var(--olive);letter-spacing:.08em;text-transform:uppercase;margin-top:.5rem;font-size:.85rem}.countdown-separator{color:var(--gold);padding-bottom:1.5rem;font-size:2rem;font-weight:700}.countdown-message{color:var(--olive-dark);margin-top:1rem;font-size:1.3rem;font-style:italic}.cake-voting-section{border-top:1px solid var(--gold);text-align:center;margin:3rem 0;padding:2rem}.wedding-day-announcement{border:1px solid var(--gold-soft);background:linear-gradient(#c7b06a26 0%,#c7b06a0d 100%);border-radius:4px;margin-bottom:2rem;padding:1.5rem}.wedding-day-announcement p{color:var(--olive-dark);margin:0;font-size:1.1rem;font-style:italic}.cake-options{flex-wrap:wrap;justify-content:center;gap:2rem;margin-top:2rem;display:flex}.cake-option{text-align:center;flex:1;min-width:220px;max-width:280px}.cake-image-container{aspect-ratio:1;border:3px solid var(--gold-soft);background:var(--paper);border-radius:4px;width:100%;margin-bottom:1rem;overflow:hidden}.cake-image-container img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.cake-option:hover .cake-image-container img{transform:scale(1.05)}.cake-option h3{font-family:var(--font-cinzel),"Georgia",serif;color:var(--olive-dark);letter-spacing:.05em;margin:.5rem 0;font-size:1.1rem;font-weight:400}.vote-stats{margin:1rem 0}.vote-bar{background:#e8e4d8;border-radius:4px;height:8px;margin-bottom:.5rem;overflow:hidden}.vote-fill{border-radius:4px;height:100%;transition:width .5s}.vote-fill.classic{background:linear-gradient(90deg,var(--gold),#d4c090)}.vote-fill.modern{background:linear-gradient(90deg,var(--olive),var(--olive-dark))}.vote-count{color:var(--olive);font-size:.9rem}.vote-button{background:linear-gradient(180deg,var(--olive),var(--olive-dark));border:1px solid var(--gold);color:#fff;cursor:pointer;font-family:var(--font-cinzel),"Georgia",serif;letter-spacing:.06em;padding:.6rem 1.5rem;font-size:.9rem;transition:all .3s;position:relative;overflow:visible;box-shadow:0 2px 8px #0000001a}.vote-button:hover:not(:disabled){background:linear-gradient(180deg,var(--olive-dark),var(--olive));transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.vote-button:disabled{opacity:.6;cursor:not-allowed}.flower-effect{color:#ff69b4;pointer-events:none;font-size:1.2rem;animation:1s ease-out forwards flowerBurst;position:absolute}@keyframes flowerBurst{0%{opacity:1;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1.5)rotate(180deg)}to{opacity:0;transform:scale(.5)rotate(360deg)translateY(-30px)}}.voted-message{color:var(--olive-dark);margin-top:1.5rem;font-size:.95rem;font-style:italic}@media (max-width:768px){.invitation-envelope{width:320px;height:240px}.flap-inner{border-top:120px solid #c9bda5;border-left:160px solid #0000;border-right:160px solid #0000}.flap-inner:after{border-top:118px solid #d8cbb5;border-left:158px solid #0000;border-right:158px solid #0000;top:-118px;left:-158px}.envelope-flap{height:120px}.letter-content h1{font-size:1.3rem}.countdown-unit{min-width:60px;padding:.75rem}.countdown-number{font-size:2rem}.countdown-separator{padding-bottom:1rem;font-size:1.5rem}.cake-options{gap:1.5rem}.cake-option{min-width:200px;max-width:250px}}@media (max-width:480px){.invitation-envelope{width:280px;height:210px}.flap-inner{border-top:105px solid #c9bda5;border-left:140px solid #0000;border-right:140px solid #0000}.flap-inner:after{border-top:103px solid #d8cbb5;border-left:138px solid #0000;border-right:138px solid #0000;top:-103px;left:-138px}.envelope-flap{height:105px}.envelope-letter{height:180px;top:10px;left:10px;right:10px}.letter-content{padding:1rem}.letter-content h1{font-size:1.2rem}.letter-content h2{font-size:.9rem}.open-invitation-btn{padding:.7rem 1.5rem;font-size:.9rem}.countdown-section{padding:1.5rem 1rem}.countdown-unit{min-width:50px;padding:.5rem}.countdown-number{font-size:1.6rem}.countdown-label{font-size:.7rem}.countdown-separator{padding-bottom:.8rem;font-size:1.2rem}.cake-voting-section{padding:1.5rem 1rem}.cake-options{gap:1rem}.cake-option{min-width:160px;max-width:100%}.cake-option h3{font-size:1rem}.vote-button{padding:.5rem 1rem;font-size:.85rem}}
