:root{--ink:#090909;--paper:#f3f3f0;--muted:#7b7b76;--line:rgba(9,9,9,.22);--side:clamp(18px,2.5vw,42px)}
*{box-sizing:border-box;min-width:0}
html{scroll-behavior:smooth;overflow-x:hidden;background:var(--ink)}
body{margin:0;width:100%;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}
a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto;max-width:100%}button{font:inherit}
.intro{position:fixed;inset:0;z-index:100;background:#050505;display:grid;place-items:center;transition:opacity .85s ease,visibility .85s ease}.intro-inner{display:flex;flex-direction:column;align-items:center;gap:clamp(54px,8vh,90px)}.logo-stage{position:relative;width:min(68vw,500px);aspect-ratio:2/1;overflow:hidden}.logo-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.logo-final{opacity:0;transform:scale(.975);filter:blur(4px);animation:logoResolve 1.05s cubic-bezier(.2,.75,.2,1) 1.2s forwards}.logo-slice{opacity:0;filter:blur(5px);will-change:transform,opacity,filter}.logo-slice-top{clip-path:inset(0 0 66% 0);transform:translate3d(-14%,0,0) scale(1.035);animation:sliceTop 1.55s cubic-bezier(.18,.78,.18,1) .12s forwards}.logo-slice-middle{clip-path:inset(33% 0 32% 0);transform:translate3d(13%,0,0) scale(.98);animation:sliceMiddle 1.5s cubic-bezier(.18,.78,.18,1) .25s forwards}.logo-slice-bottom{clip-path:inset(67% 0 0 0);transform:translate3d(-10%,0,0) scale(1.025);animation:sliceBottom 1.45s cubic-bezier(.18,.78,.18,1) .38s forwards}.logo-scan{position:absolute;left:8%;right:8%;top:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);box-shadow:0 0 14px rgba(255,255,255,.35);opacity:0;animation:scanLogo 1.25s ease .55s forwards}.intro-languages{display:flex;align-items:center;gap:42px;opacity:0;transform:translateY(8px);animation:languageArrival .8s ease 2.05s forwards}.intro-languages button{position:relative;border:0;background:none;color:#d2d2d2;padding:8px 2px;text-transform:uppercase;letter-spacing:.22em;font-size:.67rem;cursor:pointer}.intro-languages button:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:#fff;transition:right .4s ease}.intro-languages button:hover:after,.intro-languages button:focus-visible:after{right:0}body.entered .intro{opacity:0;visibility:hidden;pointer-events:none}@keyframes sliceTop{0%{opacity:0;transform:translate3d(-14%,0,0) scale(1.035);filter:blur(5px)}24%{opacity:.95}72%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}100%{opacity:0;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}@keyframes sliceMiddle{0%{opacity:0;transform:translate3d(13%,0,0) scale(.98);filter:blur(5px)}24%{opacity:.95}72%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}100%{opacity:0;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}@keyframes sliceBottom{0%{opacity:0;transform:translate3d(-10%,0,0) scale(1.025);filter:blur(5px)}24%{opacity:.95}72%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}100%{opacity:0;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}@keyframes logoResolve{to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes scanLogo{0%{top:10%;opacity:0}15%{opacity:.75}85%{opacity:.45}100%{top:90%;opacity:0}}@keyframes languageArrival{to{opacity:1;transform:translateY(0)}}
.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;height:92px;padding:0 var(--side);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#fff}
.logo{width:105px;overflow:hidden}.logo img{width:100%;aspect-ratio:2.25/1;object-fit:cover}
.site-header nav{display:flex;gap:32px;font-size:.82rem}.site-header nav a,.line-link,.booking-link{position:relative;padding-bottom:5px}
.site-header nav a:after,.line-link:after,.booking-link:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .45s cubic-bezier(.2,.7,.2,1)}
.site-header nav a:hover:after,.line-link:hover:after,.booking-link:hover:after{right:0}
.language{justify-self:end;display:flex;align-items:center;gap:7px;font-size:.72rem}.language button{border:0;background:none;color:#777;padding:5px;cursor:pointer}.language button.is-active{color:#fff}
.hero{min-height:100svh;background:#080808;color:#fff;padding:122px var(--side) 36px;display:grid;grid-template-columns:1.35fr .65fr;gap:5vw}
.hero-copy{display:flex;flex-direction:column;justify-content:space-between}.kicker,.booking-overline{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}
.hero h1,.portfolio h2,.artist h2,.approach h2,.booking h2{font:400 clamp(4.4rem,10.5vw,11rem)/.79 'Italiana',Georgia,serif;letter-spacing:-.055em;margin:0}
.hero h1 span,.hero h1 em,.booking h2 span,.booking h2 em{display:block}.hero h1 em,.booking h2 em{font-style:normal;margin-left:10vw}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem}.hero-bottom p{max-width:355px;margin:0;color:#bdbdbd;line-height:1.5}
.line-link{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;white-space:nowrap}.hero-photo{margin:0;height:calc(100svh - 158px);overflow:hidden}.hero-photo img{height:100%;object-fit:cover;object-position:center}
.manifesto,.artist,.approach,.booking{padding:clamp(100px,14vw,210px) var(--side)}
.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;text-transform:uppercase;letter-spacing:.13em;font-size:.66rem}.section-label.light{border-color:rgba(255,255,255,.25)}
.manifesto-text{font:400 clamp(2.8rem,6.4vw,7rem)/1.01 'Italiana',Georgia,serif;letter-spacing:-.04em;margin:clamp(70px,10vw,150px) 0}.manifesto-text i{font-style:normal;color:var(--muted)}
.manifesto-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}
.portfolio{background:#0a0a0a;color:#f4f4f0;padding:clamp(95px,12vw,180px) var(--side)}.portfolio h2{margin:clamp(70px,8vw,120px) 0 clamp(110px,15vw,220px)}
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(85px,11vw,170px) 2.4vw;align-items:start}
.piece{margin:0;width:100%}.frame{overflow:hidden}.piece img,.hero-photo img,.artist-photo img{filter:saturate(.25) contrast(.96);transition:filter .6s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.piece:hover img{filter:saturate(.45) contrast(.98);transform:scale(1.025)}.piece .frame img{aspect-ratio:3/4;object-fit:cover}
.piece-tall{grid-column:1/7}.piece-tall.right{grid-column:7/13}.piece-small{grid-column:8/12}.piece-medium{grid-column:2/7}.piece-wide{grid-column:5/13}.piece-wide .frame img{aspect-ratio:1.3/1}.piece-small .frame img{aspect-ratio:4/5}
.piece figcaption{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #3b3b3b;padding-top:10px;margin-top:12px;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;color:#a2a2a2}
.image-reveal{opacity:0;transform:translateY(55px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1)}.image-reveal.is-visible{opacity:1;transform:none}
.artist{background:#e6e6e2}.artist-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:start;margin-top:clamp(75px,10vw,150px)}
.artist-photo{margin:0;max-width:620px;overflow:hidden}.artist-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center top}
.artist-copy{padding-top:3vw}.artist h2{font-size:clamp(4rem,8.5vw,8.5rem);margin:3vh 0 8vh}.artist-lead{font:400 clamp(1.8rem,3.1vw,3.2rem)/1.14 'Italiana',Georgia,serif;max-width:680px}
.artist-copy>p:last-child{max-width:600px;color:#565652;line-height:1.65;margin-top:42px}
.approach-intro{display:grid;grid-template-columns:2fr 1fr;gap:8vw;align-items:end;margin:clamp(75px,9vw,135px) 0}.approach h2{font-size:clamp(3.9rem,8vw,8rem)}.approach-intro p{max-width:340px;line-height:1.55;color:#5f5f5a}
.approach ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.approach li{display:grid;grid-template-columns:.5fr 2.5fr 2fr;gap:3vw;border-bottom:1px solid var(--line);padding:30px 0}.approach li>span{font-size:.68rem}.approach h3{font:400 1.9rem 'Italiana',Georgia,serif;margin:0}.approach li p{margin:0;line-height:1.5;color:#60605c;max-width:410px}
.booking{background:#fff;color:#090909;padding-bottom:90px}.booking-overline{margin:clamp(70px,9vw,130px) 0 20px}.booking h2{font-size:clamp(4rem,9.6vw,10rem)}
.booking-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(75px,9vw,130px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.booking-link{display:block;padding:27px 18px;font:400 clamp(1.35rem,2.5vw,2.65rem) 'Italiana',Georgia,serif;width:100%;text-align:center}.booking-link+.booking-link{border-left:1px solid var(--line)}.booking-link:after{bottom:20px}
.details{display:grid;grid-template-columns:2fr 1fr 1fr;gap:5vw;margin-top:clamp(75px,9vw,130px)}.details small{text-transform:uppercase;letter-spacing:.13em;font-size:.66rem;color:#777}.details p{line-height:1.55}.details a{border-bottom:1px solid #aaa}
footer{height:130px;background:#080808;color:#a7a7a7;padding:0 var(--side);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:.67rem;letter-spacing:.08em}footer img{width:84px;aspect-ratio:2.25/1;object-fit:cover}footer a{text-align:right}
@media(max-width:760px){
  .site-header{height:76px;grid-template-columns:1fr auto}.logo{width:88px}.site-header nav{display:none}
  .hero{padding:96px 18px 28px;grid-template-columns:1fr;gap:42px;min-height:auto}.hero-copy{min-height:510px}.kicker{font-size:.61rem}.hero h1{font-size:clamp(3.45rem,18vw,5.5rem);line-height:.83}.hero h1 em{margin-left:0}
  .hero-bottom{display:block}.hero-bottom p{font-size:.94rem;max-width:300px}.line-link{display:inline-block;margin-top:28px}.hero-photo{height:auto}.hero-photo img{height:auto;aspect-ratio:3/4;object-fit:cover}
  .manifesto,.artist,.approach,.booking{padding:90px 18px}.manifesto-text{font-size:clamp(2.35rem,11.5vw,3.25rem);margin:65px 0 80px}.manifesto-meta span:nth-child(2){display:none}
  .portfolio{padding:88px 18px}.portfolio h2{font-size:clamp(3.4rem,17vw,5rem);margin:62px 0 90px}.gallery{grid-template-columns:1fr;gap:78px}
  .piece,.piece-tall,.piece-tall.right,.piece-small,.piece-medium,.piece-wide{grid-column:1;width:100%;max-width:100%;margin-left:0}
  .piece .frame img,.piece-wide .frame img,.piece-small .frame img{width:100%;height:auto;max-height:72svh;aspect-ratio:3/4;object-fit:cover}
  .artist-grid{grid-template-columns:1fr;gap:65px;margin-top:65px}.artist-photo{width:82%}.artist-copy{padding:0}.artist h2{font-size:clamp(3.5rem,17vw,5rem);margin:20px 0 55px}.artist-lead{font-size:2rem}
  .approach-intro{display:block;margin:65px 0 80px}.approach h2{font-size:clamp(3.25rem,15vw,4.5rem)}.approach-intro p{margin-top:38px}
  .approach li{grid-template-columns:34px 1fr;padding:25px 0}.approach li p{grid-column:2}.approach h3{font-size:1.55rem}
  .booking{padding-bottom:75px}.booking h2{font-size:clamp(3.3rem,15.5vw,4.8rem);line-height:.83}.booking h2 em{margin-left:0}.booking-actions{margin-top:75px}.booking-link{padding:24px 9px;font-size:clamp(1.05rem,5vw,1.45rem)}
  .details{grid-template-columns:1fr 1fr;margin-top:75px}.details>div:first-child{grid-column:1/3}
  footer{height:110px;padding:0 18px;grid-template-columns:1fr 1fr}footer span{display:none}footer img{width:74px}
}
body:not(.entered){overflow:hidden}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.logo-final,.intro-languages{opacity:1;transform:none;filter:none;animation:none}.logo-slice,.logo-scan{display:none}.image-reveal{opacity:1;transform:none;transition:none}.piece img{transition:none}}

.hygiene{background:#101010;color:#f3f3f0;padding:clamp(100px,14vw,210px) var(--side)}
.hygiene-intro{display:grid;grid-template-columns:2fr 1fr;gap:8vw;align-items:end;margin:clamp(75px,9vw,135px) 0}
.hygiene h2{font:400 clamp(3.9rem,8vw,8rem)/.84 'Italiana',Georgia,serif;letter-spacing:-.05em;margin:0}
.hygiene-intro p{max-width:370px;line-height:1.6;color:#a5a5a0}
.hygiene-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #3d3d3d}
.hygiene-list article{display:grid;grid-template-columns:42px 1fr;gap:8px 20px;padding:34px 4vw 50px 0;border-bottom:1px solid #3d3d3d}
.hygiene-list article:nth-child(odd){border-right:1px solid #3d3d3d}
.hygiene-list article:nth-child(even){padding-left:4vw}
.hygiene-list span{font-size:.68rem;color:#777}
.hygiene-list h3{font:400 1.8rem 'Italiana',Georgia,serif;margin:0}
.hygiene-list p{grid-column:2;margin:10px 0 0;line-height:1.55;color:#999;max-width:460px}

@media(max-width:760px){
  .site-header{height:112px;grid-template-columns:1fr auto;grid-template-rows:66px 38px;align-content:start}
  .site-header nav{display:flex;grid-column:1/3;grid-row:2;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.28);padding-top:11px;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
  .hero{padding-top:132px}
  .hygiene{padding:90px 18px}
  .hygiene-intro{display:block;margin:65px 0 80px}.hygiene h2{font-size:clamp(3.25rem,15vw,4.5rem)}.hygiene-intro p{margin-top:38px}
  .hygiene-list{grid-template-columns:1fr}.hygiene-list article,.hygiene-list article:nth-child(even){padding:28px 0 38px}.hygiene-list article:nth-child(odd){border-right:0}
}
