:root{
  --bg:#070404;
  --wine:#2a090e;
  --rose:#f3c6cf;
  --gold:#d7b46a;
  --gold-soft:#f8e3aa;
  --text:#fff8ee;
  --muted:#d7c6b8;
  --border:rgba(215,180,106,.32);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top,rgba(145,28,47,.42),transparent 30rem),
    radial-gradient(circle at bottom right,rgba(215,180,106,.16),transparent 28rem),
    linear-gradient(135deg,#050303,#1a070b 50%,#070404);
  min-height:100vh;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,#000,transparent 90%);
}
.hidden{opacity:0;pointer-events:none;transform:translateY(20px)}
.site-content{position:relative;z-index:1;transition:1s ease;width:min(1080px,92%);margin:0 auto}
.envelope-intro{
  position:fixed;inset:0;z-index:99;display:grid;place-items:center;
  background:radial-gradient(circle at top,rgba(215,180,106,.20),transparent 25rem),linear-gradient(135deg,#130507,#050303);
  transition:opacity 1s ease,visibility 1s ease;
}
.envelope-intro.opened{opacity:0;visibility:hidden;pointer-events:none}
.envelope-wrap{text-align:center;position:relative;z-index:2}
.envelope-button{background:transparent;border:0;padding:0;margin:0;cursor:pointer;display:inline-block;appearance:none;-webkit-tap-highlight-color:transparent}
.envelope-button:focus-visible{outline:2px solid var(--gold-soft);outline-offset:14px;border-radius:26px}
.envelope-button:hover .envelope{transform:translateY(-6px) scale(1.015)}
.envelope{position:relative;width:310px;height:205px;margin:0 auto 34px;filter:drop-shadow(0 28px 50px rgba(0,0,0,.45));transform-style:preserve-3d;transition:.35s ease}
.pocket{position:absolute;inset:0;background:linear-gradient(145deg,#7b1320,#3c080e);border:1px solid rgba(215,180,106,.65);border-radius:18px;clip-path:polygon(0 28%,50% 66%,100% 28%,100% 100%,0 100%);z-index:3}
.flap{position:absolute;left:0;top:0;width:100%;height:60%;background:linear-gradient(145deg,#9d2130,#4b0a12);border:1px solid rgba(215,180,106,.55);border-radius:18px 18px 8px 8px;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 100%);z-index:5;transition:1s cubic-bezier(.2,.8,.2,1)}
.letter{position:absolute;left:22px;right:22px;bottom:28px;height:150px;background:linear-gradient(180deg,#fff7e3,#f1dca2);border-radius:14px;color:#3c220d;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:2.1rem;font-weight:700;z-index:2;opacity:0;transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}
.letter small{font-family:'Inter',sans-serif;letter-spacing:.24em;text-transform:uppercase;font-size:.65rem;margin-top:.5rem;color:#7d5420}
.envelope.open .flap{transform:rotateX(178deg);z-index:1}
.envelope.open .letter{transform:translateY(-118px);opacity:1;transition-delay:.35s}
.wax-seal{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:6;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#bf3b4a,#68101b 62%,#3b060d);border:2px solid rgba(248,227,170,.52);box-shadow:0 10px 24px rgba(0,0,0,.36),inset 0 0 16px rgba(255,255,255,.12);color:#f8e3aa;font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:700;letter-spacing:.06em;transition:.55s ease}
.wax-seal::before{content:'';position:absolute;inset:7px;border:1px solid rgba(248,227,170,.36);border-radius:50%}
.envelope.open .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(.72) rotate(18deg)}
.btn{border:0;border-radius:999px;padding:1rem 1.55rem;font-weight:800;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:.25s ease}
.btn.primary{background:linear-gradient(135deg,#f9e5a7,#d4a64a 52%,#8d5d1b);color:#221407;box-shadow:0 16px 40px rgba(215,180,106,.22)}
.btn.gold-outline{border:1px solid rgba(215,180,106,.60);background:rgba(215,180,106,.08);color:var(--gold-soft)}
.btn.ghost{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:var(--text)}
.btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
.intro-note{color:var(--muted);font-size:.9rem}
.music-toggle{position:fixed;right:18px;bottom:18px;z-index:50;border:1px solid rgba(215,180,106,.42);background:rgba(20,9,8,.78);backdrop-filter:blur(12px);color:var(--gold-soft);border-radius:999px;padding:.8rem 1rem;font-weight:800;cursor:pointer;box-shadow:0 15px 40px rgba(0,0,0,.34)}
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 0 4rem;position:relative}
.gold-halo{position:absolute;width:min(650px,90vw);height:min(650px,90vw);background:radial-gradient(circle,rgba(215,180,106,.16),transparent 60%);filter:blur(8px);z-index:-1}
.eyebrow,.section-label{color:var(--gold);text-transform:uppercase;letter-spacing:.25em;font-size:.75rem;font-weight:800}
h1{font-family:'Cormorant Garamond',serif;font-size:clamp(4.8rem,13vw,10.5rem);line-height:.84;margin:.6rem 0 1rem;font-weight:600;text-shadow:0 0 42px rgba(215,180,106,.20)}
h1 span{color:var(--gold);font-weight:400}.date{color:var(--gold-soft);font-size:1.25rem;letter-spacing:.14em}.intro{max-width:640px;color:var(--muted);font-size:1.08rem;line-height:1.85}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.6rem}
.card{border:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.045));backdrop-filter:blur(16px);border-radius:30px;padding:clamp(1.3rem,3vw,2.5rem);box-shadow:0 30px 80px rgba(0,0,0,.32);margin-bottom:1.5rem}.countdown-card{text-align:center}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.2rem}.countdown div{border:1px solid var(--border);border-radius:22px;padding:1rem .5rem;background:rgba(0,0,0,.20)}.countdown strong{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,5vw,4rem);color:var(--gold-soft)}.countdown span{color:var(--muted);font-size:.9rem}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.info-card{min-height:190px}h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,5vw,3rem);margin:.4rem 0}p{line-height:1.7}.muted{color:var(--muted)}.upload-card{border-color:rgba(248,227,170,.40)}.upload-link-note{border:1px dashed rgba(215,180,106,.45);border-radius:18px;padding:1rem;color:var(--gold-soft);background:rgba(215,180,106,.07)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.5rem}.field{display:flex;flex-direction:column;gap:.45rem}.field.full{grid-column:1/-1}.file-box{border:1px solid rgba(215,180,106,.24);border-radius:20px;padding:1rem;background:rgba(0,0,0,.16)}label{color:var(--gold-soft);font-weight:800}input,select,textarea{width:100%;border:1px solid var(--border);background:rgba(0,0,0,.26);color:var(--text);border-radius:16px;padding:.95rem 1rem;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(215,180,106,.12)}small{color:var(--muted)}.submit{grid-column:1/-1;width:100%;font-size:1rem;margin-top:.5rem}.form-message{grid-column:1/-1;min-height:1.6rem;color:var(--gold-soft);font-weight:800}.footer{text-align:center;padding:2rem 1rem 3rem;font-size:13px;color:#c9b37e;opacity:.85;position:relative;z-index:1}.ambient-leaves,.intro-leaves{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.intro-leaves{z-index:1}.leaf{position:absolute;top:-8vh;width:16px;height:11px;background:linear-gradient(135deg,#f4b7c4,#8d1d30);border-radius:100% 0 100% 0;opacity:.82;animation:fall linear forwards;filter:drop-shadow(0 0 8px rgba(255,180,195,.22))}@keyframes fall{to{transform:translate3d(var(--x),108vh,0) rotate(680deg);opacity:.08}}.reveal{opacity:0;transform:translateY(24px);transition:1s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:720px){.envelope{width:260px;height:172px}.wax-seal{width:56px;height:56px;font-size:1rem}.details-grid,.form-grid{grid-template-columns:1fr}.countdown{grid-template-columns:repeat(2,1fr)}.hero-actions .btn{width:100%}h1{font-size:clamp(4.1rem,18vw,6.8rem)}.music-toggle{right:10px;bottom:10px;font-size:.85rem}.site-content{width:min(94%,1080px)}}
.form-message a{color:#f6dfa2;text-decoration:underline;font-weight:900}
.map-wrapper{margin-top:1.5rem;border-radius:20px;overflow:hidden;border:1px solid var(--border)}
.map-open-btn{display:flex;width:100%;margin-top:1.2rem;justify-content:center}
