/* MODELLO "PORTFOLIO VISIVO" — ricalca tdi.photos */
:root{
  --bg:#e0e4de;--ink:#0b0b0b;--muted:#4d524b;--acc:#0b0b0b;--accInk:#e0e4de;--line:rgba(11,11,11,.2);
  --serif:'Bodoni Moda',Didot,serif;--sans:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);--pad:clamp(16px,3vw,40px);--sab:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:300 14px/1.7 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.sp{letter-spacing:.5em;text-transform:uppercase;font-size:11px;font-weight:400}

/* menu minimo */
.hdr{position:fixed;inset:0 0 auto;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:16px var(--pad);color:var(--ink)}
.hdr>a,.giu,.prog{background:var(--bg);padding:7px 14px;border-radius:999px}
.mono{font:400 22px/1 var(--serif);text-decoration:none;letter-spacing:.04em}
.hdr a{text-decoration:none}

/* indice a schermo singolo */
.idx{position:relative}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.col{position:absolute;top:0;display:flex;flex-direction:column;gap:26px;width:clamp(120px,13vw,200px);will-change:transform}
.col:nth-child(1){left:3vw}.col:nth-child(2){left:19vw}.col:nth-child(3){right:19vw}.col:nth-child(4){right:3vw}
.film{position:relative;background:#111;padding:8px 16px;border-radius:8px}
.film::before,.film::after{content:"";position:absolute;top:6px;bottom:6px;width:5px;background:repeating-linear-gradient(to bottom,transparent 0 5px,var(--bg) 5px 10px);border-radius:1px}
.film::before{left:5px}.film::after{right:5px}
.film img{aspect-ratio:3/4;object-fit:cover;width:100%;filter:grayscale(1) contrast(1.08);border-radius:2px}
.centro{position:absolute;inset:0;display:grid;place-items:center;text-align:center;z-index:5;pointer-events:none}
.centro>div{pointer-events:auto}
.coord{font:400 12px var(--sans);letter-spacing:.3em;font-variant-numeric:tabular-nums;margin-bottom:10px;display:block}
.nome{font:400 clamp(56px,9.4vw,150px)/1 var(--serif);letter-spacing:-.01em;background:none;border:0;color:inherit;cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap}
.nome:focus-visible{outline:1px solid;outline-offset:8px}
.centro small{display:block;margin-top:12px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.7}
.giu{position:absolute;left:50%;bottom:calc(22px + var(--sab));transform:translateX(-50%);z-index:6}
.prog{position:absolute;right:var(--pad);bottom:calc(22px + var(--sab));z-index:6;font:400 12px var(--sans);letter-spacing:.2em;font-variant-numeric:tabular-nums}

/* galleria del viaggio */
.gal{position:fixed;inset:0;z-index:80;background:var(--bg);overflow-y:auto;clip-path:inset(100% 0 0 0);transition:clip-path .9s var(--ease);visibility:hidden}
.gal.open{clip-path:inset(0 0 0 0);visibility:visible}
.gal .chiudi{position:fixed;top:20px;right:var(--pad);z-index:2;background:var(--ink);color:var(--bg);border:0;border-radius:999px;padding:10px 18px;font:400 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;cursor:pointer}
.gal .in{max-width:1100px;margin:0 auto;padding:110px var(--pad) 90px}
.gal h2{font:400 clamp(60px,10vw,150px)/1 var(--serif);text-align:center}
.gal .coord{text-align:center}
.gal p.st{max-width:56ch;margin:30px auto 60px;text-align:center;font-size:16px}
.gal .ph{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.gal .ph .film:nth-child(2){margin-top:60px}

/* about + contatti */
.about{padding:clamp(100px,15vh,170px) var(--pad);max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,100px)}
.about h2{font:400 clamp(44px,6vw,90px)/1 var(--serif)}
.about .nm{margin:22px 0 18px;line-height:2}
.about p{max-width:46ch}
.about .q{margin:24px 0 10px}
.about .q:first-of-type{margin-top:0}
.about input{width:100%;font:inherit;padding:12px 16px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink)}
.about button[type=submit]{margin-top:24px;background:var(--ink);color:var(--bg);border:0;border-radius:999px;padding:15px 26px;font:400 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;cursor:pointer}
footer{border-top:1px solid var(--line);padding:24px var(--pad) calc(24px + var(--sab));display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}

.static .col{transform:none!important}

@media (max-width:900px){
  .col{width:36vw;gap:16px}
  .col:nth-child(1){left:5vw}.col:nth-child(4){right:5vw}
  .col:nth-child(2),.col:nth-child(3){display:none}
  .centro small{background:var(--bg);display:inline-block;padding:2px 8px;letter-spacing:.14em}
  .giu{left:var(--pad);transform:none}
  .film{padding:5px 11px;border-radius:5px}
  .film::before,.film::after{width:3px;left:4px;background:repeating-linear-gradient(to bottom,transparent 0 3px,var(--bg) 3px 7px)}
  .film::after{left:auto;right:4px}
  .nome{font-size:15vw;background:var(--bg);padding:0 10px}
  .coord{background:var(--bg);display:inline-block;padding:2px 8px}
  .gal .ph,.about{grid-template-columns:minmax(0,1fr)}
  .gal .ph .film:nth-child(2){margin-top:0}
}
