.passport-xl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: 24px;
  border-radius: 22px;
  background: #fefdf8;
  box-shadow: 0 14px 30px rgba(0,0,0,.15);
  background-image: radial-gradient(rgba(0,0,0,.04) 1px, transparent 1.2px);
  background-size: 12px 12px;
}

/* Pagine */
.passport-xl-page {
  background: #fffef9;
  padding: 20px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}

.passport-xl-left { border-right: 2px dashed rgba(0,0,0,.08); }
.passport-xl-right { padding-left: 28px; }

/* Header */
.passport-xl-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.passport-xl-photo {
  width: 84px;
  height: 84px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 0 0 3px #fff, 0 4px 8px rgba(0,0,0,.2);
}
.passport-xl-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Quote */
.passport-xl-quote {
  font-style: italic;
  font-size: 14px;
  color: #444;
  margin: 0 0 8px;
}

/* Timbri */
.passport-xl-stamps {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px,1fr));
  gap: 12px;
}
.passport-xl-stamps img {
  width: 100%;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
  transform: rotate(-1deg);
}

/* MRZ */
.passport-xl-mrz {
  font-family: monospace;
  font-size: 12px;
  letter-spacing: .08em;
  color: #6b6f77;
  border-top: 1px solid rgba(0,0,0,.08);
  margin-top: auto;
  padding-top: 8px;
}





/* === STAMPS (francobolli vintage) — versione chiara === */
.passport-xl-stamps{
  display:grid;
  grid-template-columns: repeat(auto-fill,minmax(110px,1fr));
  gap:16px;
}

.stamp{
  --paper:#fffaf0;
  --edge:#cbbda1;
  --ink:#1f2937;
  position:relative;
  padding:10px;
  border:1px solid var(--edge);
  background:
    radial-gradient(rgba(0,0,0,.05) 1px, transparent 1.2px) 0 0/12px 12px,
    var(--paper);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  border-radius:6px;
  overflow:hidden;
  transform:rotate(-1.25deg);
  color:var(--ink);
}

/* DENTELLATURA: chiara, senza scurire il contenuto */

.stamp .stamp-art{
  height:86px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:4px;
  display:grid; place-items:center;
  font-weight:800;
}

.stamp .stamp-caption{
  margin-top:8px;
  font-size:12px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#374151;
}

.stamp .value{
  position:absolute; bottom:8px; right:10px;
  font: 700 12px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color:#111827;
  text-shadow:0 1px 0 rgba(255,255,255,.7);
}

/* Varianti interne (solo colore/texture) */
.stamp.theme-geo .stamp-art{
  background:
    radial-gradient(circle at 20% 30%, #e7efff 0 24%, transparent 24% 26%),
    radial-gradient(circle at 52% 52%, #cbd9ff 0 24%, transparent 24% 26%),
    radial-gradient(circle at 82% 72%, #b5ccff 0 24%, transparent 24% 26%),
    #f1f6ff;
  color:#0f172a;
  font-size:20px;
}

.stamp.theme-citrus .stamp-art{
  background:
    radial-gradient(circle at 30% 60%, #fde9d3 0 36px, transparent 36px),
    radial-gradient(circle at 72% 38%, #ffe6ea 0 28px, transparent 28px),
    radial-gradient(circle at 60% 72%, #e7f2ff 0 24px, transparent 24px),
    #fff8ee;
  font-size:18px;
}

/* piegatura leggera (senza scurire tutto) */


/* Compatte */
.stamp.sm{ padding:8px; }
.stamp.sm .stamp-art{ height:76px; }

.stamp { filter: contrast(1.02) saturate(1.05); }
.stamp .stamp-art { box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }


