*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{--w:#f7f5f2;--b:#0a0a0a;}
html,body{width:100%;min-height:100%;background:var(--b);color:var(--w);font-family:'Raleway',sans-serif;font-weight:300;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;justify-content:space-between;align-items:center;padding:26px 52px;}
body.inner nav{background:rgba(10,10,10,0.92);backdrop-filter:blur(12px);}
.logo{font-family:'Raleway',sans-serif;font-size:12px;font-weight:300;letter-spacing:0.42em;text-transform:uppercase;color:var(--w);text-decoration:none;text-shadow:0 1px 16px rgba(0,0,0,0.8);}
.nav-links{display:flex;gap:36px;list-style:none;}
.nav-links a{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(247,245,242,0.7);text-decoration:none;font-family:'Raleway',sans-serif;font-weight:300;padding-bottom:4px;position:relative;text-shadow:0 1px 12px rgba(0,0,0,0.7);transition:color .25s;}
.nav-links a::after{content:'';position:absolute;bottom:0;left:50%;right:50%;height:0.5px;background:var(--w);transition:left .4s cubic-bezier(.76,0,.24,1),right .4s cubic-bezier(.76,0,.24,1);}
.nav-links a:hover,.nav-links a.on{color:var(--w);}
.nav-links a:hover::after,.nav-links a.on::after{left:0;right:0;}
.nav-social{display:flex;gap:22px;}
.nav-social a{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(247,245,242,0.62);text-decoration:none;transition:color .2s;display:flex;align-items:center;gap:7px;text-shadow:0 1px 12px rgba(0,0,0,0.7);}
.nav-social a:hover{color:var(--w);}
.nav-social svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;}
.nav-burger{display:none;flex-direction:column;gap:6px;cursor:pointer;background:none;border:none;padding:4px;}
.nav-burger span{display:block;width:24px;height:1px;background:var(--w);transition:all .3s;}
.nav-mobile{display:none;position:fixed;inset:0;z-index:400;background:rgba(10,10,10,0.97);flex-direction:column;align-items:center;justify-content:center;gap:36px;}
.nav-mobile.open{display:flex;animation:fadeIn .3s ease forwards;}
.nav-mobile a{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:300;color:rgba(247,245,242,0.75);text-decoration:none;letter-spacing:0.03em;transition:color .2s;}
.nav-mobile a:hover{color:var(--w);}
.nav-mobile-social{display:flex;gap:28px;margin-top:8px;}
.nav-mobile-social a{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(247,245,242,0.35);text-decoration:none;font-family:'Raleway',sans-serif;font-weight:300;}
.nav-close{position:absolute;top:28px;right:52px;font-size:22px;color:rgba(247,245,242,0.45);cursor:pointer;background:none;border:none;}

/* HERO */
#hero{position:relative;width:100vw;height:100vh;overflow:hidden;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;opacity:0;animation:fadeIn 1.8s ease .05s forwards;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,10,0.72) 0%,rgba(10,10,10,0.38) 38%,rgba(10,10,10,0.42) 62%,rgba(10,10,10,0.88) 100%),linear-gradient(to left,rgba(10,10,10,0.55) 0%,rgba(10,10,10,0) 45%);}
.hero-name{position:absolute;bottom:80px;left:52px;z-index:2;margin:0;font-weight:300;}
.hero-name-first{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(72px,9vw,124px);font-weight:300;line-height:1;color:var(--w);opacity:0;animation:fadeIn 1.1s ease .5s forwards;}
.hero-name-last{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(72px,9vw,124px);font-weight:300;font-style:italic;line-height:1;color:rgba(247,245,242,0.48);opacity:0;animation:fadeIn 1.1s ease .75s forwards;}
.hero-name-role{display:block;font-family:'Raleway',sans-serif;font-size:11px;letter-spacing:0.32em;text-transform:uppercase;color:rgba(247,245,242,0.38);margin-top:22px;opacity:0;animation:fadeIn 1.1s ease 1.05s forwards;}
.hero-disc-list{position:absolute;right:52px;top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;opacity:0;animation:fadeIn .8s ease 1.1s forwards;}
.hero-disc{display:block;font-size:11px;letter-spacing:0.28em;text-transform:uppercase;color:rgba(247,245,242,0.82);padding:13px 0;cursor:pointer;transition:color .2s;text-decoration:none;border-bottom:0.5px solid rgba(247,245,242,0.18);font-family:'Raleway',sans-serif;font-weight:300;text-align:right;text-shadow:0 2px 18px rgba(0,0,0,0.9);}
.hero-disc:last-child{border-bottom:none;}
.hero-disc:hover{color:var(--w);}
.hero-quote{position:absolute;bottom:88px;right:52px;z-index:2;text-align:right;max-width:420px;white-space:nowrap;opacity:0;animation:fadeIn .8s ease 1.35s forwards;}
.hero-quote p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;font-weight:300;line-height:1.8;color:rgba(247,245,242,0.4);}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeIn .8s ease 1.8s forwards;}
.hero-scroll-line{width:0.5px;height:44px;background:rgba(247,245,242,0.28);animation:scrollPulse 2.2s ease-in-out 2.2s infinite;}
@keyframes scrollPulse{0%,100%{transform:scaleY(1);opacity:.28;}50%{transform:scaleY(.35);opacity:.65;}}
.hero-scroll span{font-size:8px;letter-spacing:0.36em;text-transform:uppercase;color:rgba(247,245,242,0.28);}
.hero-mobile-nav{position:absolute;bottom:60px;left:24px;right:24px;z-index:2;display:none;gap:12px;flex-wrap:wrap;opacity:0;animation:fadeIn .8s ease 1.1s forwards;}
.hero-mobile-btn{font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(247,245,242,0.85);border:0.5px solid rgba(247,245,242,0.38);padding:10px 16px;background:rgba(10,10,10,0.45);cursor:pointer;font-family:'Raleway',sans-serif;font-weight:300;transition:all .2s;backdrop-filter:blur(8px);text-decoration:none;}
@keyframes fadeIn{to{opacity:1;}}

