@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/CormorantGaramond.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/CormorantGaramond-Italic.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/SourceSerif4.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(fonts/SourceSerif4-Italic.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/Inter.woff2) format('woff2');}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/Cinzel.woff2) format('woff2');}

:root {
  --notte: #090d0c;
  --notte-2: #0f1513;
  --notte-3: #16201d;
  --linea-scura: rgba(226, 180, 92, .16);
  --oro: #e2b25a;
  --oro-chiaro: #f0cf8e;
  --bronzo: #b9853a;
  --rame: #a8622f;
  --verderame: #3f9c92;
  --verderame-chiaro: #8fd3c6;
  --avorio: #f6f1e7;
  --carta: #efe7d6;
  --carta-2: #e6dcc6;
  --inchiostro: #191d1b;
  --inchiostro-2: #4a4f4b;
  --linea-chiara: rgba(25, 29, 27, .12);

  --f-display: 'Cormorant Garamond', 'Cormorant', Garamond, 'Times New Roman', serif;
  --f-testo: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --f-ui: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --f-epigrafe: 'Cinzel', 'Trajan Pro', 'Cormorant Garamond', serif;

  --curva: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
::selection { background: var(--oro); color: var(--notte); }

.nascosto {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.salta {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--oro); color: var(--notte); padding: .6rem 1rem; border-radius: 6px;
  font: 600 .9rem var(--f-ui); text-decoration: none;
}
.salta:focus { top: 1rem; }

.epigrafe {
  font-family: var(--f-epigrafe);
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .72rem;
}

.bottone {
  --bg: var(--oro);
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 3.1rem; padding: 0 1.6rem;
  border: 1px solid transparent; border-radius: 999px;
  background: var(--bg); color: var(--notte);
  font: 600 .95rem/1 var(--f-ui); letter-spacing: .01em;
  text-decoration: none; white-space: nowrap;
  transition: transform .35s var(--curva), box-shadow .35s var(--curva), background-color .25s, color .25s, border-color .25s;
}
.bottone:hover { transform: translateY(-2px); box-shadow: 0 14px 34px -14px rgba(226, 178, 90, .7); }
.bottone:active { transform: translateY(0); }
.bottone svg { width: 1.05em; height: 1.05em; flex: none; transition: transform .35s var(--curva); }
.bottone:hover svg { transform: translateX(3px); }

.bottone.fantasma {
  background: transparent; color: var(--avorio); border-color: rgba(246, 241, 231, .28);
}
.bottone.fantasma:hover { border-color: var(--oro); color: var(--oro-chiaro); box-shadow: none; }

:focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; border-radius: 4px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
