/* Small interaction refinements; the portfolio's composition stays intact. */
:root{--ui-ease:cubic-bezier(.22,1,.36,1)}
body{font-optical-sizing:auto}
a,button,input,select,textarea,summary{touch-action:manipulation}
button:not(:disabled),a,summary{-webkit-tap-highlight-color:transparent}
button:not(:disabled):active{opacity:.72}
.portfolio-photo:active,.photo-open:active{opacity:1}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--cms-accent,#ddd);outline-offset:4px}
:where(input,textarea,select):focus-visible{border-color:var(--cms-accent,#ddd)}
nav a:after{width:100%;transform:scaleX(0);transform-origin:left;transition:transform 180ms var(--ui-ease)}
nav a:hover:after,nav a:focus-visible:after,nav a[aria-current=page]:after{transform:scaleX(1)}
.project .image-wrap img{transition:transform 550ms var(--ui-ease)}
.portfolio-photo img{transition:transform 350ms var(--ui-ease)}
.reveal{animation:ui-reveal 300ms var(--ui-ease) both}
@keyframes ui-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.studio-modal{overscroll-behavior:contain}
.studio-modal-card{animation:ui-dialog-in 160ms var(--ui-ease) both;overflow-wrap:anywhere}
@keyframes ui-dialog-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.studio-modal .studio-upload{color:#182116}
.studio-modal button,.visual-toolbar button,.visual-text-tools button{transition:background-color 120ms ease-out,opacity 100ms ease-out}
.studio-modal-head{gap:16px}
.studio-modal-head>h2{min-width:0}
#studio-modal-close,#lightbox .close,#prev,#next{min-width:44px;min-height:44px;flex-shrink:0}
#lightbox{overscroll-behavior:contain}
#lightbox img{height:calc(100% - 100px);max-height:82svh}
#lightbox p{overflow-wrap:anywhere}
.filters button{min-height:40px}
.project-detail .eyebrow{display:inline-flex;align-items:center;min-height:36px}
.cms-footer-link,.management-link{position:relative}
.cms-footer-link:before,.management-link:before{content:'';position:absolute;inset:-10px -3px}
@media(hover:hover) and (pointer:fine){
 .visual-section:not(:hover):not(:focus-within)>.visual-section-tools{visibility:hidden}
 .visual-section-tools{transition:opacity 140ms ease-out,visibility 140ms}
}
@media(hover:none),(pointer:coarse){
 .project:hover .image-wrap img,.portfolio-photo:hover img{transform:none}
 .visual-section-tools{opacity:1}
 .filters button,#lang,.visual-toolbar button,.visual-toolbar select,.visual-section-tools .visual-button,.studio-modal button,.gallery-actions button{min-height:44px;min-width:44px}
}
@media(max-width:760px){
 nav a{min-height:44px;display:inline-flex;align-items:center}
 nav a:after{bottom:4px}
 #lang{min-height:44px;min-width:44px}
 input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select,textarea,
 .studio-modal input,.studio-modal select,.studio-modal textarea,.studio-field input,.studio-field textarea,.studio-field select{font-size:16px}
 .visual-toolbar select{font-size:16px}
 .visual-toolbar-main{padding-top:max(8px,env(safe-area-inset-top))}
 .visual-text-tools{bottom:max(12px,env(safe-area-inset-bottom))}
 .studio-modal{padding:max(16px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 #lightbox{padding:60px 16px 24px}
 #lightbox .close{right:12px;top:10px}
 footer{padding-bottom:max(45px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .reveal,.studio-modal-card{animation:none!important}
 .project:hover img,.portfolio-photo:hover img{transform:none!important}
}
@media(prefers-reduced-transparency:reduce){
 .studio-modal{background:#080b0bf5;backdrop-filter:none}
 .visual-section-tools{background:#182419}
 .cms-video-play>span:first-child{background:#101112;backdrop-filter:none}
}
@media(prefers-contrast:more){
 .studio-modal-card,.visual-toolbar,.visual-text-tools{border-color:#bac9b4}
 .studio-help,.visual-toolbar-status,.note{color:#c7ccca}
 .cms-theme-light .note{color:#454847}
}
