/* Small, local enhancements. Content remains visible without scripting. */
:root{--ease-out:cubic-bezier(.22,.61,.36,1)}
html[lang="en"] .reference-intro h1{hyphens:none;text-wrap:balance}
.button{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s var(--ease-out)}
.button:active{transform:translateY(1px)}
.button>span[aria-hidden],.text-link>span[aria-hidden],.project-sectors a>span[aria-hidden]{display:inline-block;transition:transform .2s var(--ease-out)}
.text-link{transition:color .2s ease,border-color .2s ease}
.site-nav a{position:relative}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease-out)}
.site-nav a[aria-current="page"]::after{display:none}
.case-details summary{min-height:44px;transition:color .2s ease,border-color .2s ease}
.case-details summary>span{transition:transform .22s var(--ease-out)}
.project-media-open{transition:border-color .2s ease,box-shadow .2s ease}
.project-media-open img{transition:transform .35s var(--ease-out)}
.media-expand{transition:background-color .2s ease,color .2s ease,transform .2s var(--ease-out)}
.media-dialog-close,.media-nav button{min-height:44px;min-width:44px;transition:background-color .2s ease,border-color .2s ease}
.media-dialog-close:hover,.media-nav button:hover{background:#eef4f3;border-color:#8ba5a5}
.contact-list a,.contact-strip p a{text-decoration:underline;text-decoration-color:#b6c6c9;text-decoration-thickness:1px;text-underline-offset:4px}
.contact-list a:hover,.contact-strip p a:hover{text-decoration-color:var(--accent)}
.project-case:target .case-number{color:var(--accent);font-weight:700}
.button:focus-visible>span[aria-hidden],.text-link:not(.back-link):focus-visible>span[aria-hidden]{transform:translate(2px,-2px)}
.site-nav a:focus-visible::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){
 .button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #24434c16}
 .button:hover>span[aria-hidden],.text-link:not(.back-link):hover>span[aria-hidden]{transform:translate(2px,-2px)}
 .back-link:hover>span[aria-hidden]{transform:translateX(-3px)}
 .site-nav a:hover::after{transform:scaleX(1)}
 .project-media-open:hover{border-color:#8ba5a5;box-shadow:0 3px 12px #24434c12}
 .media-photo .project-media-open:hover img{transform:scale(1.018)}
 .project-media-open:hover .media-expand{background:#24434c;color:#fff;transform:translate(1px,-1px)}
}
@media(prefers-reduced-motion:no-preference){
 @keyframes dms-dialog-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
 @keyframes dms-backdrop-in{from{opacity:0}to{opacity:1}}
 .project-lightbox[open]{animation:dms-dialog-in .2s var(--ease-out)}
 .project-lightbox[open]::backdrop{animation:dms-backdrop-in .2s ease}
 @supports (interpolate-size:allow-keywords) and selector(details::details-content){
  .case-details{interpolate-size:allow-keywords}
  .case-details::details-content{height:0;overflow:clip;transition:height .26s var(--ease-out),content-visibility .26s allow-discrete}
  .case-details[open]::details-content{height:auto}
 }
}
@media(max-width:900px){.site-nav a::after{display:none}}
@media(max-width:680px){.media-dialog-image{height:auto;max-height:calc(88dvh - 150px);object-fit:contain}}
@media(pointer:coarse){
 .languages a{min-height:44px;display:inline-flex;align-items:center}
 .copy-button,.vcard{min-height:44px;display:inline-flex;align-items:center}
 .footer-links a{min-height:44px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){
 .button,.button>span,.text-link>span,.project-media-open img,.media-expand{transform:none!important}
 .case-details::details-content{transition:none!important}
}
@media(forced-colors:active){.site-nav a::after{background:LinkText}.media-expand{background:Canvas;color:LinkText}}
@media print{.case-details::details-content{height:auto!important;overflow:visible!important;content-visibility:visible!important}.site-nav a::after{display:none}}
