/* Shared accessibility and focused UX corrections; preserve the existing brand. */
:root {
  --ux-xs: clamp(.75rem,.72rem + .1vw,.875rem);
  --ux-sm: clamp(.875rem,.84rem + .15vw,1rem);
  --ux-body: clamp(1rem,.97rem + .15vw,1.125rem);
  --ux-space-1: .25rem;
  --ux-space-2: .5rem;
  --ux-space-3: .75rem;
  --ux-space-4: 1rem;
  --ux-space-5: 1.25rem;
  --ux-space-6: 1.5rem;
  --ux-space-8: 2rem;
  --ux-space-12: 3rem;
}
[hidden] { display: none !important; }
.skip-link {
  position: fixed; top: var(--ux-space-3); left: var(--ux-space-4);
  z-index: 1000; padding: var(--ux-space-3) var(--ux-space-4);
  color: var(--on-ac); background: var(--maroon); border-radius: var(--ux-space-2);
  transform: translateY(-180%); font-size: var(--ux-sm);
}
.skip-link:focus { transform: none; }
#main-content { scroll-margin-top: 6rem; }
#main-content:focus { outline: none; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline: 2px solid var(--ink); outline-offset: 4px;
}
.burger,.theme-btn,.project-modal-close { min-width: 44px; min-height: 44px; }
.theme-menu button { min-height: 44px; }
a.work-card { color: inherit; text-decoration: none; }
.work-card .work-action { display: block; margin-top: var(--ux-space-3); font-size: var(--ux-sm); color: var(--maroon); }
.hero.dk .lede { max-width: 55ch; }
.hero-support { margin-top: var(--ux-space-5); font-size: var(--ux-sm); color: var(--muted); }
.hero-support a { color: inherit; text-underline-offset: .2em; }
.hero.dk .hero-cta { margin-top: var(--ux-space-6); }
.project-modal-panel { max-height: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain; }
.project-modal-photo { cursor: zoom-in; display: block; }
.project-modal-photo:focus-visible { outline-offset: 3px; }
.project-image-view img { display: block; width: 100%; height: auto; max-height: 65dvh; object-fit: contain; margin-top: var(--ux-space-4); }
.project-image-view button { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--ux-space-2); padding: var(--ux-space-3); cursor: pointer; }
.project-image-view figcaption { font-size: var(--ux-sm); color: var(--muted); margin-top: var(--ux-space-3); }
.contact-privacy { font-size: var(--ux-sm); line-height: 1.6; color: var(--text); margin: var(--ux-space-4) 0; }
.contact-privacy a { color: var(--maroon); text-underline-offset: .2em; }
.contact-page-form { margin-top: var(--ux-space-6); }
.contact-page-form .f-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ux-space-4); }
.contact-page-form .f { display: flex; flex-direction: column; gap: var(--ux-space-2); }
.contact-page-form .f-full { grid-column: 1 / -1; }
.contact-page-form input,.contact-page-form textarea,.contact-page-form select {
  width: 100%; min-width: 0; padding: var(--ux-space-3); border-radius: var(--ux-space-2);
  border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit;
}
.contact-page-form .errorlist { color: var(--err-fg,#fda4af); padding-left: var(--ux-space-5); font-size: var(--ux-sm); }
.contact-page-form button { cursor: pointer; font: inherit; padding: var(--ux-space-3) var(--ux-space-6); background: var(--maroon); color: var(--on-ac); border: 0; border-radius: var(--ux-space-2); }
.contact-page-form .hp { display: none; }
.contact-notice { padding: var(--ux-space-4); border: 1px solid var(--line); background: var(--paper); border-radius: var(--ux-space-2); }
.article pre,.article code { color: var(--ink) !important; font-size: .9em; }
.article pre { max-width: 100%; white-space: pre; background: var(--paper); border: 1px solid var(--line); }
.article h2,.article h3 { scroll-margin-top: 6rem; }
.article-toc { margin: var(--ux-space-6) 0; padding: var(--ux-space-4) var(--ux-space-5); border: 1px solid var(--line); border-radius: var(--ux-space-3); background: var(--paper); }
.article-toc summary { color: var(--ink); font-weight: 600; cursor: pointer; }
.article-toc ol { padding-left: var(--ux-space-5); }
.article-toc li { margin-block: var(--ux-space-2); }
.article-toc .toc-sub { margin-left: var(--ux-space-4); }
.article-toc a { text-underline-offset: .2em; }
.blog-search { display: flex; flex-wrap: wrap; align-items: end; gap: var(--ux-space-3); margin: var(--ux-space-6) 0; }
.blog-search label { flex: 1 1 14rem; display: grid; gap: var(--ux-space-2); }
.blog-search input { width: 100%; padding: var(--ux-space-3); font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--ux-space-2); }
.blog-search button { padding: var(--ux-space-3) var(--ux-space-5); font: inherit; cursor: pointer; background: var(--maroon); color: var(--on-ac); border: 0; border-radius: var(--ux-space-2); }
.chips a { min-height: 44px; display: inline-flex; align-items: center; }
.privacy-footer { font-size: var(--ux-sm); }
.scoping-note { padding: var(--ux-space-5); margin-top: var(--ux-space-8); background: var(--paper); border: 1px solid var(--line); border-radius: var(--ux-space-3); }
.scoping-note h2 { margin-top: 0; }
@media(max-width:860px) {
  html.js .nav-links:not(.open) { visibility: hidden; pointer-events: none; }
  .nav-links.open { max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
  html:not(.js) .nav { position: relative; flex-wrap: wrap; }
  html:not(.js) .nav-links { position: static; transform: none; padding: var(--ux-space-4); width: 100%; flex-wrap: wrap; flex-direction: row; gap: var(--ux-space-4); box-shadow: none; }
  html:not(.js) .burger { display: none; }
}
@media(max-width:600px) {
  .hero.dk { padding-top: 6.5rem; min-height: auto; }
  .hero.dk .hero-copy { text-align: left; }
  .hero.dk .hero-status { margin-bottom: var(--ux-space-5); }
  .hero.dk .eyebrow { margin-bottom: var(--ux-space-3); }
  .hero.dk .h1-sub { font-size: clamp(1.125rem,1rem + .5vw,1.25rem); line-height: 1.45; margin-top: var(--ux-space-3); }
  .hero.dk .lede { font-size: var(--ux-body); line-height: 1.65; margin-top: var(--ux-space-5); }
  .hero.dk .hero-cta { justify-content: flex-start; gap: var(--ux-space-3); }
  .hero-support { line-height: 1.7; }
  .contact-page-form .f-grid { grid-template-columns: minmax(0,1fr); }
  .project-modal { padding: var(--ux-space-3); }
}
@media(prefers-reduced-motion:reduce) {
  .skip-link,.nav-links { transition: none; }
}
