/* Main-site adaptations of the mockup. Never loaded by individual portfolio previews. */
body { font-family:var(--font-copy); }
h1,h2,h3,.heading-row h2,.pricing-intro h2,.about-story h2,.final-cta h2,
.pricing-package h3,.about-principles h3,.project-caption h3 {
  font-family:var(--font-display);font-weight:var(--weight-display);
  font-style:normal;text-transform:uppercase;letter-spacing:var(--tracking-display);
}
h1 em,h2 em,h3 em,.heading-row h2 em,.pricing-intro h2 em,.about-story h2 em,.final-cta h2 em {
  font-family:var(--font-emphasis);font-weight:var(--weight-emphasis);
  font-style:italic;text-transform:none;font-size:.88em;letter-spacing:-.065em;color:var(--blue);
}
.hero h1 {font-family:var(--font-hero);font-weight:700;text-transform:none;line-height:1.02;}
.hero h1 em {font-family:var(--font-hero);font-weight:400;font-size:1em;}
.hero-meta,.eyebrow,.hero-index,.about-location,.project-caption p,.project-caption>span,
.portfolio-note,.price-billing,.package-price small,.pricing-provisional,.pricing-footnote,
.footer,.footer p,.footer nav,.footer div,.button,.pricing-tabs {
  font-family:var(--font-utility);font-weight:var(--weight-utility);font-size:var(--size-utility);
}
.header #navigation a,.header #navigation .nav-cta.button,.menu-toggle {
  font-family:var(--font-utility);font-weight:var(--weight-navigation);font-size:var(--size-navigation);
}
.hero-description,.about-copy p,.package-description,.pricing-intro>p,
.pricing-extras .extras-intro>p:not(.eyebrow),.about-principles p,.cta-bottom p {
  font-family:var(--font-copy);font-weight:var(--weight-copy);font-size:var(--size-copy);line-height:var(--leading-copy);
}
.page-intro,.case-hero,.journal-article-header {position:relative;isolation:isolate;}
.page-intro>*,.case-hero>*,.journal-article-header>* {position:relative;z-index:1;}
.page-intro h1,.case-hero h1 {font-size:clamp(42px,6.7vw,102px);line-height:1.05;max-width:16ch;overflow-wrap:break-word;text-wrap:balance;}
.journal-article-header h1 {font-size:clamp(34px,5vw,76px);line-height:1.12;max-width:1000px;overflow-wrap:break-word;}
.journal-feature h2 {font-size:clamp(28px,3.3vw,48px);line-height:1.12;overflow-wrap:break-word;}
.journal-card h2 {font-size:clamp(23px,2.1vw,31px);line-height:1.15;overflow-wrap:break-word;}
.journal-prose {font-family:var(--font-copy);line-height:1.8;}
.journal-prose h2,.journal-prose h3 {line-height:1.2;overflow-wrap:break-word;}
.journal-meta,.case-facts dt,.case-demo small,.journal-reading aside,.journal-pagination,
.journal-filters,.filters,.work-results,.work-pagination,.form-note,.field-error {
  font-family:var(--font-utility);
}
.filters button,.work-pagination button {font-family:var(--font-utility);}
.project-caption h3,.pricing-package h3 {overflow-wrap:anywhere;}
.project-image img {transition:transform .45s cubic-bezier(.25,.46,.45,.94);}
.project-card:is(:hover,:focus-within) .project-image img {transform:scale(1.035);}
.project-card:focus-within .view-project {opacity:1;transform:none;}
.case-facts dd,.journal-author p,.journal-card p {font-family:var(--font-copy);}
.header #navigation .nav-link[aria-current="page"]::after {clip-path:inset(0 0 0 0);}
/* Keep navigation paint stable above the layered drafting and motion surfaces. */
.header {transform:translateZ(0);}
a.button,button.button {min-height:var(--action-min-height);}
.button .icon-arrow {fill:none;stroke:none;}
.button .icon-arrow path {vector-effect:non-scaling-stroke;}
.light-section .button {--button-rest:var(--ink);--button-fill:var(--ink);--button-fill-text:var(--paper);}
.footer a:hover,.footer a:focus-visible {text-decoration:underline;text-underline-offset:5px;}
.case-hero::before,.page-intro::before,.journal-article-header::before {
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.45;
  background:url('/assets/images/grid-intersections.svg') 0 0/var(--grid-marker-step) var(--grid-marker-step) repeat;
}
.hero .hero-title-line {white-space:nowrap;}
.hero .field-footer #field-hint {display:none;}
.hero-services>span {display:inline!important;}
.hero-terminal,.page-intro>.eyebrow,.journal-article-header>.eyebrow,.case-hero>.eyebrow {color:var(--accent-readable-dark);}
.light-section .text-link:hover,.light-section .text-link:focus-visible {color:var(--accent-readable-light);}
/* Focus stays visible above the decorative blob; native form cursors are retained. */
:focus-visible {outline:2px solid var(--blue);outline-offset:5px;}
.light-section :focus-visible {outline-color:#145baa;}
.custom-pointer input,.custom-pointer textarea {cursor:text;}
.custom-pointer select {cursor:default;}
@media(max-width:1000px) {.page-intro h1,.case-hero h1 {font-size:clamp(40px,7vw,76px);}}
@media(max-width:700px) {
  .hero-meta,.hero-index,.eyebrow,.project-caption p,.footer {font-size:var(--size-utility-mobile);}
  .button,.pricing-tabs {font-size:14px;}
  .hero-description,.about-copy p,.package-description,.pricing-intro>p,
  .pricing-extras .extras-intro>p:not(.eyebrow),.about-principles p,.cta-bottom p {font-size:var(--size-copy-mobile);}
  .page-intro h1,.case-hero h1 {font-size:clamp(34px,8.8vw,56px);max-width:100%;}
  .journal-article-header h1 {font-size:clamp(30px,7.8vw,48px);}
  .hero .hero-services {max-width:100%;}
  .pricing-package .button {white-space:normal;}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  .button::before,.button::after,.button .icon-arrow,.nav-link::after {animation:none!important;transition:none!important;}
  .project-card .project-image img {transition:none!important;transform:none!important;}
}
