/* =========================================================
   La Soglia dell'Anima — design system
   Palette: Pietra & Ocra · Cormorant Garamond + Jost
   ========================================================= */

:root{
  --pietra:#3A3D3A;
  --pietra-chiara:#6B6C62;
  --ocra:#D4A04A;
  --ocra-soft:#E7D4A6;
  --ocra-deep:#7a5614;
  --lino:#CABFA6;
  --crema:#ECE6D6;
  --crema-2:#F4F0E6;
  --inchiostro:#2C2E2B;
  --inchiostro-2:#23241F;

  --bg:var(--crema);
  --text:var(--inchiostro);
  --muted:#5d5f57;

  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Jost", system-ui, -apple-system, Segoe UI, sans-serif;

  --maxw:1180px;
  --gutter:clamp(20px, 5vw, 64px);
  --radius:14px;
  --shadow:0 18px 50px -28px rgba(44,46,43,.55);
  --shadow-soft:0 10px 30px -22px rgba(44,46,43,.5);

  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--sans);
  color:var(--text);
  background:var(--bg);
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.7;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* accessibility */
.skip-link{
  position:absolute;left:-999px;top:0;z-index:100;
  background:var(--ocra);color:var(--inchiostro);padding:.7em 1.2em;border-radius:0 0 10px 0;
  font-size:.9rem;font-weight:500;
}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--ocra);outline-offset:3px;border-radius:3px}

/* social icons */
.socials{display:inline-flex;align-items:center;gap:.85rem}
.socials a{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(236,230,214,.28);color:var(--crema);
  transition:all .35s var(--ease);
}
.socials a:hover{border-color:var(--ocra);color:var(--ocra);transform:translateY(-2px)}
.socials svg{width:19px;height:19px}
.footer__socials{margin:.2rem 0 1.2rem}
.footer__socials a{width:44px;height:44px;border-color:rgba(236,230,214,.2)}

h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0;letter-spacing:.005em}
h2{font-size:clamp(2rem,4.4vw,3.4rem)}
h3{font-size:clamp(1.4rem,2.4vw,1.9rem)}
p{margin:0 0 1.1em}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}

.eyebrow{
  font-family:var(--sans);
  font-weight:500;
  font-size:.74rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--ocra-deep);
  margin:0 0 1.1rem;
  display:inline-flex;align-items:center;gap:.7em;
}
.section--dark .eyebrow,.section--stone .eyebrow{color:var(--ocra)}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--ocra);opacity:.7}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:var(--ocra);opacity:.7}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-weight:400;font-size:.92rem;letter-spacing:.04em;
  padding:.95em 1.8em;border-radius:100px;cursor:pointer;
  border:1px solid transparent;transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn-primary{background:var(--ocra);color:var(--inchiostro)}
.btn-primary:hover{background:var(--ocra-soft);transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(212,160,74,.8)}
.btn-ghost{border-color:rgba(236,230,214,.45);color:var(--crema)}
.btn-ghost:hover{border-color:var(--ocra);color:var(--ocra)}
.btn-outline{border-color:rgba(44,46,43,.28);color:var(--inchiostro)}
.btn-outline:hover{border-color:var(--ocra);color:var(--ocra-deep)}

