:root{--color-primary:#1c352d;--color-sage:#8f9e8b;--color-sage-light:#eaede9;--color-accent:#c5a059;--color-gold-light:#e5cf9c;--color-paper:#f2f0e8;--color-text:#27332f;--color-muted:#52635d;--color-white:#fff;--font-heading:"Playfair Display", Georgia, serif;--font-body:"Montserrat", system-ui, sans-serif;--font-script:"Pinyon Script", cursive;--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-primary);color:var(--color-text);-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:hidden}#root{justify-content:center;align-items:center;width:100%;min-height:100dvh;display:flex}.app-shell{width:100%;min-height:100dvh;position:relative;overflow:hidden}.site-background{z-index:-2;background-image:url(/15-anos-Camila-CM/bg-portrait.png);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;position:fixed;inset:0}@media (width>=900px),(orientation:landscape){.site-background{background-image:url(/15-anos-Camila-CM/bg-landscape.png)}}.envelope-scene{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:0;padding:20px;display:flex}.envelope-title{font-family:var(--font-script);color:var(--color-gold-light);text-shadow:0 2px 12px #0000004d;margin-bottom:4px;font-size:52px;line-height:1}.envelope-subtitle{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--color-accent);margin-bottom:28px;font-size:11px;font-weight:600}.envelope{perspective:900px;width:340px;height:230px;position:relative}@media (width<=400px){.envelope{width:290px;height:196px}.env-front-flap{border-top-width:115px;border-left-width:145px;border-right-width:145px}.env-back-flap{border-bottom-width:115px;border-left-width:145px;border-right-width:145px}.env-side-left{border-top-width:98px;border-bottom-width:98px;border-left-width:145px}.env-side-right{border-top-width:98px;border-bottom-width:98px;border-right-width:145px}.env-bottom-tri{border-bottom-width:120px;border-left-width:145px;border-right-width:145px}}.env-body{background:#7a8c76;border-radius:3px;position:absolute;inset:0;overflow:hidden;box-shadow:0 20px 50px #00000073,0 6px 15px #0003}.env-back-flap{z-index:0;border:170px solid #0000;border-top:120px solid #6d7f69;border-bottom-width:0;width:340px;height:0;position:absolute;top:0;left:0}.env-side{width:0;height:0;position:absolute;top:0}.env-side-left{border-top:115px solid #0000;border-bottom:115px solid #0000;border-left:170px solid #6b7d67;left:0}.env-side-right{border-top:115px solid #0000;border-bottom:115px solid #0000;border-right:170px solid #6b7d67;right:0}.env-bottom-tri{border-bottom:120px solid #839e7e;border-left:170px solid #0000;border-right:170px solid #0000;width:0;height:0;position:absolute;bottom:0;left:0}.env-front-flap{transform-origin:top;width:0;height:0;transition:transform .8s var(--ease-smooth);z-index:10;border-top:120px solid #8fa58a;border-left:170px solid #0000;border-right:170px solid #0000;position:absolute;top:0;left:0;transform:rotateX(0)}.envelope.open .env-front-flap{transform:rotateX(-180deg)}.env-seal{background:radial-gradient(circle at 35% 35%, var(--color-gold-light) 0%, var(--color-accent) 55%, #8b6520 100%);width:56px;height:56px;font-family:var(--font-heading);color:#3d2800;z-index:11;transition:transform .5s var(--ease-spring), opacity .4s ease;border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 10px #00000059,inset 0 2px 4px #ffffff4d}.envelope.open .env-seal{opacity:0;transform:translate(-50%,-50%)scale(0)}.env-letter{background:var(--color-paper);z-index:5;width:88%;height:200px;transition:transform .9s .5s var(--ease-smooth);border:1px dashed #c5a05966;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex;position:absolute;bottom:8px;left:6%;transform:translateY(0);box-shadow:0 -4px 20px #00000026}.envelope.open .env-letter{transform:translateY(-160px)}.env-letter-name{font-family:var(--font-script);color:var(--color-primary);font-size:38px;line-height:1}.env-letter-divider{background:var(--color-accent);width:36px;height:1px}.env-letter-sub{letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);font-size:10px;font-weight:600}.envelope-hint{letter-spacing:3px;text-transform:uppercase;color:var(--color-accent);margin-top:30px;font-size:12px;animation:2.5s ease-in-out infinite float}@keyframes float{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.landing-page{background:0 0;justify-content:center;align-items:center;width:100%;min-height:100dvh;display:flex;position:relative;overflow:hidden}.landing-overlay{background:0 0;position:absolute;inset:0}.landing-content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:18px;width:min(1040px,100% - 40px);padding:48px 32px;display:flex;position:relative}.hero-pretitle{font-family:var(--font-body);letter-spacing:.35em;text-transform:uppercase;color:#e5cf99cc;margin-bottom:6px;font-size:14px}.hero-title{font-family:var(--font-heading);color:var(--color-white);letter-spacing:-.05em;font-size:clamp(3.4rem,6vw,6.4rem);line-height:.95}.hero-subtitle{font-family:var(--font-script);color:var(--color-gold-light);letter-spacing:.04em;font-size:clamp(2.1rem,4vw,3rem)}.hero-description{color:#ffffffdb;max-width:720px;margin-top:8px;font-size:1.05rem;line-height:1.8}.hero-button{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:#102016;cursor:pointer;transition:transform .25s var(--ease-smooth), filter .25s var(--ease-smooth);background:linear-gradient(135deg,#f7e5af 0%,#d7b66e 100%);border:none;border-radius:999px;margin-top:20px;padding:16px 42px;font-size:.96rem;font-weight:700;box-shadow:0 18px 40px #141e1033}.hero-button:hover,.hero-button:focus-visible{filter:saturate(1.05);transform:translateY(-2px)}@media (width<=720px){.landing-content{padding:32px 24px}.hero-description{font-size:.98rem}.hero-button{width:100%;padding:16px 24px}}.envelope-scene:hover .env-body{transition:box-shadow .4s;box-shadow:0 28px 60px #00000080,0 8px 20px #00000040}.invitation-container{z-index:1;scroll-snap-type:y mandatory;opacity:0;width:100%;height:100dvh;animation:fadeIn .9s .5s forwards var(--ease-smooth);position:relative;overflow-y:scroll}@keyframes fadeIn{to{opacity:1}}.slide{scroll-snap-align:start;scroll-snap-stop:always;justify-content:center;align-items:center;width:100%;height:100dvh;padding:20px;display:flex;position:relative;overflow:hidden}.slide-background{z-index:0;background:0 0;position:absolute;inset:0}.slide-card{z-index:1;text-align:center;background:#f2f0e8f2;border:1px solid #c5a0594d;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:0;width:100%;max-width:540px;min-height:620px;padding:36px 30px;display:flex;position:relative;box-shadow:0 20px 50px #00000059,0 4px 12px #00000026}.slide-card-image{box-shadow:none;background:0 0;border:none;border-radius:14px;justify-content:center;align-items:center;width:100%;max-width:540px;min-height:620px;padding:36px 30px;display:flex;overflow:hidden}.slide-card-image__media{object-fit:contain;border-radius:12px;width:100%;max-height:100%;display:block}@media (width<=720px){.slide-card{max-width:calc(100% - 40px);min-height:520px;padding:24px 22px}}.text-cursive{font-family:var(--font-script);color:var(--color-primary);margin-bottom:12px;font-size:44px;line-height:1.1}.text-cursive-large{font-family:var(--font-script);color:var(--color-accent);margin:10px 0;font-size:68px;line-height:1}.title-serif{font-family:var(--font-heading);letter-spacing:4px;text-transform:uppercase;color:var(--color-primary);margin-bottom:8px;font-size:20px;font-weight:500}.title-serif:after{content:"";background:var(--color-accent);width:40px;height:1px;margin:10px auto 20px;display:block}.text-body{color:var(--color-muted);margin-bottom:16px;font-size:13px;line-height:1.7}.divider{align-items:center;gap:10px;width:75%;margin:16px 0;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);flex:1;height:1px}.divider-icon{color:var(--color-accent);font-size:12px}.info-item{flex-direction:column;align-items:center;width:100%;margin-bottom:22px;display:flex}.info-label{letter-spacing:3px;text-transform:uppercase;color:var(--color-accent);margin-bottom:4px;font-size:10px;font-weight:700}.info-value{font-family:var(--font-heading);color:var(--color-primary);font-size:18px;font-weight:600}.info-sub{color:var(--color-muted);margin-top:3px;font-size:12px;line-height:1.5}.btn-elegant{background:var(--color-primary);width:100%;color:var(--color-white);border:1px solid var(--color-accent);font-family:var(--font-body);letter-spacing:2.5px;text-transform:uppercase;cursor:pointer;transition:all .35s var(--ease-smooth);border-radius:3px;justify-content:center;align-items:center;margin-top:14px;padding:13px 24px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.btn-elegant:hover{background:var(--color-accent);color:var(--color-primary);transform:translateY(-2px);box-shadow:0 6px 18px #c5a0594d}.btn-elegant:active{transform:translateY(0)}.dress-code-icons{justify-content:space-around;width:100%;margin:18px 0;display:flex}.dress-icon-container{flex-direction:column;align-items:center;width:45%;display:flex}.dress-svg{fill:none;width:52px;height:92px;stroke:var(--color-primary);stroke-width:1.5px;margin-bottom:10px}.dress-label{color:var(--color-primary);margin-bottom:4px;font-size:12px;font-weight:700}.dress-desc{color:var(--color-muted);font-size:11px;line-height:1.4}.page-indicators{z-index:20;background:#1c352de0;border:1px solid #c5a05959;border-radius:30px;flex-direction:column;gap:14px;padding:14px 9px;display:flex;position:fixed;top:50%;right:max(16px,50% - 276px);transform:translateY(-50%);box-shadow:0 8px 24px #00000059}.indicator-dot{cursor:pointer;width:8px;height:8px;transition:all .35s var(--ease-smooth);background:#ecebe44d;border:1px solid #c5a05959;border-radius:50%}.indicator-dot.active{background:var(--color-accent);box-shadow:0 0 8px var(--color-accent);transform:scale(1.4)}
