:root {
  --rose:#f7dbe6;
  --pink:#d96f9f;
  --deep:#7b315d;
  --gold:#d4a63b;
  --gold2:#f2d784;
  --cream:#fffaf2;
  --ink:#4f2b45;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:Georgia, 'Times New Roman', serif;color:var(--ink);
  background:
   radial-gradient(circle at 15% 10%,rgba(255,255,255,.9),transparent 22%),
   linear-gradient(180deg,#f8dbe8,#f9ecf2 45%,#fff9ef);
  overflow-x:hidden;
}
button,a{font:inherit}
.screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;
}
#cover{
  position:fixed;inset:0;z-index:50;
  background:
  linear-gradient(rgba(88,33,68,.25),rgba(88,33,68,.55)),
  url('imagens/esther-1.jpg') center 24%/cover no-repeat;
  transition:opacity .9s ease, visibility .9s ease;
}
#cover.hidden{opacity:0;visibility:hidden}
.cover-card{
  width:min(92vw,430px);text-align:center;padding:30px 24px 28px;
  border:1px solid rgba(255,255,255,.75);border-radius:30px;
  background:rgba(255,248,251,.82);backdrop-filter:blur(8px);
  box-shadow:0 18px 60px rgba(64,25,49,.35);
}
.crown{font-size:42px;filter:drop-shadow(0 2px 2px #fff)}
.cover-card h1{margin:4px 0 2px;font-size:42px;color:var(--deep);line-height:1}
.cover-card p{margin:10px 0 22px;font-size:18px}
.open-btn,.gold-btn{
  border:0;border-radius:999px;padding:14px 24px;cursor:pointer;
  color:#5c3810;font-weight:700;
  background:linear-gradient(135deg,#fff4b5,#d99d27,#fff1a1);
  box-shadow:0 8px 22px rgba(130,81,12,.28), inset 0 1px 0 #fff;
}
.open-btn{font-size:18px;animation:pulse 1.8s infinite}
@keyframes pulse{50%{transform:scale(1.045)}}
.sparkle{position:fixed;pointer-events:none;z-index:60;font-size:20px;animation:fall 4s linear forwards}
@keyframes fall{from{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(360deg);opacity:0}}

header{
  min-height:100vh;display:grid;place-items:center;text-align:center;padding:28px 18px 42px;
  background:
   radial-gradient(circle at 50% 18%,rgba(255,255,255,.9),transparent 27%),
   linear-gradient(180deg,rgba(255,247,250,.65),rgba(255,244,248,.95));
}
.hero{width:min(960px,100%)}
.badge{display:inline-block;padding:8px 18px;border:1px solid var(--gold);border-radius:999px;background:#fff9e9;color:#8b6419}
.hero h1{font-size:clamp(48px,12vw,92px);margin:10px 0 0;color:var(--deep);text-shadow:0 2px #fff}
.hero h2{font-size:clamp(26px,7vw,48px);margin:0;color:var(--gold)}
.hero p{font-size:20px;margin:12px auto 20px;max-width:600px}
.hero-photo{
 width:min(430px,88vw);aspect-ratio:3/4;object-fit:cover;border-radius:40% 40% 20px 20px;
 border:8px solid #fff;outline:2px solid var(--gold);box-shadow:0 18px 45px rgba(83,39,67,.25);
}
.scroll{display:block;margin-top:18px;color:var(--deep);text-decoration:none;font-size:14px}

main{width:min(900px,100%);margin:auto;padding:0 18px 70px}
.card{
 background:rgba(255,255,255,.78);border:1px solid rgba(212,166,59,.45);
 border-radius:28px;padding:26px;margin:22px 0;box-shadow:0 12px 32px rgba(97,48,78,.12);
}
.card h3{font-size:30px;margin:0 0 14px;color:var(--deep);text-align:center}
.details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}
.detail{padding:18px 10px;border-radius:20px;background:#fff8ee}
.detail b{display:block;color:var(--gold);font-size:18px;margin-bottom:5px}
.countdown{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.timebox{min-width:70px;text-align:center;background:var(--deep);color:#fff;border-radius:18px;padding:14px 10px}
.timebox strong{display:block;font-size:25px;color:var(--gold2)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gallery img{width:100%;height:310px;object-fit:cover;border-radius:22px;box-shadow:0 8px 20px rgba(70,33,56,.18)}
.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.action{
 text-decoration:none;border:0;cursor:pointer;text-align:center;padding:17px 12px;border-radius:18px;
 background:#fff;color:var(--deep);font-weight:700;border:1px solid #edc6d8;
 box-shadow:0 6px 16px rgba(90,42,72,.10)
}
.action.primary{background:linear-gradient(135deg,#6f3158,#a84d7d);color:white;border-color:transparent}
.quote{text-align:center;font-size:19px;line-height:1.65}
footer{text-align:center;padding:30px 15px;color:#7d5570}

.modal{
 position:fixed;inset:0;z-index:70;display:none;align-items:center;justify-content:center;
 background:rgba(62,24,48,.62);padding:20px;
}
.modal.show{display:flex}
.modal-box{width:min(520px,100%);max-height:85vh;overflow:auto;background:#fffaf6;border-radius:26px;padding:26px;position:relative}
.close{position:absolute;right:15px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer;color:var(--deep)}
.modal h3{color:var(--deep);font-size:28px;margin-top:5px}
.modal li{margin:10px 0;line-height:1.45}
.music{position:fixed;right:15px;bottom:15px;z-index:20;border:0;border-radius:50%;width:52px;height:52px;background:var(--deep);color:#fff;box-shadow:0 7px 18px rgba(0,0,0,.25);cursor:pointer}
@media(max-width:700px){
 .details{grid-template-columns:1fr}
 .gallery{grid-template-columns:1fr}
 .gallery img{height:auto}
 .actions{grid-template-columns:1fr}
}

/* Premium royal animation upgrade */
.royal-cover{background:radial-gradient(circle at 50% 12%,#fff4c8 0,#f5cadd 34%,#682653 100%);overflow:hidden}
.castle-silhouette{position:absolute;left:0;right:0;bottom:0;height:42vh;opacity:.32;background:linear-gradient(rgba(255,255,255,.92),rgba(255,255,255,.62)) center bottom/330px 230px no-repeat;clip-path:polygon(0 100%,0 76%,9% 76%,9% 58%,14% 58%,14% 76%,27% 76%,27% 46%,33% 46%,33% 28%,39% 46%,39% 76%,61% 76%,61% 46%,67% 28%,73% 46%,73% 76%,86% 76%,86% 58%,91% 58%,91% 76%,100% 76%,100% 100%);animation:castleFloat 6s ease-in-out infinite}
@keyframes castleFloat{50%{transform:translateY(-8px)}}
.envelope-stage{width:min(88vw,500px);height:360px;position:relative;perspective:1200px;filter:drop-shadow(0 25px 35px rgba(50,15,40,.45));transition:opacity .7s ease}
.gold-envelope{position:absolute;inset:55px 0 0;border-radius:20px;background:linear-gradient(145deg,#f7df8b,#b87917);transform-style:preserve-3d}
.gold-envelope:after{content:"";position:absolute;inset:0;z-index:2;clip-path:polygon(0 100%,0 0,50% 58%,100% 0,100% 100%);background:linear-gradient(145deg,#e2b64c,#b97718);border-radius:20px}
.envelope-flap{position:absolute;inset:0;z-index:4;clip-path:polygon(0 0,50% 60%,100% 0);background:linear-gradient(#ffe99f,#c99027);transform-origin:top;transition:transform 1s ease;border-radius:20px 20px 0 0}
.envelope-letter{position:absolute;z-index:1;left:7%;right:7%;bottom:12%;height:76%;display:grid;place-items:center;text-align:center;padding:18px;border-radius:18px;background:#fffaf0;border:2px solid #dfbd62;box-shadow:inset 0 0 30px rgba(218,171,57,.18);transition:transform 1.15s ease .35s}
.envelope-letter h1{font-size:48px;color:var(--deep);margin:0}.envelope-letter p{margin:6px 0;font-size:18px}.mini-crown{font-size:38px}
.wax-seal{position:absolute;z-index:7;left:50%;top:54%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:50%;border:0;color:white;font:bold 38px Georgia;cursor:pointer;background:radial-gradient(circle at 35% 28%,#f0aa6e,#9e321c 42%,#5c130c 78%);box-shadow:0 6px 15px rgba(65,15,9,.45),inset 0 0 0 5px rgba(255,220,174,.2);transition:.55s}
.wax-seal span{position:absolute;top:108px;left:50%;transform:translateX(-50%);width:180px;font-size:15px;text-shadow:0 2px 4px #000}
.envelope-stage.opened .envelope-flap{transform:rotateX(180deg)}.envelope-stage.opened .envelope-letter{transform:translateY(-150px) scale(1.04);z-index:6}.envelope-stage.opened .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(.1) rotate(40deg)}
.magic-book{display:none;position:absolute;inset:0;place-items:center;background:rgba(70,25,56,.72);z-index:12}.magic-book.show{display:grid}
.book-pages{width:min(88vw,760px);height:min(68vh,510px);border:10px solid #d7ad47;border-radius:24px;background:#fff9ef;box-shadow:0 28px 70px rgba(0,0,0,.4);transform:scaleX(.06);animation:bookOpen 1.2s forwards;display:grid;place-items:center;text-align:center;padding:30px;font-size:24px}
.book-pages b{font-size:clamp(40px,8vw,70px);color:var(--deep)}
@keyframes bookOpen{to{transform:scaleX(1)}}
.card{position:relative;overflow:hidden}.card:before{content:"✨";position:absolute;right:16px;top:12px;opacity:.35;animation:twinkle 1.8s infinite}@keyframes twinkle{50%{transform:scale(1.35);opacity:.9}}
.gallery{position:relative;overflow:hidden}.gallery img{animation:softZoom 8s ease-in-out infinite alternate}@keyframes softZoom{to{transform:scale(1.035)}}
.map-card iframe{width:100%;height:360px;border:0;border-radius:22px;margin-bottom:15px}.map-action{display:block;background:linear-gradient(135deg,#fff0a7,#d49b26,#fff3af);color:#5a3a0e}
.firework{position:fixed;width:6px;height:6px;border-radius:50%;z-index:200;pointer-events:none;animation:boom 1.1s forwards}@keyframes boom{to{transform:scale(22);opacity:0;box-shadow:0 -8px #ffd45c,7px -3px #fff,7px 4px #ff94c6,0 8px #fff,-7px 4px #ffd45c,-7px -3px #ff94c6}}
.ambient{position:fixed;top:-30px;z-index:190;pointer-events:none;animation:ambientFall linear forwards}@keyframes ambientFall{to{transform:translateY(110vh) rotate(540deg);opacity:.15}}
@media(max-width:700px){.envelope-stage{height:315px}.envelope-stage.opened .envelope-letter{transform:translateY(-115px) scale(1.02)}.map-card iframe{height:300px}}