/* ---------- nav ---------- */
.nav{
  position:fixed;inset:0 0 auto;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease);
}
.nav.scrolled{
  background:rgba(35,36,31,.97);
  padding:12px var(--gutter);
  box-shadow:0 1px 0 rgba(236,230,214,.08);
}
.nav__brand{display:flex;align-items:center;gap:.7em;color:var(--crema)}
.nav__brand img{width:34px;height:34px}
.nav__brand b{font-family:var(--serif);font-weight:500;font-size:1.18rem;letter-spacing:.02em}
.nav__links{display:flex;align-items:center;gap:1.5rem}
.nav__links a{color:var(--crema);font-size:.9rem;letter-spacing:.04em;opacity:.82;transition:opacity .3s,color .3s}
.nav__links a:hover{opacity:1;color:var(--ocra)}
.nav__links .btn{padding:.6em 1.3em}
.nav__toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav__toggle span{display:block;width:26px;height:2px;background:var(--crema);margin:5px 0;transition:.3s}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--crema);padding:120px var(--gutter) 80px;
  isolation:isolate;
}
.hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05)}
.hero__bg video{width:100%;height:100%;object-fit:cover;object-position:32% center}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(120% 90% at 50% 18%, rgba(35,36,31,.25), rgba(35,36,31,.78) 70%, rgba(35,36,31,.92)),
    linear-gradient(180deg, rgba(44,46,43,.55), rgba(35,36,31,.4));
}
.hero__inner{max-width:780px;animation:rise 1.1s var(--ease) both}
.hero__emblem{width:96px;margin:0 auto 1.6rem;opacity:.95;filter:drop-shadow(0 6px 18px rgba(0,0,0,.4))}
.hero h1{
  font-size:clamp(3rem,9vw,6.4rem);font-weight:500;line-height:.98;
  text-shadow:0 4px 30px rgba(0,0,0,.4);
}
.hero__tagline{
  font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,3vw,1.9rem);
  color:var(--ocra-soft);margin:.6rem 0 .2rem;
}
.hero__sub{font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;color:var(--lino);opacity:.85;margin-bottom:2.2rem}
.hero__cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
.hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--lino);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;opacity:.7;display:flex;flex-direction:column;align-items:center;gap:8px}
.hero__scroll span{width:1px;height:36px;background:linear-gradient(var(--lino),transparent);animation:pulse 2.4s ease-in-out infinite}

/* ---------- sections ---------- */
section{position:relative}
.section{padding:clamp(72px,11vw,140px) 0}
.section--dark{background:var(--inchiostro);color:var(--crema)}
.section--dark h2{color:var(--crema)}
.section--stone{background:var(--inchiostro-2);color:var(--crema)}
.section--cream2{background:var(--crema-2)}

/* intro */
.intro__grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media(min-width:880px){.intro__grid{grid-template-columns:1.15fr .85fr}}
.intro h2{margin-bottom:1.4rem;max-width:18ch}
.intro p{color:var(--muted);max-width:56ch}
.intro p:not(.lead){font-size:1.1em}
.intro .lead{font-family:var(--serif);font-size:clamp(1.365rem,2.42vw,1.785rem);color:var(--text);font-weight:400;line-height:1.4;margin-bottom:1.4rem}
.intro p strong{font-weight:600;color:var(--text)}
.quote-card{
  background:var(--pietra);color:#FAF7EE;border-radius:var(--radius);
  padding:clamp(2rem,4vw,3rem);box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.quote-card::before{
  content:"\201C";position:absolute;top:-.2em;right:.15em;font-family:var(--serif);
  font-size:11rem;color:var(--ocra-soft);opacity:.22;line-height:1;
}
.intro .quote-card p{font-family:var(--serif);font-size:clamp(1.65rem,2.86vw,2.2rem);line-height:1.25;margin:0;position:relative;color:#FAF7EE;max-width:none}
.quote-card .accent{color:var(--ocra-soft)}
.quote-card cite{display:block;margin-top:1.4rem;font-family:var(--sans);font-style:normal;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:#E3D9BD}

/* experience */
.exp__head{max-width:640px;margin-bottom:clamp(2.4rem,5vw,3.6rem)}
.exp__head p{color:rgba(236,230,214,.72);margin-top:1rem}
.exp__layout{display:grid;gap:clamp(1.4rem,3vw,2.4rem);grid-template-columns:1fr}
@media(min-width:980px){.exp__layout{grid-template-columns:1.05fr .95fr}}
.exp__media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-height:280px;position:relative}
.exp__media img{width:100%;height:100%;object-fit:cover;object-position:left center}
.exp__media figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.5rem .9rem;
  background:linear-gradient(transparent,rgba(35,36,31,.85));
  font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--crema);
}
.pillars{display:grid;gap:1rem;grid-template-columns:1fr;align-content:start}
@media(min-width:560px){.pillars{grid-template-columns:1fr 1fr}}
.pillar{
  border:1px solid rgba(236,230,214,.16);border-radius:12px;padding:1.5rem 1.4rem;
  background:rgba(236,230,214,.03);transition:border-color .35s,transform .35s,background .35s;
}
.pillar:hover{border-color:rgba(212,160,74,.5);transform:translateY(-3px);background:rgba(212,160,74,.05)}
.pillar__icon{width:30px;height:30px;color:var(--ocra);margin-bottom:.9rem}
.pillar h3{font-size:1.28rem;margin-bottom:.5rem;color:var(--crema)}
.pillar p{font-size:.92rem;color:rgba(236,230,214,.66);margin:0;line-height:1.6}

