:root{--paper:#fff;--ink:#181818;--muted:#77746e;--line:#e8e6e2;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--gutter:clamp(20px,4vw,76px);--gap:12px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%;height:auto}
a:focus-visible,button:focus-visible{outline:2px solid #605f5b;outline-offset:4px}
.site-header{height:80px;padding:0 var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;background:#fff}
.wordmark{font-size:clamp(13px,1.2vw,18px);font-weight:700;letter-spacing:.075em;white-space:nowrap}.wordmark small{display:block;font-size:9px;font-weight:400;letter-spacing:.24em;color:var(--muted);margin-top:6px}
.main-nav{display:flex;align-items:center;gap:clamp(20px,2.5vw,44px)}.main-nav a,.menu-button{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.main-nav a:hover,.main-nav a[aria-current=page]{opacity:.53}
.menu-button{display:none;border:0;padding:12px 0;background:transparent;cursor:pointer}
.page-shell{width:min(calc(100% - 2 * var(--gutter)),1600px);margin-inline:auto}
.site-footer{padding:25px var(--gutter) 30px;margin-top:clamp(70px,9vw,126px);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:16px 30px;flex-wrap:wrap;font-size:11px;letter-spacing:.015em;color:#77746e}
.site-footer a{transition:color .2s}.site-footer a:hover{color:var(--ink)}
.footer-email{color:var(--ink);font-size:12px;overflow-wrap:anywhere}
.footer-meta{display:flex;gap:clamp(15px,2.2vw,32px);align-items:center;flex-wrap:wrap;font-size:10px;letter-spacing:.045em}
.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;text-transform:uppercase;color:var(--muted)}
.display{font:400 clamp(62px,8.6vw,134px)/1.02 var(--serif);letter-spacing:-.053em;margin:14px 0 18px}
/* Home: un'unica coppia di copertine, stesso peso, niente tagli o slideshow. */
.home-intro{display:flex;align-items:end;justify-content:space-between;gap:36px;padding:clamp(54px,5.5vw,88px) 0 clamp(34px,3.5vw,54px)}
.home-heading{font:400 clamp(41px,5.2vw,75px)/1.05 var(--serif);letter-spacing:-.047em;margin:19px 0 0}
.home-heading em{font-weight:400}.home-intro p{font:12px/1.7 var(--sans);color:var(--muted);max-width:225px;margin:0 0 4px}
.home-covers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);align-items:start}
/* Le copertine hanno un rettangolo comune ma le foto non vengono mai ritagliate.
   La posizione assoluta evita che le dimensioni intrinseche dei file facciano
   crescere una cella CSS Grid e nascondano parte dell’immagine. */
.home-cover{min-width:0;display:block}
.home-cover-image{display:block;position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:#fff}
.home-cover-image img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;transition:opacity .2s}
.home-cover:hover img{opacity:.87}
.home-cover-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd9d3;gap:8px;padding:18px 1px 15px;font:400 clamp(22px,2.5vw,36px)/1.2 var(--serif)}
.home-cover-title strong{font-weight:400}.home-cover-title>span{font:26px/1 var(--sans)}
/* Index di progetto: anche le copertine conservano sempre l'intera fotografia. */
.page-title-block{padding:clamp(65px,8vw,118px) 0 clamp(40px,6vw,78px)}
.page-sub{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;color:var(--muted);font:12px/1.7 var(--sans)}
.page-sub p{margin:0;max-width:500px}
.projects-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,32px);align-items:start}
/* Copertine Projects: tre riquadri 2:3 identici. L’immagine rimane sempre intera;
   il contenitore posizionato impedisce il taglio dovuto al dimensionamento di CSS Grid. */
