/* Compact, readable public layouts for phones and tablets. */
@media(max-width:900px){
 .site-header .site-nav{overflow-y:auto;max-height:100dvh;align-content:safe center;padding:90px 20px max(28px,env(safe-area-inset-bottom));gap:12px;box-sizing:border-box;overscroll-behavior:contain}
 .site-nav a{min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1.4;text-align:center}
 .site-header .language-control{position:relative;z-index:26}
}
@media(max-width:700px){
 *,*::before,*::after{box-sizing:border-box}
 .site-header{gap:8px}.site-header .brand{min-width:0}.site-header .language-control{margin-inline-start:auto}.site-header .menu-button{flex-shrink:0}
 .section-shell{width:calc(100% - 32px);max-width:100%}
 .hero{min-height:0}.hero-copy,.about-copy,.contact-copy,.contact-side,.case-contact-inner>*{min-width:0}
 .hero-copy h1{font-size:clamp(32px,10vw,48px);line-height:1.12;overflow-wrap:break-word}
 .section-heading h2,.photography-heading h2,.video-heading h2,.about h2,.contact h2,.case-section-heading h2,.case-outcome h2{font-size:clamp(28px,8vw,40px);line-height:1.15;overflow-wrap:break-word}
 .project-grid,.blog-grid{grid-template-columns:minmax(0,1fr);gap:32px}
 .project-meta,.project-meta:has(>h3){display:flex;flex-direction:column;gap:10px;align-items:stretch}
 .project-meta>*{position:static;min-width:0;max-width:100%;margin:0;float:none}
 .project-meta h3{font-size:22px;line-height:1.3;overflow-wrap:break-word}
 .project-meta p{font-size:16px!important;line-height:1.6;letter-spacing:normal;text-transform:none}
 .project-meta a,.project-page-link{width:auto;min-height:44px;white-space:normal;overflow-wrap:break-word}
 .video-meta p,.video-grid--portrait .video-meta p{font-size:14px;line-height:1.5}
 .blog-header,.blog-footer{width:calc(100% - 32px);padding:20px 0;gap:12px;flex-wrap:wrap}
 .blog-header nav{order:3;width:100%;display:flex;flex-wrap:wrap;gap:8px 18px}.blog-header nav a{min-height:44px;display:inline-flex;align-items:center}
 .blog-header .language-control{margin-inline-start:auto}.blog-brand{gap:8px;font-size:24px}.blog-brand span{font-size:14px}
 .blog-index,.article,.hub-public{width:calc(100% - 32px);max-width:100%;margin-inline:auto;overflow-wrap:break-word}
 .article-content,.cms-prose{min-width:0;font-size:16px;line-height:1.75}.article-content img,.cms-prose img{max-width:100%;height:auto}
 .article-content pre,.cms-prose pre{max-width:100%;overflow-x:auto}.article-content table{display:block;max-width:100%;overflow-x:auto}
 .case-hero{min-height:0;padding-bottom:44px}.case-hero h1{font-size:clamp(32px,10vw,48px);line-height:1.15;overflow-wrap:break-word}
 .case-contact-actions{flex-wrap:wrap}.case-contact-actions a{white-space:normal;overflow-wrap:anywhere}
 input,select,textarea{max-width:100%;font-size:16px!important}textarea{min-width:0}
 .privacy-dialog,#pf-palette{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
 .privacy-actions{display:grid;grid-template-columns:1fr}.privacy-actions button{min-height:44px}
 #ys-chat{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}#ys-chat .ys-panel{width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 100px)}
 .ys-greeting{max-width:calc(100vw - 32px)}.public-pulse{flex-wrap:wrap;overflow-wrap:anywhere}
 .site-footer,.blog-footer{padding-bottom:88px}.site-footer a,.blog-footer a{overflow-wrap:anywhere}
}
@media(max-width:380px){.video-grid--portrait{grid-template-columns:minmax(0,1fr)}.language-control select{max-width:100px}.blog-brand span{max-width:90px}}

/* Neutral interface, without decorative overlays across text. */
:root{--blue:#292929}:root[data-theme=dark]{--blue:#e3e3e3}
.hero::before,.hero::after,.hero-ribbon{display:none!important}
.hero-copy{position:relative;z-index:1}
.contact{background:#202020;color:#fff}
#ys-chat .ys-launch{background:#222;color:#fff;box-shadow:none}
.language-globe{color:#333}.language-options button{border-color:#555;color:#222}.language-options button:hover{background:#222;color:#fff}
.language-welcome button:focus-visible{outline-color:#555}
.skill-bar{background:var(--paper);border-color:var(--line)}
.article blockquote{border-color:#777}.compare input{accent-color:#555}