/* events */
.events__head{text-align:center;max-width:640px;margin:0 auto clamp(2.6rem,5vw,3.8rem)}
.events__head p{color:var(--muted);margin-top:1rem}
.events__list{display:grid;gap:clamp(1.6rem,4vw,2.6rem)}
.event-card{
  display:grid;grid-template-columns:1fr;gap:0;background:#fff;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(44,46,43,.07);
}
.event-type{
  display:inline-block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ocra);font-weight:600;margin-bottom:.9rem;
}
.event-card__desc{
  color:var(--muted);font-size:1rem;margin:0 0 1.6rem;
  border-top:1px solid rgba(44,46,43,.1);padding-top:1.2rem;
}
@media(min-width:860px){.event-card{grid-template-columns:.82fr 1.18fr}}
.event-card__media{position:relative;background:var(--inchiostro);min-height:340px}
.event-card__media img,.event-card__media video{width:100%;height:100%;object-fit:cover;object-position:top center}
.event-card__body{padding:clamp(1.8rem,3.5vw,2.8rem)}
.event-date{
  display:inline-flex;align-items:baseline;gap:.4em;flex-wrap:wrap;
  background:var(--inchiostro);color:var(--crema);border-radius:100px;
  padding:.55em 1.2em;font-family:var(--serif);font-size:1.2rem;margin-bottom:1.1rem;
}
.event-date b{color:var(--ocra);font-weight:500;white-space:nowrap}
.event-date small{font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;opacity:.75;margin-left:.3em}
.event-card h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:.5rem}
.event-card__role{font-family:var(--serif);font-style:italic;color:var(--pietra-chiara);font-size:1.15rem;margin-bottom:1.4rem}
.event-meta{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.4rem}
.event-meta div{display:flex;gap:.7em;align-items:flex-start;font-size:.95rem;color:var(--muted)}
.event-meta svg{width:18px;height:18px;color:var(--ocra);flex:0 0 auto;margin-top:.2em}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.tag{font-size:.74rem;letter-spacing:.06em;padding:.4em .9em;border-radius:100px;background:var(--crema);color:var(--pietra);border:1px solid rgba(44,46,43,.1)}
.event-guides{font-size:.82rem;color:var(--muted);margin-bottom:1.6rem;border-top:1px solid rgba(44,46,43,.1);padding-top:1.2rem}
.event-guides b{color:var(--text);font-weight:500}
.events__note{text-align:center;margin-top:2.4rem;color:var(--muted);font-size:.95rem}
.events__note a{color:var(--ocra-deep);border-bottom:1px solid var(--ocra)}

/* guides */
.guides__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1.6rem,3vw,2.6rem)}
.guide{text-align:center;flex:0 1 220px}
.guide__photo{
  width:clamp(120px,40%,170px);aspect-ratio:1;border-radius:50%;object-fit:cover;
  margin:0 auto 1.2rem;border:3px solid rgba(212,160,74,.35);
  box-shadow:var(--shadow-soft);filter:saturate(.95);
}
.guide h3{font-size:1.3rem;margin-bottom:.35rem}
.guide p{font-size:.8rem;letter-spacing:.04em;color:var(--ocra);text-transform:uppercase;margin:0;line-height:1.5}

