.home-stage{position:relative;display:grid;grid-template-columns:1fr;grid-template-areas:"picture" "index" "bottom"}.scene-picture{grid-area:picture;position:relative;aspect-ratio:4/3;overflow:hidden}.scene-poster,.scene-poster img,.scene-video{width:100%;height:100%;object-fit:cover}.scene-video{position:absolute;inset:0}.scene-index{grid-area:index;padding:24px;display:flex;flex-direction:column;gap:16px}.scene-buttons{display:flex;gap:8px}.scene-buttons button{flex:1;padding-inline:8px;font-size:14px}.scene-buttons [aria-pressed=true]{background:var(--calce);color:var(--ink);text-decoration:none;}.scene-index .text-link{align-self:flex-start}.scene-caption{font-size:18px;line-height:1.4}.scene-bottom{grid-area:bottom;display:flex;align-items:center;gap:24px;padding:0 24px 20px;font-size:14px}.scene-progress{display:flex;gap:12px;flex:1}.scene-progress i{height:2px;background:var(--line);flex:1}.scene-progress .active{height:4px;background:var(--calce)}.scene-bottom .scene-static{margin-left:auto;font-size:14px}.scene-summary{margin-top:16px;font-size:14px;color:var(--muted)}.image-error{position:absolute;inset:0;padding:32px}.home-studies{display:grid;gap:32px}.home-studies .photo{aspect-ratio:4/3}.home-studies h3{margin-top:12px}.studies-intro{display:flex;flex-direction:column;gap:24px}.studies-intro p{max-width:30ch}.studies-intro .text-link{align-self:flex-start;margin-top:auto}.repertory{padding-block:32px}.repertory>.wrap{display:grid;gap:32px}.repertory nav a{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line);gap:24px}.works-grid{display:grid;gap:32px}.works-grid .photo{aspect-ratio:4/3}.works-statement{padding:32px;display:flex;align-items:center}.works-statement p{font-size:36px;line-height:1.08;letter-spacing:-.025em}.detail-intro{padding-top:24px;display:grid;gap:32px}.detail-intro .tag{margin-block:24px}.detail-intro h1{font-size:clamp(36px,5.6vw,76px);margin-bottom:16px}.detail-intro .lead{margin-bottom:16px}.detail-intro .photo{aspect-ratio:16/10}.detail-intro figcaption{padding-top:12px}.detail-intro figcaption h2{font-size:24px}.detail-intro figcaption p{font-size:16px;margin-top:4px}.detail-bottom{display:grid;gap:24px}.detail-bottom .photo{aspect-ratio:16/10}.detail-bottom .lead{margin-top:12px}.detail-bottom .muted{margin-top:24px;font-size:16px}.detail-aside{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}.detail-aside p{margin-top:8px}.window-study{border:1px solid var(--line);margin-top:32px;position:relative;padding:24px;display:grid;gap:16px}.window-heading{position:relative;z-index:1;pointer-events:none}.window-heading p{margin-top:12px}.window-viewport{position:relative;aspect-ratio:4/3;overflow:hidden}.window-poster,.window-poster img,.window-canvas,.window-canvas canvas{width:100%;height:100%}.window-poster img{object-fit:contain}.window-canvas{position:absolute;inset:0}.window-canvas canvas{display:block}.window-note{font-size:16px;line-height:1.4}.window-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.window-controls>div{display:flex;gap:8px}.window-controls [aria-pressed=true]{background:var(--green);color:var(--calce)}.window-controls button{padding-inline:14px}.window-controls .plain{font-size:16px}.window-controls>span{font-size:14px}.window-status{font-size:14px;min-height:20px;color:var(--muted)}.services-space{display:grid;gap:32px}.service h2{font-size:24px;margin-top:12px}.service-label{font-size:14px;text-transform:uppercase;letter-spacing:.14em;padding:16px 24px;max-width:none}.service .photo{aspect-ratio:4/3}.service>div{padding-top:4px}.service .text-link{margin-top:8px}.services-existing{padding-block:32px;margin-bottom:0}.services-existing h2{margin-bottom:24px}.services-pair{display:grid;gap:32px}.services-pair .photo{aspect-ratio:16/9;margin-bottom:16px}.services-pair .text-link{margin-top:8px}.contact-intro .lead{margin-top:24px}.contact-panel{padding:32px 24px;position:relative;margin-top:24px}.contact-panel>.tag{position:absolute;top:-24px;left:0}.contact-columns{display:grid;gap:32px;margin-block:32px}.contact-columns h2{font-size:clamp(36px,5.8vw,80px);line-height:1.08}.channels>div+div{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.channels h3{font-size:32px}.channels p{font-size:24px}.contact-panel>p{font-size:16px;max-width:none}.contact-start h2{margin-bottom:32px}.contact-topics{display:grid;gap:24px;margin-bottom:32px}.contact-topics>div{border-top:1px solid var(--line);padding-top:24px}.contact-topics p{margin-top:12px;max-width:24ch}
@media(min-width:640px){.scene-picture{aspect-ratio:16/9}.scene-buttons button{font-size:18px;flex:0 1 160px}.scene-summary{max-width:1312px}.home-studies{grid-template-columns:1fr 1fr}.studies-intro{grid-column:1/-1}.works-grid{grid-template-columns:repeat(6,1fr);gap:24px}.work-arredi{grid-column:span 4}.work-legno{grid-column:span 2}.work-arredi .study-media,.work-legno .study-media{height:420px}.work-arredi .photo,.work-legno .photo{aspect-ratio:auto}.works-statement{grid-column:span 2}.work-infissi{grid-column:span 4}.work-infissi .study-media{height:300px}.work-infissi .photo{aspect-ratio:auto}.work-montaggi,.work-restauro{grid-column:span 3}.detail-bottom{grid-template-columns:1.3fr 1fr}.window-viewport{aspect-ratio:16/10}.window-controls{justify-content:center}.services-space{grid-template-columns:2fr 1fr;gap:24px}.service-arredi{grid-row:span 2}.service-arredi .photo{height:calc(100% - 166px);min-height:500px;aspect-ratio:auto}.service-legno .photo,.service-infissi .photo{aspect-ratio:3/2}.services-pair{grid-template-columns:1fr 1fr}.contact-columns{grid-template-columns:1fr 1fr;gap:48px}.channels{padding-left:48px;border-left:1px solid var(--line);align-self:center}.contact-panel{padding:48px 32px}.contact-topics{grid-template-columns:repeat(3,1fr);gap:24px}.contact-topics>div{border-top:0;border-left:1px solid var(--line);padding:0 24px}.contact-topics>div:first-child{padding-left:0;border:0}.contact-topics h3{font-size:26px}}
@media(min-width:1024px){.intro{padding-block:32px}.home-stage{grid-template-columns:25% 75%;grid-template-areas:"index picture" "bottom bottom";border:1px solid var(--green)}.scene-picture{aspect-ratio:16/9}.scene-index{padding:32px;gap:24px;min-height:0}.scene-buttons{flex-direction:column;gap:0}.scene-buttons button{font-size:clamp(24px,2.5vw,36px);line-height:1.2;text-align:left;flex:0 1 auto;border:0;padding:12px 0}.scene-buttons [aria-pressed=true]{color:var(--calce);background:transparent;text-decoration:none;font-weight:600}.scene-caption{margin-top:auto;font-size:24px;line-height:1.25}.scene-bottom{padding:8px 32px;min-height:56px}.home-story[data-mode=scroll]{height:calc(min(72vh,760px) + 160vh)}.home-story[data-mode=scroll] .home-stage{position:sticky;top:24px;height:min(72vh,760px);grid-template-rows:minmax(0,1fr) 56px}.home-story[data-mode=scroll] .scene-picture{aspect-ratio:auto}.home-studies{grid-template-columns:.95fr 1.1fr .8fr;gap:24px}.studies-intro{grid-column:auto}.home-studies h2{font-size:40px}.home-studies h3{font-size:26px}.home-studies p{font-size:18px;line-height:1.4}.home-studies .photo{aspect-ratio:5/4}.home-studies article:last-child .photo{aspect-ratio:1/1.2}.repertory{padding-block:48px}.repertory>.wrap{grid-template-columns:1fr 1fr;gap:64px}.repertory h2{font-size:72px;max-width:12ch}.contact-band{padding-block:40px}.contact-band h2{max-width:22ch}.works-grid{gap:32px 24px}.work-arredi .study-media,.work-legno .study-media{height:560px}.work-infissi .study-media{height:400px}.works-statement p{font-size:clamp(36px,4vw,56px)}.detail-intro{grid-template-columns:5fr 7fr;gap:32px}.detail-intro .photo{aspect-ratio:16/10}.detail-intro figcaption h2{font-size:26px}.window-study{padding:32px}.window-viewport{aspect-ratio:16/9}.window-heading{position:absolute;left:32px;top:32px;max-width:27%}.window-heading h2{font-size:clamp(36px,4vw,56px)}.window-heading .lead{font-size:24px}.window-note{position:absolute;right:32px;top:35%;max-width:14%}.window-note small{display:block;margin-top:16px}.window-status{text-align:center}.window-controls{margin-top:8px}.detail-bottom h2{font-size:40px}.service-arredi .photo{min-height:680px}.service h2{font-size:30px}.services-existing h2{font-size:80px}.contact-intro{display:flex;align-items:end;gap:32px}.contact-intro h1{flex:1}.contact-intro .lead{flex:0 1 36%;padding-bottom:16px;font-size:28px}.contact-panel{padding:48px}.contact-topics h3{font-size:32px}.contact-start h2{font-size:64px}.contact-topics p{font-size:24px}}
@media(max-width:639px){.home-story.wide{width:100%}.scene-bottom .scene-name,.scene-bottom .scene-progress{display:none}.scene-bottom{padding-top:0}.home-studies h2 br{display:none}.window-controls>div{width:100%}.window-controls>div button{flex:1}.window-controls{gap:8px}.window-study{padding:20px}.window-heading h2 br{display:none}.window-viewport{aspect-ratio:4/3}.window-note br{display:none}.window-note small{margin-left:8px}.contact-panel h2 br:first-child{display:none}.contact-columns h2{max-width:12ch}.detail-intro h1{font-size:36px}.services-space .service>div{padding-inline:0}.scene-buttons button{font-size:14px}.contact-band h2{font-size:32px}}

/* v02: the same native scroll sequence on desktop, tablet and phone. */
.scene-caption{min-height:2.8em}
.scene-status{position:absolute;top:16px;right:16px;max-width:min(32ch,80%);font-size:14px;line-height:1.4;background:var(--green);padding:0 8px}
.scene-status:empty{display:none}
.home-story[data-mode=scroll]{height:calc(var(--stage-height) + var(--scroll-distance))}
.home-story[data-mode=scroll] .home-stage{position:sticky;top:var(--stage-top);height:var(--stage-height)}
.home-story[data-mode=scroll] .scene-picture{aspect-ratio:auto;min-height:0}
.scene-summary>p{max-width:80ch}
@media(max-width:1023px){
 .scene-index{padding:16px;gap:12px}
 .scene-caption{font-size:16px;line-height:1.5;min-height:48px}
 .scene-bottom{min-height:56px;padding:0 16px 12px}
 .scene-bottom .scene-static{font-size:14px;min-height:44px}
 .home-story[data-mode=scroll] .home-stage{grid-template-rows:minmax(140px,1fr) auto auto}
 .scene-picture{isolation:isolate}
 .scene-video{touch-action:pan-y}

}
@media(min-width:1024px){
 .home-story[data-mode=scroll] .home-stage{grid-template-rows:minmax(0,1fr) 56px}
 .scene-caption{min-height:3.75em}
}

.scene-summary.is-enhanced{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.window-controls [aria-pressed=true]:hover{background:var(--hover);color:var(--calce)}
@media(max-width:1023px){.scene-buttons [aria-pressed=true]:hover{background:var(--hover-light);color:var(--ink)}}
@media(min-width:1024px){.scene-buttons [aria-pressed=true]:hover{background:var(--hover);color:var(--calce)}}

/* v03: a cinematic frame retains the complete approved camera composition. */
@media(max-width:1023px){
 .scene-picture{aspect-ratio:16/9}
 .scene-poster img,.scene-video{object-fit:contain;background:var(--calce)}
 .scene-caption{min-height:48px}
 .scene-index{padding:16px 20px 8px}
 .scene-bottom{padding:0 20px 16px}
 .scene-buttons button{border-color:rgba(240,240,233,.45)}
 .scene-buttons [aria-pressed=true]{border-color:var(--calce)}
}
.window-status{text-align:center;max-width:none}
.window-study{isolation:isolate}
@media(max-width:639px){.window-viewport{aspect-ratio:1/1}.window-note{font-size:14px}.window-note small{font-size:12px}}
/* Inverting foreground and background together otherwise crosses a low-contrast
   intermediate colour during the 120 ms transition. Selection stays immediate. */
.scene-buttons button,.window-controls [data-angle]{transition:none}

/* v04: the scroll scene itself occupies the full page width. */
.home-story.wide{width:100%;max-width:none}
.home-stage{border:0;grid-template-columns:1fr;grid-template-areas:"picture" "index" "bottom"}
.scene-picture{width:100%;min-width:0}
.scene-index{min-width:0}
@media(min-width:1024px){
 .scene-index{display:grid;grid-template-columns:minmax(380px,1.15fr) minmax(260px,1fr) auto;align-items:center;gap:32px;padding:20px clamp(32px,4.45vw,80px)}
 .scene-buttons{flex-direction:row;gap:8px}
 .scene-buttons button{flex:1;padding:12px 16px;font-size:24px;text-align:center;min-height:56px;font-weight:400}
 .scene-buttons [aria-pressed=true]{background:var(--calce);color:var(--ink);font-weight:600}
 .scene-buttons [aria-pressed=true]:hover{background:var(--hover-light);color:var(--ink)}
 .scene-caption{margin:0;min-height:60px;font-size:20px;line-height:1.5;align-content:center}
 .scene-index .text-link{align-self:center;white-space:nowrap}
 .scene-bottom{padding:0 clamp(32px,4.45vw,80px) 12px;min-height:48px}
 .home-story[data-mode=scroll] .home-stage{grid-template-rows:minmax(0,1fr) auto auto}
 .home-story[data-mode=static] .scene-picture{aspect-ratio:16/9}
 .scene-video,.scene-poster img{object-fit:cover}
 .window-study.wide{width:100%;max-width:none;border-inline:0}
}

/* v05: keep the full-width study and its controls together on laptop screens.
   The remaining 208px reserve padding, row gaps, controls, status and a margin. */
@media(min-width:1024px){
 .window-viewport{aspect-ratio:auto;height:min(calc(56.25vw - 36px),calc(100vh - 208px));height:min(calc(56.25vw - 36px),calc(100svh - 208px))}
}
