/* Layout: una sola colonna verticale come un ricordino a lume di candela — ritratto, nome, vita in foto, sorriso, libro delle condoglianze */
:root{
  --bg:#1a1816;          /* carbone caldo */
  --bg-2:#221f1c;        /* superficie */
  --ink:#ede5d8;         /* avorio */
  --muted:#a69a8b;       /* tortora */
  --gold:#c8a66a;        /* oro spento, al posto del giallo */
  --line:rgba(200,166,106,.28);
  --script:"Pinyon Script","Great Vibes",cursive;
  --serif:"Cormorant Garamond","Garamond","Georgia",serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:1.2rem;line-height:1.6;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  -webkit-font-smoothing:antialiased}
a{color:var(--gold)}
.wrap{max-width:1100px;margin:0 auto}
.narrow{max-width:640px;margin:0 auto}

nav.top{display:flex;justify-content:center;gap:clamp(16px,4vw,40px);padding-block:22px 0}
nav.top a{font-family:var(--script);font-size:1.75rem;color:var(--ink);text-decoration:none;opacity:.8;padding:2px 6px;border-bottom:1px solid transparent}
nav.top{flex-wrap:wrap}
nav.top a:hover,nav.top a:focus-visible,nav.top a[aria-current]{opacity:1;border-color:var(--line);outline:none}
nav.top a[aria-current]{border-color:var(--gold)}

/* HERO */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(16px,4vw,56px);padding-block:clamp(24px,6vw,72px) 24px}
.portrait{justify-self:end;width:min(440px,100%);aspect-ratio:1183/1527;max-width:100%;
  background:var(--ritratto) center/cover no-repeat;
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 46%,#000 58%,transparent 100%);
          mask-image:radial-gradient(ellipse 50% 50% at 50% 46%,#000 58%,transparent 100%)}
.name{justify-self:start;text-align:center}
.name h1{font-family:var(--script);font-weight:400;font-size:clamp(3.4rem,8vw,6rem);line-height:1;margin:0;letter-spacing:.01em}
.name .surname{display:block;font-family:var(--serif);font-size:.95rem;letter-spacing:.42em;text-transform:uppercase;color:var(--muted);margin-top:14px;padding-left:.42em}
.dates{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px;color:var(--gold);font-size:1.15rem;letter-spacing:.08em;font-variant-numeric:lining-nums}
.dates i{display:block;width:34px;height:1px;background:var(--line)}
.motto{text-align:center;font-family:var(--script);font-size:clamp(2rem,4.6vw,3.2rem);font-weight:400;line-height:1.25;margin:clamp(32px,6vw,64px) auto 0;text-wrap:balance}

.sep{display:flex;align-items:center;justify-content:center;gap:16px;margin-block:clamp(48px,8vw,96px)}
.sep::before,.sep::after{content:"";width:min(120px,25vw);height:1px;background:var(--line)}
.sep span{width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--gold)}

h2{font-family:var(--script);font-weight:400;font-size:clamp(2.6rem,6vw,3.8rem);text-align:center;margin:0 0 6px;line-height:1.1}
.lead{text-align:center;color:var(--muted);font-style:italic;margin:0 auto 36px;max-width:52ch;text-wrap:balance}

/* GALLERIA */
.gallery{columns:3 260px;column-gap:14px}
.gallery button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:var(--bg-2);cursor:zoom-in;break-inside:avoid;position:relative;overflow:hidden}
.gallery img{display:block;width:100%;height:auto;filter:saturate(.85) brightness(.92);transition:filter .5s,transform .8s}
.gallery button:hover img,.gallery button:focus-visible img{filter:none;transform:scale(1.025)}
.gallery button:focus-visible{outline:1px solid var(--gold);outline-offset:3px}
.era{column-span:all;display:flex;align-items:center;gap:14px;color:var(--gold);font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;margin:10px 0 18px}
.era::after{content:"";flex:1;height:1px;background:var(--line)}

