/* =========================================================
   Elena · Marco · Lara — diario di viaggio
   Design secondo la skill "apple-design":
   font di sistema, materiali traslucidi, molle (spring),
   feedback alla pressione, animazioni solo transform/opacity,
   rispetto di reduced motion / transparency / contrast.
   ========================================================= */
:root{
  /* superfici */
  --bg:#FAF8F5; --bg-2:#F2EEE9; --card:#FFFFFF;
  /* testo (near-black Apple) */
  --ink:#1D1D1F; --muted:#6E6E73; --faint:#8A8A8E;
  /* linee / vetro */
  --line:rgba(0,0,0,.08); --hair:rgba(0,0,0,.06);
  --glass:rgba(250,248,245,.72);
  /* accento caldo */
  --accent:#C8324B; --accent-soft:#E7A6AE; --gold:#B8924B;
  /* ombre morbide a più livelli */
  --sh-1:0 1px 2px rgba(0,0,0,.05), 0 6px 18px -8px rgba(0,0,0,.14);
  --sh-2:0 2px 6px rgba(0,0,0,.06), 0 24px 48px -20px rgba(0,0,0,.24);
  /* molle (easing che approssima uno spring critico / con micro-rimbalzo) */
  --spring:cubic-bezier(.22,1,.36,1);
  --spring-soft:cubic-bezier(.34,1.26,.64,1);
  --maxw:1120px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--font);
  line-height:1.5; letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

/* tipografia: tracking e leading guidati dalla dimensione */
.display{ font-family:var(--font); font-weight:600; letter-spacing:-.025em; line-height:1.05; }
.script{ font-family:var(--font); font-style:italic; font-weight:450; letter-spacing:-.01em; }

/* ---------- Topbar (materiale traslucido) ---------- */
.topbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem clamp(1rem,5vw,2.5rem);
  background:var(--glass);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--hair);
}
.brand{ display:flex; align-items:center; gap:.55rem; -webkit-tap-highlight-color:transparent; }
.brand-mark{ color:var(--accent); font-size:1rem; }
.brand-name{ font-weight:600; font-size:1.06rem; letter-spacing:-.02em; }
.topnav a{ font-size:.82rem; font-weight:500; color:var(--muted); letter-spacing:-.01em;
  transition:color .25s var(--spring); }
.topnav a:hover{ color:var(--ink); }

/* ---------- Copertina (foto d'apertura romantica) ---------- */
.cover{ position:relative; width:100%; height:clamp(420px,86vh,760px);
  overflow:hidden; display:flex; align-items:flex-end; justify-content:center;
  text-align:center; isolation:isolate; }
