:root{--blue:#063878;--light:#f6f8fd;--accent:#498de5;--ink:#10233d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--light);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.6}.wrap{width:min(940px,90%);margin:auto}.hero{height:min(100vh,900px);min-height:680px;position:relative;overflow:hidden;color:#fff;background:#062f67}.hero-image{position:absolute;inset:0;background:url("assets/capa.webp") center/cover no-repeat;filter:blur(2px);transform:scale(1.04);opacity:.52}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,35,78,.2),rgba(3,41,91,.93) 72%)}nav{position:absolute;z-index:1;right:6%;top:28px;display:flex;gap:22px}nav a{color:#fff;text-decoration:none;font-size:.9rem}.hero-title{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.hero-title p,.eyebrow{letter-spacing:.14em;text-transform:uppercase;font-weight:700;font-size:.78rem}.hero-title h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.08}.hero-title h1{font-size:clamp(3rem,8vw,6.5rem);margin:.15em 0 .5em;text-shadow:0 2px 9px #001637}.button{border:0;cursor:pointer;display:inline-block;border-radius:999px;text-decoration:none;color:white;background:linear-gradient(100deg,#4193ed,#6351e8);font-weight:700;padding:15px 35px;box-shadow:0 8px 22px #0004}.countdown{padding:42px 20px 36px;text-align:center;background:radial-gradient(circle,#fff,var(--light))}.countdown span{display:block;font-size:2.3rem;color:var(--accent)}.countdown strong{font:3rem "Playfair Display",serif;display:inline-block}.countdown small{font:1.2rem "Playfair Display",serif;margin-left:7px}.countdown b{display:block;letter-spacing:.25em;font-weight:500}.intro,.info{padding:86px 0 42px;text-align:center}.intro h2,.schedule h2,.info h2,.rsvp h2{font-size:clamp(2.2rem,5vw,4rem);margin:.1em 0}.gallery{position:relative;display:grid;place-items:center;max-width:850px}.gallery img{width:100%;height:min(65vw,530px);object-fit:cover;border-radius:20px;box-shadow:0 18px 35px #0c28532b}.gallery-arrow{position:absolute;z-index:1;border:0;border-radius:50%;height:48px;width:48px;background:#fff;color:var(--blue);font-size:1.6rem;cursor:pointer;box-shadow:0 5px 20px #0015}.gallery-arrow:first-child{left:20px}.gallery-arrow:nth-child(3){right:20px}.dots{display:flex;gap:9px;padding:18px}.dot{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:#a8bbd2;cursor:pointer}.dot.active{background:var(--accent)}.cards{padding:65px 0;display:grid;grid-template-columns:1fr 1fr;gap:25px}.cards article{padding:37px;border-radius:18px;background:#fff;box-shadow:0 8px 30px #00326712;text-align:center}.cards h3{font-size:1.8rem;margin:.4em}.icon{font-size:2rem;color:var(--accent)}.text-button{border:0;background:transparent;color:#176ecf;font:700 .9rem "DM Sans";text-decoration:underline;cursor:pointer}.schedule{background:var(--blue);color:#fff;padding:85px 0}.timeline{margin-top:36px;border-left:2px solid #7bb5ff;padding-left:25px}.timeline p{display:flex;gap:30px}.timeline b{min-width:50px;color:#9ccaff}.info{max-width:680px}.rsvp{padding:90px 0;background:#eaf3ff;text-align:center}.deadline{color:#416080}form{margin:35px auto 0;max-width:520px;text-align:left}form>label,fieldset{display:block;margin:18px 0}input[type=text],input:not([type]){width:100%}input[name=nome]{width:100%;border:1px solid #b6c8dd;border-radius:10px;padding:14px;font:inherit;margin-top:7px}fieldset{border:0;padding:0}legend{font-weight:700;margin-bottom:10px}.choice{display:block;background:#fff;border:1px solid #c9d7e7;padding:13px;border-radius:10px;margin:8px 0;cursor:pointer}.choice:has(input:checked){border-color:#428bed;background:#edf6ff}form .button{margin-top:10px}footer{padding:40px;text-align:center;background:var(--blue);color:white}dialog{width:min(720px,92vw);border:0;border-radius:20px;padding:28px;box-shadow:0 25px 80px #0009}dialog::backdrop{background:#001a3b99}dialog h2{margin:0}.close{float:right;border:0;background:none;font-size:2rem;cursor:pointer}iframe{width:100%;height:340px;border:0;border-radius:12px;margin-top:10px}.map-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.map-links a,.music-toggle{border-radius:999px;background:var(--blue);color:white;text-decoration:none;padding:10px 18px;font-weight:700}.music-toggle{border:1px solid #ffffff80;cursor:pointer;background:transparent}@media(max-width:650px){.hero{min-height:620px}.cards{grid-template-columns:1fr}.gallery-arrow{height:40px;width:40px}.gallery-arrow:first-child{left:9px}.gallery-arrow:nth-child(3){right:9px}nav{display:none}.intro,.info{padding-top:65px}}
body{background-color:#f4f8ff;background-image:linear-gradient(#d9eaff 1px,transparent 1px),linear-gradient(90deg,#d9eaff 1px,transparent 1px);background-size:5px 5px}.welcome{position:fixed;z-index:20;inset:0;background:#062f67cc;backdrop-filter:blur(8px);display:grid;place-items:center;transition:opacity .5s,visibility .5s}.welcome.hidden{opacity:0;visibility:hidden}.welcome-card{width:min(900px,84%);padding:44px;text-align:center;border-radius:24px;background:#f6f8ff;box-shadow:0 25px 70px #001a3b88}.welcome-card h1{font:clamp(2.5rem,6vw,4.6rem) "Playfair Display",serif;color:#3a73b5;margin:.15em 0}.info-card{position:relative;overflow:visible;background:#fff;border:1px solid #e0e7f0;border-radius:20px;box-shadow:0 14px 28px #163c681c}.cards{display:block;padding:35px 0}.cards .info-card{padding:58px 48px 48px;margin:32px auto;max-width:1100px;text-align:left}.card-icon{position:absolute;top:-28px;left:30px;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:#4a93e8;color:#fff;font-size:1.6rem;box-shadow:0 8px 15px #164c852c}.info-card h3{font-size:1.8rem}.wide-button{display:block;width:100%;border:0;border-radius:999px;background:linear-gradient(100deg,#4b94e6,#3f7fc7);color:#fff;padding:14px 20px;font:700 1rem "Playfair Display",serif;text-align:center;cursor:pointer;box-shadow:0 9px 18px #2570bc33}.schedule.info-card{max-width:1100px;margin:42px auto;padding:70px 48px;background:#fff;color:var(--ink)}.schedule.info-card .card-icon{left:30px}.schedule.info-card .wrap{width:100%;margin:0}.info.info-card{max-width:1100px;margin:42px auto;padding:70px 48px;text-align:left}.rsvp.info-card{max-width:1100px;margin:42px auto;padding:70px 48px;background:#fff;text-align:left}.rsvp.info-card .wrap{width:100%}.rsvp-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rsvp-choices .choice{border:2px solid #e0e0e0;border-radius:16px;background:#fff;text-align:center;font:700 1rem "Playfair Display",serif;color:#555;padding:18px;cursor:pointer}.rsvp-choices .choice.selected{border-color:#4a93e8;background:#eff6ff}.rsvp-choices .choice.no.selected{border-color:#ed1c2e;background:#fff1f2;color:#df1020}.rsvp form{max-width:none;display:grid;gap:16px}.rsvp form input{padding:16px;border:2px solid #e4e4e4;border-radius:12px;font:inherit}.rsvp form .deny{background:#ec1f35}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}.admin,.admin-login{width:min(1000px,92%);margin:40px auto;padding:35px;background:#fff;border-radius:20px;box-shadow:0 10px 35px #1233}.admin h1,.admin h2,.admin-login h1{font-family:"Playfair Display",serif}.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-form label{display:flex;flex-direction:column;gap:5px}.admin-form input,.admin-form textarea,.admin-login input{font:inherit;padding:11px;border:1px solid #ccd7e5;border-radius:8px}.admin-form textarea{min-height:90px}.admin-form .button{grid-column:1/-1}.admin-lists{overflow:auto}.admin table{width:100%;border-collapse:collapse;margin:12px 0 35px}.admin th,.admin td{padding:9px;border-bottom:1px solid #e4eaf2;text-align:left}.admin-login{max-width:460px;margin-top:12vh}.admin-login form{margin:0;display:grid;gap:14px}@media(max-width:650px){.cards .info-card,.schedule.info-card,.info.info-card,.rsvp.info-card{padding:58px 24px 30px}.rsvp-choices,.admin-form{grid-template-columns:1fr}.welcome-card{padding:32px 20px}}
form[hidden]{display:none!important}
