/* One typographic scale and content grid; project artwork retains its own style. */
:root, [data-theme] {
  --paper: #fff; --ink: #111; --muted: #606060; --line: #e3e3e3;
  --accent: #7351bd; --highlight: #e5e1f4;
  --serif: 'Abril Fatface', Georgia, serif;
  --mono: 'Lato', Arial, sans-serif;
  --max: var(--layout-max); --pad: var(--layout-gutter);
  color-scheme: light;
}
body.project-page { background: #fff; color: #111; font: 400 17px/1.75 var(--layout-ui); }
.project-page .page-shell, .project-page .case-container, .project-page .intro-section,
.project-page .landing-session.aai + .case-container {
  width: min(calc(100% - 2 * var(--layout-gutter)), var(--layout-max));
  max-width: var(--layout-max); margin-inline: auto;
}
.project-page .case-hero { padding: 156px 0 64px; }
.project-page .case-hero h1, .project-page .myheading1 { max-width: 1000px; margin: 16px 0 28px; font: 400 clamp(42px, 5.5vw, 76px)/1.12 var(--layout-display); letter-spacing: -.025em; overflow-wrap: break-word; }
.project-page .case-hero-deck { max-width: 780px; color: var(--muted); font: 400 clamp(19px, 2vw, 24px)/1.6 var(--layout-ui); }
.project-page .eyebrow, .project-page .story-label { font: 700 12px/1.6 var(--layout-ui); letter-spacing: .12em; color: var(--muted); }
.project-page .hero-meta { margin-top: 40px; gap: 20px; border-top-color: var(--line); }
.project-page .case-meta dt { font: 700 11px/1.6 var(--layout-ui); }
.project-page .case-meta dd { font: 400 15px/1.6 var(--layout-ui); }
.project-page .case-hero-image { margin: 0; }
.project-page .case-hero-image img { height: auto; max-height: 720px; object-fit: contain; }
.project-page .case-hero-image figcaption { padding: 12px 0; }
.project-page .story-section { grid-template-columns: minmax(120px, .28fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); padding-block: 80px; }
.project-page .story-section > *, .project-page .story-grid > *, .project-page .intro-body { min-width: 0; }
.project-page .story-section h2, .project-page .heading-14, .project-page .section-title,
.project-page .narrative-block > .heading { margin: 0 0 24px; font: 400 clamp(30px, 3.3vw, 46px)/1.2 var(--layout-display); letter-spacing: -.02em; }
.project-page .story-grid h3, .project-page .decision-list h3, .project-page .system-row h3 { font: 700 23px/1.35 var(--layout-ui); }
.project-page .story-section p, .project-page .intro-body p, .project-page .narrative-block p { max-width: 72ch; color: var(--muted); font: 400 17px/1.8 var(--layout-ui); }
.project-page .story-callout { display: block; padding: 48px; }
.project-page .story-callout h2 { font-size: clamp(32px, 4vw, 54px); }
.project-page .image-wide { padding-block: 64px; }
.project-page figcaption, .project-page .banner-row .caption { font: 400 13px/1.6 var(--layout-ui); color: var(--muted); }
.project-page .landing-session { padding: 156px var(--layout-gutter) 64px; min-height: auto; height: auto; }
.project-page .columns-3 { width: 100%; max-width: var(--layout-max); margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.project-page .columns-3 { transform: none; }
.project-page .col-copy, .project-page .col-image { width: auto; max-width: none; min-width: 0; padding: 0; transform: none; }
.project-page .intro-section { padding-block: 80px; gap: 64px; }
.project-page .intro-meta { flex-basis: 220px; }
.project-page .case-container { padding-block: 40px; }
.project-page .case-container, .project-page .intro-section { padding-inline: 0; }
.project-page .narrative-block { margin-block: 64px; }
.project-page .banner-row { margin-bottom: 64px; }
.project-page .landing-session.aai + .case-container .narrative-block > p { max-width: 72ch !important; color: var(--muted) !important; font-size: 17px; }
html:has(.reading-page) { background: #fff; scroll-snap-type: none; }
@media (max-width: 800px) {
  .project-page .case-hero { padding-top: 120px; padding-bottom: 40px; }
  .project-page .story-section { grid-template-columns: 1fr; gap: 24px; padding-block: 48px; }
  .project-page .hero-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-page .hero-meta > div { border-right: 0; }
  .project-page .landing-session { padding-top: 120px; padding-bottom: 40px; }
  .project-page .columns-3 { grid-template-columns: 1fr; gap: 32px; }
  .project-page .intro-section { flex-direction: column; gap: 32px; padding-block: 48px; }
  .project-page .intro-meta { flex-basis: auto; }
  .project-page .story-callout { padding: 28px; }
  .project-page .narrative-block > p { max-width: 100% !important; }
  .project-page .image-wide { padding-block: 40px; }
}
@media (max-width: 480px) {
  .project-page .hero-meta { grid-template-columns: 1fr; }
  .project-page .narrative-row { flex-direction: column; align-items: flex-start; gap: 24px; }
  .project-page .narrative-row .icon-col { flex-basis: auto; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
