@media (max-width: 900px) {
  .graphic-page {
    font-size: 1.125rem;
    line-height: 1.75;
    overflow-wrap: break-word;
  }

  .graphic-page :where(main, header, footer, section, div, article, aside, nav, ul, ol, dl, figure, form) {
    min-width: 0;
  }

  .container { width: calc(100% - 40px); }
  .section { padding: 3.5rem 0; }
  .section-compact { padding: 2.5rem 0; }
  .lead,
  .graphic-page .section-heading p,
  .graphic-page .lead { font-size: 1.125rem; line-height: 1.8; }
  .eyebrow,
  .graphic-home .hero .eyebrow { margin-bottom: 1rem; font-size: .75rem; line-height: 1.5; }
  .eyebrow::before { width: 1.5rem; flex: 0 0 auto; }
  .button { min-height: 3.25rem; padding: .75rem 1.25rem; font-size: 1rem; }
  .text-link { min-height: 2.75rem; font-size: 1rem; }

  .upgrade-page .site-header,
  .upgrade-home .site-header,
  .upgrade-case .site-header {
    width: 100%;
    min-height: 0;
    padding: 0 max(20px, env(safe-area-inset-right, 0px)) 0 max(20px, env(safe-area-inset-left, 0px));
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 .75rem;
  }
  .brand { grid-column: 1; grid-row: 1; min-width: 0; padding-top: .75rem; }
  .brand-name { font-size: 1.375rem; }
  .brand-role { margin-top: .2rem; font-size: .6875rem; }
  .header-contact {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    margin-left: 0;
    padding: .55rem .75rem;
    font-size: .8125rem;
  }
  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    order: initial;
    width: 100%;
    margin: .5rem 0 0;
    overflow: visible;
  }
  .primary-nav ul {
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .primary-nav li { border-top: 1px solid #426156; }
  .primary-nav a {
    display: flex;
    width: 100%;
    min-width: 2.75rem;
    min-height: 2.75rem;
    justify-content: center;
    padding: .55rem .25rem;
    font-size: .8125rem;
    text-align: center;
    white-space: normal;
  }
  .primary-nav a[aria-current="page"]::after { right: 25%; bottom: .25rem; left: 25%; }

  .upgrade-home .hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    gap: 0;
    padding: 1rem 20px 2.5rem;
  }
  .upgrade-home .hero-copy { display: contents; max-width: none; padding: 0; }
  .upgrade-home .hero .eyebrow { order: 1; margin: 0 0 .75rem; }
  .upgrade-home .hero-portrait {
    position: relative;
    order: 2;
    justify-self: center;
    width: clamp(7rem, 32vw, 8.5rem);
    min-height: 0;
    height: auto;
    margin: 0 0 .75rem;
    padding: 0;
    overflow: hidden;
    border: 1px solid #4A6359;
  }
  .upgrade-home .hero-portrait img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    object-position: center 20%;
  }
  .upgrade-home .hero-portrait figcaption {
    position: static;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 .5rem;
    padding: .4rem .5rem;
    font-size: .625rem;
    line-height: 1.5;
    text-align: center;
  }
  .upgrade-home .hero-name { order: 3; margin: 0 0 .5rem; font-size: 1.25rem; }
  .upgrade-home .hero h1 {
    order: 4;
    max-width: 24rem;
    font-size: clamp(2rem, 8.6vw, 2.75rem);
    line-height: 1.24;
    letter-spacing: -.04em;
  }
  .upgrade-home .hero h1 br { display: none; }
  .upgrade-home .hero h1 em { display: block; margin-top: .25rem; }
  .upgrade-home .hero-role {
    order: 5;
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .35rem;
    margin: .75rem 0 0;
    font-size: .9375rem;
    line-height: 1.6;
  }
  .hero-role-fullcycle { white-space: normal; }
  .upgrade-home .hero .button-row {
    order: 6;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    width: 100%;
    margin: 1rem 0 0;
  }
  .upgrade-home .hero .button {
    width: 100%;
    min-height: 3rem;
    padding: .65rem .5rem;
    font-size: .8125rem;
    text-align: center;
  }
  .upgrade-home .hero-intro {
    order: 7;
    margin: 1.5rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid #4A6359;
    font-size: 1rem;
    line-height: 1.8;
  }
  .upgrade-home .hero-proof { order: 8; margin-top: 1rem; }
  .upgrade-home .hero-proof li { grid-template-columns: 7.5rem minmax(0, 1fr); gap: .75rem; }
  .upgrade-home .hero-proof strong,
  .upgrade-home .hero-proof span { font-size: .8125rem; }

  .home-capabilities { padding: 3rem 0; }
  .home-capabilities-heading,
  .section-heading,
  .career-route-heading,
  .project-journey-heading,
  .sequence-heading {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.25rem;
    margin-bottom: 2rem;
  }
  .home-capabilities-heading h2,
  .upgrade-home .section-heading h2,
  .capability-intro h2,
  .capability-tabs-heading h2,
  .career-route-heading h2,
  .project-journey-heading h2 { font-size: 2rem; line-height: 1.35; }
  .home-capabilities-heading p,
  .career-route-heading p,
  .project-journey-heading p { font-size: 1rem; }
  .home-capability-track {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .75rem;
    padding: 0;
  }
  .home-capability-track::before { content: none; }
  .home-capability-track a,
  .home-capability-track a:nth-child(even),
  .home-capability-track a:hover,
  .home-capability-track a:focus-visible,
  .home-capability-track a:nth-child(even):hover,
  .home-capability-track a:nth-child(even):focus-visible {
    min-height: 7rem;
    align-items: flex-start;
    justify-content: center;
    padding: 1rem;
    clip-path: none;
    transform: none;
    text-align: left;
  }
  .home-capability-track strong { font-size: 1.0625rem; }
  .home-capability-track span { font-size: .8125rem; }

  .consulting-roles-section { padding: 3rem 0 2.5rem; }
  .consulting-role-grid,
  .executive-responsibility,
  .lifecycle-artifact-grid,
  .three-perspectives,
  .credential-education,
  .credential-list,
  .case-index,
  .other-cases,
  .cta-grid,
  .industry-grid,
  .style-grid,
  .learning-list,
  .learning-list > div,
  .method-samples,
  .action-grid,
  .workflow,
  .product-story,
  .contact-role-grid,
  .project-journey-track,
  .project-grid,
  .detail-two-col,
  .record-list,
  .selection-grid,
  .artifact-grid,
  .strategy-path,
  .interview-workbench,
  .model-workbench,
  .detail-next {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .consulting-role-card { padding: 1.375rem 1.25rem; border-top-width: 2px; }
  .consulting-role-card h3 { font-size: 1.375rem; }
  .leadership-note { margin-top: 1.5rem; padding: 1.25rem; border-left: 3px solid var(--rust); background: var(--white); }
  .leadership-note strong { display: block; margin-bottom: .625rem; color: var(--ink); font-size: 1.25rem; line-height: 1.5; }
  .leadership-note p { margin-bottom: 0; color: var(--muted); }
  .role-boundary { margin-top: 1.25rem; }

  .graphic-home .three-perspectives { gap: 2rem; }
  .graphic-home .three-perspectives::before { content: none; }
  .graphic-home .perspective,
  .graphic-home .perspective:nth-child(2),
  .graphic-home .perspective:nth-child(3) { margin-top: 0; padding-top: 1.75rem; border-top: 2px solid var(--ink); }
  .graphic-home .perspective::before { top: -.55rem; left: 0; }
  .upgrade-home .credentials { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 3.5rem 0; }
  .upgrade-home .credentials-intro h2 { font-size: 2rem; }
  .credential-education { gap: .75rem; margin-bottom: 1.5rem; }
  .upgrade-home .credential-education article { padding: 1.25rem; }
  .upgrade-home .credential-list { gap: 0; }
  .upgrade-home .credential-note { grid-column: 1; }
  .upgrade-home .featured-work { padding: 3.5rem 0; }
  .upgrade-home .featured-case { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 1.5rem; }
  .upgrade-home .case-number { font-size: 5rem; }
  .upgrade-home .featured-case h3 { font-size: 1.625rem; }
  .upgrade-home .case-artifact-mini { gap: .375rem; }
  .upgrade-home .case-artifact-mini div { padding: .65rem .25rem; font-size: .6875rem; }
  .upgrade-home .other-cases { gap: 1.5rem; margin-top: 2rem; }
  .career-strip { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .career-list li { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .method-band { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .method-samples { gap: 1rem; }
  .cta-panel { min-height: 15rem; padding: 1.5rem; }
  .cta-panel + .cta-panel { border-top: 0; border-left: 1px solid var(--ink); }
  .cta-panel h3,
  .upgrade-home .cta-panel h3 { font-size: 1.5rem; }

  .upgrade-page .page-hero { padding: 2.5rem 0 2.25rem; }
  .page-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .graphic-page .page-hero h1 { font-size: clamp(2.25rem, 9vw, 3.25rem); line-height: 1.25; }
  .upgrade-page .page-hero-grid > p:last-child { padding-top: 1.25rem; font-size: 1rem; line-height: 1.8; }
  .page-kicker { font-size: .875rem; }

  .capability-intro { padding: 3rem 0 1rem; }
  .capability-intro p { font-size: 1rem; }
  .sequence-explorer { margin: 2rem auto 1.5rem; padding: 2rem 0 1.5rem; }
  .sequence-heading h3 { font-size: 1.5rem; }
  .sequence-heading p { font-size: .9375rem; }
  .sequence-track {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .625rem;
    margin-bottom: 1.25rem;
  }
  .sequence-track::before,
  .sequence-progress { display: none; }
  .sequence-item,
  .sequence-strategy .sequence-item:nth-child(2),
  .sequence-strategy .sequence-item:nth-child(4),
  .sequence-reuse .sequence-item:nth-child(2),
  .sequence-reuse .sequence-item:nth-child(4),
  .sequence-model .sequence-item:nth-child(2) {
    min-height: 4.75rem;
    padding: 1.5rem 1rem .85rem;
    border: 1px solid var(--line);
    background: var(--white);
    transform: none;
  }
  .sequence-item::before { top: .45rem; left: 1rem; width: .625rem; height: .625rem; }
  .sequence-item strong { font-size: 1.0625rem; }
  .sequence-item span { font-size: .8125rem; }
  .sequence-detail { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem; padding: 1.25rem 0 .25rem 1.25rem; }
  .sequence-detail h3 { font-size: 1.375rem; }
  .sequence-detail-description { font-size: 1rem; }
  .sequence-detail .text-link { white-space: normal; }
  .sequence-journey { padding: 1.5rem; }
  .sequence-journey .sequence-item,
  .sequence-journey .sequence-item[aria-pressed="true"] {
    border: 1px solid #AAB8AE;
    background: var(--graphic-white);
    color: var(--graphic-green);
    transform: none;
  }
  .sequence-journey .sequence-item[aria-pressed="true"] { border-left: 4px solid var(--graphic-gold-strong); }
  .sequence-journey .sequence-item strong { color: var(--graphic-green); }
  .sequence-journey .sequence-item span { color: var(--muted-tint); }
  .sequence-journey .sequence-item::before { background: var(--graphic-white); }
  .sequence-journey .sequence-item[aria-pressed="true"]::before { background: var(--graphic-gold-strong); }

  .capability-layout { grid-template-columns: minmax(0, 1fr) !important; gap: 2rem; padding-bottom: 3.5rem; }
  .graphic-page .capability-map {
    display: grid;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .75rem;
  }
  .capability-links { display: none; }
  .capability-hub,
  .capability-node,
  .capability-node[data-capability] {
    position: static;
    inset: auto;
    width: auto;
    height: auto;
    min-height: 6rem;
    margin: 0;
    padding: 1rem;
    clip-path: none;
    transform: none;
  }
  .capability-hub {
    grid-column: 1 / -1;
    min-height: 5.5rem;
    align-items: flex-start;
    text-align: left;
  }
  .capability-hub strong { font-size: 1.375rem; }
  .capability-node {
    align-items: flex-start;
    justify-content: center;
    border: 1px solid #AAB8AE;
    background: var(--white);
    text-align: left;
  }
  .capability-node:hover,
  .capability-node[aria-pressed="true"] { border-left: 4px solid var(--graphic-gold-strong); background: #E7EEE6; transform: none; }
  .capability-node strong { font-size: 1.0625rem; }
  .capability-node span { font-size: .8125rem; }
  .capability-detail { padding: 1.5rem 0 1.5rem 1.25rem; }
  .capability-detail h3 { font-size: 1.625rem; }
  .capability-detail p { font-size: 1rem; }
  .capability-value { margin-top: 0; font-size: 1.125rem; }

  .tab-shell { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .tab-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 .75rem; }
  .tab-list [role="tab"] { min-height: 3rem; padding: .75rem .25rem; font-size: .9375rem; }
  .detail-two-col { gap: 1.5rem; margin: 2rem 0; }
  .related-case { grid-template-columns: minmax(0, 1fr); gap: .5rem; padding: 1.25rem 0; }
  .process-list li { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .project-card-visual { min-height: 12rem; padding: 1.5rem; }
  .project-card-body { padding: 1.5rem; }
  .project-records { margin-top: 2.5rem; }
  .project-records summary { display: flex; min-height: 3.25rem; align-items: center; gap: 1rem; padding: 1rem .25rem; font-size: 1.25rem; }
  .project-records summary span { float: none; margin-left: auto; }
  .record-list { gap: 0; }
  .case-index-item { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1.5rem 1rem; }
  .case-index-item h3 { font-size: 1.5rem; }
  .project-journey-section { padding: 3.5rem 0; }
  .project-journey-track { gap: 1.5rem; }
  .project-journey-track::before { content: none; }
  .journey-case { padding: 1.5rem 0 0; border-top: 1px solid #4A6359; }
  .journey-case::before { top: -.55rem; }
  .journey-case strong,
  .journey-case:first-child strong { font-size: 1.5rem; }

  .executive-responsibility { gap: 1.5rem; padding: 2.5rem 0 1rem; }
  .executive-responsibility h2 { font-size: 1.5rem; }
  .career-route-section { padding: 3.5rem 0; }
  .career-route-stage { min-height: 0; overflow: visible; }
  .career-contours { display: none; }
  .career-route { position: static; display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .career-route > li { position: static; width: 100%; }
  .career-node,
  .career-node:hover,
  .career-node[aria-pressed="true"] {
    width: 100%;
    min-height: 6rem;
    padding: 1.25rem;
    border: 1px solid #71887B;
    border-left: 3px solid var(--graphic-gold);
    transform: none;
  }
  .career-node strong { font-size: 1.375rem; }
  .career-node span { font-size: .875rem; }
  .career-detail { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem; margin-top: 1.5rem; padding: 1.5rem; border-top: 1px solid #4A6359; background: #24483B; }
  .career-detail-company { font-size: 1.625rem; }
  .career-detail-description { font-size: 1rem; }
  .career-detail .text-link { white-space: normal; }
  .experience-row { grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 1.5rem 0; }
  .industry-grid { gap: 1.5rem; }
  .learning-list > div { gap: .25rem; }

  .about-hero { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 2.5rem 0; }
  .about-hero .lead { margin-top: 1.25rem; }
  .about-portrait img { height: auto; aspect-ratio: 16 / 10; object-position: center 22%; }
  .about-chapter { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .chapter-label { padding-top: 0; }
  .prose { margin-top: 1.5rem; font-size: 1.0625rem; }
  .style-grid { gap: 1.5rem; }

  .contact-path .contact-choice-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem; }
  .contact-path .contact-choice,
  .contact-path .contact-choice:nth-child(2),
  .contact-path .contact-choice:hover,
  .contact-path .contact-choice[aria-pressed="true"] {
    min-height: 0;
    margin-top: 0;
    padding: 1.25rem;
    border: 1px solid #AAB8AE;
    border-top: 3px solid var(--graphic-green);
    transform: none;
  }
  .contact-path .contact-choice[aria-pressed="true"] { border-left: 4px solid var(--graphic-gold-strong); }
  .contact-path .contact-choice strong { font-size: 1.5rem; }
  .contact-path .contact-choice p,
  .contact-path .contact-choice > span:last-child { font-size: .9375rem; }
  .contact-steps { gap: .75rem; margin-bottom: 2rem; }
  .contact-steps li { font-size: .8125rem; }
  .contact-path .contact-guide { margin-top: 2rem; padding: 1.5rem 1.25rem; }
  .contact-guide h2 { font-size: 1.625rem; }
  .contact-path .guide-list li { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .contact-role-grid { gap: .75rem; }
  .contact-role-grid button { min-height: 5.5rem; padding: 1rem; }
  .contact-role-grid button[aria-pressed="true"] { border-left: 4px solid var(--rust); }
  .contact-path [data-contact-action] { width: 100%; }
  .contact-outline { min-height: 18rem; font-size: 1rem; }
  .contact-status { font-size: .875rem; }

  .upgrade-case .breadcrumb { flex-wrap: wrap; gap: .25rem .625rem; padding: .75rem 0; }
  .breadcrumb a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; }
  .upgrade-case .detail-hero { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 2rem 0 2.5rem; }
  .upgrade-case .detail-hero h1 { font-size: clamp(2.125rem, 8.5vw, 3rem); line-height: 1.28; }
  .detail-hero .lead { margin-top: 1.25rem; font-size: 1.0625rem; }
  .detail-client { font-size: 1.25rem; }
  .project-facts > div { grid-template-columns: 5rem minmax(0, 1fr); gap: 1rem; }
  .detail-layout { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 3.5rem; }
  .detail-aside { padding: 2.5rem 0 0; }
  .detail-aside h2 { font-size: 1.625rem; }
  .detail-section { padding: 2.5rem 0; }
  .detail-section h2 { font-size: 1.625rem; }
  .detail-section > p { font-size: 1.0625rem; }
  .action-grid { gap: 1.25rem; }
  .work-figure-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; padding: 1.25rem; }
  .work-figure-heading strong { font-size: 1.25rem; }
  .level-workbench { padding: 1rem; }
  .sequence-labels { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .5rem; }
  .level-scale { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: .375rem; }
  .workbench-notes { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem; }
  .strategy-path,
  .interview-workbench,
  .model-workbench { gap: 1rem; padding: 1.25rem; }
  .strategy-path > div { padding: 1rem 0; border-top: 1px solid var(--line); border-left: 0; }
  .strategy-path > div:first-child { border-top: 0; }
  .interview-workbench .interview-synthesis { grid-column: 1; }
  .detail-next { gap: .75rem; margin-top: 2rem; }
  .detail-next a { min-height: 4.75rem; padding: 1.25rem; }

  .artifact-sheet { padding: 1.25rem; }
  .artifact-grid { gap: 1.5rem; }
  .course-outline > div { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .course-outline span { grid-row: auto; }
  .workflow > div { grid-template-columns: minmax(0, 1fr); gap: .25rem; padding: 1rem 1.25rem; }
  .tool-notes { flex-wrap: wrap; }

  .project-meta { font-size: .8125rem; }
  .project-card p { font-size: 1rem; }
  .record-list span { font-size: .875rem; }
  .project-facts dt { font-size: .8125rem; }
  .project-facts dd { font-size: 1rem; }
  .contact-role-grid button strong { font-size: 1.125rem; }
  .contact-role-grid button span { font-size: .875rem; }
  .career-node .career-node-index { font-size: .875rem; }
  .fine-print { font-size: .75rem; }

  .footer-inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
  .footer-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem .75rem; }
  .footer-links a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; }
  .site-footer { padding-bottom: max(2rem, env(safe-area-inset-bottom, 0px)); }

  .term-note { right: 0; left: auto; width: min(16rem, calc(100vw - 40px)); }

  @keyframes r37-mobile-enter {
    from { opacity: .01; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @media (prefers-reduced-motion: no-preference) {
    .upgrade-home .hero-copy,
    .upgrade-home .hero-portrait,
    .upgrade-case .work-figure { animation: r37-mobile-enter 360ms ease-out both; }
    .motion-ready [data-reveal].is-visible { transition-duration: 320ms; }
    .contact-choice,
    .contact-role-grid button,
    .capability-node,
    .career-node,
    .sequence-item { transition: background-color 180ms ease, border-color 180ms ease; }
  }

  @media (prefers-reduced-motion: reduce) {
    .hero-copy,
    .hero-portrait,
    .work-figure,
    [data-reveal] { animation: none !important; opacity: 1 !important; transform: none !important; }
  }
}

@media (max-width: 420px) {
  .contact-steps { grid-template-columns: minmax(0, 1fr); }
  .contact-steps li { padding-top: .5rem; }
}

@media (max-width: 350px) {
  .upgrade-home .hero h1 { font-size: 1.875rem; }
  .upgrade-home .hero-portrait { width: 7rem; }
  .upgrade-home .hero .button { font-size: .75rem; }
}
