/* Gesture ownership: custom spatial scenes, native long-form and dialog scroll */
.intro-stage,.gallery-scene{touch-action:pinch-zoom}
.text-scene,.menu-sheet,.case-sheet{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.menu-sheet,.case-sheet{overscroll-behavior-y:contain;scroll-behavior:auto}
.case-player video{touch-action:pan-y pinch-zoom}
#filmSeek{touch-action:pan-x;min-height:32px}

@media(max-width:650px),(max-height:500px) and (max-width:1000px){
 html.text-page{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
 body.is-text{height:auto;min-height:100dvh;overflow:visible}
 body.is-text .site-frame{position:relative;inset:auto;margin:3px;width:calc(100% - 6px);min-height:calc(100dvh - 6px);overflow:clip}
 body.is-text .text-scene{position:relative;inset:auto;overflow:visible;min-height:calc(100dvh - 6px);padding-bottom:110px}
 body.is-text .chrome{position:fixed;top:max(12px,env(safe-area-inset-top));left:15px;right:15px}
 body.is-text .motion-tools,body.is-text .corner-signature{position:fixed}
 .menu-sheet,.case-sheet{height:calc(100dvh - 6px);max-height:calc(100dvh - 6px);inset:3px;width:calc(100% - 6px)}
 .chrome{align-items:center;gap:10px}
 .chrome-nav{flex-shrink:0}
 .motion-tools{bottom:max(10px,env(safe-area-inset-bottom));right:max(10px,env(safe-area-inset-right))}
 .corner-signature{bottom:max(16px,env(safe-area-inset-bottom));font-size:8px;max-width:46%;line-height:1.2}
 .gallery-arrows button,.opening-next,.icon-button,.menu-close{min-height:44px;min-width:44px}
 .gallery-arrows{padding-inline:8px}
 .text-scene,.menu-sheet{scroll-padding-top:85px}
 .text-scene.entering{animation:textMobileEnter .45s ease-out}
 @keyframes textMobileEnter{from{opacity:0;translate:0 12px}to{opacity:1;translate:none}}
 .menu-sheet{padding:80px 22px 100px;backdrop-filter:none}
 .menu-inner{display:block}.menu-intro>p{margin:20px 0}.menu-intro nav{margin-bottom:40px}
 .menu-close{top:max(12px,env(safe-area-inset-top));right:14px}
 .search-results button{min-height:68px}
 .search-panel input,#briefForm input,#briefForm select,#briefForm textarea{font-size:16px}
 .case-sheet{background:#090b09}
 .case-grid{display:block;min-height:100%}
 .case-visual{position:relative;top:auto;height:66dvh;min-height:340px}
 .case-story{overflow-wrap:break-word;min-width:0}
 .case-story h1{font-size:clamp(30px,9vw,44px)}
 .case-back{top:max(14px,env(safe-area-inset-top));left:14px;min-height:44px}
 .case-sound{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px}
 .player-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:10px;flex-shrink:0;min-height:112px}
 .player-controls button{min-height:44px;font-size:11px;padding:8px}
 #filmSeek{grid-column:1/-1;grid-row:1;width:100%;margin:0}
 #filmTime{grid-column:2;grid-row:2;font-size:10px}
 #playFilm{grid-column:1;grid-row:2}
 #muteFilm{grid-column:3;grid-row:2}
 #fullFilm{grid-column:1/-1;min-height:36px}
 .case-player video{height:calc(100% - 156px);min-height:0;flex:1}
 .case-player:fullscreen video{height:auto}
 .case-player:fullscreen{padding-bottom:env(safe-area-inset-bottom)}
 .film-list button{grid-template-columns:70px minmax(0,1fr) 14px;gap:10px}
 .film-list img{width:70px;height:58px}
 .case-bottom{flex-wrap:wrap;gap:18px}
 .case-bottom a,.case-bottom button{min-height:44px;display:flex;align-items:center}
 .text-footer{flex-wrap:wrap;line-height:1.4}
}
@media(max-width:380px){
 .chrome-nav>.icon-button.lime{display:none}
 .welcome-identity .welcome-expansion{font-size:14px}
 .welcome-logo{width:185px}
 .welcome-statement{font-size:10px;bottom:78px}
 .enter-studio{padding:16px 18px;gap:16px}
 .conviction-card strong{font-size:12px}
 .conviction-card small{font-size:8px}
}
@media(max-width:650px){
 .conviction-card,.conviction-card:nth-child(2){--card-y:-26dvh}
 .conviction-card:nth-child(3),.conviction-card:nth-child(4){--card-y:23dvh}
 .scene-navigation{bottom:94px}
 .drag-hint{bottom:150px}
}
@media(max-width:650px) and (max-height:650px){
 .welcome-identity{top:7%}.welcome-logo{width:180px}
 .welcome-actions{bottom:20%}.welcome-statement{bottom:75px;font-size:10px}
 .conviction-card,.conviction-card:nth-child(2){--card-y:-22dvh}
 .conviction-card:nth-child(3),.conviction-card:nth-child(4){--card-y:21dvh}
 .is-opening .opening-next{bottom:50px}.is-opening .opening-hint{display:none}
 .corner-signature{display:none}
 .is-opening .motion-tools{bottom:8px}
}
@media(max-height:500px) and (min-width:651px){
 .welcome-logo{width:145px}.welcome-identity{top:3%}.welcome-expansion{font-size:15px}
 .welcome-actions{bottom:5%}.welcome-statement,.welcome-edition{bottom:30px;font-size:10px}
 .conviction-card{height:84px;width:36vw;padding:8px;gap:10px;--card-y:-21dvh}
 .conviction-card:nth-child(2){--card-y:-21dvh}
 .conviction-card:nth-child(3),.conviction-card:nth-child(4){--card-y:27dvh}
 .conviction-card .conviction-symbol,.conviction-card .conviction-symbol img{width:46px;height:46px}
 .conviction-card strong{font-size:12px}.conviction-card small{font-size:8px;margin-bottom:5px}
 .opening-hint,.corner-signature,.welcome-edition{display:none}
 .is-opening .opening-next{bottom:14px}
 .is-moment .scene-navigation{bottom:30px}.is-moment .drag-hint{bottom:10px}
 .case-visual{height:calc(100dvh - 6px);min-height:0}
}
@media(prefers-reduced-motion:reduce){.text-scene.entering{animation:none}}