/* gallery */
.gallery__head{text-align:center;max-width:560px;margin:0 auto clamp(2.4rem,5vw,3.4rem)}
.gallery__head p{color:rgba(236,230,214,.7);margin-top:1rem}
.gallery{
  display:grid;gap:14px;grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;
}
@media(min-width:760px){.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}}
.gallery figure{margin:0;overflow:hidden;border-radius:12px;position:relative;cursor:pointer}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s}
.gallery figure:hover img{transform:scale(1.07)}
.gallery .tall{grid-row:span 2}
.gallery .is-video img{filter:brightness(.82)}
.play-badge{position:absolute;inset:0;margin:auto;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:rgba(212,160,74,.92);color:var(--inchiostro);border-radius:50%;box-shadow:0 10px 28px -8px rgba(0,0,0,.6);transition:transform .4s var(--ease),background .3s;pointer-events:none;z-index:2}
.play-badge svg{width:28px;height:28px;margin-left:3px}
.gallery .is-video:hover .play-badge{transform:scale(1.12);background:var(--ocra-soft)}
.gallery .is-video::after{content:"Video";position:absolute;left:10px;bottom:10px;z-index:2;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crema);background:rgba(35,36,31,.72);padding:.32em .8em;border-radius:100px}
.gallery .is-video:focus-visible{outline:2px solid var(--ocra);outline-offset:3px}
@media(max-width:759px){.gallery .tall{grid-row:span 1}}

/* testimonials */
.testimonials .events__head p{color:var(--muted)}
.t-grid{column-count:1;column-gap:clamp(1.4rem,3vw,2rem)}
@media(min-width:820px){.t-grid{column-count:2}}
.t-card{
  margin:0 0 clamp(1.4rem,3vw,2rem);background:#fff;border-radius:var(--radius);
  padding:clamp(2rem,4vw,2.8rem);box-shadow:var(--shadow-soft);
  border:1px solid rgba(44,46,43,.07);position:relative;overflow:hidden;
  display:block;break-inside:avoid;-webkit-column-break-inside:avoid;
}
.t-card::before{
  content:"\201C";position:absolute;top:-.15em;left:.25em;
  font-family:var(--serif);font-size:7rem;line-height:1;color:var(--ocra);opacity:.18;
}
.t-card blockquote{
  margin:0;position:relative;font-family:var(--serif);font-weight:400;
  font-size:clamp(1.18rem,2vw,1.4rem);line-height:1.5;color:var(--text);font-style:italic;
}
.t-card figcaption{
  margin-top:1.4rem;font-family:var(--sans);font-style:normal;font-weight:500;
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ocra);
  display:flex;align-items:center;gap:.7rem;
}
.t-avatar{
  width:46px;height:46px;border-radius:50%;flex:0 0 auto;
  object-fit:cover;display:block;
  box-shadow:var(--shadow-soft);border:2px solid #fff;
  outline:1px solid rgba(212,160,74,.4);
}

/* contact */
.contact{text-align:center}
.contact__emblem{width:78px;margin:0 auto 1.6rem;opacity:.92}
.contact h2{margin-bottom:1.1rem}
.contact .lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.5vw,1.8rem);color:var(--ocra-soft);max-width:24ch;margin:0 auto 2.2rem}
.contact__rows{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.5rem;margin-bottom:2.4rem;color:rgba(236,230,214,.8)}
.contact__rows a,.contact__rows span{display:inline-flex;align-items:center;gap:.6em;font-size:1rem}
.contact__rows svg{width:20px;height:20px;color:var(--ocra)}
.contact__rows a:hover{color:var(--ocra)}
.contact .socials{margin:0 0 2.2rem}