/* PAGINE INTERNE */
.page{min-height:100vh;padding:140px 52px 90px;background:var(--b);}
.page-eyebrow{font-size:10px;letter-spacing:0.36em;text-transform:uppercase;color:rgba(247,245,242,0.22);margin-bottom:18px;opacity:0;animation:fadeIn 0.5s ease 0.1s forwards;}
.page-title{font-family:'Cormorant Garamond',serif;font-size:clamp(56px,7.5vw,96px);font-weight:300;line-height:0.88;color:var(--w);margin-bottom:64px;opacity:0;animation:fadeIn 0.9s ease 0.25s forwards;}
.page-title em{font-style:italic;color:rgba(247,245,242,0.3);}
@keyframes fadeUp{from{opacity:0;}to{opacity:1;}}

/* BIO */
.bio-wrap{display:flex;background:var(--b);align-items:flex-start;}
.bio-photo-zone{width:38%;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:hidden;opacity:0;animation:fadeIn 1s ease 0.1s forwards;}
.bio-photo-zone img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:brightness(0.82);}
.bio-photo-zone::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to bottom, rgba(10,10,10,0.65) 0%, rgba(10,10,10,0) 12%),
    linear-gradient(to right,  rgba(10,10,10,0)   88%, rgba(10,10,10,1) 100%);}
.bio-content{flex:1;padding:120px 64px 80px 56px;font-family:'Cormorant Garamond',serif;}
.bio-eyebrow{font-family:'Raleway',sans-serif;font-size:10px;letter-spacing:0.36em;text-transform:uppercase;color:rgba(247,245,242,0.22);margin-bottom:36px;opacity:0;animation:fadeIn 0.5s ease 0.5s forwards;}
.bio-name-title{font-family:'Cormorant Garamond',serif;font-size:clamp(52px,5vw,80px);font-weight:300;line-height:0.9;color:var(--w);margin-bottom:44px;opacity:0;animation:fadeIn 1s ease 0.6s forwards;}
.bio-name-title em{font-style:italic;color:rgba(247,245,242,0.38);}
.bio-content p{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,1.35vw,21px);font-weight:300;line-height:1.85;color:rgba(247,245,242,0.65);margin-bottom:24px;}
.bio-content p:first-of-type{font-size:clamp(19px,1.6vw,24px);font-style:italic;color:rgba(247,245,242,0.88);margin-bottom:30px;line-height:1.7;}
.bio-content p em{font-style:italic;color:rgba(247,245,242,0.92);}
.bio-content p strong{font-weight:400;color:rgba(247,245,242,0.92);}
.bio-awards{list-style:none;padding:0;margin:0 0 28px;border-left:1px solid rgba(247,245,242,0.18);}
.bio-awards li{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.25vw,19px);font-weight:300;line-height:1.55;color:rgba(247,245,242,0.7);padding:8px 0 8px 20px;}
.bio-awards li + li{border-top:1px solid rgba(247,245,242,0.08);}
@media(max-width:900px){
  .bio-wrap{flex-direction:column;height:auto;overflow:visible;}
  .bio-photo-zone{width:100%;height:65vw;max-height:420px;}
  .bio-photo-zone img{object-fit:cover;object-position:center 15%;}
  .bio-photo-zone::after{background:linear-gradient(to bottom,rgba(10,10,10,0.5) 0%,rgba(10,10,10,0) 30%,rgba(10,10,10,1) 100%);}
  .bio-content{padding:40px 24px 80px;overflow-y:visible;height:auto;}
}

