.home-page #portfolio { padding:24px 0; }
.home-page #portfolio > .section-inner { width:100%; }
.home-page #portfolio::after { display:none; }
.portfolio-film { margin:0; }
.portfolio-film[hidden] { display:none; }
.portfolio-film-stage { height:clamp(320px,68svh,680px); width:100%; position:relative; touch-action:pan-y; cursor:grab; }
.portfolio-film:not(.is-film-ready) .portfolio-film-stage,
.portfolio-film:not(.is-film-ready) .portfolio-film-controls,
.portfolio-film.is-film-ready .portfolio-film-fallback { display:none; }
.portfolio-film-fallback { display:flex; gap:16px; overflow-x:auto; padding:24px; scroll-snap-type:x mandatory; }
.portfolio-film-fallback a { flex:0 0 min(74vw,480px); scroll-snap-align:center; text-decoration:none; color:inherit; }
.portfolio-film-fallback img { display:block; width:100%; aspect-ratio:3/2; object-fit:contain; background:#fff; }
.portfolio-film-fallback span { display:block; padding:12px 0; text-align:center; }
.portfolio-film-fallback a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.portfolio-film-stage canvas { display:block; width:100%; height:100%; }
.portfolio-film-stage:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.portfolio-film-controls { display:grid; grid-template-columns:44px minmax(0, 420px) 44px; justify-content:center; align-items:center; gap:16px; margin:8px auto 0; padding:0 20px; }
.portfolio-film-controls p { margin:0; text-align:center; font-size: var(--type-lead); line-height:1.4; }
.portfolio-film-controls a { color:inherit; text-decoration:none; }
.portfolio-film-controls a:hover { text-decoration:underline; text-underline-offset:5px; }
.portfolio-film-controls button { width:44px; height:44px; }
@media(max-width:760px) {
    .portfolio-film-stage { height:clamp(290px,56svh,460px); }
    .portfolio-film-controls { gap:10px; }
    .portfolio-film-controls p { font-size: var(--type-body); }
}