/* VIDEO */
.film{max-width:900px;margin:0 auto;border:1px solid var(--line);padding:8px;background:var(--bg-2)}
.film video{display:block;width:100%;height:auto;aspect-ratio:16/9;max-width:100%;background:#000}

/* SORRISO */
.smile{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,5vw,60px);align-items:center}
.smile img{width:100%;height:auto;display:block}
.smile blockquote{margin:0;font-size:clamp(1.35rem,2.4vw,1.7rem);line-height:1.5;font-style:italic;text-wrap:pretty}
.smile blockquote footer{font-style:normal;color:var(--muted);font-size:1rem;margin-top:16px;letter-spacing:.06em}

/* CONDOGLIANZE */
form.book{display:grid;gap:14px;margin-bottom:40px}
label{font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.field{display:grid;gap:6px}
input,textarea{font:inherit;font-size:1.15rem;color:var(--ink);background:var(--bg-2);border:1px solid var(--line);padding:12px 14px;border-radius:2px;width:100%}
input:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn{justify-self:start;font:inherit;font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--gold);border:0;padding:12px 26px;border-radius:2px;cursor:pointer}
.btn:hover{filter:brightness(1.08)}.btn:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
.btn[disabled]{opacity:.5;cursor:wait}
.note{font-size:1rem;color:var(--muted);margin:0}
.status{min-height:1.6em;color:var(--gold);font-style:italic;margin:0}
.messages{display:grid;gap:0}
.msg{padding:22px 0;border-top:1px solid var(--line)}
.msg p{margin:0 0 8px;white-space:pre-line}
.msg .by{font-size:1rem;color:var(--muted)}
.msg .by b{color:var(--ink);font-weight:600;font-style:italic}
.empty{color:var(--muted);font-style:italic;text-align:center;padding:20px 0;border-top:1px solid var(--line)}

footer.site{text-align:center;color:var(--muted);font-size:.95rem;padding-block:72px 40px}
footer.site .script{font-family:var(--script);font-size:2rem;color:var(--ink);display:block;margin-bottom:6px}

/* MUSICA */
.music{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;
  display:flex;align-items:center;gap:10px;font:inherit;font-size:.95rem;letter-spacing:.1em;color:var(--ink);background:rgba(26,24,22,.85);
  border:1px solid var(--line);border-radius:999px;padding:9px 16px 9px 12px;cursor:pointer;backdrop-filter:blur(6px)}
.music:focus-visible{outline:1px solid var(--gold)}
.bars{display:flex;align-items:flex-end;gap:2px;height:14px}
.bars i{width:2px;background:var(--gold);height:30%}
.music.on .bars i{animation:eq 1.1s ease-in-out infinite}
.music.on .bars i:nth-child(2){animation-delay:.2s}.music.on .bars i:nth-child(3){animation-delay:.45s}
@keyframes eq{0%,100%{height:25%}50%{height:100%}}