/* CINEMA GRID */
.films-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 28px;margin-top:24px;}
.film-card{opacity:0;animation:fadeUp .6s cubic-bezier(.22,.6,.36,1) forwards;cursor:default;}
.film-card-poster{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:2px;margin-bottom:16px;}
.film-card-poster img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.22,.6,.36,1);}
.film-card:hover .film-card-poster img{transform:scale(1.04);}
.film-card-yr{font-size:10px;letter-spacing:0.18em;color:rgba(247,245,242,0.28);margin-bottom:6px;}
.film-card-t{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:rgba(247,245,242,0.88);line-height:1.25;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* LIBRI */
.books-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 28px;margin-top:24px;}
.book{opacity:0;animation:fadeUp .6s cubic-bezier(.22,.6,.36,1) forwards;}
.book-cover{aspect-ratio:2/3;margin-bottom:18px;position:relative;overflow:hidden;border-radius:2px;transition:transform .4s cubic-bezier(.22,.6,.36,1);}
.book:hover .book-cover{transform:translateY(-7px);}
.book-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.book-yr{font-size:10px;letter-spacing:0.18em;color:rgba(247,245,242,0.25);margin-bottom:6px;}
.book-t{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:rgba(247,245,242,0.88);margin-bottom:5px;}
.book-sub{font-size:11px;color:rgba(247,245,242,0.32);}

.page-lead{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.4vw,20px);font-weight:300;font-style:italic;line-height:1.75;color:rgba(247,245,242,0.45);max-width:680px;margin-bottom:56px;}

/* OPERA */
.opera-list{display:flex;flex-direction:column;}
.opera-row{display:grid;grid-template-columns:72px 1fr 90px;gap:36px;align-items:start;padding:30px 0;border-bottom:0.5px solid rgba(247,245,242,0.07);opacity:0;animation:fadeUp .5s ease forwards;transition:opacity .25s;}
.opera-list:hover .opera-row:not(:hover){opacity:.4;}
.opera-yr{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:300;color:rgba(247,245,242,0.14);line-height:1;}
.opera-t{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:300;color:var(--w);margin-bottom:7px;}
.opera-d{font-size:12px;color:rgba(247,245,242,0.38);line-height:1.75;}
.opera-tag{font-size:9px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(247,245,242,0.2);text-align:right;padding-top:7px;}

/* CONTATTI */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}

.c-cell{background:var(--b);padding:44px 38px;opacity:0;animation:fadeUp .5s ease forwards;border-bottom:0.5px solid rgba(247,245,242,0.07);border-right:0.5px solid rgba(247,245,242,0.07);}
.c-cell:nth-child(2n){border-right:none;}
.c-cell:nth-child(3),.c-cell:nth-child(4){border-bottom:none;}
.c-cell:last-child{border-right:none;}
.c-role{font-size:10px;letter-spacing:0.32em;text-transform:uppercase;color:rgba(247,245,242,0.22);margin-bottom:18px;}
.c-name{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--w);margin-bottom:5px;}
.c-agency{font-size:12px;color:rgba(247,245,242,0.3);margin-bottom:22px;}
.c-link{display:flex;align-items:center;gap:9px;font-size:12px;color:rgba(247,245,242,0.4);text-decoration:none;margin-bottom:9px;transition:color .2s;}
.c-link:hover{color:var(--w);}
.c-link svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0;}
.c-person{margin-top:18px;padding-top:16px;border-top:0.5px solid rgba(247,245,242,0.07);}
.c-person-name{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:300;font-style:italic;color:rgba(247,245,242,0.72);margin-bottom:6px;letter-spacing:0.01em;}

/* HERO PHOTO CREDIT */
.hero-credit{position:absolute;bottom:30px;right:52px;z-index:2;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;font-weight:300;letter-spacing:0.02em;color:rgba(247,245,242,0.38);text-decoration:none;opacity:0;animation:fadeIn .8s ease 1.6s forwards;text-shadow:0 1px 14px rgba(0,0,0,0.75);transition:color .25s;}
.hero-credit:hover{color:rgba(247,245,242,0.78);}
@media(max-width:768px){
  .hero-credit{bottom:18px;right:24px;font-size:12px;}
}

/* FOOTER */
footer{padding:28px 52px;border-top:0.5px solid rgba(247,245,242,0.07);display:flex;justify-content:space-between;align-items:center;background:var(--b);}
.footer-c{font-size:10px;letter-spacing:0.12em;color:rgba(247,245,242,0.18);}

/* MOBILE */
@media(max-width:768px){
  nav{padding:20px 24px;}
  .nav-links,.nav-social{display:none;}
  .nav-burger{display:flex;}
  .nav-close{right:24px;}
  .hero-name{bottom:120px;left:24px;right:24px;}
  .hero-name-first,.hero-name-last{font-size:clamp(56px,15vw,84px);}
  .hero-disc-list,.hero-quote,.hero-scroll{display:none;}
  .hero-mobile-nav{display:flex;}
  .page{padding:100px 24px 60px;}
  .page-title{font-size:clamp(44px,13vw,68px);margin-bottom:44px;}
  .films-grid{grid-template-columns:repeat(2,1fr);gap:32px 16px;}
  .books-grid{grid-template-columns:1fr 1fr;gap:32px 16px;}
  .opera-row{grid-template-columns:48px 1fr;gap:16px;}
  .opera-yr{font-size:24px;}
  .opera-tag{display:none;}
  .contact-grid{grid-template-columns:1fr;}
  footer{padding:20px 24px;flex-direction:column;gap:12px;text-align:center;}
}
@media(max-width:480px){
  .hero-name-first,.hero-name-last{font-size:clamp(46px,17vw,64px);}
  .films-grid{grid-template-columns:repeat(2,1fr);}
}
