*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbf7f0;color:#473a35;font-family:'DM Sans',sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.demo-ribbon{position:relative;z-index:20;background:#51423d;color:#fff;font-size:12px;padding:9px 16px;text-align:center;letter-spacing:.03em}.demo-ribbon a{color:#fff;text-decoration:underline;margin-left:12px}.kicker{font-size:11px;font-weight:700;letter-spacing:.28em;color:#9b805d;text-align:center}.intro{min-height:calc(100svh - 34px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px 20px 55px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 35%,#fff 0,#fbf6eb 55%,#e9ded2 100%)}.intro-glow{position:absolute;width:500px;height:500px;border-radius:50%;background:#e7c8a188;filter:blur(90px);pointer-events:none}.intro>*:not(.intro-glow){position:relative}.intro h1{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(29px,6vw,50px);margin:15px 0 3px}.intro h1 em,.section h2 em{font-family:'Great Vibes',cursive;color:#b79a6e;font-size:1.35em;font-weight:400}.intro p:not(.kicker){color:#806e62;font-size:14px}.hint{font-size:12px!important}.primary,.outline,.ghost{border-radius:40px;padding:14px 25px;min-height:48px;border:1px solid #a88b63;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:8px}.primary{background:#ad9169;color:white;box-shadow:0 8px 22px #8e71542a}.outline{background:transparent;color:#806648}.ghost{color:#fff;border-color:#fff9;background:#ffffff20}.envelope-wrap{height:280px;width:min(360px,90vw);display:grid;place-items:center;perspective:850px}.envelope{width:290px;height:186px;border:0;background:transparent;position:relative;filter:drop-shadow(0 18px 24px #614b3a44);transform:rotate(-3deg);transition:transform .7s}.envelope:hover{transform:rotate(0) translateY(-5px)}.env-back{position:absolute;inset:0;background:#e8d9c7;border-radius:5px}.env-front{position:absolute;inset:0;background:linear-gradient(145deg,transparent 49.5%,#f2e7d7 50%) left/50% 100% no-repeat,linear-gradient(215deg,transparent 49.5%,#f2e7d7 50%) right/50% 100% no-repeat,linear-gradient(0deg,#e5d2bb 0%,#f5eadc 100%);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:4}.env-flap{position:absolute;inset:0;background:#f5e8d8;clip-path:polygon(0 0,100% 0,50% 57%);z-index:5;transform-origin:50% 0;transition:transform .9s;backface-visibility:hidden}.seal{position:absolute;top:80px;left:calc(50% - 27px);width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#d3b788,#957249);z-index:6;color:white;display:grid;place-items:center;font-family:serif;font-size:14px;border:3px double #e4cfac;box-shadow:0 3px 8px #0003;transition:opacity .3s}.seal i{font-size:11px}.letter{position:absolute;top:12px;left:17px;right:17px;height:165px;background:#fffaf0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:2;box-shadow:0 0 10px #0002;transition:transform 1s}.letter span,.letter small{font-size:9px;letter-spacing:.16em;color:#8c795e}.letter b{font-family:'Great Vibes',cursive;font-size:34px;color:#ab8965;font-weight:400}.envelope.opened .env-flap{transform:rotateX(180deg);z-index:1}.envelope.opened .seal{opacity:0}.envelope.opened .letter{transform:translateY(-100px);transition-delay:.45s}.scene{height:min(850px,100svh);min-height:610px;position:relative;background:url('cenario.webp') center/cover;display:grid;place-items:center;color:white;text-align:center;overflow:hidden}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#34231b88,#2d1c1640,#241b1444)}.scene-content{position:relative;z-index:1;padding:30px 20px;text-shadow:0 3px 20px #21150c99}.light{color:#fff}.scene h2{font-family:'Great Vibes',cursive;font-size:clamp(70px,12vw,140px);font-weight:400;margin:10px 0;line-height:1}.scene h2 span{font-size:.6em}.scene p{font-size:17px}.scene-date{display:flex;align-items:center;justify-content:center;gap:20px;font-size:13px;letter-spacing:.12em;margin:25px 0}.scene-date b{font:50px 'Playfair Display',serif;border-left:1px solid #fff8;border-right:1px solid #fff8;padding:0 18px}.petal{position:absolute;top:-30px;animation:fall linear infinite;pointer-events:none;color:#f7d2ce;z-index:1}@keyframes fall{to{transform:translate3d(90px,110vh,0) rotate(400deg)}}.section{padding:85px 20px;text-align:center}.section h2{font:400 clamp(32px,5vw,54px) 'Playfair Display',serif;margin:6px 0 22px}.section-intro{max-width:620px;margin:0 auto 35px;color:#75665e;line-height:1.8}.story{background:#fffdf9}.timeline{display:grid;grid-template-columns:repeat(3,1fr);max-width:1000px;margin:60px auto 0;gap:25px}.moment{padding:35px 24px;background:#f8f3ec;border:1px solid #e7d8c5;border-radius:140px 140px 18px 18px;min-height:310px}.moment-icon{font-size:40px;color:#b59b7b}.moment span{display:block;color:#a78a67;font-size:12px;letter-spacing:.15em;margin:15px}.moment h3{font:24px 'Playfair Display',serif}.moment p{font-size:14px;color:#776960;line-height:1.7}.details{background:#f1e8dc}.date-panel{border:1px solid #cdbb9d;max-width:300px;margin:30px auto;padding:25px;background:#fff9f2;border-radius:160px 160px 12px 12px;display:flex;flex-direction:column;gap:8px}.date-panel span{font-size:13px;letter-spacing:.2em}.date-panel strong{font:90px 'Playfair Display',serif;line-height:1.1;color:#a98a61}.date-panel p{border-top:1px solid #dacbb7;margin:12px 20px 0;padding-top:15px}.details h3{font:26px 'Playfair Display',serif;margin-bottom:4px}.details>p:not(.kicker){color:#806f60}.countdown{display:flex;justify-content:center;gap:12px;margin:30px 0}.countdown div{background:#fff9f3;border:1px solid #e1d2bf;border-radius:12px;min-width:72px;padding:13px 8px}.countdown b{display:block;font:28px 'Playfair Display',serif}.countdown small{font-size:11px;color:#887660}.fine{font-size:12px!important;color:#877b72!important;line-height:1.7}.game{background:#fffdf8}.game-bar{display:flex;justify-content:space-between;max-width:750px;margin:0 auto 10px;font-size:13px;color:#806648;font-weight:700}.garden{position:relative;max-width:750px;aspect-ratio:1.6;margin:0 auto;border:7px solid #f3e7d6;border-radius:24px;overflow:hidden;background:radial-gradient(ellipse at 50% 90%,#b7cc9e 0%,#9fb88c 45%,#718f6b 100%);box-shadow:0 14px 30px #0001}.garden:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 14% 24%,#f2d4c7 0 6%,transparent 8%),radial-gradient(circle at 90% 12%,#f8d5c7 0 6%,transparent 8%),linear-gradient(145deg,transparent 45%,#f1e0c2 46% 54%,transparent 55%);opacity:.5}.garden-title{position:absolute;top:8%;width:100%;font:clamp(24px,4vw,39px) 'Great Vibes',cursive;color:#fff;text-shadow:0 2px 8px #35452f}.garden-title small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:.18em}.spot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);background:#fff9;border:2px solid #fff9;border-radius:50%;width:clamp(47px,9vw,75px);height:clamp(47px,9vw,75px);font-size:clamp(25px,5vw,41px);box-shadow:0 7px 15px #273a2c40;transition:transform .2s,opacity .3s}.spot:focus-visible{outline:3px solid #473a35}.spot:active{transform:translate(-50%,-50%) scale(.9)}.spot.found{background:#fff8;outline:3px solid #e7bb4d}.spot.found:after{content:'✓';position:absolute;right:-7px;top:-10px;background:#6d8d67;color:white;border-radius:50%;font-size:15px;padding:2px 6px}.game-message{position:absolute;bottom:8px;left:8px;right:8px;background:#fffdf0e8;color:#584b40;padding:9px;border-radius:10px;font-size:12px}.game-actions{display:flex;justify-content:center;gap:10px;margin-top:20px;flex-wrap:wrap}.game-win{background:#f5eee2;max-width:550px;margin:25px auto 0;border-radius:16px;padding:20px}.game-win span{font-size:34px}.game-win h3{font:26px 'Playfair Display',serif}.rsvp{background:#f3eadf}.rsvp form{max-width:540px;margin:auto;text-align:left;background:#fffaf4;padding:30px;border-radius:18px;box-shadow:0 8px 28px #634c3510}.rsvp form>label{display:block;margin-bottom:20px;font-size:13px;font-weight:700}.rsvp input:not([type=radio]),.rsvp textarea{display:block;width:100%;margin-top:8px;padding:13px;border-radius:8px;border:1px solid #d9c8b3;background:white;outline-color:#a88b63}.rsvp textarea{min-height:100px;resize:vertical}.rsvp fieldset{border:0;padding:0;margin:0 0 20px}.rsvp legend{font-size:13px;font-weight:700;margin-bottom:12px}.choice{display:block;margin:8px 0;font-size:14px}.rsvp-result{max-width:540px;margin:20px auto;background:#e3eee0;padding:20px;border-radius:12px;line-height:1.7}footer{background:#453a35;color:#f4e6d7;text-align:center;padding:65px 20px}footer h2{font:55px 'Great Vibes',cursive;margin:8px}footer p{font-size:14px}footer a{color:#f0d8b5}.footer-heart{font-size:40px;color:#d2ae87}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(max-width:650px){.timeline{grid-template-columns:1fr;max-width:350px;gap:15px}.moment{min-height:0;padding:24px 22px;border-radius:100px 100px 16px 16px}.scene{background-position:62% center}.scene-date{gap:8px;font-size:10px}.scene-date b{font-size:40px;padding:0 10px}.section{padding:65px 16px}.garden{aspect-ratio:1.05}.garden-title{top:4%}.game-bar{font-size:11px}.rsvp form{padding:22px}.demo-ribbon{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.memory-grid,.gift-grid{max-width:1040px;margin:42px auto 20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.memory-card{padding:0;border:1px solid #e8d9c6;background:#fffaf3;border-radius:18px;overflow:hidden;text-align:left;box-shadow:0 12px 30px #4b382315;transition:transform .25s,box-shadow .25s}.memory-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px #4b38232a}.memory-card img{display:block;width:100%;height:230px;object-fit:cover}.memory-caption{display:flex;flex-direction:column;gap:9px;padding:20px}.memory-caption small{letter-spacing:.18em;color:#a88b63}.memory-caption strong,.gift-card h3{font:23px 'Playfair Display',serif}.memory-caption span{font-size:12px;color:#947957}.gifts{background:#f5ede4}.gift-card{padding:30px 22px;background:#fffaf4;border:1px solid #e2d2c0;border-radius:18px}.gift-card>span{font-size:44px}.gift-card p{font-size:14px;line-height:1.7;color:#806e62;min-height:75px}.gift-card .outline{font-size:13px}.memory-modal[hidden]{display:none}.memory-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px}.memory-backdrop{position:absolute;inset:0;background:#1d1512d9;backdrop-filter:blur(7px)}.memory-dialog{position:relative;width:min(850px,100%);max-height:calc(100dvh - 44px);overflow:auto;background:#fffaf3;border-radius:20px;box-shadow:0 25px 90px #0005}.memory-dialog>img{display:block;width:100%;max-height:60dvh;object-fit:contain;background:#e8d7c5}.memory-text{text-align:center;padding:26px 30px 35px}.memory-text h2{font:30px 'Playfair Display',serif;color:#604b3c;margin:8px 0 14px}.memory-text>p:not(.kicker){line-height:1.8;color:#78665c}.memory-close{position:absolute;right:12px;top:12px;z-index:2;border:0;background:#fffef5ee;border-radius:50%;height:42px;width:42px;font-size:30px;color:#584536}.modal-open{overflow:hidden}.gift-dialog{max-width:490px}@media(max-width:700px){.memory-grid,.gift-grid{grid-template-columns:1fr;max-width:390px;gap:16px}.memory-card img{height:220px}.gift-card p{min-height:0}.memory-dialog>img{max-height:52dvh}.memory-text{padding:20px}.memory-text h2{font-size:25px}}
/* v1.18: painel de fotografias no jardim e lista externa */
.memory-garden{position:relative;max-width:860px;margin:38px auto 18px;aspect-ratio:1.85;overflow:hidden;border:7px solid #e9dcc9;border-radius:26px;background:radial-gradient(ellipse at 14% 24%,#d7d8b4 0 5%,transparent 13%),radial-gradient(ellipse at 83% 18%,#e1d6af 0 6%,transparent 13%),linear-gradient(147deg,transparent 0 37%,#d9d4ad 38% 46%,transparent 47%),linear-gradient(155deg,#789674,#aac09a 55%,#7f9d76);box-shadow:0 20px 50px #473e2b1b}.memory-garden:before,.memory-garden:after{content:'❀  ✿  ❀';position:absolute;font-size:36px;color:#f5e7c6;opacity:.65;letter-spacing:18px;pointer-events:none}.memory-garden:before{top:12%;left:3%}.memory-garden:after{bottom:5%;right:0}.memory-garden-heading{position:absolute;top:6%;left:0;right:0;font:clamp(23px,4vw,38px) 'Great Vibes',cursive;color:#fffdf4;text-shadow:0 2px 9px #314d3a;pointer-events:none}.memory-photo{position:absolute;width:clamp(80px,17%,145px);aspect-ratio:1.15;border:5px solid #fffaf2;border-radius:13px;padding:0;background:#fff;box-shadow:0 8px 20px #233d3370;cursor:pointer;transform:translate(-50%,-50%) rotate(var(--rot));transition:transform .2s,box-shadow .2s;z-index:2}.memory-photo:hover,.memory-photo:focus-visible{transform:translate(-50%,-50%) rotate(0) scale(1.13);z-index:5;box-shadow:0 12px 25px #233d3388;outline:2px solid #c9a36b}.memory-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:7px}.memory-photo span{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);padding:2px 10px;background:#fffaf2;border-radius:20px;color:#7c624a;font-size:11px;font-weight:700}.memory-photo-1{left:18%;top:35%;--rot:-9deg}.memory-photo-2{left:48%;top:34%;--rot:7deg}.memory-photo-3{left:78%;top:35%;--rot:-6deg}.memory-photo-4{left:33%;top:73%;--rot:5deg}.memory-photo-5{left:67%;top:73%;--rot:-8deg}.gift-invite{max-width:710px;margin:35px auto 0;background:#fffaf4;border:1px solid #e4d4c2;border-radius:22px;padding:36px 38px;box-shadow:0 12px 36px #45302012}.gift-invite>p:first-of-type{font-size:16px;line-height:1.9;color:#715e50}.gift-symbol{display:block;color:#b9976b;font-size:44px}.gift-external{display:inline-block;text-decoration:none;margin:16px auto 8px}.gift-invite .fine{margin-top:20px}@media(max-width:600px){.memory-garden{aspect-ratio:.95;border-width:5px}.memory-garden-heading{top:5%;font-size:27px}.memory-photo{width:29%;border-width:3px}.memory-photo-1{left:22%;top:30%}.memory-photo-2{left:73%;top:30%}.memory-photo-3{left:50%;top:52%}.memory-photo-4{left:22%;top:78%}.memory-photo-5{left:76%;top:78%}.gift-invite{padding:28px 19px}}

/* v1.19: painel de memórias responsivo e isolado de estilos globais */
.photos .memory-garden{display:block!important;position:relative!important;width:min(100%,860px)!important;max-width:860px!important;aspect-ratio:860/465!important;min-height:0!important;margin:36px auto 20px!important;overflow:hidden!important;isolation:isolate;}
.photos .memory-garden .memory-photo{box-sizing:border-box!important;display:block!important;position:absolute!important;width:clamp(74px,16%,132px)!important;height:auto!important;aspect-ratio:1.15!important;min-width:0!important;min-height:0!important;max-width:132px!important;max-height:none!important;padding:0!important;overflow:visible!important;flex:none!important;transform:translate(-50%,-50%) rotate(var(--rot))!important;}
.photos .memory-garden .memory-photo img{display:block!important;position:static!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:cover!important;aspect-ratio:1.15!important;border-radius:7px!important;}
.photos .memory-garden .memory-photo:hover,.photos .memory-garden .memory-photo:focus-visible{transform:translate(-50%,-50%) rotate(0) scale(1.1)!important;}
@media(max-width:600px){.photos .memory-garden{aspect-ratio:1/1.05!important}.photos .memory-garden .memory-photo{width:27%!important;max-width:112px!important}.photos .memory-garden-heading{font-size:clamp(23px,6vw,30px)!important}}
