@font-face{font-family:Pinyon;src:url(/assets/PinyonScript-Regular.ttf);font-display:swap}
@font-face{font-family:Cormorant;src:url(/assets/CormorantGaramond.ttf);font-display:swap;font-weight:300 700}
@font-face{font-family:Cormorant;src:url(/assets/CormorantGaramond-Italic.ttf);font-style:italic;font-display:swap}
@font-face{font-family:Jost;src:url(/assets/Jost.ttf);font-display:swap;font-weight:300 600}
:root{--linho:#FAF6F0;--blush:#F0D9D2;--rosa:#C9918E;--salvia:#A7B49E;--champ:#BF9F63;--cacau:#4A3B38}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--linho);color:var(--cacau);font:300 16px/1.65 Jost,sans-serif}
.script{font-family:Pinyon,cursive;font-weight:400;color:var(--rosa);margin:0}
h2.script{font-size:clamp(2.6rem,9vw,3.8rem);text-align:center;line-height:1.1}
h3{font:500 1.5rem Cormorant,serif;margin:.2em 0}
.lead{font:italic 1.25rem Cormorant,serif;text-align:center;max-width:36em;margin:.6em auto 2em}
.ph{color:var(--rosa);opacity:.8;font-style:italic}
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:rgba(250,246,240,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(191,159,99,.25);transform:translateY(-100%);transition:transform .4s}
.nav.show{transform:none}.nav-mono img{height:38px;display:block}
.nav-toggle{background:none;border:0;font-size:1.5rem;color:var(--cacau);cursor:pointer}
.nav-links{display:none}
body.menu .nav-links{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--linho);padding:1rem;gap:.8rem;border-bottom:1px solid var(--blush)}
.nav-links a{color:var(--cacau);text-decoration:none;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 1.2rem 3rem;position:relative;overflow:hidden;background:radial-gradient(ellipse at top,var(--blush) 0,var(--linho) 60%)}
.garland{width:min(420px,88vw);margin-bottom:-1rem;animation:fade 1.6s ease both}
.mono{width:min(150px,38vw);animation:fade 1.6s .3s ease both}
.kicker{letter-spacing:.35em;text-transform:uppercase;font-size:.78rem;color:var(--champ);margin:1.2rem 0 0}
.hero h1{font-size:clamp(3.4rem,15vw,6.5rem);line-height:1.05}.hero h1 span{color:var(--champ)}
.date{font:500 1.5rem Cormorant,serif;margin:.3rem 0 0}.city{margin:0;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}
.countdown{display:flex;gap:.7rem;margin:1.8rem 0;justify-content:center;flex-wrap:wrap}
.countdown div{min-width:68px;padding:.7rem .4rem;border:1px solid var(--champ);border-radius:999px 999px 12px 12px;background:rgba(255,255,255,.5)}
.countdown b{display:block;font:500 1.9rem Cormorant,serif}.countdown small{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase}
.countdown p{font:italic 1.2rem Cormorant,serif;margin:0}
.hero-btns{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center}
.btn{display:inline-block;background:var(--rosa);color:#fff;border:1px solid var(--rosa);padding:.8rem 1.6rem;border-radius:999px;font:400 .8rem Jost;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:.25s}
.btn:hover{background:var(--cacau);border-color:var(--cacau)}
.btn.ghost{background:transparent;color:var(--cacau);border-color:var(--champ)}.btn.ghost:hover{background:var(--blush)}
.btn:disabled{opacity:.5;cursor:default}
.link{background:none;border:0;color:var(--champ);text-decoration:underline;cursor:pointer;font:inherit}
.sec{padding:5rem 1.2rem;max-width:1040px;margin:0 auto}
.alt{max-width:none;background:linear-gradient(var(--blush),#f6e8e3)}.alt>*{max-width:1040px;margin-left:auto;margin-right:auto}
.reveal{opacity:0;transform:translateY(24px);transition:1s ease}.reveal.in{opacity:1;transform:none}
.timeline{position:relative;max-width:640px;margin:auto;padding-left:1.6rem;border-left:1px solid var(--champ)}
.timeline .it{margin-bottom:2rem;position:relative}.timeline .it:before{content:"";position:absolute;left:-2.05rem;top:.6rem;width:.8rem;height:.8rem;border-radius:50%;background:var(--salvia);border:2px solid var(--linho)}
.card{background:#fffdf9;border:1px solid rgba(191,159,99,.35);border-radius:18px;padding:1.6rem;box-shadow:0 8px 30px -18px rgba(74,59,56,.35)}
.cards2{display:grid;gap:1.4rem}
.map{margin-top:1rem;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:repeating-linear-gradient(45deg,#f3ebe4,#f3ebe4 10px,#efe4dc 10px,#efe4dc 20px);display:flex;align-items:center;justify-content:center;font:italic 1.1rem Cormorant,serif}
.map iframe{width:100%;height:100%;border:0}
.form{max-width:560px;margin:auto;display:grid;gap:1rem}
.form label{display:grid;gap:.3rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
input,textarea{font:400 1rem Jost;padding:.8rem 1rem;border:1px solid #e2d2c4;border-radius:10px;background:#fff;color:var(--cacau);width:100%}
input:focus,textarea:focus{outline:2px solid var(--blush);border-color:var(--rosa)}
.radios{border:0;padding:0;margin:0;display:grid;gap:.5rem}.radios legend{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.4rem}
.radios label{display:flex;gap:.6rem;align-items:center;text-transform:none;letter-spacing:0;font-size:1rem}.radios input{width:auto;accent-color:var(--rosa)}
.msg{text-align:center;font:italic 1.15rem Cormorant,serif;min-height:1.4em;margin:0}
.gifts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.2rem}
.gift{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.gift img{width:70px;opacity:.85}.gift .val{color:var(--champ);font:500 1.2rem Cormorant}
.gift.done{opacity:.6}.gift.done .btn{background:var(--salvia);border-color:var(--salvia)}
.pix{margin:2rem auto 0;max-width:560px;text-align:center}
.mural{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:2.5rem}
.recado{background:#fff;border-radius:4px 18px 4px 18px;padding:1.2rem;border-left:3px solid var(--salvia)}
.recado p{font:italic 1.15rem Cormorant,serif;margin:0 0 .5rem}.recado small{color:var(--rosa);letter-spacing:.1em}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.frame{aspect-ratio:4/5;border-radius:160px 160px 14px 14px;background:#fffdf9;border:1px solid var(--champ);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:zoom-in;transition:.3s;padding:1rem;text-align:center}
.frame:hover{transform:translateY(-4px)}.frame img{width:70%}.frame span{font:italic 1rem Cormorant;margin-top:.4rem}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(74,59,56,.88);display:flex;align-items:center;justify-content:center}
.lightbox[hidden],.modal[hidden]{display:none}
.lb-c{width:min(520px,80vw)}.lb-c .frame{cursor:default;width:100%}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer}.lb-x{top:.6rem;right:1rem}.lb-p{left:.4rem}.lb-n{right:.4rem}
.modal{position:fixed;inset:0;z-index:50;background:rgba(74,59,56,.6);display:flex;align-items:center;justify-content:center;padding:1rem}
.modal .card{max-width:420px;width:100%;display:grid;gap:.8rem}.row{display:flex;gap:.6rem;justify-content:flex-end}
.faq{max-width:680px;margin:auto}
.faq details{border-bottom:1px solid #e6d7ca;padding:1rem 0}
.faq summary{cursor:pointer;font:500 1.3rem Cormorant,serif;list-style:none;display:flex;justify-content:space-between}
.faq summary::after{content:"+";color:var(--champ);transition:.3s}.faq details[open] summary::after{transform:rotate(45deg)}
.foot{text-align:center;padding:4rem 1rem 3rem;background:var(--cacau);color:var(--linho)}
.foot .sprig{width:120px}.foot .fmono{width:60px;display:block;margin:1rem auto}.foot .big{font-size:2.6rem;color:var(--blush)}
@keyframes fade{from{opacity:0;transform:translateY(12px)}}
@media(min-width:760px){
 .nav-toggle{display:none}.nav-links{display:flex;gap:1.4rem}
 .cards2{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(3,1fr)}
 .countdown div{min-width:90px}
}