/* footer */
.footer{background:var(--inchiostro-2);color:rgba(236,230,214,.6);padding:2.4rem var(--gutter);text-align:center;font-size:.82rem;letter-spacing:.03em}
.footer b{font-family:var(--serif);color:var(--crema);font-weight:500;letter-spacing:.04em;font-size:1rem}
.footer__sep{margin:.4rem 0 1rem;color:var(--lino);font-style:italic;font-family:var(--serif)}
.footer__links{margin-top:.7rem;font-size:.82rem}
.footer__links a,.footer__cc{color:rgba(236,230,214,.7);transition:color .3s}
.footer__links a:hover,.footer__cc:hover{color:var(--ocra)}
.footer__cc{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;cursor:pointer}

/* colonna sonora */
.music-toggle{
  position:fixed;left:20px;bottom:20px;z-index:60;
  display:inline-flex;align-items:center;gap:.55em;
  background:rgba(35,36,31,.96);color:var(--crema);
  border:1px solid rgba(212,160,74,.4);border-radius:100px;
  padding:.6em .92em;cursor:pointer;font-family:var(--sans);font-size:.82rem;letter-spacing:.04em;
  box-shadow:0 12px 30px -14px rgba(0,0,0,.6);transition:max-width .45s var(--ease),border-color .35s;
  max-width:48px;overflow:hidden;white-space:nowrap;
}
.music-toggle:hover,.music-toggle.playing{max-width:240px;border-color:var(--ocra)}
.music-toggle__ico{position:relative;width:22px;height:22px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--ocra)}
.music-toggle__ico .ico-note{width:18px;height:18px}
.music-toggle__txt{opacity:0;transition:opacity .35s}
.music-toggle:hover .music-toggle__txt,.music-toggle.playing .music-toggle__txt{opacity:1}
.music-toggle .eq{position:absolute;inset:0;display:none;align-items:center;justify-content:center;gap:2px}
.music-toggle .eq i{width:2.5px;height:13px;background:var(--ocra);border-radius:2px;transform-origin:center;animation:eqbar .9s ease-in-out infinite}
.music-toggle .eq i:nth-child(2){animation-delay:.2s}
.music-toggle .eq i:nth-child(3){animation-delay:.45s}
.music-toggle .eq i:nth-child(4){animation-delay:.1s}
.music-toggle.playing .ico-note{display:none}
.music-toggle.playing .eq{display:flex}
@keyframes eqbar{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.music-toggle .eq i{animation:none}}

