@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Montserrat:wght@400;500;600;700&display=swap');
:root{--cream:#f7f0e3;--paper:#fffaf0;--wine:#792b35;--dark:#3c3030;--gold:#a88b60}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--dark);font-family:Montserrat,sans-serif}button,input,textarea{font:inherit}.hidden{display:none!important}.intro{min-height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse,#fffaf0 0%,#efe3cf 100%);overflow:hidden;padding:25px}.intro-heading,.intro-hint,.eyebrow,.detail-label,.scroll-prompt{font-size:10px;letter-spacing:.24em;text-align:center;color:var(--wine)}.intro-heading{margin-bottom:65px}.intro-hint{margin-top:70px}.envelope{position:relative;display:block;width:min(82vw,380px);height:245px;border:0;background:transparent;cursor:pointer;perspective:900px;filter:drop-shadow(0 18px 20px #6e554026)}.envelope-back{position:absolute;inset:0;background:#e5d7c0;border:1px solid #d4bea0}.flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 57%);background:#eee1cb;transform-origin:top;transition:transform .8s ease;z-index:4}.envelope-front{position:absolute;inset:0;background:#f4e9d5;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:3;box-shadow:inset 0 0 0 1px #dbcab1}.letter{position:absolute;left:8%;right:8%;top:12%;height:80%;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;font:500 28px 'Cormorant Garamond',serif;z-index:2;transition:transform 3.4s ease .45s;box-shadow:0 2px 12px #55432a22}.letter em{color:var(--wine)}.letter small{font:9px Montserrat;letter-spacing:.2em;margin-top:14px}.seal{position:absolute;z-index:5;left:50%;top:51%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;display:grid;place-items:center;color:#f8e8d8;background:radial-gradient(circle at 32% 28%,#b54b51,#7d202c 70%);border:5px double #d68b8d;box-shadow:0 3px 9px #4e101644,inset 0 0 0 3px #872632;transition:opacity .35s,scale .4s}.seal svg{width:45px}.envelope.open .flap{transform:rotateX(180deg);z-index:1}.envelope.open .letter{transform:translateY(-130px)}.envelope.open .seal{opacity:0;scale:.4}.section{min-height:100svh;padding:100px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.hero{background:var(--paper)}.ornament{color:var(--gold);font-family:serif;font-size:24px;margin-bottom:28px}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;margin:14px 0}h1{font-size:clamp(48px,10vw,85px);line-height:1.02}h1 i,h2 i{color:var(--wine);font-weight:400}h2{font-size:clamp(42px,8vw,68px)}h3{font-size:38px}.image-placeholder{margin:38px auto 20px;max-width:430px;width:100%;min-height:320px;border:1px dashed #bba58d;background:#f4eadb;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:#907d67;padding:20px}.image-placeholder span{font-size:48px}.image-placeholder strong{font-size:11px;letter-spacing:.12em}.image-placeholder small{font-size:11px;line-height:1.7}
.image-placeholder.has-image {
  background-color: transparent;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;

  border: none;
  box-shadow: none;
  padding: 0;

  width: 100%;
  min-height: 440px;
}

.image-placeholder.has-image > * {
  display: none;
}
.image-placeholder.has-image>*{display:none}.hero-bottom{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:27px}.scroll-prompt{margin-top:38px}.scroll-prompt span{display:block;font-size:25px;margin-top:10px}.details{background:#f1e6d5}.detail{margin:32px auto;max-width:540px}.detail p{line-height:1.8}.divider{color:var(--gold);margin:15px}.actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn{display:inline-block;padding:16px 23px;margin-top:20px;background:var(--wine);border:1px solid var(--wine);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700;cursor:pointer;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px);background:#59202a}.btn.secondary{background:transparent;color:var(--wine)}.rsvp{background:var(--paper)}.rsvp>p{line-height:1.8}form{width:min(100%,490px);text-align:left;margin:25px auto}form>label,form div>label,legend{display:block;font-size:12px;font-weight:600;margin:23px 0 10px}input[type=text],input:not([type]),textarea{width:100%;border:1px solid #d8c9b6;background:#fffdfa;padding:15px;color:var(--dark);border-radius:0;outline-color:var(--wine)}textarea{resize:vertical}fieldset{border:0;padding:0;margin:23px 0}.radio{display:block;margin:14px 0;font-size:13px}.radio input{accent-color:var(--wine);margin-right:8px}.submit{width:100%}.form-message{font-size:12px;line-height:1.7;color:var(--wine)}.privacy{font-size:10px;max-width:490px;color:#74675c}footer{background:var(--wine);color:#f7e9d7;text-align:center;padding:55px 20px;font-size:10px;letter-spacing:.2em}footer strong{display:block;font:italic 35px 'Cormorant Garamond',serif;letter-spacing:0;margin:15px}footer span{display:block;font-size:24px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}@media(max-width:450px){.envelope{height:205px}.seal{width:70px;height:70px}.intro-heading{margin-bottom:50px}.intro-hint{margin-top:55px}.section{padding:85px 20px}}
/* Titolo nella lettera: stesso font e colore del titolo principale, ma più piccolo.
   Non dipende da h3/h4: la classe definisce lo stile esplicitamente. */
.letter .letter-title {
  margin: 0;
  padding: 0 10px;
  max-width: 100%;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(24px, 5.5vw, 34px);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: 0;
  text-align: center;
  color: var(--dark);
}
.letter .letter-title i { color: var(--wine); font-weight: 400; }
.cap-icon { display: block; width: 42px; height: 42px; margin: auto; }

/* Emoji del calendario e del segnaposto Maps. */
.detail-emoji {display:flex;align-items:center;justify-content:center;width:45px;height:45px;line-height:1;margin:0 auto 8px;letter-spacing:0}
.detail-emoji img {display:block;width:45px;height:45px;object-fit:contain}
/* Risultato server Google Apps Script dentro la pagina. */
.rsvp-result {width:min(100%,490px);margin:2px auto 25px;text-align:center}
.rsvp-result iframe {width:100%;height:188px;display:block;border:1px solid #d8c9b6;background:var(--paper)}
.rsvp-result p {font-size:12px;color:var(--wine)}
.privacy {font-size:10px;line-height:1.65;max-width:490px;color:#74675c;margin:22px auto 0}
.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
button:disabled{opacity:.65;cursor:wait}
