/* Shared overrides. All navigation remains available when JavaScript is off. */
[hidden]{display:none!important}
.menu-toggle{display:none}
.article-byline,.article-update{color:var(--muted);line-height:1.6}
.article-byline a,.article-update a{text-decoration:underline;text-underline-offset:3px}
.article-update{padding:18px 22px;border:1px solid var(--rule);background:var(--surface);margin:24px 0}
.events-empty{color:var(--muted);line-height:1.6}
.post-content>p:first-child img{display:block;width:min(100%,780px);height:auto}
@media(max-width:750px){
  header .mobile-social{display:none}
  header .topline .wordmark{margin-right:0}
  header .subnav .shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;overflow:visible;white-space:normal;padding-top:8px;padding-bottom:12px}
  header .subnav a,header .network a{display:flex;align-items:center;min-height:44px;padding:10px 0}
  header .subnav .social-links{display:flex;grid-column:1/-1;margin-left:0;padding-left:0;gap:24px}
  header .network{justify-content:flex-start;gap:0 18px}
  header.has-menu .topline .shell{min-height:64px;padding-top:10px;padding-bottom:10px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0}
  header.has-menu .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:64px;background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);border-radius:4px;cursor:pointer}
  header.has-menu .menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
  header.has-menu:not(.menu-open) .network,header.has-menu:not(.menu-open) .subnav{display:none}
  header.has-menu.menu-open .network{order:3;width:100%;padding-top:8px}
  header.has-menu.menu-open .subnav{display:block;max-height:calc(100dvh - 125px);overflow-y:auto}
  header.has-menu .network a[aria-current=page]{box-shadow:none;color:var(--accent)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.analytics-notice{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));left:8px;right:8px;z-index:100;max-width:420px;margin:auto;padding:8px 10px;background:var(--bg);color:var(--ink);border:1px solid var(--rule-strong);box-shadow:0 4px 16px #0002;border-radius:6px}
