/*
 * Typography contracts
 *
 * Responsive sizes, font stacks and shared type roles live here. Components select
 * semantic size and weight contracts; genuinely local leading, tracking, alignment
 * and spacing stay with the component. Geometry-bound annotations form an explicit
 * role group below.
 */

@layer contracts {
:root {
  /* Families */
  --type-family-interface: system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  --type-family-text: -apple-system, BlinkMacSystemFont, "SF Pro Text",
    "Helvetica Neue", "Segoe UI", sans-serif;
  --type-family-compact-text: -apple-system, BlinkMacSystemFont, "SF Pro Text",
    "Helvetica Neue", sans-serif;
  --type-family-display: "Helvetica Neue", "Segoe UI", Helvetica, Arial,
    sans-serif;
  --type-family-monospace: ui-monospace, "SFMono-Regular", Consolas, monospace;

  /* Cross-platform weight scale */
  --type-weight-thin: 100;
  --type-weight-light: 300;
  --type-weight-regular: 400;
  --type-weight-medium: 500;
  --type-weight-semibold: 600;
  --type-weight-bold: 700;
  --type-weight-black: 900;

  /* Shared semantic leading roles */
  --type-line-height-title: 1.2;
  --type-line-height-detail-sequence-title: 1.18;
  --type-line-height-detail-sequence-copy: 1.3;

  /* Global navigation and route feedback */
  --type-size-navigation: clamp(0.75rem, calc(0.9259 * var(--site-scale-unit)), 1rem);
  --type-size-navigation-active: clamp(0.75rem, calc(1.0185 * var(--site-scale-unit)), 1.1rem);
  --type-size-navigation-control: min(var(--type-size-navigation), 8.5cqi);
  --type-size-navigation-control-active: min(
    var(--type-size-navigation-active),
    8.75cqi
  );
  --type-size-navigation-menu-item: clamp(0.72rem, calc(0.86 * var(--site-scale-unit)), 0.88rem);
  --type-size-navigation-menu-index: 0.62rem;
  --type-size-navigation-menu-symbol: 1.05rem;
  --type-size-navigation-entry-title-reference: clamp(
    1.75rem,
    calc(2.55 * var(--site-scale-unit)),
    3rem
  );
  --type-size-navigation-entry-title: var(
    --type-size-navigation-entry-title-reference
  );
  --type-size-navigation-entry-title-tablet: calc(
    var(--type-size-navigation-entry-title) * 0.86
  );
  --type-size-route-context-title: clamp(1.3rem, calc(1.9 * var(--site-scale-unit)), 2.25rem);
  --type-size-route-context-title-tablet: calc(
    var(--type-size-route-context-title) * 0.86
  );
  --type-size-route-pull-kicker: 0.66rem;
  --type-size-route-pull-label: clamp(0.88rem, calc(1.15 * var(--site-scale-unit)), 1.06rem);
  --type-size-route-transition-title: clamp(1.7rem, calc(3.15 * var(--site-scale-unit)), 3.7rem);

  /* Overview and title scene */
  --overview-type-base-topic-title: clamp(0.82rem, calc(1.08 * var(--site-scale-unit)), 1.08rem);
  --overview-type-base-protected-label: clamp(0.49rem, calc(0.58 * var(--site-scale-unit)), 0.58rem);
  --overview-type-base-compact-title: clamp(0.78rem, var(--site-scale-unit), 1.02rem);
  --overview-type-base-welcome-title: clamp(2.4rem, calc(4 * var(--site-scale-unit)), 4.75rem);
  --overview-type-base-welcome-subtitle: clamp(1rem, calc(1.65 * var(--site-scale-unit)), 1.8rem);
  --overview-type-base-extension-label: clamp(1.2rem, calc(1.8 * var(--site-scale-unit)), 2rem);
  --overview-type-base-note-job-eyebrow: clamp(0.78rem, calc(1.02 * var(--site-scale-unit)), 1.04rem);
  --overview-type-base-note-job-title: clamp(1.48rem, calc(2.08 * var(--site-scale-unit)), 2.14rem);
  --overview-type-base-note-job-subtitle: clamp(0.82rem, calc(1.08 * var(--site-scale-unit)), 1.1rem);
  --overview-type-base-note-job-fact-label: clamp(0.68rem, calc(0.82 * var(--site-scale-unit)), 0.84rem);
  --overview-type-base-note-job-fact-value: clamp(0.76rem, calc(0.98 * var(--site-scale-unit)), 1rem);
  --overview-type-base-note-contact-kicker: clamp(0.66rem, calc(0.82 * var(--site-scale-unit)), 0.84rem);
  --overview-type-base-note-contact-title: clamp(1.08rem, calc(1.48 * var(--site-scale-unit)), 1.52rem);
  --overview-type-base-note-contact-copy: clamp(0.82rem, calc(1.05 * var(--site-scale-unit)), 1.08rem);
  --overview-type-base-hero-name: clamp(4.75rem, calc(10.5 * var(--site-scale-unit)), 13rem);
  --overview-type-base-hero-profession: clamp(0.625rem, var(--site-scale-unit), 0.95rem);
  --overview-type-base-profile-details: clamp(0.8rem, var(--site-scale-unit), 1rem);
  --overview-type-base-profile-contact: clamp(0.85rem, calc(1.25 * var(--site-scale-unit)), 1.1rem);
  --type-size-overview-topic-title: var(--overview-type-base-topic-title);
  --type-size-overview-protected-label: var(--overview-type-base-protected-label);
  --type-size-overview-compact-title: var(--overview-type-base-compact-title);
  --type-size-overview-welcome-title: var(--overview-type-base-welcome-title);
  --type-size-overview-welcome-subtitle: var(--overview-type-base-welcome-subtitle);
  --type-size-overview-extension-label: var(--overview-type-base-extension-label);
  --type-size-overview-note-job-eyebrow: var(--overview-type-base-note-job-eyebrow);
  --type-size-overview-note-job-title: var(--overview-type-base-note-job-title);
  --type-size-overview-note-job-subtitle: var(--overview-type-base-note-job-subtitle);
  --type-size-overview-note-job-fact-label: var(--overview-type-base-note-job-fact-label);
  --type-size-overview-note-job-fact-value: var(--overview-type-base-note-job-fact-value);
  --type-size-overview-note-contact-kicker: var(--overview-type-base-note-contact-kicker);
  --type-size-overview-note-contact-title: var(--overview-type-base-note-contact-title);
  --type-size-overview-note-contact-copy: var(--overview-type-base-note-contact-copy);
  --type-size-hero-name: var(--overview-type-base-hero-name);
  --type-size-hero-profession: var(--overview-type-base-hero-profession);
  --type-size-profile-details: var(--overview-type-base-profile-details);
  --type-size-profile-contact: var(--overview-type-base-profile-contact);

  /* Reusable detail-grid hierarchy */
  --detail-type-base-title: clamp(0.98rem, calc(1.45 * var(--site-scale-unit)), 1.48rem);
  --detail-type-base-label: clamp(0.64rem, calc(0.82 * var(--site-scale-unit)), 0.88rem);
  --detail-type-base-copy: clamp(0.76rem, calc(1.04 * var(--site-scale-unit)), 1rem);
  --detail-type-base-supporting-label: clamp(0.68rem, calc(0.91 * var(--site-scale-unit)), 0.91rem);
  --detail-type-base-fact-value: clamp(0.72rem, calc(0.98 * var(--site-scale-unit)), 0.96rem);
  --detail-type-base-stat-label: clamp(0.48rem, calc(0.62 * var(--site-scale-unit)), 0.64rem);
  --detail-type-base-stat-value: clamp(0.62rem, calc(0.84 * var(--site-scale-unit)), 0.86rem);
  --detail-type-base-compact-label: clamp(0.46rem, calc(0.57 * var(--site-scale-unit)), 0.59rem);
  --detail-type-base-profile-value: clamp(0.68rem, calc(0.92 * var(--site-scale-unit)), 0.94rem);
  --detail-type-base-sequence-number: clamp(0.58rem, calc(0.72 * var(--site-scale-unit)), 0.72rem);
  --detail-type-base-sequence-title: clamp(0.8rem, var(--site-scale-unit), 1.02rem);
  --detail-type-base-sequence-copy: clamp(0.64rem, calc(0.82 * var(--site-scale-unit)), 0.82rem);
  --detail-type-base-metric-value: clamp(1.05rem, calc(1.68 * var(--site-scale-unit)), 1.7rem);
  --type-size-detail-title: var(--detail-type-base-title);
  --type-size-detail-label: var(--detail-type-base-label);
  --type-size-detail-copy: var(--detail-type-base-copy);
  --type-size-detail-supporting-label: var(--detail-type-base-supporting-label);
  --type-size-detail-fact-value: var(--detail-type-base-fact-value);
  --type-size-detail-stat-label: var(--detail-type-base-stat-label);
  --type-size-detail-stat-value: var(--detail-type-base-stat-value);
  --type-size-detail-compact-label: var(--detail-type-base-compact-label);
  --type-size-detail-profile-value: var(--detail-type-base-profile-value);
  --type-size-detail-sequence-number: var(--detail-type-base-sequence-number);
  --type-size-detail-sequence-title: var(--detail-type-base-sequence-title);
  --type-size-detail-sequence-copy: var(--detail-type-base-sequence-copy);
  --type-size-detail-metric-value: var(--detail-type-base-metric-value);
  --type-size-profile-extension-heading: calc(
    var(--type-size-detail-copy) * 1.16
  );

  /* Accordion chapter overview */
  --type-size-accordion-timeline-card: clamp(0.8rem, calc(0.92 * var(--site-scale-unit)), 1rem);
  --type-size-accordion-timeline-card-compact: clamp(0.72rem, 6cqi, 0.8rem);
  --detail-type-base-protected-label: clamp(0.65rem, calc(0.8 * var(--site-scale-unit)), 0.78rem);
  --type-size-accordion-protected-label: var(--detail-type-base-protected-label);
  --type-size-accordion-protected-label-compact: clamp(0.54rem, calc(0.68 * var(--site-scale-unit)), 0.66rem);
  --type-size-accordion-title: clamp(0.8rem, calc(1.15 * var(--site-scale-unit)), 1.1rem);
  --type-size-accordion-title-active: clamp(1.75rem, calc(3 * var(--site-scale-unit)), 3.25rem);
  --type-size-accordion-description: clamp(0.72rem, var(--site-scale-unit), 0.95rem);
  --type-size-accordion-prototype-label: clamp(0.72rem, calc(0.85 * var(--site-scale-unit)), 0.88rem);

  /* Timeline */
  --timeline-type-base-intro-title: clamp(1.395rem, calc(1.935 * var(--site-scale-unit)), 1.935rem);
  --timeline-type-base-intro-copy: clamp(0.828rem, calc(1.008 * var(--site-scale-unit)), 0.972rem);
  --timeline-type-base-node: clamp(0.765rem, calc(0.945 * var(--site-scale-unit)), 0.99rem);
  --timeline-type-base-meta: clamp(0.61rem, calc(0.68 * var(--site-scale-unit)), 0.7rem);
  --timeline-type-base-meta-featured: clamp(0.7443rem, calc(0.9576 * var(--site-scale-unit)), 0.8298rem);
  --timeline-type-base-card-title-featured: clamp(1.17rem, calc(1.6173 * var(--site-scale-unit)), 1.404rem);
  --timeline-type-base-card-copy: clamp(0.71rem, calc(0.94 * var(--site-scale-unit)), 0.92rem);
  --type-size-timeline-intro-title: var(--timeline-type-base-intro-title);
  --type-size-timeline-intro-copy: var(--timeline-type-base-intro-copy);
  --type-size-timeline-node: var(--timeline-type-base-node);
  --type-size-timeline-meta: var(--timeline-type-base-meta);
  --type-size-timeline-meta-featured: var(--timeline-type-base-meta-featured);
  --type-size-timeline-card-title-featured: var(--timeline-type-base-card-title-featured);
  --type-size-timeline-card-copy: var(--timeline-type-base-card-copy);

  /* Protected-content hint and access dialog */
  --type-size-access-hint-title: clamp(1.15rem, calc(1.45 * var(--site-scale-unit)), 1.4rem);
  --type-size-access-eyebrow: clamp(0.7rem, calc(0.6944 * var(--site-scale-unit)), 0.75rem);
  --type-size-access-hint-copy: clamp(0.78rem, calc(0.88 * var(--site-scale-unit)), 0.9rem);
  --type-size-access-dialog-copy: clamp(0.875rem, calc(0.9259 * var(--site-scale-unit)), 1rem);
  --type-size-access-dialog-title: clamp(1.5rem, calc(1.8519 * var(--site-scale-unit)), 2rem);
  --type-size-access-dialog-field: clamp(0.78rem, calc(0.8102 * var(--site-scale-unit)), 0.875rem);
  --type-size-access-dialog-close: clamp(1.15rem, calc(1.2963 * var(--site-scale-unit)), 1.4rem);

  /* Provenance and legal copy */
  --detail-type-base-image-source-label: 0.63rem;
  --detail-type-base-image-source-list: clamp(0.49rem, calc(0.57 * var(--site-scale-unit)), 0.59rem);
  --type-size-image-source-label: var(--detail-type-base-image-source-label);
  --type-size-image-source-list: var(--detail-type-base-image-source-list);
  --type-size-layout-mode-feedback: clamp(
    0.98rem,
    calc(1.12 * var(--site-scale-unit)),
    1.08rem
  );
  --type-size-footer: 0.8rem;
  --type-size-legal-title: clamp(2rem, calc(3.8 * var(--site-scale-unit)), 4.25rem);
  --type-size-legal-copy: clamp(0.72rem, calc(0.92 * var(--site-scale-unit)), 0.94rem);
  --type-size-legal-heading: clamp(0.92rem, calc(1.2 * var(--site-scale-unit)), 1.2rem);

  /* Developer-only diagnostics */
  --type-size-debug-identifier: clamp(0.48rem, calc(0.58 * var(--site-scale-unit)), 0.62rem);

  /* Relative child roles */
  --type-scale-overview-timeline-kicker: 0.76em;
  --type-scale-navigation-context: 0.36em;
  --type-scale-navigation-subtitle: 0.88em;

  /* Geometry-bound diagram roles */
  --detail-type-base-diagram-compact-title: clamp(0.58rem, calc(0.7 * var(--site-scale-unit)), 0.72rem);
  --detail-type-base-diagram-architecture-arrow: clamp(0.88rem, calc(1.12 * var(--site-scale-unit)), 1.12rem);
  --detail-type-base-diagram-architecture-custom-title: clamp(0.56rem, calc(0.66 * var(--site-scale-unit)), 0.68rem);
  --detail-type-base-diagram-architecture-custom-copy: clamp(0.48rem, calc(0.58 * var(--site-scale-unit)), 0.6rem);
  --detail-type-base-diagram-pipeline-copy: clamp(0.63rem, calc(0.78 * var(--site-scale-unit)), 0.78rem);
  --detail-type-base-diagram-artifact-arrow: clamp(0.85rem, calc(1.2 * var(--site-scale-unit)), 1.15rem);
  --detail-type-base-diagram-satellite-label: clamp(0.64rem, calc(0.76 * var(--site-scale-unit)), 0.8rem);
  --detail-type-base-diagram-process-arrow: clamp(1.15rem, calc(1.6 * var(--site-scale-unit)), 1.65rem);
  --detail-type-base-diagram-process-arrow-column: clamp(1rem, calc(1.3 * var(--site-scale-unit)), 1.3rem);
  --type-size-diagram-compact-title: var(--detail-type-base-diagram-compact-title);
  --type-size-diagram-architecture-arrow: var(--detail-type-base-diagram-architecture-arrow);
  --type-size-diagram-architecture-custom-title: var(
    --detail-type-base-diagram-architecture-custom-title
  );
  --type-size-diagram-architecture-custom-copy: var(
    --detail-type-base-diagram-architecture-custom-copy
  );
  --type-size-diagram-pipeline-copy: var(--detail-type-base-diagram-pipeline-copy);
  --type-size-diagram-artifact-arrow: var(--detail-type-base-diagram-artifact-arrow);
  --type-size-diagram-satellite-label: var(--detail-type-base-diagram-satellite-label);
  --type-size-diagram-process-arrow: var(--detail-type-base-diagram-process-arrow);
  --type-size-diagram-process-arrow-column: var(--detail-type-base-diagram-process-arrow-column);
}

/*
 * A routed composition shares one fitted type scale. Text tiles determine the
 * scale at runtime; every textual and diagram role consumes it here so local
 * density never distorts the hierarchy of the surrounding composition.
 */
.route-document--detail .detail-grid-deck {
  --detail-type-scale: 1;
}

.route-document--timeline {
  --timeline-desktop-type-progress: 1;
  --timeline-layout-type-scale: 1;
  --timeline-fit-type-scale: 1;
  --timeline-type-scale: calc(
    var(--timeline-layout-type-scale) * var(--timeline-fit-type-scale)
  );
  --type-size-timeline-intro-title: calc(
    var(--timeline-type-base-intro-title) * var(--timeline-type-scale)
  );
  --type-size-timeline-intro-copy: calc(
    var(--timeline-type-base-intro-copy) * var(--timeline-type-scale)
  );
  /*
   * Node geometry already follows the responsive canvas scale. Its base type
   * contract scales with the viewport as well, so applying the fitted card
   * scale here would shrink the year label twice on the way to tablet.
   */
  --type-size-timeline-node: var(--timeline-type-base-node);
  --type-size-timeline-meta: calc(
    var(--timeline-type-base-meta) * var(--timeline-type-scale)
  );
  --type-size-timeline-meta-featured: calc(
    var(--timeline-type-base-meta-featured) * var(--timeline-type-scale)
  );
  --type-size-timeline-card-title-featured: calc(
    var(--timeline-type-base-card-title-featured) * var(--timeline-type-scale)
  );
  --type-size-timeline-card-copy: calc(
    var(--timeline-type-base-card-copy) * var(--timeline-type-scale)
  );
  --type-size-timeline-responsive-copy: calc(
    (
      var(--type-size-detail-copy)
      + (
        var(--timeline-type-base-card-copy)
        - var(--type-size-detail-copy)
      )
      * var(--timeline-desktop-type-progress)
    )
    * var(--timeline-fit-type-scale)
  );
  --type-size-timeline-responsive-period: calc(
    (
      var(--type-size-detail-copy)
      + (
        var(--timeline-type-base-meta-featured)
        - var(--type-size-detail-copy)
      )
      * var(--timeline-desktop-type-progress)
    )
    * var(--timeline-fit-type-scale)
  );
}

.route-document--home .title-overview-grid-deck {
  --overview-type-scale: 1;
  --detail-type-scale: var(--overview-type-scale);
  --type-size-overview-topic-title: calc(
    var(--overview-type-base-topic-title) * var(--overview-type-scale)
  );
  --type-size-overview-protected-label: calc(
    var(--overview-type-base-protected-label) * var(--overview-type-scale)
  );
  --type-size-overview-compact-title: calc(
    var(--overview-type-base-compact-title) * var(--overview-type-scale)
  );
  --type-size-overview-welcome-title: calc(
    var(--overview-type-base-welcome-title) * var(--overview-type-scale)
  );
  --type-size-overview-welcome-subtitle: calc(
    var(--overview-type-base-welcome-subtitle) * var(--overview-type-scale)
  );
  --type-size-overview-extension-label: calc(
    var(--overview-type-base-extension-label) * var(--overview-type-scale)
  );
  --type-size-overview-note-job-eyebrow: calc(
    var(--overview-type-base-note-job-eyebrow) * var(--overview-type-scale)
  );
  --type-size-overview-note-job-title: calc(
    var(--overview-type-base-note-job-title) * var(--overview-type-scale)
  );
  --type-size-overview-note-job-subtitle: calc(
    var(--overview-type-base-note-job-subtitle) * var(--overview-type-scale)
  );
  --type-size-overview-note-job-fact-label: calc(
    var(--overview-type-base-note-job-fact-label) * var(--overview-type-scale)
  );
  --type-size-overview-note-job-fact-value: calc(
    var(--overview-type-base-note-job-fact-value) * var(--overview-type-scale)
  );
  --type-size-overview-note-contact-kicker: calc(
    var(--overview-type-base-note-contact-kicker) * var(--overview-type-scale)
  );
  --type-size-overview-note-contact-title: calc(
    var(--overview-type-base-note-contact-title) * var(--overview-type-scale)
  );
  --type-size-overview-note-contact-copy: calc(
    var(--overview-type-base-note-contact-copy) * var(--overview-type-scale)
  );
  --type-size-hero-name: calc(var(--overview-type-base-hero-name) * var(--overview-type-scale));
  --type-size-hero-profession: calc(
    var(--overview-type-base-hero-profession) * var(--overview-type-scale)
  );
  --type-size-profile-details: calc(
    var(--overview-type-base-profile-details) * var(--overview-type-scale)
  );
  --type-size-profile-contact: calc(
    var(--overview-type-base-profile-contact) * var(--overview-type-scale)
  );
}

.route-document--home .title-overview-timeline-link {
  --type-size-overview-compact-title: min(
    calc(var(--overview-type-base-compact-title) * var(--overview-type-scale)),
    6.5cqi
  );
}

:is(
  .route-document--detail .detail-grid-deck,
  .route-document--home .title-overview-grid-deck
) {
  --type-size-detail-title: calc(var(--detail-type-base-title) * var(--detail-type-scale));
  --type-size-detail-label: calc(var(--detail-type-base-label) * var(--detail-type-scale));
  --type-size-detail-copy: calc(var(--detail-type-base-copy) * var(--detail-type-scale));
  --type-size-detail-supporting-label: calc(
    var(--detail-type-base-supporting-label) * var(--detail-type-scale)
  );
  --type-size-detail-fact-value: calc(
    var(--detail-type-base-fact-value) * var(--detail-type-scale)
  );
  --type-size-detail-stat-label: calc(
    var(--detail-type-base-stat-label) * var(--detail-type-scale)
  );
  --type-size-detail-stat-value: calc(
    var(--detail-type-base-stat-value) * var(--detail-type-scale)
  );
  --type-size-detail-compact-label: calc(
    var(--detail-type-base-compact-label) * var(--detail-type-scale)
  );
  --type-size-detail-profile-value: calc(
    var(--detail-type-base-profile-value) * var(--detail-type-scale)
  );
  --type-size-detail-sequence-number: calc(
    var(--detail-type-base-sequence-number) * var(--detail-type-scale)
  );
  --type-size-detail-sequence-title: calc(
    var(--detail-type-base-sequence-title) * var(--detail-type-scale)
  );
  --type-size-detail-sequence-copy: calc(
    var(--detail-type-base-sequence-copy) * var(--detail-type-scale)
  );
  --type-size-detail-metric-value: calc(
    var(--detail-type-base-metric-value) * var(--detail-type-scale)
  );
  --type-size-accordion-protected-label: calc(
    var(--detail-type-base-protected-label) * var(--detail-type-scale)
  );
  --type-size-image-source-label: calc(
    var(--detail-type-base-image-source-label) * var(--detail-type-scale)
  );
  --type-size-image-source-list: calc(
    var(--detail-type-base-image-source-list) * var(--detail-type-scale)
  );
  --type-size-diagram-compact-title: calc(
    var(--detail-type-base-diagram-compact-title) * var(--detail-type-scale)
  );
  --type-size-diagram-architecture-arrow: calc(
    var(--detail-type-base-diagram-architecture-arrow) * var(--detail-type-scale)
  );
  --type-size-diagram-architecture-custom-title: calc(
    var(--detail-type-base-diagram-architecture-custom-title)
      * var(--detail-type-scale)
  );
  --type-size-diagram-architecture-custom-copy: calc(
    var(--detail-type-base-diagram-architecture-custom-copy)
      * var(--detail-type-scale)
  );
  --type-size-diagram-pipeline-copy: calc(
    var(--detail-type-base-diagram-pipeline-copy) * var(--detail-type-scale)
  );
  --type-size-diagram-artifact-arrow: calc(
    var(--detail-type-base-diagram-artifact-arrow) * var(--detail-type-scale)
  );
  --type-size-diagram-satellite-label: calc(
    var(--detail-type-base-diagram-satellite-label) * var(--detail-type-scale)
  );
  --type-size-diagram-process-arrow: calc(
    var(--detail-type-base-diagram-process-arrow) * var(--detail-type-scale)
  );
  --type-size-diagram-process-arrow-column: calc(
    var(--detail-type-base-diagram-process-arrow-column)
      * var(--detail-type-scale)
  );
}

@media (max-width: 75rem) {
  :root {
    --type-size-layout-mode-feedback: clamp(
      0.92rem,
      calc(1.02 * var(--site-scale-unit)),
      1rem
    );
    --overview-type-base-hero-name: clamp(4rem, calc(20 * var(--site-scale-unit)), 7.5rem);
    --overview-type-base-profile-details: clamp(0.6rem, calc(2 * var(--site-scale-unit)), 0.8rem);
    --overview-type-base-profile-contact: clamp(
      0.875rem,
      calc(0.577rem + 0.647vi),
      1.0625rem
    );
    --type-size-navigation-entry-title: 2rem;
    --type-size-accordion-title: clamp(1.25rem, calc(6 * var(--site-scale-unit)), 2rem);
  }
}

@media (max-width: 46rem) {
  :root {
    --type-size-layout-mode-feedback: clamp(
      0.88rem,
      calc(1.08 * var(--site-scale-unit)),
      0.96rem
    );
    --type-size-legal-title: clamp(
      1.75rem,
      calc(2.1 * var(--site-scale-unit)),
      3rem
    );
    --type-size-navigation: 0.72rem;
    --overview-type-base-welcome-title: clamp(2.25rem, calc(12 * var(--site-scale-unit)), 3.25rem);
    --overview-type-base-welcome-subtitle: clamp(1rem, calc(5 * var(--site-scale-unit)), 1.3rem);
    --overview-type-base-hero-name: clamp(
      5.94rem,
      calc(4.28rem + 8.305vi),
      8.1rem
    );
    --overview-type-base-profile-details: 0.72rem;
    --overview-type-base-profile-contact: 0.8rem;
    --type-size-profile-compact-smartphone: clamp(
      0.52rem,
      calc(0.325rem + 1.034vi),
      0.8rem
    );
    --type-size-profile-contact-smartphone: clamp(
      0.65rem,
      calc(0.322rem + 1.635vi),
      var(--type-size-detail-copy)
    );
    --type-size-profile-profession-smartphone: clamp(
      0.525rem,
      calc(-0.177rem + 3.19vi),
      var(--type-size-detail-copy)
    );
  }

  .route-document--detail .detail-grid__tile--architecture {
    --type-size-detail-compact-label: clamp(
      0.62rem,
      calc(2.6 * var(--site-scale-unit)),
      0.7rem
    );
    --type-size-diagram-compact-title: clamp(
      0.7rem,
      calc(3 * var(--site-scale-unit)),
      0.8rem
    );
    --type-size-diagram-architecture-custom-title: clamp(
      0.64rem,
      calc(2.8 * var(--site-scale-unit)),
      0.74rem
    );
    --type-size-diagram-architecture-custom-copy: clamp(
      0.55rem,
      calc(2.4 * var(--site-scale-unit)),
      0.64rem
    );
  }
}

@media (max-width: 32rem) {
  :root {
    --type-size-route-transition-title: clamp(1.25rem, 7.5vi, 2.2rem);
  }
}
}
