/* Shared production fixes: progressive enhancement, layout, contact chrome, focus */
:focus-visible{outline:2px solid var(--olive2);outline-offset:3px}

/* Content is readable without JavaScript; JS opts reveal elements into animation. */
.reveal,.a3-reveal{opacity:1!important;transform:none!important}
.js .reveal:not(.visible){opacity:0!important;transform:translateY(18px)!important}
.js .a3-reveal:not(.is-visible){opacity:0!important;transform:translateY(12px)!important}
.js .reveal.visible,.js .a3-reveal.is-visible{opacity:1!important;transform:none!important}

/* Avoid browser-dependent blank sections from content-visibility + reveal combinations. */
.lens,.principles,.system-map,.experience,.credentials,.closing,.case-body{content-visibility:visible!important;contain-intrinsic-size:auto!important}

.hero-role{margin:10px 0 0;font-size:13px;font-weight:650;letter-spacing:.02em;color:var(--olive2)}
.metric-type{font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:var(--olive2);font-weight:750}

/* Four selected cases are a deliberate 2×2 set, not a 3+1 leftover. */
.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.case-card{min-height:520px}
.case-card.is-hidden{display:none!important}
.case-grid[data-visible-count="1"]{grid-template-columns:minmax(0,560px)!important}

.site-footer .footer-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end}
.site-footer a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.site-footer a:hover{border-color:currentColor}

/* Keep navigation explicit on mobile; allow horizontal scrolling rather than hiding items by position. */
.site-header nav{scrollbar-width:none}
.site-header nav::-webkit-scrollbar{display:none}
.site-header nav a{display:inline!important}

/* Shared artifact primitives for future sanitized evidence. */
.artifact{margin:28px 0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--cream)}
.artifact img{display:block;width:100%;height:auto}
.artifact figcaption{padding:12px 16px 14px;font-size:12px;color:rgba(26,26,23,.6);border-top:1px solid var(--line)}
.decision-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14px}
.decision-table th,.decision-table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.decision-table th{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive2)}

@media(max-width:720px){
  .case-grid{grid-template-columns:1fr!important}
  .case-card{min-height:0}
  .case-grid[data-visible-count="1"]{grid-template-columns:1fr!important;max-width:none}
  .site-footer .footer-links{justify-content:flex-start}
  .site-header nav{display:flex!important;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
}

@media(prefers-reduced-motion:reduce){
  .js .reveal,.js .a3-reveal{opacity:1!important;transform:none!important;transition:none!important}
}