.analytics-notice p{margin:0 0 4px;line-height:1.35;font-size:13px}
.analytics-notice a{text-decoration:underline}
.analytics-notice>div{display:flex;gap:8px}
.analytics-notice button{font:inherit;font-size:13px;line-height:1.2;padding:8px 14px;min-height:44px;min-width:88px;background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);border-radius:4px;cursor:pointer}
.analytics-preference{font:inherit;background:none;color:inherit;border:0;padding:0;text-decoration:underline;cursor:pointer}
.analytics-notice button:focus-visible,.analytics-preference:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Design standards: clear hierarchy, familiar controls, and purposeful surfaces. */
body{min-width:0}
:is(main,section,article,aside,figure,.shell,.hero-copy,.prose){min-width:0}
:is(h1,h2,h3,h4,p,dd,a){overflow-wrap:break-word}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--accent);outline-offset:4px}
:is(main,section)[tabindex="-1"]:focus{outline:none}
.hero h1{letter-spacing:-.055em}
.section h2,.page h1{letter-spacing:-.045em}
.btn:hover{filter:none;text-decoration:underline;text-underline-offset:4px}
.btn:active{outline:2px solid var(--accent);outline-offset:3px}
header .subnav a{display:inline-flex;align-items:center;min-height:44px}
.footer-links{align-items:center;gap:4px 20px}
.footer-links :is(a,button){display:inline-flex;align-items:center;min-height:44px}
.small-list a{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.small-list li{padding:8px 0}
.form-intro{color:var(--muted);font-size:.95rem;line-height:1.6;margin:0 0 16px}
.form-status{max-width:65ch;line-height:1.6;color:var(--ink);margin:0 0 18px}
.contact-form [role="alert"]{line-height:1.6;font-weight:600}
.contact-form [aria-disabled="true"]{cursor:wait}
.form-row :is(input,select,textarea){min-height:48px}
.events-list{grid-template-columns:1fr;gap:0}
.event-card{border-width:1px 0;background:transparent;padding:28px 0;max-width:980px}
.event-copy a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.process li,.work-process li{border-top:1px solid var(--rule)}
.work-process li{background:transparent;padding:20px 0}
.hero-side{border-left:0;border-top:1px solid var(--rule);padding:20px 0 0;max-width:35ch}

/* Delia: warm paper, personal photography, and an editorial list of focus areas. */
body.delia #work,body.delia #blog{background:var(--surface)}
.kidmin-introduction{display:flex;align-items:center;justify-content:space-between;gap:32px;margin:0 0 48px;padding:24px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.kidmin-introduction p{max-width:65ch;color:var(--muted);line-height:1.7;margin:0}
.kidmin-introduction .btn{flex-shrink:0}
.focus-list{margin:0;border-top:1px solid var(--rule)}
.focus-entry{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:clamp(24px,5vw,72px);padding:26px 0;border-bottom:1px solid var(--rule)}
.focus-entry dt{font-family:Manrope,sans-serif;font-weight:700;font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.25;letter-spacing:-.035em}
.focus-entry dd{margin:0;color:var(--muted);line-height:1.7;max-width:65ch}

/* Dodec: a service directory and engagement descriptions, without nested cards. */
body.dodec #people{background:var(--surface)}
body.dodec .people-section .team-panel{margin:0;padding:0;border:0;background:transparent}
.service-directory{border-top:1px solid var(--rule)}
.service-entry{display:grid;grid-template-columns:32px minmax(0,1fr);gap:22px;padding:27px 0;border-bottom:1px solid var(--rule)}
.service-entry .count{color:var(--muted);font-size:.85rem;font-weight:700;padding-top:4px}
.service-entry>div{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr) minmax(130px,.55fr);gap:28px;align-items:start}
.service-entry h3{font-family:Manrope,sans-serif;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.25;letter-spacing:-.035em;margin:0}
.service-entry p{margin:0;color:var(--muted);line-height:1.65}
.service-entry .link{font-weight:700;color:var(--accent);text-decoration:underline;text-underline-offset:4px;line-height:1.5}
.service-entry:hover{text-decoration:none}
.service-entry:hover h3{text-decoration:underline;text-underline-offset:5px}
body.dodec .ways{padding:0;margin:56px 0;border:0;background:transparent}
.engagement-list{border-top:1px solid var(--rule)}
.engagement{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(24px,5vw,72px);padding:30px 0;border-bottom:1px solid var(--rule)}
.engagement h4{font-family:Manrope,sans-serif;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.2;letter-spacing:-.035em;margin:12px 0 0}
.engagement-copy p{color:var(--muted);line-height:1.7;margin:0 0 14px;max-width:65ch}
.engagement-copy strong{color:var(--ink)}
.engagement-copy a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:4px}
body.dodec .backrow-project{border:0;background:transparent;padding:0}

@media(min-width:751px) and (max-width:1150px){
  header .subnav .shell{flex-wrap:wrap;gap:0 20px;white-space:normal;overflow:visible}
  header .subnav .social-links{margin-left:0;padding-left:0}
}
@media(max-width:900px){
  .kidmin-introduction{display:block}
  .kidmin-introduction .btn{margin-top:20px}
  .service-entry>div{grid-template-columns:minmax(0,1fr)}
  .service-entry>div{gap:12px}
}
@media(max-width:600px){
  .focus-entry,.engagement{grid-template-columns:1fr;gap:12px}
  .service-entry{grid-template-columns:24px minmax(0,1fr);gap:14px}
  .hero h1{letter-spacing:-.045em}
}
@media(max-width:400px){
  body.sam .photo-home h1,body.delia .photo-home h1,body.dodec .hero h1{font-size:clamp(2.35rem,10.2vw,2.8rem);letter-spacing:-.045em}
  .page h1{font-size:2rem;letter-spacing:-.035em}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