/* cookie consent */
.cc-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;
  background:rgba(35,36,31,.98);color:var(--crema);
  padding:1rem clamp(20px,5vw,64px);box-shadow:0 -10px 34px -18px rgba(0,0,0,.7);
  border-top:1px solid rgba(212,160,74,.25);
}
.cc-banner.show{display:flex;gap:1.4rem;align-items:center;justify-content:center;flex-wrap:wrap}
.cc-banner p{margin:0;font-size:.86rem;max-width:64ch;line-height:1.5;color:rgba(236,230,214,.85)}
.cc-actions{display:flex;gap:.6rem;flex-shrink:0}
.cc-btn{font-family:var(--sans);font-size:.85rem;letter-spacing:.03em;padding:.62em 1.4em;border-radius:100px;cursor:pointer;border:1px solid transparent;transition:all .3s var(--ease)}
.cc-accept{background:var(--ocra);color:var(--inchiostro)}
.cc-accept:hover{background:var(--ocra-soft)}
.cc-reject{background:transparent;color:var(--crema);border-color:rgba(236,230,214,.4)}
.cc-reject:hover{border-color:var(--ocra);color:var(--ocra)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(20,21,18,.94);display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;backdrop-filter:blur(4px)}
.lightbox.open{display:flex;animation:fade .3s ease}
.lightbox img{max-width:92vw;max-height:90vh;border-radius:8px;box-shadow:0 30px 80px -20px #000}
.lightbox__video{display:none;max-width:min(440px,94vw);max-height:88vh;border-radius:10px;box-shadow:0 30px 80px -20px #000;background:#000;cursor:default}
.lightbox.has-video img{display:none}
.lightbox.has-video .lightbox__video{display:block}
.lightbox__close{position:absolute;top:22px;right:26px;color:var(--crema);font-size:2rem;line-height:1;background:none;border:0;cursor:pointer;opacity:.8}

/* reveal on scroll */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* animations */
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{opacity:.2;transform:scaleY(.6)}50%{opacity:.9;transform:scaleY(1)}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* mobile nav */
@media(max-width:1024px){
  .nav__toggle{display:block;z-index:60}
  .nav__links{
    position:fixed;inset:0;flex-direction:column;justify-content:center;gap:2rem;
    background:rgba(35,36,31,.98);backdrop-filter:blur(8px);
    transform:translateX(100%);transition:transform .45s var(--ease);
  }
  .nav__links.open{transform:none}
  .nav__links a{font-size:1.2rem}
  .nav.open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.open .nav__toggle span:nth-child(2){opacity:0}
  .nav.open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
/* altre riflessioni (link correlati negli articoli) */
.rel-links{margin:2.4em 0 0;border-top:1px solid rgba(44,46,43,.14);padding-top:1.3em}
.rel-links .rel-kick{font-family:var(--sans);font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;color:var(--ocra-deep);margin:0 0 .5em}
.rel-links a{display:block;font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.4rem);color:var(--inchiostro);text-decoration:none;padding:.5em 0;border-bottom:1px solid rgba(44,46,43,.10)}
.rel-links a:hover{color:var(--ocra-deep)}

@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.hero__inner{animation:none}.hero__scroll span{animation:none}}

/* =========================================================
   Rifinitura — pass di dettaglio (texture, micro-interazioni)
   ========================================================= */

/* tipografia: interruzioni di riga più eleganti */
h1,h2,h3{text-wrap:balance}
p,.lead,blockquote{text-wrap:pretty}

/* grana sottile su tutta la pagina — tatto "carta/luce", toglie il piatto digitale.
   Overlay sopra i contenuti (sotto nav/lightbox), non interattivo. */
body::before{
  content:"";position:fixed;inset:0;z-index:9;pointer-events:none;
  opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* hero: alone d'oro che respira sotto l'emblema */
.hero__inner::after{
  content:"";display:block;width:54px;height:1px;margin:1.6rem auto 0;
  background:linear-gradient(90deg,transparent,var(--ocra),transparent);opacity:.7;
}

/* bottoni: gradiente d'oro + lampo di luce che attraversa l'hover */
.btn-primary{
  background:linear-gradient(135deg,var(--ocra) 0%,#e3b463 55%,var(--ocra) 100%);
  position:relative;overflow:hidden;
}
.btn-primary::after{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);transition:left .7s var(--ease);pointer-events:none;
}
.btn-primary:hover::after{left:130%}

/* nav: sottolineatura animata che cresce dal centro */
.nav__links a:not(.btn){position:relative;padding-bottom:3px}
.nav__links a:not(.btn)::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;
  background:var(--ocra);transform:translateX(-50%);transition:width .35s var(--ease);
}
.nav__links a:not(.btn):hover::after{width:100%}

/* quote-card: cornice d'oro a filo + profondità (no side-stripe) */
.quote-card{
  border:1px solid rgba(212,160,74,.22);
  background:linear-gradient(155deg,var(--pietra),#32352f);
}

/* galleria: anello d'oro interno + luce al passaggio */
.gallery figure::after{
  content:"";position:absolute;inset:0;border-radius:12px;pointer-events:none;
  box-shadow:inset 0 0 0 0 rgba(212,160,74,0);transition:box-shadow .45s var(--ease);
}
.gallery figure:hover::after{box-shadow:inset 0 0 0 2px rgba(212,160,74,.6)}
.gallery figure:hover img{filter:brightness(1.05) saturate(1.05)}

@media(prefers-reduced-motion:reduce){
  .btn-primary::after{display:none}
}