.project-card{display:block;min-width:0}
.project-card-image{position:relative;display:block;width:100%;aspect-ratio:2/3;overflow:hidden;background:#fafaf9}
.project-card-image img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;transition:opacity .2s}
.project-card:hover img{opacity:.82}
.project-card-label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 5px;font:400 clamp(25px,2.6vw,39px)/1.2 var(--serif);letter-spacing:-.04em}
.project-card-label strong{font-weight:400}.project-card-label>span{font:24px var(--sans)}.project-card small{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
/* V7: falso contact sheet per Commissioned Work e singoli Projects editoriale, con proporzioni INTEGRE.
   Due immagini nella stessa riga hanno altezza simile grazie all'aspect ratio:
   la foto orizzontale prende piu' larghezza, quindi non diventa un francobollo. */
.contact-gallery{
  --proof-column-gap:clamp(20px,2.15vw,36px);
  --proof-row-gap:clamp(36px,4.5vw,70px);
  display:flex;flex-direction:column;gap:var(--proof-row-gap);
}
.contact-row{display:flex;align-items:flex-start;gap:var(--proof-column-gap);width:100%;}
.contact-frame{min-width:0;margin:0;}
.contact-row--pair .contact-frame,
.contact-row--triple .contact-frame{flex:var(--aspect) 1 0;}
.contact-frame .photo{display:block;width:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in;}
.contact-frame .photo img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;transition:opacity .2s;}
.contact-frame .photo:hover img{opacity:.9;}
.contact-row--single{justify-content:center;}
.contact-row--single .contact-frame{display:block;max-width:100%;width:fit-content;}
.contact-row--single img{display:block;width:auto;max-width:100%;height:auto;max-height:min(79vh,900px);margin-inline:auto;}
/* Le orizzontali isolate ricevono un piano intero, ma senza ingrandirle all'infinito. */
.contact-row--wide .contact-frame{max-width:min(100%,1280px);}
.contact-index{display:flex;align-items:center;justify-content:flex-start;gap:16px;
  padding-top:10px;color:#87837e;font:10px/1.4 var(--sans);letter-spacing:.15em;}
/* Le note piccole sono volutamente solo numeri: il protagonista resta lo scatto. */
.back-line{display:inline-block;margin-top:85px;padding-bottom:8px;border-bottom:1px solid #999;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:700}
/* Contatti: email principale, numero e Instagram secondari. */
.contact-content{min-height:calc(100vh - 280px);max-width:850px;padding:clamp(90px,10vw,160px) 0 0}
.contact-content .display{font-size:clamp(58px,9vw,135px);margin:18px 0 20px}
.contact-intro{color:var(--muted);font:13px/1.65 var(--sans);margin:0 0 55px}
.contact-row{margin:0 0 34px}.contact-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.contact-link{display:inline-block;max-width:100%;padding-bottom:6px;border-bottom:1px solid #b4b0ab;font:400 clamp(21px,3.1vw,43px)/1.25 var(--serif);overflow-wrap:anywhere}
.contact-link.secondary-link{font-size:clamp(21px,2.3vw,31px)}.contact-link:hover{border-color:var(--ink)}
.contact-hint{display:inline-block;color:var(--muted);font-size:12px;font-style:italic;padding:6px 0}
/* Privacy: semplice pagina di testo, non una galleria. */
.policy-page .page-title-block{padding-bottom:36px}
.policy-copy{max-width:760px;font:14px/1.8 var(--sans);color:#494744}
.policy-copy h2{font:400 clamp(23px,3vw,30px)/1.3 var(--serif);letter-spacing:-.025em;color:var(--ink);margin:36px 0 12px}
.policy-copy p{margin:0 0 16px}
.policy-copy a{text-decoration:underline;text-underline-offset:3px}
.policy-draft{max-width:760px;border-left:2px solid #9b8d7e;background:#f8f7f4;padding:15px 20px;font:12px/1.65 var(--sans);color:#554f49}
/* Lightbox */
.lightbox{position:fixed;inset:0;display:none;background:#fafaf8;z-index:50;align-items:center;justify-content:center;padding:65px 65px 60px}
.lightbox.is-open{display:flex}.lightbox img{width:auto;max-width:100%;max-height:100%;object-fit:contain}
.lightbox button{position:absolute;cursor:pointer;background:transparent;border:0;padding:14px;color:#242424;line-height:1;font-size:30px;transition:opacity .2s}.lightbox button:hover{opacity:.58}.lightbox button:focus-visible{outline:2px solid #555;outline-offset:0}
.lightbox .lb-close{right:17px;top:12px;font-size:36px}.lightbox .lb-prev{left:10px;top:50%}.lightbox .lb-next{right:10px;top:50%}
.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.2em;color:#74716c}body.lightbox-open{overflow:hidden}
@media(max-width:850px){.home-intro{display:block}.home-intro p{max-width:none;margin-top:17px}.projects-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){:root{--gutter:20px;--gap:9px}
.site-header{height:68px}.wordmark{font-size:13px}.wordmark small{font-size:8px}.menu-button{display:block}
.main-nav{display:none;position:absolute;top:68px;left:0;right:0;padding:24px var(--gutter) 30px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:start;gap:23px}
.main-nav.is-open{display:flex}.main-nav a{font-size:13px}
.home-intro{padding:52px 0 28px}.home-heading{font-size:clamp(41px,9vw,62px)}.home-covers{grid-template-columns:1fr;gap:35px}.home-cover-title{font-size:28px;padding:13px 0 11px}
.page-title-block{padding:72px 0 45px}.display{font-size:clamp(60px,13vw,92px)}
.contact-gallery{--proof-row-gap:30px;--proof-column-gap:22px}
.contact-row--pair,.contact-row--triple{flex-direction:column;gap:30px}
.contact-row--pair .contact-frame{width:100%;flex:none}
.contact-frame .photo img{max-height:80vh;width:auto;max-width:100%;margin-inline:auto}
.contact-row--single .contact-frame{width:100%}
.contact-row--single img{max-height:80vh}
.contact-index{padding-top:8px}.projects-list{grid-template-columns:1fr;gap:48px}.project-card-image{aspect-ratio:2/3}

.contact-content{padding-top:85px}.contact-content .display{font-size:clamp(60px,13vw,96px)}
.site-footer{margin-top:85px;line-height:1.7}.footer-meta{gap:12px 22px}.lightbox{padding:62px 13px 54px}.lightbox .lb-prev{left:0}.lightbox .lb-next{right:0}.lightbox button{background:rgba(250,250,248,.88);border-radius:50%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}


/* Testi introduttivi delle serie personali (Street rimane senza introduzione). */
.project-title-block .page-sub{align-items:flex-start}
.project-title-block .project-intro{max-width:690px;color:#595651;font:13px/1.85 var(--sans)}
.project-title-block .project-intro p{margin:0 0 11px;max-width:none}
.project-title-block .project-intro p:last-child{margin-bottom:0}
.project-title-block .page-sub--count-only{justify-content:flex-end}
@media(max-width:620px){.project-title-block .project-intro{font-size:13px;line-height:1.75}}


/* PORTFOLIO_EDITORIAL_PROJECT_LAYOUT_V1 */
/* Header delle serie: due colonne editoriali, in continuita' col sito. */
.project-editorial{padding:clamp(60px,7.2vw,108px) 0 clamp(38px,4.1vw,62px)}
.project-editorial-meta{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap}
.project-editorial-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,5.2vw,100px);align-items:start;margin:clamp(34px,4.2vw,66px) 0 clamp(42px,5vw,82px)}
.project-editorial-title-group{min-width:0}
.project-editorial .project-editorial-title{font-size:clamp(64px,7.1vw,118px);line-height:1.01;
  margin:0 0 clamp(20px,2.4vw,34px);letter-spacing:-.052em;overflow-wrap:anywhere}
.project-editorial-kind{color:#88847e}
.project-editorial-description{max-width:510px;padding-top:clamp(6px,1.2vw,20px)}
.project-editorial-kicker{margin-bottom:clamp(17px,2.2vw,30px)}
.project-editorial-copy{color:#45423e;font:clamp(13px,.96vw,15px)/1.83 var(--sans)}
.project-editorial-copy p{max-width:none;margin:0 0 15px}
.project-editorial-copy p:last-child{margin-bottom:0}
.project-editorial-gallery-meta{display:flex;justify-content:space-between;gap:20px;align-items:center;
  border-top:1px solid var(--line);padding-top:17px;color:#827f79;font:700 10px/1.4 var(--sans);
  letter-spacing:.18em;text-transform:uppercase}
.project-editorial--no-copy .project-editorial-main{margin-bottom:clamp(40px,4.5vw,65px)}
@media(max-width:850px){
  .project-editorial-main{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(22px,4vw,44px)}
  .project-editorial .project-editorial-title{font-size:clamp(58px,8vw,82px)}
}
@media(max-width:620px){
  .project-editorial{padding:58px 0 37px}
  .project-editorial-main{grid-template-columns:1fr;gap:32px;margin:36px 0 42px}
  .project-editorial .project-editorial-title{font-size:clamp(57px,13vw,88px);margin-bottom:15px}
  .project-editorial-description{padding-top:0;max-width:600px}
  .project-editorial-kicker{margin-bottom:15px}
  .project-editorial-copy{font-size:14px;line-height:1.78}
  .project-editorial-gallery-meta{padding-top:15px;font-size:9px;letter-spacing:.12em}
}


/* PORTFOLIO_TIPOGRAFIA_INTRODUZIONI_V1 */
/* I testi condividono il sans-serif delle etichette editoriali, ma restano leggibili
   in minuscolo e maiuscolo normale: peso medio e spaziatura discreta. */
.project-editorial-copy {
  font-family: var(--sans);
  font-size: clamp(14px, 1vw, 15px);
  font-weight: 500;
  letter-spacing: .038em;
  line-height: 1.72;
  color: #44413d;
  text-transform: none;
}


/* PORTFOLIO_CONTACTS_EDITORIAL_V1 */
/* Contatti: stessa grammatica editoriale di Scirocco e European Far West. */
.contact-editorial{padding:clamp(64px,8vw,120px) 0 clamp(28px,4.2vw,65px)}
.contact-editorial-meta{margin-bottom:clamp(34px,5.1vw,76px)}
.contact-editorial-main{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(28px,5vw,100px);align-items:start;padding-bottom:clamp(52px,6vw,96px)}
.contact-editorial-title-group{min-width:0}
.contact-editorial-title{font-size:clamp(67px,8.1vw,128px);line-height:1;letter-spacing:-.055em;margin:0;overflow-wrap:anywhere}
.contact-editorial-intro{padding-top:clamp(7px,1vw,18px);max-width:540px}
.contact-editorial-kicker{margin-bottom:clamp(22px,2.3vw,34px)}
.contact-editorial-copy{color:#44413d;font:500 clamp(14px,1vw,15px)/1.76 var(--sans);
  letter-spacing:.032em;text-transform:none}
.contact-editorial-copy p{max-width:none;margin:0 0 19px}
.contact-editorial-copy p:last-child{margin-bottom:0}
.contact-editorial-details{border-top:1px solid var(--line);padding-top:clamp(25px,3vw,45px);
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(28px,5vw,100px)}
.contact-editorial-secondary{display:grid;grid-template-columns:1fr 1fr;gap:20px 25px}
.contact-editorial-detail{min-width:0}
.contact-editorial-detail-label{margin-bottom:15px}
.contact-editorial-link{display:inline-block;max-width:100%;border-bottom:1px solid #d5d1cb;
  padding:0 0 8px;overflow-wrap:anywhere;font:400 clamp(20px,2.25vw,34px)/1.3 var(--serif);
  letter-spacing:-.018em;transition:border-color .2s}
.contact-editorial-link span{font:17px var(--sans)}
.contact-editorial-link:hover{border-color:var(--ink)}
.contact-editorial-link--secondary{font-size:clamp(18px,1.75vw,27px)}
.contact-editorial-placeholder{display:inline-block;color:#928e89;font:12px/1.65 var(--sans);
  font-style:italic;max-width:250px}
@media(max-width:850px){
  .contact-editorial-main,.contact-editorial-details{gap:clamp(20px,3.5vw,48px)}
  .contact-editorial-secondary{grid-template-columns:1fr;gap:28px}
}
@media(max-width:620px){
  .contact-editorial{padding:58px 0 32px}
  .contact-editorial-meta{margin-bottom:35px}
  .contact-editorial-main{grid-template-columns:1fr;gap:32px;padding-bottom:45px}
  .contact-editorial-title{font-size:clamp(58px,12.8vw,84px)}
  .contact-editorial-intro{padding-top:0;max-width:600px}
  .contact-editorial-kicker{margin-bottom:16px}
  .contact-editorial-copy{font-size:14px;line-height:1.76}
  .contact-editorial-details{grid-template-columns:1fr;gap:32px;padding-top:30px}
  .contact-editorial-secondary{grid-template-columns:1fr 1fr;gap:20px}
  .contact-editorial-link{font-size:clamp(23px,6.3vw,31px)}
  .contact-editorial-link--secondary{font-size:clamp(18px,4.8vw,25px)}
}
@media(max-width:400px){
  .contact-editorial-secondary{grid-template-columns:1fr;gap:26px}
}

/* PORTFOLIO_CONTACTS_TYPOGRAPHY_V2 */
/* Contacts: stessa scala e lo stesso sans-serif delle introduzioni dei progetti. */
.contact-editorial-title{
  font-size:clamp(62px,6.4vw,100px);
  line-height:1.02;
  letter-spacing:-.052em;
}
.contact-editorial-copy{
  color:#45423e;
  font:500 clamp(13px,.96vw,15px)/1.83 var(--sans);
  letter-spacing:.038em;
}
.contact-editorial-copy p{margin-bottom:15px}
.contact-editorial-kicker{margin-bottom:clamp(17px,2.2vw,30px)}
.contact-editorial-detail-label{margin-bottom:13px}
.contact-editorial-link,
.contact-editorial-link--secondary{
  font:500 clamp(16px,1.27vw,19px)/1.45 var(--sans);
  letter-spacing:.018em;
  padding-bottom:7px;
  border-bottom-color:#d5d1cb;
}
.contact-editorial-link span{font:400 15px/1 var(--sans)}
@media(max-width:620px){
  .contact-editorial-title{font-size:clamp(56px,12vw,77px)}
  .contact-editorial-copy{font-size:14px;line-height:1.78}
  .contact-editorial-link,.contact-editorial-link--secondary{font-size:17px}
}

/* PORTFOLIO_HOME_SUBTITLE_BELOW_V1 */
/* Sottotitolo sotto il titolo, allineato a sinistra: solo Home. */
.home-page .home-intro {
  display: block;
  padding-bottom: clamp(38px, 3.3vw, 54px);
}
.home-page .home-intro > p {
  max-width: 820px;
  margin: clamp(20px, 2.15vw, 30px) 0 0;
  color: #5b5853;
  font: 500 clamp(15px, 1.12vw, 18px)/1.65 var(--sans);
  letter-spacing: .016em;
}
@media (max-width: 620px) {
  .home-page .home-intro { padding-bottom: 30px; }
  .home-page .home-intro > p {
    max-width: 100%;
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.65;
  }
}
