/* Touch layouts share the same models, documents and interaction state. */
.mobile-model-nav{display:none}
@media(max-width:860px),(pointer:coarse){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 button,a,input,select{-webkit-tap-highlight-color:transparent}
 button,.btn,.studio-header nav a,.bar nav a{touch-action:manipulation}
 button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent,#3d7374);outline-offset:3px}
 input[type=range]{min-height:44px;touch-action:pan-y}
 .studio-header nav a,.bar nav a{min-height:44px}
 .studio-header{padding-top:max(15px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
 .studio-footer,.case-footer,.footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .instrument-modes button,.turn-tools button,.copy-email,.room-controls button,.place-selector button,.context-tools button,.plan-tabs button,.zone-tabs button,.view-ui button,.river-step button{min-width:44px;min-height:44px}
 .contact-form input,.contact-form textarea,.contact-form select{font-size:16px}
 .contact-form button{min-height:48px}
 .ss-item{min-height:72px;touch-action:pan-y}
 .ss-nav button{width:44px;min-height:44px;flex-shrink:0}
 .ss-controls button{min-height:44px;min-width:44px;padding:8px 10px!important}
 .ss-stage .ss-controls{display:flex;flex-wrap:wrap;justify-content:center;white-space:normal;gap:4px;max-width:calc(100% - 20px);width:max-content;bottom:22px}
 .ss-controls label{min-height:44px;display:flex;align-items:center;gap:6px}
 .ss-controls input{width:75px}
 .ss-hint{font-size:10px!important;bottom:4px!important}
 .ss-modal{height:100dvh;max-height:100dvh;grid-template-columns:1fr;grid-template-rows:minmax(250px,50dvh) minmax(0,1fr);padding-top:env(safe-area-inset-top)}
 .ss-modal .ss-info{min-height:0;margin:0 8px max(8px,env(safe-area-inset-bottom));backdrop-filter:none}
 .ss-modal .ss-top{padding:8px 12px;flex-shrink:0}
 .ss-modal .ss-body{overflow:auto;overscroll-behavior:contain;padding:8px 18px 24px}
 .ss-modal .ss-layers button{min-height:56px}
 .ss-modal .ss-orientation{top:18px;left:20px}
 .media-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:100dvh;padding:12px}
 .media-dialog header{gap:10px}.media-dialog h2{font-size:18px}.media-dialog header button{min-height:44px}
 #case-lightbox .lb-toolbar a{display:inline-flex;font-size:11px;min-height:44px;align-items:center}
 #case-lightbox .lb-toolbar{flex-wrap:wrap}.lb-toolbar button{min-width:44px;min-height:44px}
 .case-page .viewer,.viewer{min-height:300px}
 .ss-body,.panel-body{-webkit-overflow-scrolling:touch}
}
.architecture-gallery.narrow .panel{height:46dvh;left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom));top:auto;border-radius:22px;backdrop-filter:none;background:var(--bg);transition:transform .5s var(--ease),height .35s var(--ease)}
.architecture-gallery.narrow[data-mobile-pane=details] .panel{height:70dvh}
.architecture-gallery.narrow.model-room .panel{height:108px}
.architecture-gallery.narrow .panel-top{padding:8px 12px 0;min-height:48px}
.architecture-gallery.narrow .panel-top>a,.architecture-gallery.narrow .panel-nav button{min-height:44px}
.architecture-gallery.narrow .panel-nav button{width:44px}
.architecture-gallery.narrow .mobile-model-nav{display:flex;justify-content:space-between;gap:4px;padding:4px 10px 8px;flex-shrink:0;border-bottom:1px solid var(--line)}
.mobile-model-nav>div{display:flex;gap:3px}
.mobile-model-nav button{min-height:44px;border:0;border-radius:99px;padding:7px 10px;background:transparent;font-size:11px;font-weight:700;color:var(--ink);cursor:pointer}
.mobile-model-nav button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.mobile-model-nav #model-room{max-width:70px;line-height:1.15;font-size:10px;padding:6px;flex-shrink:0}
.architecture-gallery.narrow .panel-body{padding:10px 14px 26px;min-height:0}
.architecture-gallery.narrow .tags{display:none}
.architecture-gallery.narrow[data-mobile-pane=model] .project-heading :not(h2),.architecture-gallery.narrow[data-mobile-pane=model] .project-summary,.architecture-gallery.narrow[data-mobile-pane=model] .project-documents{display:none}
.architecture-gallery.narrow[data-mobile-pane=model] .project-heading h2{font-size:25px;line-height:1.1;margin:0 0 10px}
.architecture-gallery.narrow[data-mobile-pane=details] .model-tools,.architecture-gallery.narrow[data-mobile-pane=details] .model-framing,.architecture-gallery.narrow[data-mobile-pane=details] #ss-dock{display:none!important}
.architecture-gallery.narrow .explore-dock{position:static;margin:8px 0 12px}
.architecture-gallery.narrow .explore-toolbar,.architecture-gallery.narrow .zone-strip{backdrop-filter:none;background:var(--surface);padding:7px;border-radius:14px}
.architecture-gallery.narrow .explore-toolbar{display:flex;flex-wrap:wrap;gap:3px}
.architecture-gallery.narrow .explore-tabs{width:100%;display:flex}
.architecture-gallery.narrow .explore-tabs button{flex:1;min-height:44px;font-size:12px;padding:6px}
.architecture-gallery.narrow .stage-explode{width:100%;display:flex;justify-content:space-between;font-size:12px;gap:10px}
.architecture-gallery.narrow .stage-explode input{flex:1;max-width:none;width:auto}
.architecture-gallery.narrow .stage-explode output{width:36px}
.architecture-gallery.narrow .zone-buttons{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:4px}
.architecture-gallery.narrow .zone-buttons button{min-height:44px;font-size:11px;flex:0 0 auto;scroll-snap-align:start;max-width:240px;white-space:normal}
.architecture-gallery.narrow .zone-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.architecture-gallery.narrow .zone-top span{display:none}
.architecture-gallery.narrow .zone-top label{font-size:12px}
.architecture-gallery.narrow .zone-top select{font-size:16px;min-height:44px;padding:5px 10px;max-width:195px}
.architecture-gallery.narrow .zone-status{font-size:12px;line-height:1.5;margin-top:6px}
.architecture-gallery.narrow .site-views{gap:5px;margin:0 0 6px}
.architecture-gallery.narrow .site-views button{min-height:44px;font-size:11px;padding:7px 9px}
.architecture-gallery.narrow .model-tools:has(.explore-dock:not([hidden]))>.explode>label,.architecture-gallery.narrow .model-tools:has(.explore-dock:not([hidden]))>.explode>input,.architecture-gallery.narrow .model-tools:has(.explore-dock:not([hidden]))>h3{display:none}
.architecture-gallery.narrow .layer-list{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.architecture-gallery.narrow .layer-list button{height:100%;min-height:54px;padding:8px;gap:8px}
.architecture-gallery.narrow .layer-list button b{font-size:11px}
.architecture-gallery.narrow .layer-list button small{font-size:11px;line-height:1.35}
.architecture-gallery.narrow .model-tools .hint{font-size:11px}
.architecture-gallery.narrow .ss-dock{margin:14px 0}
.architecture-gallery.narrow .ss-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.architecture-gallery.narrow .ss-item b{font-size:11px;white-space:normal}
.architecture-gallery.narrow .bar{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:8px}
.architecture-gallery.narrow .bar nav a{padding:5px 6px;font-size:clamp(9px,2.55vw,10px);min-height:44px}
.architecture-gallery.narrow .bar nav{min-width:0}
@media(max-height:520px) and (orientation:landscape){
 .architecture-gallery.narrow .panel,.architecture-gallery.narrow[data-mobile-pane=details] .panel{left:auto;right:max(6px,env(safe-area-inset-right));top:68px;bottom:6px;width:45vw;height:auto}
 .architecture-gallery.narrow .panel-body{padding:8px 12px 20px}
 .architecture-gallery.narrow .panel-top{padding:2px 8px}
 .architecture-gallery.narrow .mobile-model-nav{flex-wrap:wrap;padding:0 5px}
 .architecture-gallery.narrow #model-room{display:none}
 .architecture-gallery.narrow .panel-nav{gap:1px}
 .architecture-gallery.narrow .mobile-model-nav button{font-size:10px;padding:4px 7px}
 .ss-modal{grid-template-columns:52% 48%;grid-template-rows:1fr}
 .ss-modal .ss-info{margin-top:8px}.ss-stage .ss-controls{bottom:20px}
}
