@font-face{font-family:Cinzel;src:url(/fonts/cinzel-400.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Cinzel;src:url(/fonts/cinzel-600.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-400.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-500.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-italic-400.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-italic-500.ttf)format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Pinyon Script;src:url(/fonts/pinyon-400.ttf)format("truetype");font-weight:400;font-display:swap}:root,.theme-casamento{--ivory:#1a2b4c;--ivory-deep:#0f1a2e;--ivory-card:#15223c;--gold:#fdfbf7;--gold-soft:#e0dccc;--gold-deep:#fff;--ink:#fdfbf7;--ink-soft:#c8c2b4}.theme-debutante{--ivory:#0d0e15;--ivory-deep:#161824;--ivory-card:#13141f;--gold:#ff2a6d;--gold-soft:#ff75a0;--gold-deep:#05d9e8;--ink:#fff;--ink-soft:#d1d5db}.theme-aniversario{--ivory:#f0f9ff;--ivory-deep:#e0f2fe;--ivory-card:#15223c;--gold:#0ea5e9;--gold-soft:#38bdf8;--gold-deep:#0369a1;--ink:#0f172a;--ink-soft:#334155}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{color:var(--ink);background:var(--ivory);-webkit-font-smoothing:antialiased;font-family:Cormorant Garamond,Georgia,serif}.stage{background:radial-gradient(120% 90% at 50% 32%, var(--ivory-card) 0%, var(--ivory) 38%, var(--ivory-deep) 72%, var(--gold-soft) 100%);position:fixed;inset:0}.stage canvas{position:absolute;inset:0}.grain{pointer-events:none;z-index:40;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}.vignette{pointer-events:none;z-index:41;background:radial-gradient(120% 100% at 50% 42%,#0000 52%,#54412133 100%);position:fixed;inset:0}.loader{z-index:90;background:var(--ivory);flex-direction:column;justify-content:center;align-items:center;gap:18px;transition:opacity 1.1s;display:flex;position:fixed;inset:0}.loader.hidden{opacity:0;pointer-events:none}.loader .monogram{color:var(--gold-deep);font-family:Pinyon Script,cursive;font-size:clamp(52px,9vw,84px);animation:2.4s ease-in-out infinite breathe}.loader .line{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:120px;height:1px}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}.hint{z-index:30;text-align:center;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--gold-deep);pointer-events:none;padding:0 24px;font-family:Cormorant Garamond,serif;font-size:clamp(13px,1.6vw,16px);transition:opacity .6s;animation:3.2s ease-in-out infinite hintpulse;position:fixed;bottom:max(7vh,44px);left:0;right:0}.hint.gone{animation:none;opacity:0!important}@keyframes hintpulse{0%,to{opacity:.45}50%{opacity:.95}}.mute{top:max(18px, env(safe-area-inset-top));z-index:70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:44px;height:44px;color:var(--gold-deep);cursor:pointer;background:#f8f3e7b8;border:1px solid #b08d468c;border-radius:50%;justify-content:center;align-items:center;transition:transform .25s,background .25s;display:flex;position:fixed;right:18px}.mute:hover{background:#f8f3e7f2;transform:scale(1.06)}.mute svg{width:19px;height:19px}.invitation{z-index:50;-webkit-overflow-scrolling:touch;opacity:0;pointer-events:none;background:0 0;transition:opacity .4s;position:fixed;inset:0;overflow-y:auto}.invitation.active{opacity:1;pointer-events:auto}.card-wrap{justify-content:center;align-items:flex-start;min-height:100%;padding:clamp(18px,4vh,56px) 16px clamp(40px,6vh,80px);display:flex}.card{background:radial-gradient(140% 90% at 50% 0%, var(--ivory-deep) 0%, var(--ivory-card) 55%, var(--ivory) 100%);opacity:0;width:min(600px,94vw);padding:clamp(34px,6vw,64px) clamp(22px,5vw,56px);transition:max-height 1.6s cubic-bezier(.22,.9,.3,1);position:relative;overflow:hidden;box-shadow:0 30px 80px -20px #503e1e59,0 6px 24px #503e1e1f}.invitation.active .card{animation:.45s 50ms forwards cardIn}@keyframes cardIn{to{opacity:1}}.card:before,.card:after{content:"";pointer-events:none;position:absolute}.card:before{border:1.5px solid #b08d46bf;inset:13px}.card:after{border:1px solid #b08d4661;inset:19px}.card-inner{text-align:center;position:relative}.corner{width:54px;height:54px;color:var(--gold);opacity:.85;z-index:1;position:absolute}.corner.tl{top:24px;left:24px}.corner.tr{top:24px;right:24px;transform:scaleX(-1)}.corner.bl{bottom:24px;left:24px;transform:scaleY(-1)}.corner.br{bottom:24px;right:24px;transform:scale(-1)}.seal-mark{border:1.5px solid var(--gold);outline-offset:4px;letter-spacing:.08em;width:74px;height:74px;color:var(--gold-deep);border-radius:50%;outline:1px solid #b08d4659;justify-content:center;align-items:center;margin:0 auto 20px;font-family:Cinzel,serif;font-size:24px;display:flex}.eyebrow{letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px;font-size:clamp(13px,1.8vw,15px)}.names{color:var(--gold-deep);margin:4px 0 14px;font-family:Pinyon Script,cursive;font-size:clamp(46px,9vw,72px);font-weight:400;line-height:1.1}.intro-line{color:var(--ink-soft);max-width:40ch;margin:0 auto 26px;font-size:clamp(17px,2.4vw,20px);font-style:italic;line-height:1.55}.date-block{letter-spacing:.18em;text-indent:.18em;color:var(--ink);margin-bottom:4px;font-family:Cinzel,serif;font-size:clamp(24px,4.4vw,34px);font-weight:600}.date-sub{color:var(--ink-soft);margin-bottom:30px;font-size:clamp(16px,2.2vw,19px);font-style:italic}.venues{gap:22px;margin-bottom:30px;display:grid}.venue .v-label{letter-spacing:.26em;text-indent:.26em;color:var(--gold-deep);margin-bottom:6px;font-family:Cinzel,serif;font-size:clamp(14px,1.9vw,16px)}.venue .v-time{margin-bottom:2px;font-size:clamp(17px,2.4vw,20px)}.venue .v-time strong{font-weight:500}.venue .v-place{color:var(--ink-soft);font-size:clamp(16px,2.2vw,19px);font-style:italic}.map-link{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);border-bottom:1px solid #b08d4680;align-items:center;gap:6px;margin-top:7px;padding-bottom:2px;font-size:14px;text-decoration:none;transition:color .25s,border-color .25s;display:inline-flex}.map-link:hover{color:var(--ink);border-color:var(--ink)}.map-link svg{width:13px;height:13px}.divider{color:var(--gold);justify-content:center;align-items:center;gap:14px;margin:26px 0;display:flex}.divider .d-line{background:linear-gradient(90deg, transparent, var(--gold));width:min(90px,20vw);height:1px}.divider .d-line.right{background:linear-gradient(90deg, var(--gold), transparent)}.divider svg{flex:none;width:26px;height:26px}.countdown{justify-content:center;gap:clamp(14px,4vw,34px);margin-bottom:6px;display:flex}.cd-item{text-align:center;min-width:52px}.cd-num{color:var(--ink);font-variant-numeric:tabular-nums;font-family:Cinzel,serif;font-size:clamp(26px,5vw,36px);font-weight:600}.cd-label{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;font-size:12px}.rsvp-title{letter-spacing:.3em;text-indent:.3em;color:var(--ink);margin-bottom:6px;font-family:Cinzel,serif;font-size:clamp(18px,2.8vw,22px)}.rsvp-deadline{color:var(--ink-soft);margin-bottom:24px;font-size:clamp(15px,2vw,17px);font-style:italic}.rsvp-form{text-align:left;gap:18px;max-width:430px;margin:0 auto;display:grid}.field label{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;font-size:13px;display:block}.field input[type=text],.field select,.field textarea{width:100%;color:var(--ink);appearance:none;background:#fffdf7b3;border:1px solid #b08d4673;border-radius:2px;outline:none;padding:12px 14px;font-family:Cormorant Garamond,serif;font-size:18px;transition:border-color .25s,box-shadow .25s}.field textarea{resize:vertical;min-height:76px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b08d4624}.field ::placeholder{color:#a89c85;font-style:italic}.select-wrap{position:relative}.select-wrap:after{content:"";border-right:1.5px solid var(--gold-deep);border-bottom:1.5px solid var(--gold-deep);pointer-events:none;width:7px;height:7px;position:absolute;top:50%;right:15px;transform:translateY(-70%)rotate(45deg)}.attend-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.attend-option{position:relative}.attend-option input{opacity:0;cursor:pointer;position:absolute;inset:0}.attend-option span{text-align:center;min-height:58px;color:var(--ink-soft);cursor:pointer;background:#fffdf78c;border:1px solid #b08d4673;border-radius:2px;justify-content:center;align-items:center;padding:10px 12px;font-size:16.5px;font-style:italic;line-height:1.3;transition:all .3s;display:flex}.attend-option input:checked+span{background:linear-gradient(135deg, var(--gold-soft), var(--gold-deep));color:#fffdf6;box-shadow:0 8px 22px -8px var(--gold-deep);border-color:#0000;font-style:normal}.submit-btn{letter-spacing:.26em;text-indent:.26em;color:#fffdf6;background:linear-gradient(135deg, var(--gold-soft), var(--gold-deep));cursor:pointer;box-shadow:0 10px 30px -10px var(--gold-deep);border:none;border-radius:2px;margin-top:8px;padding:16px 20px;font-family:Cinzel,serif;font-size:15px;transition:transform .25s,box-shadow .25s,filter .25s}.submit-btn:hover{filter:brightness(1.06);box-shadow:0 16px 36px -12px var(--gold-deep);transform:translateY(-2px)}.submit-btn:active{transform:translateY(0)}.success{padding:18px 0 6px;animation:.9s cubic-bezier(.19,1,.22,1) forwards cardIn}.success .s-check{border:1.5px solid var(--gold);width:64px;height:64px;color:var(--gold-deep);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 18px;display:flex}.success .s-check svg{width:26px;height:26px}.success h3{color:var(--gold-deep);margin-bottom:10px;font-family:Pinyon Script,cursive;font-size:clamp(30px,5vw,40px);font-weight:400}.success p{color:var(--ink-soft);max-width:36ch;margin:0 auto;font-size:18px;font-style:italic;line-height:1.55}.signature{margin-top:30px}.signature .s-with{color:var(--ink-soft);font-size:17px;font-style:italic}.signature .s-names{color:var(--gold-deep);margin-top:2px;font-family:Pinyon Script,cursive;font-size:clamp(30px,5vw,40px)}@media (width<=430px){.corner{width:40px;height:40px}.corner.tl,.corner.tr{top:20px}.corner.tl,.corner.bl{left:20px}.corner.tr,.corner.br{right:20px}.corner.bl,.corner.br{bottom:20px}.attend-row{grid-template-columns:1fr}}.time-capsule-container{background-color:var(--theme-bg);min-height:100vh;color:var(--theme-text);flex-direction:column;align-items:center;padding:40px 20px;font-family:Cormorant Garamond,serif;display:flex;overflow-x:hidden}.capsule-header{text-align:center;z-index:10;margin-bottom:40px}.capsule-header h1{color:var(--theme-gold);margin-bottom:10px;font-family:Pinyon Script,cursive;font-size:3.5rem}.capsule-header p{opacity:.8;font-size:1.2rem;font-style:italic}.book-wrapper{perspective:1500px;z-index:10;justify-content:center;width:100%;max-width:900px;display:flex}.flip-book{box-shadow:0 20px 40px #0006}.page{color:#423a2c;background-color:#fbf5e8;overflow:hidden;box-shadow:inset 0 0 20px #0000000d}.page-content{flex-direction:column;height:100%;padding:30px;display:flex}.page-cover{background-color:var(--theme-gold);color:#fff;border:4px solid #fff3}.page-cover .page-content{text-align:center;justify-content:center;align-items:center}.page-cover h2{letter-spacing:2px;font-family:Cinzel,serif;font-size:2.5rem}.page-header{text-align:center;color:#8f6f2f;letter-spacing:2px;border-bottom:1px solid #8f6f2f4d;margin-bottom:20px;padding-bottom:10px;font-family:Cinzel,serif;font-size:1rem}.page-image{background-position:50%;background-size:cover;border:1px solid #e0d5bc;border-radius:4px;flex-grow:1;margin-bottom:20px;box-shadow:2px 4px 10px #0000001a}.page-text{text-align:center;min-height:60px;font-size:1.1rem;font-style:italic;line-height:1.5}.page-footer{text-align:center;color:#999;margin-top:10px;font-family:Cinzel,serif;font-size:.9rem}
