/* Readable type and accessible navigation, preserving the portfolio palette. */
:root{--muted:#4e5e50}
body{font-size:16px}
.preview-banner{font-size:12px;line-height:1.6}
.preview-banner span{opacity:1}
.site-header nav{gap:24px;font-size:14px}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px}
.nav-toggle{display:none}
html:not(.js) .work-controls{display:none}
.intro,.section-heading>p,.about-copy>p:not(.eyebrow):not(.about-lead),
.animation-note p,.service-grid article>p,.contact-inner>div>p:not(.eyebrow),
.discovery-steps article p,.dialog-copy p{font-size:16px;line-height:1.75;color:var(--muted)}
.hero .intro{max-width:440px;font-size:16px}
.section-heading>p{max-width:390px}
.eyebrow,.hero .eyebrow,.dialog-copy .eyebrow{font-size:11px;letter-spacing:1.4px}
.hero-sign{font-size:13px}
.hero-sign i{font-size:23px}
.button,.button.small{font-size:14px;min-height:48px}
.text-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center;gap:8px}
.text-link span{margin-left:10px}
.hero-actions{gap:16px 24px}
.selected-card .project-meta p,.project-meta p{font-size:12px;line-height:1.5}
.project-meta{gap:12px}
.original-tag{font-size:10px}
.filters button{min-height:44px;font-size:13px;padding:10px 15px}
.filters button span{font-size:11px}
.work-disclaimer{font-size:12px;line-height:1.75;color:var(--muted)}
.service-number{font-size:11px;letter-spacing:1.2px;color:var(--green)}
.service-grid article>p{max-width:100%}
.service-grid li{font-size:15px;padding:12px 0;line-height:1.6}
.service-scope,.service-footer>p,.services>.wrap>.text-link{font-size:14px;line-height:1.75;color:var(--muted)}
.service-footer{flex-wrap:wrap}
.service-footer>p{flex:1 1 300px}
.editorial-note .eyebrow{font-size:11px;line-height:1.6}
.editorial-note>span{font-size:14px}
.contact-email{font-size:16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;max-width:100%;overflow-wrap:anywhere}
.contact-inner>div:first-child>p.contact-label{font-size:12px;color:var(--muted)}
.contact-socials{font-size:14px;flex-wrap:wrap}
.contact-socials a{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.discovery-steps article p{max-width:100%}
.discovery-steps .button{width:100%;gap:16px}
.discovery-note,.contact-inner>div>p.discovery-note{font-size:13px;line-height:1.75;color:var(--muted)}
.enquiry-help{font-size:14px;line-height:1.75;margin:18px 0 0;color:var(--muted)}
.enquiry-help a{text-decoration:underline;text-underline-offset:3px}
.contact-inner>div>p.contact-process{font-size:16px}
footer{font-size:13px;flex-wrap:wrap}
footer>a:not(.footer-brand){font-size:13px;min-height:44px;display:inline-flex;align-items:center;gap:6px}
footer>span{font-size:12px}

/* Keep dismissal available while the project body scrolls. */
dialog{max-height:90dvh}
.dialog-toolbar{position:sticky;top:0;z-index:3;display:flex;justify-content:flex-end;padding:10px 12px;background:var(--paper);border-bottom:1px solid var(--border)}
.dialog-close{position:static;width:44px;height:44px;flex-shrink:0}
.dialog-image{top:65px;padding:24px;min-height:0}
.dialog-image figure>img{max-height:58vh}
.dialog-copy{padding:30px}
.dialog-copy .dialog-intro{font:24px/1.3 var(--serif);color:var(--green)}
.dialog-copy .dialog-caption{font-size:12px!important;line-height:1.7;color:var(--muted)}
.dialog-copy ul{font-size:15px;line-height:1.7}
.dialog-copy .button{font-size:14px;gap:18px}
.dialog-image figcaption{font-size:12px;line-height:1.7;color:var(--muted)}
.gallery-source{font-size:12px;display:inline-block;padding:10px 0;margin:0 0 0 8px}
.gallery-source[hidden]{display:none}
.gallery-controls{font-size:13px;gap:18px}
.gallery-controls button{width:44px;height:44px}
.post-caption{margin-top:24px;padding-top:22px;border-top:1px solid var(--border)}
.post-caption h3{margin-top:0}
.post-caption blockquote{white-space:pre-line;margin:12px 0;font-size:15px;line-height:1.75;color:var(--muted);overflow-wrap:anywhere}
.post-caption summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.not-found{padding:100px 0;max-width:700px}
.not-found>p:not(.eyebrow){max-width:500px;line-height:1.75;color:var(--muted)}

@media(max-width:1000px){
  .site-header nav{gap:16px;font-size:13px}
  .contact-inner{gap:35px}
  .hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
  .hero h1{font-size:clamp(48px,6.5vw,65px)}
}
@media(max-width:700px){
  .preview-banner{font-size:11px;padding:8px 15px}
  .site-header{height:auto;min-height:96px;padding:18px 0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;column-gap:8px;row-gap:16px}
  .site-header .wordmark{width:110px}
  .wordmark>span{font-size:19px}
  .wordmark i{font-size:30px;margin-left:24px}
  .wordmark svg{width:19px;right:-3px}
  .site-header .button.small{font-size:12px;gap:8px;padding:10px 12px}
  .site-header .button.small span{font-size:18px}
  .site-header nav{display:flex;grid-column:1/-1;grid-row:2;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:10px}
  .js .nav-toggle{display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--deep);border:1px solid var(--border);min-width:48px;min-height:44px;font-size:12px;padding:8px}
  .js .site-header nav{display:none}
  .js .site-header nav.is-open{display:flex}
  .hero{grid-template-columns:minmax(0,1fr);padding-top:35px}
  .hero h1{font-size:clamp(46px,13vw,61px)}
  .hero .intro{max-width:100%}
  .hero .eyebrow{font-size:10px;letter-spacing:1.1px}
  .hero-sign{gap:12px}
  .hero-sign i{font-size:21px}
  .hero-art.original-art{margin-top:24px}
  .original-art .art-footer{font-size:8px;letter-spacing:.5px}
  .original-art .print-bottom{font-size:18px;gap:5px}
  .original-art .print-bottom i{font-size:11px}
  .selected-card .project-meta p,.project-meta p{font-size:11px}
  .original-tag{font-size:9px;letter-spacing:.3px;padding:4px 6px}
  .filters button{font-size:12px;padding:10px 12px}
  .about-copy>p:not(.eyebrow):not(.about-lead){max-width:100%}
  .contact-inner{gap:35px}
  .contact h2{font-size:clamp(46px,13vw,61px)}
  .discovery-steps article{gap:12px}
  .discovery-steps article>span{flex-shrink:0}
  .discovery-steps .text-link{display:inline;line-height:1.8}
  .service-footer>p{max-width:100%}
  .service-footer>.button{font-size:14px;gap:15px}
  footer>.footer-brand,footer>span{width:auto;flex:1 1 45%}
  .dialog-image{position:static;padding:20px}
  .dialog-image figure>img{max-height:350px}
  .dialog-copy{padding:25px 22px}
  .dialog-copy h2{font-size:42px}
  .dialog-copy .eyebrow{font-size:10px;max-width:100%}
}
