/* Reading-first enhancements shared by the portfolio, not the embedded games. */
h1,h2,h3,h4 { text-wrap:balance; }
p,dd { text-wrap:pretty; }
.sentence-break { display:block; margin-top:.65em; }
.decision-case dd,.context-primer p { max-width:46rem; }
.decision-case dd { line-height:1.9; }
.decision-case dd strong { color:var(--ink); font-weight:700; }
.section-lead { max-width:44rem; }
.scope-note { max-width:62rem; line-height:1.85; }
.project-summary dt,.workspace-label small,.project-type,.ai-summary,.work-type { font-size:.875rem; }
.tag-list li { font-size:.8125rem; }
.topbar,.project-topbar { flex-wrap:wrap; }
.topbar nav,.project-topbar nav { flex-wrap:wrap; }
.reading-progress { position:fixed; inset:0 0 auto; height:3px; pointer-events:none; z-index:300; }
.reading-progress span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:var(--blue); }
.topbar-link[aria-current="location"] { color:var(--blue); }
.project-subnav a { position:relative; }
.project-subnav a[aria-current="location"]::after { content:""; position:absolute; height:2px; bottom:3px; left:10px; right:10px; background:var(--project-accent); }
.context-primer { padding:26px 28px; margin:0 0 24px; border-left:4px solid var(--project-accent); background:var(--project-tint); border-radius:0 10px 10px 0; }
.context-primer .eyebrow { font-family:var(--font-body); font-size:.875rem; }
.context-primer h3 { font-size:1.3rem; }
.context-primer p { color:var(--ink-soft); }
.context-primer p:last-child { margin-bottom:0; }
.judgment-explorer { padding:28px; margin-bottom:28px; border:1px solid var(--line); border-radius:10px; background:white; }
.judgment-explorer h3 { font-size:1.25rem; }
.judgment-explorer header > p { color:var(--muted); font-size:.875rem; }
.judgment-controls { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.judgment-controls button { padding:10px 16px; min-height:44px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:.9375rem; font-weight:700; }
.judgment-controls button[aria-pressed="true"] { border-color:var(--project-accent); background:var(--project-accent); color:white; }
[data-judgment-panel] h4 { margin:20px 0 14px; font-size:1rem; }
[data-judgment-panel] > p { color:var(--ink-soft); max-width:48rem; margin-bottom:0; }
.judgment-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0 0 20px; }
.judgment-steps li { position:relative; min-width:0; padding:20px; border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.judgment-steps li + li::before { content:"→"; position:absolute; left:-21px; top:calc(50% - 15px); color:var(--project-accent); }
.judgment-steps span { display:block; margin-bottom:7px; color:var(--muted); font-size:.875rem; }
.judgment-steps strong { font-size:1.0625rem; }
[data-judgment-panel="before"] .judgment-steps li:last-child { background:#fff4ec; border-color:#d49b79; }
[data-judgment-panel="after"] .judgment-steps li:last-child { background:var(--project-tint); border-color:var(--project-accent); }
/* No continuously running animations or effects that hide content before JS. */
.featured-card:focus-visible,.work-card:focus-visible { border-color:var(--project-accent); }
.featured-card,.work-card { transition:transform var(--motion-duration),box-shadow var(--motion-duration),border-color var(--motion-duration); }
.featured-card .case-link,.work-arrow,.button-arrow { transition:transform var(--motion-duration),background var(--motion-duration); }
@media (hover:hover) and (pointer:fine) {
  .featured-card:hover,.work-card:hover { border-color:var(--project-accent); box-shadow:var(--shadow); }
  html[data-motion="on"] .featured-card:hover,html[data-motion="on"] .work-card:hover { transform:translateY(-3px); }
  html[data-motion="on"] .featured-card:hover .case-link { transform:translate(2px,-2px); }
  html[data-motion="on"] .work-card:hover .work-arrow { transform:translate(2px,-2px); background:var(--sky); }
  html[data-motion="on"] .primary-button:hover .button-arrow { transform:translateY(3px); }
}
@media (max-width:1040px) {
  .hero .hero-title { font-size:clamp(2.75rem,6vw,4rem); }
  .hero { gap:24px; }
}
@media (max-width:720px) {
  .hero { padding:34px 0 44px; }
  .hero .hero-title { font-size:clamp(2.2rem,9.4vw,3.5rem); line-height:1.3; letter-spacing:-.045em; }
  .hero-answer { font-size:1.125rem; }
  .hero .hero-description br { display:none; }
  .hero .hero-description strong { font-weight:600; }
  .context-primer,.judgment-explorer { padding:22px 20px; }
  .judgment-steps { grid-template-columns:1fr; gap:22px; }
  .judgment-steps li { padding:16px; }
  .judgment-steps li + li::before { content:"↓"; left:auto; right:20px; top:-24px; }
  .judgment-controls button { flex:1 1 150px; }
  .topbar nav,.project-topbar nav { gap:6px; }
  .hero-lead br,.section-heading h2 br,.project-outro h2 br { display:none; }
  .section-heading h2 span { display:inline; }
  .section-heading h2 span + span::before { content:" "; }
  .project-summary { padding:18px 0; gap:14px; }
  .project-summary dd { line-height:1.8; }
}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html[data-motion="off"] { scroll-behavior:auto; }
html[data-motion="off"] .featured-card:hover,html[data-motion="off"] .work-card:hover { transform:none; }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .featured-card:hover,.work-card:hover { transform:none; }
}