/* LIGHTBOX */
.lb{position:fixed;inset:0;z-index:30;background:rgba(14,13,12,.96);display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
.lb img{max-width:92vw;max-height:86vh;width:auto;height:auto;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lb button{position:absolute;background:none;border:0;color:var(--ink);font:inherit;font-size:2.4rem;line-height:1;cursor:pointer;padding:14px;opacity:.75}
.lb button:hover,.lb button:focus-visible{opacity:1;outline:none;color:var(--gold)}
.lb .x{top:calc(8px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px))}
.lb .prev{left:calc(4px + env(safe-area-inset-left,0px))}.lb .next{right:calc(4px + env(safe-area-inset-right,0px))}
.lb .count{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:var(--muted);font-size:.95rem;letter-spacing:.2em}

/* ingresso morbido, mai invisibile a riposo */
@media (prefers-reduced-motion:no-preference){
  .hero .portrait{animation:rise 1.6s ease-out both}
  .hero .name{animation:rise 1.6s .35s ease-out both}
  .motto{animation:rise 1.6s .7s ease-out both}
  @keyframes rise{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
}
@media (max-width:720px){
  .hero{grid-template-columns:1fr;gap:4px}
  .portrait,.name{justify-self:center}
  .portrait{width:min(340px,92%)}
  .smile{grid-template-columns:1fr}
  .smile blockquote{text-align:center}
  .gallery{columns:2 150px;column-gap:10px}
  .gallery button{margin-bottom:10px}
}

.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.book .comment-notes,.book .logged-in-as{font-size:1rem;color:var(--muted);margin:0}
.book .logged-in-as a{color:var(--muted)}
.book .form-submit{margin:0}
.book p{margin:0}
.book .comment-form-author,.book .comment-form-comment{display:grid;gap:6px}
.thanks{border:1px solid var(--line);padding:16px 18px;color:var(--ink);font-style:italic;margin:0 0 32px}
body.admin-bar .music{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.page-simple{max-width:720px;margin:0 auto;padding-block:60px}
.page-simple h1{font-family:var(--script);font-weight:400;font-size:3.2rem;margin:0 0 20px}

/* CANDELE */
.candles{text-align:center;margin-bottom:56px}
.light{display:grid;justify-items:center;gap:22px}
.light-form{display:grid;gap:8px;width:100%;max-width:460px;text-align:left}
.light-form .row{display:flex;gap:10px;flex-wrap:wrap}
.light-form .row input{flex:1 1 200px;min-width:0;width:auto}
.light-form .status{text-align:center}
.count-c{color:var(--gold);letter-spacing:.06em;margin:18px 0 22px;font-variant-numeric:lining-nums}
.candle{position:relative;display:inline-block;width:14px;height:46px}
.candle .wax{position:absolute;left:0;right:0;bottom:0;height:30px;border-radius:2px 2px 1px 1px;background:linear-gradient(90deg,#d9cdb8,#f3ead9 45%,#c9bba2)}
.candle .flame{position:absolute;left:50%;bottom:30px;width:8px;height:14px;margin-left:-4px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%;
  background:radial-gradient(ellipse at 50% 75%,#fff6d8 0 25%,#ffd27a 45%,#e8893a 80%,transparent 100%);
  box-shadow:0 0 10px 3px rgba(255,190,90,.35),0 0 26px 8px rgba(255,170,60,.12);transform-origin:50% 100%}
.candle.big{width:34px;height:120px}
.candle.big .wax{height:80px}
.candle.big .flame{bottom:80px;width:18px;height:34px;margin-left:-9px;box-shadow:0 0 24px 8px rgba(255,190,90,.35),0 0 70px 24px rgba(255,170,60,.14)}
.lit{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:18px 14px}
.lit li{display:grid;justify-items:center;gap:6px;width:84px}
.lit .who{font-size:.9rem;color:var(--muted);line-height:1.25;overflow-wrap:anywhere}
.lit li.new{animation:rise 1.2s ease-out both}
h3.sub{font-family:var(--script);font-weight:400;font-size:2.3rem;text-align:center;margin:0 0 18px}
@media (prefers-reduced-motion:no-preference){
  .candle .flame{animation:flick 2.6s ease-in-out infinite}
  .lit li:nth-child(3n) .flame{animation-duration:3.1s}
  .lit li:nth-child(3n+1) .flame{animation-delay:-1.2s}
  @keyframes flick{0%,100%{transform:scale(1,1) rotate(-1deg)}25%{transform:scale(.94,1.06) rotate(1.5deg)}50%{transform:scale(1.04,.95) rotate(-.5deg)}75%{transform:scale(.97,1.04) rotate(1deg)}}
}
[hidden]{display:none!important}

/* PAGINE */
.page-head{text-align:center;padding-block:clamp(32px,6vw,64px) 8px}
.page-head h1{font-family:var(--script);font-weight:400;font-size:clamp(3rem,7vw,4.6rem);line-height:1.15;margin:0 0 6px;text-wrap:balance}
.invite{display:grid;justify-items:center;gap:14px;text-align:center}
.invite .count-c{margin:6px 0}
a.btn{text-decoration:none;display:inline-block}
@media (max-width:720px){
  nav.top{gap:6px 14px}
  nav.top a{font-size:1.45rem}
  .music{padding:9px 12px}
  .music #music-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
}
