*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#f5f5f2;color:#292929;font-family:'Jost',Arial,sans-serif;font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #74818c;outline-offset:6px}button{border:0}p{font-size:17px;line-height:1.85}h1,h2,h3{font-weight:400;margin:0}h2,h3{font-family:'Jost',Arial,sans-serif}h2{font-size:clamp(40px,5.2vw,76px);line-height:1.12}h3{font-size:clamp(27px,2.8vw,38px);line-height:1.25}.skip{position:fixed;top:-100px;background:white;color:black;padding:12px;z-index:150}.skip:focus{top:0}.site-header{position:absolute;top:0;left:0;right:0;z-index:20;padding:26px 5%;display:flex;justify-content:space-between;align-items:center;color:white}.wordmark{font-family:'Jost',Arial,sans-serif;font-size:18px;letter-spacing:.03em}.header-tools{display:flex;align-items:center;gap:40px}.languages{display:flex;align-items:center;gap:9px;font-size:12px}.languages button{background:none;padding:6px 0;opacity:.55}.languages button[aria-pressed=true]{opacity:1;border-bottom:1px solid}.languages span{opacity:.5}#menuBtn{background:none;display:flex;align-items:center;gap:18px;padding:12px 0;font-size:11px;letter-spacing:.15em}.hamburger{width:30px;height:13px;border-top:1px solid;border-bottom:1px solid}.hero{position:relative;height:90svh;min-height:590px;max-height:1100px;background:#202322;clip-path:polygon(0 0,100% 0,100% 90%,70% 100%,0 90%);color:#fff}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0005,transparent 35%,#0004)}.hero-type{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:90px 6% 130px}.hero h1{font-family:'Jost',Arial,sans-serif;font-size:clamp(60px,8.5vw,130px);line-height:1.04;letter-spacing:-.055em;text-shadow:0 2px 35px #0005}.hero-type p{font-family:'Jost',Arial,sans-serif;font-style:italic;font-size:25px;border-top:1px solid #ffffff80;padding:14px 25px 0;margin-top:30px}.home-hero .hero-type{align-items:flex-start;text-align:left;padding-left:7%}.home-hero h1{font-size:clamp(60px,8vw,120px)}.home-hero .hero-type p{margin-left:5px}.home-hero>img{object-position:center 43%}.inner-hero{height:73svh;min-height:480px}.inner-hero h1{font-size:clamp(60px,8vw,115px)}body[data-page="biografia.html"] .hero>img{object-position:center 27%}.down{position:absolute;bottom:15%;left:50%;font-size:30px;padding:10px}.section{padding:110px 7%;max-width:1700px;margin:auto}.two-col{display:grid;grid-template-columns:1fr 1.25fr;gap:12%}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:500;margin:0 0 28px}.text-link{display:inline-block;border-bottom:1px solid;padding:12px 0 8px;margin-top:18px;font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase}.photo-banner{height:88svh;min-height:650px;position:relative;color:white}.photo-banner>img{width:100%;height:100%;object-fit:cover;object-position:center 36%}.angular{clip-path:polygon(70% 0,100% 10%,100% 90%,70% 100%,0 90%,0 10%)}.banner-copy{position:absolute;inset:0;background:linear-gradient(90deg,#0009,transparent);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:12% 7%}.banner-copy h2{max-width:730px}.social iframe{border:0;background:white;width:100%;height:620px;max-width:540px}.social p{max-width:450px}.note{font-size:12px;line-height:1.6;opacity:.65}.biography{display:grid;grid-template-columns:1fr 2fr;gap:10%;align-items:start}.bio-aside{position:sticky;top:60px}.bio-aside .text-link{display:table}.biography article p{margin:0 0 28px}.biography article>div:first-child p:first-child{font-family:'Jost',Arial,sans-serif;font-size:28px;line-height:1.5}.projects{background:#e7e9e7;max-width:none}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:60px}.project-grid p{font-size:15px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:60px;align-items:start}.gallery-photo{position:relative;background:transparent;padding:0;overflow:hidden;clip-path:polygon(70% 0,100% 8%,100% 92%,70% 100%,0 92%,0 8%)}.gallery-photo img{display:block;width:100%;height:600px;object-fit:cover;transition:transform 1.2s}.gallery-photo:hover img{transform:scale(1.025)}.gallery-photo:nth-child(2){margin-top:110px}.gallery-photo:last-child{grid-column:1/-1}.gallery-photo:last-child img{height:650px;object-position:center 40%}.gallery-photo span{position:absolute;right:30px;bottom:70px;font-size:40px;color:#fff}.calendar-message{border-top:1px solid #aaa;padding-top:30px}.contact .email{display:block;font-size:clamp(18px,2vw,28px);overflow-wrap:anywhere;border-bottom:1px solid #aaa;padding:0 0 20px}.phone{display:block;margin-top:25px;font-size:22px}footer{display:flex;justify-content:space-between;gap:25px;padding:35px 5%;background:#292929;color:white;font-size:11px;letter-spacing:.06em}.menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:35px 7%;background:#292929;color:#fff;margin:0}.menu[open]{display:flex;flex-direction:column}.menu-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.12em}.menu-top button{font-size:42px;font-weight:300;background:none;padding:0 12px}.menu nav{display:flex;flex-direction:column;gap:18px;margin:auto 0}.menu nav a{font-family:'Jost',Arial,sans-serif;font-size:clamp(30px,5.5vw,78px);text-transform:uppercase;letter-spacing:-.04em;line-height:1.25;transition:opacity 0.4s}.menu nav a:hover{opacity:.55}.menu nav a[aria-current=page]{color:#b1bec6}.menu-social{font-size:13px;padding:20px 0}.lightbox{border:0;padding:20px;background:#1c1c1c;color:white;max-width:95vw;max-height:95svh}.lightbox::backdrop{background:#000d}.lightbox form{text-align:right;margin-bottom:12px}.lightbox button{background:none}.lightbox img{display:block;max-width:85vw;max-height:80svh;object-fit:contain}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity 1.6s,transform 1.6s}.motion-ready .reveal.visible{opacity:1;transform:none}@media(max-width:700px){.site-header{padding:20px 6%}.wordmark{font-size:13px;max-width:110px}.header-tools{gap:24px}#menuBtn>span:first-child{display:none}.hero{height:85svh;min-height:560px}.hero>img{object-position:57% center}.home-hero .hero-type{justify-content:flex-end;padding:0 7% 150px}.home-hero h1{font-size:14vw}.hero-type p{font-size:21px}.inner-hero{height:62svh;min-height:440px}.inner-hero .hero-type{padding-bottom:60px}.inner-hero h1{font-size:13vw}.down{bottom:12%}.section{padding:65px 7%}.two-col,.biography{grid-template-columns:1fr;gap:40px}.bio-aside{position:static}.bio-aside .text-link{display:inline-block;margin-right:20px}.photo-banner{height:75svh;min-height:580px}.photo-banner>img{object-position:60% center}.banner-copy h2{font-size:42px}.project-grid{grid-template-columns:1fr;gap:28px;margin-top:40px}.gallery{gap:20px;grid-template-columns:1fr}.gallery-photo:nth-child(2){margin-top:0}.gallery-photo img,.gallery-photo:last-child img{height:480px}.social iframe{height:560px}.menu{padding:25px 7%}.menu nav{gap:26px}.menu nav a{font-size:9vw}footer{flex-wrap:wrap}.biography article>div:first-child p:first-child{font-size:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}}
/* Opening signature: moving colour, outlined name, soft reveal. */
.intro-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:#152125;color:#f3f0e9;animation:intro-reveal 2.3s ease-in-out 5.3s forwards;pointer-events:none}
.intro-screen::before,.intro-screen::after{content:'';position:absolute;inset:-45%;will-change:transform;pointer-events:none}
.intro-screen::before{background:radial-gradient(ellipse at 28% 42%,#80969b 0%,#506d76 23%,transparent 57%),radial-gradient(ellipse at 76% 68%,#8b746b 0%,#404852 30%,transparent 65%);filter:blur(35px);animation:intro-colour 10s cubic-bezier(.25,.1,.25,1) both}
.intro-screen::after{background:radial-gradient(ellipse at 60% 25%,#a9b4b030,transparent 48%),linear-gradient(120deg,#0e171d60,transparent 45%,#11171770);animation:intro-light 8s ease-in-out both}
.intro-signature{position:relative;z-index:1;text-align:center;width:90%;animation:signature-away 1.7s cubic-bezier(.4,0,.2,1) 4.5s both}
.intro-name{margin:0;font-family:'Jost',Arial,sans-serif;font-size:clamp(38px,8.2vw,124px);font-weight:300;line-height:1.04;letter-spacing:.065em;text-transform:uppercase}
.intro-name span{display:block;color:transparent;-webkit-text-stroke:1px #f3f0e9a8;animation:signature-in 3.3s ease 0.3s both}
.intro-name span+span{animation-delay:0.7s;letter-spacing:.08em}
.intro-caption{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:30px;font-size:10px;letter-spacing:.45em;animation:caption-in 2s ease 1.6s both}
.intro-caption::before,.intro-caption::after{content:'';width:38px;height:1px;background:#e4e7e36b}
@keyframes intro-colour{0%{transform:translate(-12%,-7%) rotate(-13deg) scale(1.05)}60%{transform:translate(9%,5%) rotate(12deg) scale(1.16)}100%{transform:translate(15%,-3%) rotate(24deg) scale(1.1)}}
@keyframes intro-light{from{transform:translate(10%,9%);opacity:.3}to{transform:translate(-8%,-4%);opacity:1}}
@keyframes signature-in{0%{opacity:0;transform:translateY(16px);color:transparent}35%{opacity:1;color:transparent}100%{opacity:1;transform:translateY(0);color:#f3f0e9;-webkit-text-stroke-color:transparent}}
@keyframes caption-in{from{opacity:0;transform:translateY(6px)}to{opacity:.8;transform:translateY(0)}}
@keyframes signature-away{0%{opacity:1;filter:blur(0);transform:scale(1)}100%{opacity:0;filter:blur(7px);transform:scale(1.035) translateY(-8px)}}
@keyframes intro-reveal{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(max-width:700px){.intro-name{font-size:9.5vw;line-height:1.15;letter-spacing:.035em}.intro-name span+span{letter-spacing:.045em}.intro-caption{font-size:9px;letter-spacing:.32em;margin-top:24px}.intro-screen::before{filter:blur(22px)}}
@media(prefers-reduced-motion:reduce){.intro-screen{display:none}.intro-screen *,.intro-screen::before,.intro-screen::after{animation:none!important}}


.intro-name{font-family:'Jost',Arial,sans-serif;font-weight:400}.intro-caption{font-family:'Jost',Arial,sans-serif;font-style:italic}
.site-header{position:fixed;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:background 0.6s,padding 0.6s,-webkit-backdrop-filter 0.6s,backdrop-filter 0.6s}.site-header.scrolled{background:rgba(17,24,29,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-top:16px;padding-bottom:16px}

/* Full-width colour continuation, with individual photographic silhouettes. */
.gallery-section{max-width:none;padding-left:0;padding-right:0;overflow:hidden}
.gallery-section>h2{margin-left:7%;margin-right:7%}
.gallery{gap:40px 30px}
.gallery-photo{isolation:isolate;width:100%;background:#202120;clip-path:polygon(0 9%,76% 0,100% 6%,100% 93%,24% 100%,0 95%)}
.gallery-photo::before{content:'';position:absolute;inset:-24px;background-image:var(--photo);background-size:cover;background-position:center;filter:blur(18px);z-index:-1}
.gallery-photo img{width:86%;margin:0 auto;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.gallery-photo:nth-child(2){clip-path:polygon(0 0,100% 11%,100% 100%,64% 96%,0 100%)}
.gallery-photo:nth-child(3){clip-path:polygon(0 7%,31% 0,100% 12%,100% 94%,79% 100%,0 90%)}
body[data-page="biografia.html"] .inner-hero{clip-path:polygon(0 0,100% 0,100% 94%,28% 100%,0 88%)}
body[data-page="concerti.html"] .inner-hero{clip-path:polygon(0 0,100% 0,100% 87%,60% 100%,0 95%)}
body[data-page="contatti.html"] .inner-hero{clip-path:polygon(0 0,100% 0,100% 96%,0 86%)}
.angular{clip-path:polygon(0 10%,26% 0,100% 8%,100% 88%,67% 100%,0 93%)}
@media(max-width:700px){.gallery{gap:32px}.gallery-photo img{width:86%;height:480px}.gallery-photo:last-child img{height:480px}.gallery-photo:nth-child(2){margin-top:0}}

/* Quiet editorial movement, without overriding native scroll behaviour. */
.motion-ready .reveal{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1900ms cubic-bezier(.22,1,.36,1),transform 1900ms cubic-bezier(.22,1,.36,1)}
.motion-ready .reveal.visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready p.reveal{transition-duration:2200ms;transform:translate3d(0,20px,0)}
.motion-ready p.reveal.visible{transform:translate3d(0,0,0)}
.hero-type{will-change:opacity,transform}.motion-word{display:inline-block;transition:opacity 240ms linear}
#menuBtn{transition:opacity 0.5s,transform 0.7s}#menuBtn:hover{opacity:.7}#menuBtn:active{transform:scale(.94)}
.hamburger{position:relative;border:0;height:18px}.hamburger:before,.hamburger:after{content:'';position:absolute;left:0;width:100%;height:1px;background:currentColor;transition:transform 0.9s cubic-bezier(.22,1,.36,1),top 0.9s}.hamburger:before{top:3px}.hamburger:after{top:14px}#menuBtn[aria-expanded=true] .hamburger:before{top:8px;transform:rotate(45deg)}#menuBtn[aria-expanded=true] .hamburger:after{top:8px;transform:rotate(-45deg)}
.menu nav a{transition:color 0.6s,transform 0.8s,opacity 0.6s}.menu nav a:hover{transform:translateX(12px);opacity:1;color:#b1bec6}#closeMenu{transition:transform 0.7s}#closeMenu:hover{transform:rotate(90deg)}
.text-link{transition:opacity 0.6s,border-color 0.6s}.text-link:hover{opacity:.6}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal,.motion-ready p.reveal{opacity:1;transform:none}.motion-word{opacity:1!important}.hero-type{opacity:1!important;transform:none!important;will-change:auto}.menu nav a:hover{transform:none}}
/* Centered navigation, retaining the animated entrance. */
.menu nav{width:100%;align-items:center;text-align:center}
.menu nav a{max-width:100%;text-align:center}
.menu nav a:hover{transform:none}
.menu-social{align-self:center;text-align:center}
.menu-top{position:relative;justify-content:center;min-height:58px;padding:0 65px;text-align:center}
.menu-top #closeMenu{position:absolute;right:0;top:0}
@media(max-width:700px){.menu-top{padding:0 45px;font-size:10px}.menu nav a{font-size:8.2vw}}

/* Warm orange accents and a Nordic blue opening palette. */
:root{--accent:#f39450;--accent-on-paper:var(--accent);--nordic-blue:#183347}
.wordmark,.languages,#menuBtn,.menu-top,.menu-top #closeMenu{color:var(--accent)}
.languages button{opacity:.76}.languages button[aria-pressed=true]{opacity:1}
.menu nav a[aria-current=page],.menu nav a:hover{color:var(--accent)}
#contents>h2,.gallery-section>h2,.projects>h2,.social h2{color:var(--accent-on-paper)}
.banner-copy .kicker{color:var(--accent)}
.intro-screen{background:var(--nordic-blue)}
.intro-screen::before{background:radial-gradient(ellipse at 28% 42%,#8baebf 0%,#426b85 25%,transparent 58%),radial-gradient(ellipse at 76% 68%,#d57e47 0%,#825847 18%,#203e53 43%,transparent 66%)}
.intro-screen::after{background:radial-gradient(ellipse at 60% 25%,#b9d3dd35,transparent 48%),linear-gradient(120deg,#102b4260,transparent 45%,#142e4470)}
.intro-caption{color:var(--accent)}.intro-caption::before,.intro-caption::after{background:var(--accent)}
.photo-credit{margin:35px 7% 0;text-align:right;font-size:12px;letter-spacing:.06em;color:#575b5e}

/* Jost: light display type, regular reading text, restrained medium accents. */
body{font-family:'Jost',Arial,sans-serif;font-weight:400;font-synthesis:none}
button,input,select,textarea{font-family:inherit}
p{font-weight:400;letter-spacing:.012em}
h1,h2,h3,.hero h1,.intro-name,.wordmark,.menu nav a{font-weight:300}
h2,h3{letter-spacing:.015em}
.hero h1{letter-spacing:.025em;line-height:1.12}
.intro-name{letter-spacing:.065em}
.wordmark{letter-spacing:.07em}
.menu nav a{letter-spacing:.055em;font-size:clamp(30px,5.2vw,74px);line-height:1.3}
.hero-type p,.intro-caption{font-weight:300}
.biography article>div:first-child p:first-child{font-weight:300;letter-spacing:.015em}
.kicker,.text-link{font-weight:500}
.languages button,#menuBtn,.menu-top,.menu-social,footer,.photo-credit{font-weight:400}
strong,b{font-weight:500}
@media(max-width:700px){.menu nav a{font-size:7.2vw;letter-spacing:.04em}.home-hero h1{font-size:13vw}.wordmark{letter-spacing:.035em}}
/* Initial reveal tuned to a quicker, still gentle midpoint. */
.intro-screen{animation:intro-reveal 1.5s ease-in-out 3.1s forwards}
.intro-signature{animation:signature-away 1.2s cubic-bezier(.4,0,.2,1) 2.5s both}
.intro-name span{animation-duration:2.1s;animation-delay:.15s}
.intro-name span+span{animation-delay:.35s}
.intro-caption{animation-duration:.8s;animation-delay:.45s}

.social-links{display:flex;flex-wrap:wrap;gap:0 24px;align-items:center}

/* Subtle horizontal travel follows the scroll position in either direction. */
body{overflow-x:clip}
.gallery-photo,.photo-banner.angular{translate:var(--shape-x,0px) 0}
@media(prefers-reduced-motion:reduce){.gallery-photo,.photo-banner.angular{translate:none}}

.site-header .header-tools{margin-left:auto}
/* Extend moving silhouettes beyond the viewport: 32px covers the 16px travel. */
.gallery{margin-inline:-32px}
.photo-banner.angular{width:calc(100% + 64px);margin-inline:-32px}
@media(min-width:701px){.gallery{column-gap:64px}}

/* Minimal calendar and lower, centred home signature. */
.home-hero .hero-type{align-items:center;justify-content:flex-end;text-align:center;padding:90px 7% 19svh}
.home-hero .hero-type p{border:0;margin:18px 0 0;padding:0}
.banner-copy .text-link{font-size:clamp(26px,4vw,50px);font-weight:300;text-transform:none;letter-spacing:.02em}
.calendar-page{min-height:85svh;padding-top:160px}
.calendar-page h1{font-size:clamp(48px,7vw,96px);font-weight:300;color:var(--accent-on-paper)}
.calendar-tabs{display:flex;gap:clamp(32px,6vw,90px);margin:56px 0 45px;border-bottom:1px solid #29292925}
.calendar-tabs button{background:none;padding:0 0 16px;font-size:clamp(21px,3vw,32px);font-weight:300;letter-spacing:.06em;text-transform:uppercase;color:#777}
.calendar-tabs button[aria-selected=true]{color:var(--accent-on-paper);border-bottom:1px solid currentColor}
.calendar-page [role=tabpanel]{min-height:180px}
.calendar-page [role=tabpanel] p{color:#666;font-size:17px}
body[data-page="concerti.html"] .site-header{background:rgba(17,24,29,.62)}
@media(max-width:700px){.home-hero .hero-type{padding:90px 7% 19svh}.calendar-page{padding-top:130px}.calendar-tabs{margin-top:40px}}

/* Photo-led concert page, centred tabs and spacious sample programme. */
body[data-page="concerti.html"] .site-header:not(.scrolled){background:transparent}
.calendar-page{padding-top:65px;min-height:0}
.calendar-tabs{justify-content:center;margin:0 0 24px;border:0}
.calendar-tabs button,.calendar-tabs button[aria-selected=true]{border:0;padding:10px 0}
.calendar-demo-note{text-align:center;font-size:12px!important;letter-spacing:.06em;opacity:.6;margin:0 0 65px}
.concert-list{max-width:1000px;margin:0 auto}
.concert-row{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(0,2fr);gap:50px;padding:0 0 65px}
.concert-row time{font-size:clamp(22px,2.5vw,32px);font-weight:300;letter-spacing:.04em;color:var(--accent-on-paper)}
.concert-detail h3{font-size:clamp(25px,3vw,38px);font-weight:300;margin:0 0 16px}
.calendar-page .concert-venue{font-size:17px;margin:0 0 8px}
.calendar-page .concert-program{font-size:15px;opacity:.75;margin:0}
@media(max-width:700px){.calendar-page{padding-top:45px}.calendar-tabs{margin-top:0;gap:40px}.concert-row{grid-template-columns:1fr;gap:18px;padding-bottom:55px}.calendar-demo-note{margin-bottom:45px}}
/* Immersive full-screen photographs, including their geometric silhouettes. */
.hero.home-hero,.hero.inner-hero{width:100%;height:110svh;min-height:620px;max-height:none}
.photo-banner.angular{height:120svh;min-height:700px;max-height:none}
.hero>img,.photo-banner>img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:700px){
 .hero.home-hero,.hero.inner-hero{height:110svh;min-height:560px}
 .photo-banner.angular{height:115svh;min-height:600px}
}
/* Keep the close icon unframed, including dialog autofocus. */
.menu #closeMenu{border:0;box-shadow:none}
.menu #closeMenu:focus{outline:none}
.menu #closeMenu:focus-visible{text-shadow:0 0 10px #f3945070}

/* Single biography column and centred downloads below their content. */
.section.biography{display:block}
.biography article{max-width:900px;margin-inline:auto}
.download-row{text-align:center;margin:40px auto 0;padding-inline:7%}
.gallery-section>h2{text-align:center}

/* Home annotations: one-line name, slightly left; truly centred arrow. */
.home-hero h1{white-space:nowrap;font-size:clamp(24px,6.4vw,110px);transform:translateX(-3vw)}
.home-hero .down{left:50%;transform:translateX(-50%)}

/* The open menu reveals the page at its current scroll position through frosted glass. */
.menu{background:#111110;color:#f3f0e9}
.menu::backdrop{background:transparent}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 .menu{background:transparent}
 .menu::backdrop{background:rgba(10,14,18,0);-webkit-backdrop-filter:blur(0px) saturate(1);backdrop-filter:blur(0px) saturate(1);transition:background-color 1.24s ease,-webkit-backdrop-filter 1.24s ease,backdrop-filter 1.24s ease}
 .menu.backdrop-visible::backdrop{background:rgba(10,14,18,.62);-webkit-backdrop-filter:blur(22px) saturate(.8);backdrop-filter:blur(22px) saturate(.8)}
 .menu.backdrop-closing::backdrop{transition-duration:.6s}
}
@media(prefers-reduced-transparency:reduce){
 .menu{background:#111110}
 .menu::backdrop,.menu.backdrop-visible::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;transition:none}
}

@media(prefers-reduced-motion:reduce){.menu::backdrop,.menu.backdrop-closing::backdrop{transition:none}}

/* Keep photographs visible while saved typography and placement load. */
html.content-pending :is(main,footer,.menu) :is([data-i],h1,h2,h3,p,a,span,time,address){visibility:hidden!important}

/* Original photographs keep their proportions; downloads use the same JPEGs. */
.originals-gallery{margin-inline:0;padding-inline:5%;align-items:start;gap:48px 5%}
.photo-card{min-width:0}
.originals-gallery .gallery-photo{display:block;padding:10% 0;margin:0;grid-column:auto}
.originals-gallery .gallery-photo img{height:auto;width:86%;object-fit:contain;mask-image:none;-webkit-mask-image:none}
.originals-gallery .photo-card:nth-child(even){padding-top:12%}
.photo-download{margin-left:7%;margin-top:16px}
.lightbox .photo-download{margin:14px 0 0}
.lightbox img{max-height:70svh}
body[data-page="contatti.html"] .hero>img{object-position:50% 38%}
@media(max-width:700px){.originals-gallery{padding-inline:0}.originals-gallery .photo-card:nth-child(even){padding-top:0}body[data-page="contatti.html"] .hero>img{object-position:44% center}}

/* Large overscan keeps moving silhouettes beyond both viewport edges. */
.originals-gallery{grid-template-columns:1fr;padding-inline:0;gap:70px;margin-inline:0}
.originals-gallery .photo-card:nth-child(even){padding-top:0}
.originals-gallery .gallery-photo,.photo-banner.angular{
 width:calc(100% + 40vw);margin-left:-20vw;margin-right:-20vw;
 padding:0;height:clamp(460px,95svh,1100px);overflow:hidden;
}
.originals-gallery .gallery-photo::before{display:none}
.originals-gallery .gallery-photo img,.photo-banner.angular>img{
 display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;
 mask-image:none;-webkit-mask-image:none;
 transform:translateX(var(--photo-x,0px)) scale(1.12);
 transition:none;
}
.originals-gallery .gallery-photo:hover img{transform:translateX(var(--photo-x,0px)) scale(1.12)}
.originals-gallery .photo-download{margin-left:7%;margin-top:22px}
@media(prefers-reduced-motion:reduce){
 .originals-gallery .gallery-photo img,.photo-banner.angular>img{transform:scale(1.12)}
}

/* Unframed editorial gallery, with independent scroll travel per photograph. */
.originals-gallery{grid-template-columns:repeat(12,minmax(0,1fr));gap:150px 6%;padding:70px 8% 110px;overflow:visible}
.originals-gallery .photo-card{position:relative;grid-column:span 6;transform:translate(var(--card-x,0px),var(--card-y,0px));will-change:transform}
.originals-gallery .photo-card:nth-child(4n+2){grid-column:span 5;margin-top:150px}
.originals-gallery .photo-card:nth-child(4n+3){grid-column:2/span 5}
.originals-gallery .photo-card:nth-child(4n){grid-column:span 6;margin-top:110px}
.originals-gallery .gallery-photo{width:100%;height:auto;margin:0;padding:0;clip-path:none!important;translate:none;background:transparent;border:0;border-radius:0;overflow:hidden}
.originals-gallery .gallery-photo img,.originals-gallery .gallery-photo:hover img{display:block;width:100%;height:auto;object-fit:contain;transform:none;margin:0;mask-image:none;-webkit-mask-image:none}
.originals-gallery .gallery-photo::before{display:none}
.originals-gallery .download-icon{position:absolute;bottom:22px;left:22px;display:grid;place-items:center;width:58px;height:58px;padding:0;margin:0;border:0;border-radius:50%;background:#252525;color:#fff;z-index:2;transition:background .25s,scale .25s}
.originals-gallery .download-icon:hover{background:#a94f1b;scale:1.07}
.intro-screen{background:#080e19;animation-duration:1.2s;animation-delay:2.4s}
.intro-screen::before{background:radial-gradient(ellipse at 28% 42%,#263342 0%,#142131 23%,transparent 57%),radial-gradient(ellipse at 76% 68%,#d57e47 0%,#825847 18%,#101c2b 43%,transparent 66%)}
.intro-signature{animation-duration:1s;animation-delay:1.9s}
.intro-name span{animation-duration:1.6s}
.intro-name span+span{animation-delay:.25s}
.social{display:flex;flex-direction:column;align-items:center;text-align:center;gap:32px}
.social>div{display:contents}
.social h2{order:1}
.social iframe{order:2;width:min(100%,540px);height:620px}
.social .social-links{order:3;justify-content:center;gap:28px}
@media(max-width:700px){
 .originals-gallery{display:flex;flex-direction:column;align-items:center;gap:100px;padding:50px 9% 90px}
 .originals-gallery .photo-card{width:100%;margin-top:0!important}
 .originals-gallery .photo-card:nth-child(even){width:86%;align-self:flex-end}
 .originals-gallery .download-icon{width:48px;height:48px;bottom:16px;left:16px}
 .social iframe{height:560px}
}
@media(prefers-reduced-motion:reduce){.originals-gallery .photo-card{transform:none;will-change:auto}}

/* Home banner: original gentle travel; its BIO link stays stationary. */
body[data-page="index.html"] .photo-banner.angular>img{transform:none}
body[data-page="index.html"] .photo-banner.angular .banner-copy{transform:translateX(calc(-1 * var(--shape-x,0px)))}

/* Keep the text inside the viewport while the photograph extends beyond it. */
body[data-page="index.html"] .photo-banner.angular .banner-copy{left:20vw;right:20vw;padding-inline:7vw}
/* Compact album card, independently positioned from the animated title. */
.album-player{position:absolute;left:5%;bottom:20svh;z-index:3;width:clamp(110px,11vw,160px);color:#fff}
.album-cover{display:block;width:100%;height:auto;box-shadow:0 4px 22px #0004}
.album-listen{display:flex;align-items:center;gap:10px;background:none;padding:12px 0 0;font-size:14px;font-weight:400;white-space:nowrap;letter-spacing:.025em;color:inherit}
.album-listen:hover{color:var(--accent)}
.album-listen svg{width:30px;height:30px;flex:none;overflow:visible}
.album-listen circle{fill:none;stroke:currentColor;stroke-width:1}
.album-listen path{fill:currentColor}
.pause-shape{display:none}.album-listen[aria-pressed=true] .play-shape{display:none}.album-listen[aria-pressed=true] .pause-shape{display:block}
.album-status{font-size:12px;line-height:1.4;margin-top:8px;min-width:180px}.album-status:empty{display:none}
.home-concerts .concert-row{grid-template-columns:1fr;gap:12px;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid #29292925}
.home-concerts time{font-size:23px}.home-concerts h3{font-size:28px}.home-concerts p{margin:8px 0;font-size:16px}
.concert-link{margin-top:6px}
@media(max-width:700px){.album-player{width:90px;left:6%;bottom:34svh}.album-listen{font-size:11px;gap:7px;padding-top:9px}.album-listen svg{width:25px;height:25px}}

/* Editable palette; shared by desktop and mobile. */
.wordmark,.languages,#menuBtn,.menu-top,.menu-top #closeMenu,.menu nav a[aria-current=page],.menu nav a:hover{color:var(--menu-accent,#f39450)}
.menu #closeMenu:focus-visible{text-shadow:0 0 10px var(--menu-accent,#f39450)}
.intro-screen{background:var(--intro-blue,#080e19)}
.intro-screen::before{background:radial-gradient(ellipse at 28% 42%,var(--intro-blue-light,#263342) 0%,var(--intro-blue-mid,#142131) 23%,transparent 57%),radial-gradient(ellipse at 76% 68%,var(--intro-orange,#d57e47) 0%,var(--intro-orange-shade,#825847) 18%,var(--intro-blue-edge,#101c2b) 43%,transparent 66%)}
.intro-screen::after{background:radial-gradient(ellipse at 60% 25%,color-mix(in srgb,var(--intro-blue-glow,#b9d3dd) 21%,transparent),transparent 48%),linear-gradient(120deg,color-mix(in srgb,var(--intro-blue-shade-a,#102b42) 38%,transparent),transparent 45%,color-mix(in srgb,var(--intro-blue-shade-b,#142e44) 44%,transparent))}
.intro-caption{color:var(--intro-caption,#f39450)}.intro-caption::before,.intro-caption::after{background:var(--intro-caption,#f39450)}

/* Wait for the current saved palette before the first frame of the intro. */
html.intro-pending .intro-screen{background:#111!important;animation:none!important}
html.intro-pending .intro-screen::before,html.intro-pending .intro-screen::after,
html.intro-pending .intro-screen *,html.intro-pending .intro-screen *::before,
html.intro-pending .intro-screen *::after{visibility:hidden!important;animation:none!important}

#albumCoverLink{display:block}#albumCoverLink[aria-disabled="true"]{cursor:default}

/* Mobile refinement, isolated from the approved desktop layout. */
@media(max-width:699px){
 html{overflow-x:clip}
 .site-header,.site-header.scrolled{padding:10px max(5%,env(safe-area-inset-right)) 10px max(5%,env(safe-area-inset-left));padding-top:max(10px,env(safe-area-inset-top))}
 .header-tools{gap:14px}
 .languages{gap:2px}
 .languages button{min-width:44px;min-height:44px;display:grid;place-items:center;padding:8px;border-bottom:0;position:relative}
 .languages button[aria-pressed=true]{border-bottom:0}
 .languages button[aria-pressed=true]::after{content:'';position:absolute;bottom:4px;left:15px;right:15px;height:1px;background:currentColor}
 #menuBtn{min-width:44px;min-height:44px;justify-content:center;padding:8px 7px}
 .menu{height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:16px 6% max(20px,env(safe-area-inset-bottom));padding-top:max(16px,env(safe-area-inset-top))}
 .menu-top{flex-shrink:0;min-height:48px}
 .menu-top #closeMenu{min-width:44px;min-height:44px;line-height:1;padding:0}
 .menu nav{flex-shrink:0;gap:18px;padding-block:24px}
 .menu nav a{min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1.35;overflow-wrap:anywhere}
 .home-hero .hero-type{padding-bottom:calc(12svh + 100px)}
 .home-hero h1{font-size:clamp(24px,7.3vw,42px);max-width:100%;white-space:normal;overflow-wrap:normal}
 .home-hero .down{bottom:12svh;min-width:44px;text-align:center}
 .album-player{bottom:calc(12svh + 245px)}
 .album-listen{min-height:44px;font-size:12px;padding-top:8px}
 .album-status{min-width:0;width:min(220px,76vw)}
 .down{min-width:44px;text-align:center}
 body[data-page="concerti.html"] .hero>img{object-position:76% center}
 .section{padding-inline:6%}
 .two-col>*,.concert-detail{min-width:0}
 .concert-detail h3{overflow-wrap:anywhere;line-height:1.3}
 .concert-venue,.concert-program,.concert-link{overflow-wrap:anywhere}
 .calendar-tabs{gap:clamp(20px,7vw,40px);flex-wrap:wrap}
 .calendar-tabs button{min-height:44px}
 .concert-row{gap:12px;padding-bottom:42px}
 .home-concerts h3{font-size:26px}
 .download-row .text-link,.social-links .text-link{min-height:44px}
 .social .social-links{gap:10px 24px}
 .lightbox{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:12px;overflow:auto}
 .lightbox img{max-width:100%;max-height:calc(100dvh - 160px);margin-inline:auto}
 .lightbox form button{min-height:44px;min-width:44px}
 footer{padding:28px 6% max(28px,env(safe-area-inset-bottom));gap:16px;align-items:center}
}

/* CD section: shared palette and text reveal animation. */
.album-feature{padding-top:80px;padding-bottom:70px}.album-feature-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:minmax(220px,340px) minmax(0,1fr);gap:clamp(36px,5vw,80px);align-items:center}.album-feature-cover{display:block;max-width:340px}.album-feature-cover img{display:block;width:100%;height:auto;box-shadow:0 12px 28px #080e1920}.album-feature-copy{min-width:0}.album-feature-copy h2{font-size:clamp(36px,4.2vw,60px);font-weight:300;line-height:1.2;color:#101925}.album-feature .albumEyebrow{margin:0 0 14px;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:400}.album-feature .albumTitle{margin:12px 0 3px;font-size:clamp(20px,2.2vw,30px);line-height:1.35}.album-feature .albumSubtitle{margin:0;font-size:18px;line-height:1.5}.album-credits{margin:26px 0}.album-credits p{margin:0;font-size:18px;line-height:1.6}.album-feature .albumLabel{font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 26px}.album-feature-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 32px}.album-feature-actions .album-listen{padding:0;background:none;color:var(--accent);white-space:normal;text-align:left}.album-feature-actions .text-link{margin:0;font-size:13px;min-height:44px}.album-feature-actions .album-listen svg{width:40px;height:40px}.album-feature-actions .album-listen:after{display:none}.album-feature .album-status:empty{display:none}
@media(max-width:699px){.album-feature{padding:56px 7% 42px}.album-feature-grid{grid-template-columns:1fr;gap:32px}.album-feature-cover{width:min(100%,300px);margin:auto}.album-feature-copy h2{font-size:40px}.album-feature .albumTitle{font-size:24px}.album-feature .albumSubtitle,.album-credits p{font-size:17px}.album-feature-actions{gap:14px 24px}.album-feature .albumEyebrow{font-size:12px}}
.organizer-section{border-top:1px solid #29292915}.organizer-section button{background:none;text-align:left}.organizer-summary,#organizerProgress{font-size:14px;color:#68717a}.organizer-section button:disabled{opacity:.5;cursor:default}

.album-feature-actions [data-album-detail-link]{color:var(--accent)}