.cover-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:50% 42%; z-index:-3; animation:coverZoom 18s ease-out both; }
@keyframes coverZoom{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
.cover-veil{ position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(120% 90% at 50% 20%, rgba(0,0,0,0) 30%, rgba(60,20,30,.18) 100%),
    linear-gradient(180deg, rgba(40,15,25,.12) 0%, rgba(40,15,25,0) 32%, rgba(60,18,30,.30) 72%, rgba(60,18,30,.62) 100%); }
.cover-inner{ position:relative; z-index:2; padding:0 1.5rem clamp(2.4rem,7vw,4.6rem); color:#fff; }
.cover-eyebrow{ font-size:.78rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:rgba(255,255,255,.9); margin-bottom:.8rem; text-shadow:0 1px 10px rgba(0,0,0,.35);
  animation:coverRise 1s var(--spring) .2s both; }
.cover-title{ font-weight:700; font-size:clamp(2.6rem,8.5vw,5.4rem); letter-spacing:-.03em;
  line-height:1.02; color:#fff; text-shadow:0 2px 26px rgba(0,0,0,.38);
  animation:coverRise 1.1s var(--spring) .38s both; }
.cover-sub{ max-width:30ch; margin:1rem auto 0; font-size:clamp(1rem,2.3vw,1.25rem);
  color:rgba(255,255,255,.94); font-weight:400; letter-spacing:-.01em;
  text-shadow:0 1px 14px rgba(0,0,0,.4); animation:coverRise 1.1s var(--spring) .62s both; }
.cover-heart{ margin:1.4rem auto 0; width:30px; height:30px; color:#ff6b86;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.35));
  animation:coverRise 1s var(--spring) .8s both, beat 1.7s ease-in-out infinite 1.8s; }
.cover-heart svg{ width:100%; height:100%; }
@keyframes coverRise{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@keyframes beat{ 0%,100%{ transform:scale(1); } 14%{ transform:scale(1.26); }
  28%{ transform:scale(1); } 42%{ transform:scale(1.2); } }

/* cuori che fluttuano */
.hearts{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.fh{ position:absolute; bottom:-8%; color:#ff7b93; opacity:0; line-height:1;
  text-shadow:0 2px 10px rgba(0,0,0,.2); animation-name:floatHeart;
  animation-timing-function:ease-in; animation-iteration-count:infinite; }
@keyframes floatHeart{
  0%{ transform:translateY(0) rotate(0deg) scale(.7); opacity:0; }
  12%{ opacity:.85; }
  70%{ opacity:.7; }
  100%{ transform:translateY(-105vh) rotate(18deg) scale(1.05); opacity:0; }
}

/* fascia dedica sotto la copertina */
.dedica-band{ text-align:center; padding:clamp(2.2rem,6vw,3.4rem) 1.5rem;
  background:linear-gradient(180deg, #FFF6F3 0%, var(--bg) 100%);
  border-bottom:1px solid var(--hair); }
.dedica-text{ font-style:italic; font-weight:450; color:var(--wine, #8A2E3B);
  color:var(--accent); max-width:40ch; margin:0 auto;
  font-size:clamp(1.15rem,3vw,1.55rem); line-height:1.35; letter-spacing:-.015em; }
.dedica-text::before, .dedica-text::after{ content:"\2764"; color:var(--accent-soft);
  font-size:.7em; vertical-align:middle; margin:0 .5em; opacity:.8; font-style:normal; }

/* su MOBILE la copertina mostra TUTTA la foto (così Elena si vede sempre) */
@media (max-width:560px){
  .cover{ display:block; height:auto; min-height:0; }
  .cover-img{ position:relative; width:100%; height:auto; object-fit:contain;
    object-position:center; animation:none; }
  .cover-veil{ background:linear-gradient(180deg, rgba(40,15,25,.05) 0%, rgba(40,15,25,0) 34%, rgba(45,14,24,.42) 76%, rgba(50,15,26,.72) 100%); }
  .cover-inner{ position:absolute; left:0; right:0; bottom:0; padding:0 1.1rem 1.4rem; }
  .cover-title{ font-size:clamp(2rem,10vw,3rem); }
  .cover-sub{ font-size:.98rem; }
  .cover-heart{ width:24px; height:24px; margin-top:1rem; }
}

/* ---------- Hero ---------- */
.hero{
  text-align:center; padding:clamp(4rem,11vw,8rem) 1.5rem clamp(2.5rem,6vw,4rem);
  background:linear-gradient(180deg,#FFFFFF 0%, var(--bg) 60%);
  border-bottom:1px solid var(--hair);
}
.hero .eyebrow{ font-size:.82rem; font-weight:600; letter-spacing:.01em; color:var(--accent); margin-bottom:.9rem; }
.hero h1{ font-weight:700; font-size:clamp(2.6rem,8vw,5rem); letter-spacing:-.035em; line-height:1.03; }
.hero .tagline{ max-width:32ch; margin:1.1rem auto 0; color:var(--muted);
  font-size:clamp(1.05rem,2.3vw,1.3rem); font-weight:400; letter-spacing:-.015em; }
.dedica{ margin:2.6rem auto 0; max-width:42ch; padding:1.1rem 1.6rem; }
.dedica p{ font-style:italic; color:var(--ink); font-weight:450;
  font-size:clamp(1.15rem,3vw,1.5rem); line-height:1.35; letter-spacing:-.015em; }

/* ---------- Contenitore ---------- */
.container{ max-width:var(--maxw); margin:0 auto; padding:clamp(2.2rem,6vw,4rem) clamp(1rem,5vw,2rem); }

/* ---------- Separatore anno ---------- */
.year-sep{ display:flex; align-items:baseline; gap:1rem; margin:2.8rem 0 1.5rem; }
.year-sep:first-child{ margin-top:0; }
.year-sep span{ font-weight:700; font-size:1.6rem; letter-spacing:-.03em; color:var(--ink); }
.year-sep .yh{ color:var(--accent-soft); font-size:1rem; transform:translateY(-3px); }
.year-sep .rule{ flex:1; height:1px; background:var(--line); transform:translateY(-4px); }

/* ---------- Griglia viaggi ---------- */
.trips{ display:grid; gap:clamp(1.1rem,3vw,1.8rem);
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.card{ background:var(--card); border:1px solid var(--hair); border-radius:22px;
  overflow:hidden; cursor:pointer; display:flex; flex-direction:column;
  box-shadow:var(--sh-1); will-change:transform;
  transition:transform .5s var(--spring), box-shadow .5s var(--spring);
  -webkit-tap-highlight-color:transparent; }
.card:hover{ transform:translateY(-6px); box-shadow:var(--sh-2); }
/* feedback immediato alla pressione (molla rapida) */
.card.is-press{ transform:scale(.975); box-shadow:var(--sh-1); transition:transform .18s var(--spring); }
.card .cover{ aspect-ratio:4/3; overflow:hidden; background:var(--bg-2); }
.card .cover img{ width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--spring); }
.card:hover .cover img{ transform:scale(1.045); }
.card .body{ padding:1.15rem 1.25rem 1.45rem; }
.card .meta{ font-size:.8rem; font-weight:600; letter-spacing:-.005em; color:var(--accent); margin-bottom:.4rem; }
.card h3{ font-weight:600; font-size:1.5rem; letter-spacing:-.025em; line-height:1.1; margin-bottom:.35rem; }
.card .place{ color:var(--muted); font-size:.98rem; letter-spacing:-.01em; }
.card .count{ margin-top:.85rem; font-size:.82rem; font-weight:500; color:var(--faint); }

/* ---------- Dettaglio viaggio ---------- */
.detail-hero{ position:relative; overflow:hidden; }
.detail-cover{ width:100%; height:clamp(260px,52vh,560px); object-fit:cover; display:block; }
.detail-veil{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(40,15,25,.10) 0%, rgba(40,15,25,0) 40%, rgba(40,15,25,.14) 100%); }
.detail-hero .hearts{ z-index:2; }
.detail-head{ max-width:var(--maxw); margin:0 auto; padding:2.2rem clamp(1rem,5vw,2rem) 0; }
.back{ display:inline-flex; align-items:center; gap:.3rem; font-size:.9rem; font-weight:500;
  color:var(--muted); margin-bottom:1.6rem; transition:color .25s var(--spring), transform .25s var(--spring); }
.back:hover{ color:var(--accent); transform:translateX(-3px); }
.detail-head .meta{ font-size:.86rem; font-weight:600; color:var(--accent); margin-bottom:.5rem; }
.detail-head h1{ font-weight:700; font-size:clamp(2.2rem,6vw,3.6rem); letter-spacing:-.035em; line-height:1.04; }
.detail-head .place{ color:var(--muted); font-size:1.08rem; margin-top:.5rem; letter-spacing:-.01em; }
.detail-text{ max-width:60ch; margin:1.8rem auto 0; padding:0 clamp(1rem,5vw,2rem);
  font-size:clamp(1.08rem,2.2vw,1.24rem); color:#2a2a2d; line-height:1.6; letter-spacing:-.012em; }
.detail-text p{ margin-bottom:1rem; }

/* galleria del viaggio */
.media-grid{ max-width:var(--maxw); margin:clamp(2rem,5vw,3.2rem) auto 0;
  padding:0 clamp(1rem,5vw,2rem); display:grid; gap:.85rem;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.media-item{ position:relative; border-radius:16px; overflow:hidden; background:var(--bg-2);
  aspect-ratio:1/1; cursor:pointer; box-shadow:var(--sh-1); will-change:transform;
  transition:transform .45s var(--spring), box-shadow .45s var(--spring);
  -webkit-tap-highlight-color:transparent; }
.media-item:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); }
.media-item.is-press{ transform:scale(.97); transition:transform .18s var(--spring); }
.media-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--spring); }
.media-item:hover img{ transform:scale(1.05); }
.media-item.video{ cursor:default; }
.media-item.video video{ width:100%; height:100%; object-fit:cover; background:#000; }
.media-item .play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.media-item .play span{ width:54px; height:54px; border-radius:50%;
  background:rgba(0,0,0,.4); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.2rem; padding-left:3px; }

/* stato vuoto */
.empty{ text-align:center; padding:4rem 1rem; color:var(--muted); }
.empty .display{ font-size:1.8rem; color:var(--ink); margin-bottom:.5rem; font-weight:600; }

/* ---------- Footer ---------- */
.sitefoot{ text-align:center; padding:4rem 1.5rem 5rem; border-top:1px solid var(--hair);
  margin-top:3rem; }
.foot-heart{ color:var(--accent); font-size:1.3rem; margin-bottom:.55rem; display:inline-block;
  animation:beat 1.7s ease-in-out infinite; }
.foot-line{ color:var(--muted); font-size:.95rem; letter-spacing:-.01em; }

/* ---------- Lightbox (materiale + scrim) ---------- */
.lightbox{ position:fixed; inset:0; z-index:90;
  background:rgba(20,18,16,.6);
  -webkit-backdrop-filter:blur(24px) saturate(140%); backdrop-filter:blur(24px) saturate(140%);
  display:flex; align-items:center; justify-content:center; padding:4vh 2vw;
  animation:lbFade .28s var(--spring); }
.lightbox[hidden]{ display:none; }
@keyframes lbFade{ from{ opacity:0; } to{ opacity:1; } }
.lb-stage{ max-width:92vw; max-height:88vh; display:flex; flex-direction:column; align-items:center; gap:.9rem;
  animation:lbPop .4s var(--spring-soft); }
@keyframes lbPop{ from{ opacity:0; transform:scale(.94); } to{ opacity:1; transform:scale(1); } }
.lb-stage img{ max-width:92vw; max-height:80vh; object-fit:contain; border-radius:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lb-stage figcaption{ color:rgba(255,255,255,.9); font-size:.98rem; text-align:center;
  max-width:60ch; letter-spacing:-.01em; }
.lb-close,.lb-nav{ -webkit-tap-highlight-color:transparent; }
.lb-close{ position:absolute; top:2.2vh; right:2.4vw; background:rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:none; color:#fff; width:40px; height:40px; border-radius:50%;
  font-size:1.5rem; line-height:1; cursor:pointer;
  transition:transform .3s var(--spring), background .3s var(--spring); }
.lb-close:hover{ background:rgba(255,255,255,.26); }
.lb-close:active{ transform:scale(.9); }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:none; color:#fff; width:52px; height:52px; border-radius:50%; font-size:1.9rem; line-height:1;
  cursor:pointer; transition:transform .3s var(--spring), background .3s var(--spring); }
.lb-nav:hover{ background:rgba(255,255,255,.26); }
.lb-nav:active{ transform:translateY(-50%) scale(.9); }
.lb-prev{ left:2vw; } .lb-next{ right:2vw; }
@media (max-width:600px){ .lb-nav{ width:44px; height:44px; font-size:1.5rem; } }

/* ---------- ingresso (spring, solo transform/opacity) ---------- */
.reveal{ opacity:0; transform:translateY(22px);
  transition:opacity .7s var(--spring), transform .7s var(--spring); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- accessibilità: reduced motion / transparency / contrast ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important;
     scroll-behavior:auto !important; }
  /* la motion diventa semplice cross-fade */
  .reveal{ opacity:0; transform:none; transition:opacity .4s ease; }
  .reveal.in{ opacity:1; }
  .card,.card:hover,.media-item,.media-item:hover,.card .cover img,.media-item img{ transform:none !important; transition:opacity .3s ease !important; }
  .lightbox,.lb-stage{ animation:none; }
  .cover-img{ transform:none !important; }
  .cover-eyebrow,.cover-title,.cover-sub,.cover-heart{ opacity:1 !important; transform:none !important; }
  .hearts{ display:none; }
}
@media (prefers-reduced-transparency:reduce){
  .topbar{ background:var(--bg); -webkit-backdrop-filter:none; backdrop-filter:none; }
  .lightbox{ background:rgba(20,18,16,.96); -webkit-backdrop-filter:none; backdrop-filter:none; }
  .lb-close,.lb-nav,.media-item .play span{ -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media (prefers-contrast:more){
  :root{ --ink:#000; --muted:#3a3a3c; --line:rgba(0,0,0,.28); --hair:rgba(0,0,0,.2); --accent:#A3122B; }
  .card,.media-item{ border:1px solid var(--line); }
}

/* =========================================================
   POLISH — rifiniture eleganti e romantiche
   ========================================================= */
:root{
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Palatino Nova","Book Antiqua",Georgia,"Times New Roman",serif;
  --wine:#8A2E3B; --accent2:#E86A8A;
}

/* titoli in un serif caldo e signorile */
.display,.brand-name{ font-family:var(--serif); }
.display{ letter-spacing:-.004em; }
.brand-name{ letter-spacing:0; font-weight:600; }
.cover-title{ font-weight:600; letter-spacing:-.006em; }
.detail-head h1{ font-weight:600; letter-spacing:-.008em; }
.card h3{ font-weight:600; letter-spacing:-.004em; }
.year-sep span{ font-weight:600; }

/* sfondo con un velo caldo + selezione testo */
body{ background:
  radial-gradient(120% 55% at 50% -8%, #FFF4EF 0%, rgba(255,244,239,0) 58%),
  var(--bg); }
::selection{ background:var(--accent-soft); color:#3a1420; }

/* COPERTINA: cornice sottile, vignetta morbida, freccia di scorrimento */
.cover-frame{ position:absolute; z-index:3; inset:13px; border:1px solid rgba(255,255,255,.28);
  border-radius:12px; pointer-events:none; }
.cover::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  box-shadow:inset 0 0 160px 34px rgba(45,12,22,.30); }
.cover-scroll{ position:absolute; z-index:3; left:50%; bottom:12px; transform:translateX(-50%);
  color:rgba(255,255,255,.85); animation:bob 1.9s ease-in-out infinite;
  filter:drop-shadow(0 1px 8px rgba(0,0,0,.45)); }
@keyframes bob{ 0%,100%{ transform:translateX(-50%) translateY(0);} 50%{ transform:translateX(-50%) translateY(7px);} }

/* DEDICA come una cartolina */
.dedica-band{ background:transparent; border-bottom:1px solid var(--hair);
  padding:clamp(2.4rem,6vw,3.6rem) 1.2rem; }
.dedica-card{ position:relative; max-width:600px; margin:0 auto; text-align:center;
  background:#fff; border:1px solid var(--hair); border-radius:22px;
  padding:clamp(1.9rem,4.5vw,2.7rem) clamp(1.4rem,4vw,2.2rem);
  box-shadow:0 2px 6px rgba(0,0,0,.05), 0 26px 54px -30px rgba(120,40,55,.38); }
.dedica-card::before,.dedica-card::after{ content:""; position:absolute; left:50%;
  transform:translateX(-50%); width:36px; height:1px; background:var(--accent-soft); opacity:.8; }
.dedica-card::before{ top:16px; } .dedica-card::after{ bottom:16px; }
.dedica-heart{ display:block; color:var(--accent2); font-size:1.2rem; margin-bottom:.55rem;
  animation:beat 1.7s ease-in-out infinite; }
.dedica-text{ font-style:italic; color:var(--wine); font-weight:450; max-width:34ch; margin:0 auto;
  font-size:clamp(1.15rem,3vw,1.5rem); line-height:1.42; letter-spacing:-.01em; }
.dedica-text::before,.dedica-text::after{ content:none; }

/* CARD dei viaggi: scrim, targhetta data, cuore all'hover */
.card .cover{ position:relative; }
.card-scrim{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.20) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 60%, rgba(0,0,0,.30) 100%); }
.date-pill{ position:absolute; top:12px; left:12px; z-index:2;
  background:rgba(28,14,20,.52); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  color:#fff; font-size:.72rem; font-weight:600; letter-spacing:.01em;
  padding:.34rem .64rem; border-radius:999px; box-shadow:0 2px 10px rgba(0,0,0,.2); }
.card-heart{ position:absolute; top:10px; right:13px; z-index:2; color:#ff6b86; font-size:1.15rem;
  opacity:0; transform:scale(.6); transition:opacity .4s var(--spring), transform .4s var(--spring);
  filter:drop-shadow(0 1px 5px rgba(0,0,0,.4)); }
.card:hover .card-heart{ opacity:1; transform:scale(1); }

/* CHIUSURA romantica in fondo alla home */
.closing-note{ text-align:center; padding:clamp(3rem,8vw,5rem) 1.5rem clamp(.5rem,2vw,1.5rem); }
.cn-heart{ width:40px; height:40px; margin:0 auto 1rem; color:var(--accent);
  animation:beat 1.7s ease-in-out infinite; }
.cn-heart svg{ width:100%; height:100%; }
.cn-line{ font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:clamp(1.2rem,3.4vw,1.7rem); letter-spacing:-.01em; }

@media (max-width:560px){
  .cover-scroll{ display:none; }
  .cover-frame{ inset:9px; border-radius:10px; }
}
@media (prefers-reduced-motion:reduce){
  .cover-scroll,.dedica-heart,.cn-heart,.foot-heart{ animation:none !important; }
}

/* data del regalo sotto la dedica */
.dedica-date{ margin-top:1rem; font-size:.74rem; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent); opacity:.85; }

/* dedica d'amore sotto la data del regalo */
.lettera{ margin:1.7rem auto 0; max-width:30ch; }
.lettera-orn{ display:flex; align-items:center; justify-content:center; gap:.8rem;
  color:var(--gold); margin-bottom:1.3rem; }
.lettera-orn span{ display:block; width:48px; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold)); opacity:.7; }
.lettera-orn span:last-child{ background:linear-gradient(90deg, var(--gold), transparent); }
.lettera-orn i{ font-style:normal; font-size:1.15rem; line-height:1; }
.lettera p{ font-family:var(--serif); font-style:italic; color:var(--ink);
  font-size:clamp(1.08rem,2.7vw,1.32rem); line-height:1.5; letter-spacing:0; }
.lettera .lettera-apertura{ color:var(--wine); font-size:clamp(1.25rem,3.2vw,1.55rem);
  font-weight:600; margin-bottom:.35rem; }
.lettera .lettera-riga + .lettera-riga{ margin-top:.25rem; }
.lettera .lettera-finale{ margin-top:1.15rem; color:var(--accent);
  font-size:clamp(1.3rem,3.6vw,1.7rem); font-weight:600; font-style:italic; }
