/* Shared screen rhythm for the published portfolio, separate from print and
   the editor's explicitly chosen appearance values. */
@media screen{
 :root{--section-space:clamp(64px,6vw,112px);--reading-space:clamp(24px,3vw,48px)}
 :is(.practice-intro,.work,.career,.record-portal,.contact-section){padding-top:var(--section-space);padding-bottom:var(--section-space)}
 .practice-intro{padding-bottom:0}
 :is(.section,.records-page,.case-page) :is(h1,h2,h3,h4,p,dd,figcaption){overflow-wrap:break-word}
 .section-label{font-size:.75rem;letter-spacing:.055em;line-height:1.6;gap:24px}
 .section-label>*{min-width:0;overflow-wrap:anywhere}
 .practice-intro h2{overflow-wrap:anywhere}
 .project-heading,.career-heading,.record-portal-heading{gap:var(--reading-space);margin-block:36px 28px;padding-block:0;align-items:start}
 .project-heading h2{font-size:clamp(3.125rem,8.2vw,8.75rem);overflow-wrap:normal;text-wrap:balance}
 .product-intro{font-size:clamp(1.125rem,1.6vw,1.5rem);line-height:1.7;max-width:70ch;margin:0 0 36px}
 .project-summary{max-width:32ch}.project-summary p{font-size:clamp(1.25rem,1.7vw,1.625rem)}
 .rr-metrics{gap:32px;padding-block:28px}.rr-metrics span,.rr-source-note{font-size:.875rem;line-height:1.65}
 .rr-source-note{margin-bottom:40px}.rr-source-note a{min-height:44px;display:inline-flex;align-items:center}
 .rr-product-spread{align-items:start;gap:var(--reading-space);margin-bottom:var(--section-space)}
 .rr-capture{min-width:0}.rr-capture img{width:100%;height:auto;object-fit:contain;transform-origin:center 70%}
 .rr-capture figcaption{font-size:.75rem;line-height:1.7;gap:16px;flex-wrap:wrap}.rr-capture figcaption a{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;white-space:normal}
 .rr-product-caption p,.rr-explanation p,.rr-evolution li p,.rr-evidence p{font-size:1rem;line-height:1.75}
 .rr-system{padding-block:48px;margin-inline:calc(-1 * var(--content-gutter,var(--gutter)));padding-inline:var(--content-gutter,var(--gutter))}.rr-system-heading{gap:var(--reading-space);align-items:start}
 .rr-system-heading>p{font-size:1rem;line-height:1.75;max-width:55ch}
 .rr-tabs{gap:0 24px}.rr-tabs button{font-size:.875rem;line-height:1.5;min-height:56px}
 .rr-panel{min-height:0;align-items:start;gap:var(--reading-space)}
 .rr-stage-caption{font-size:.875rem;line-height:1.75;min-height:0}.rr-stage-controls button{font-size:.8125rem}
 .rr-evolution{padding-top:48px}.rr-evolution li>span{font-size:.75rem;line-height:1.5}
 .career-list summary{display:grid;grid-template-columns:minmax(105px,.55fr) minmax(0,1.7fr) minmax(0,1.35fr) 24px;align-items:center;gap:24px;padding-block:24px}
 .career-list summary>span:first-child{font-size:.8125rem;line-height:1.5;letter-spacing:.015em;font-variant-numeric:tabular-nums}
 .career-list summary h3{font-size:clamp(1.375rem,2.2vw,2rem);line-height:1.2;text-wrap:balance}
 .career-list summary>span:nth-last-child(2){font-size:.9375rem;line-height:1.6}
 .role-detail{padding-block:8px 28px}.role-detail p,.role-detail li{font-size:1rem;line-height:1.75;max-width:65ch}
 .record-portal-heading>p,.record-links p{font-size:1rem;line-height:1.7}
 .record-links{gap:32px}.record-links>a{display:flex;flex-direction:column;padding-block:24px;min-width:0}
 .record-links h3{margin-block:20px 12px;overflow-wrap:anywhere}.record-number{font-size:.75rem;line-height:1.6;overflow-wrap:anywhere}
 .record-highlights{margin-top:48px;padding-top:32px}.record-highlights-heading{gap:28px;margin-bottom:32px}
 .record-highlights-heading>p{font-size:1rem}.record-highlights-heading>a{font-size:.875rem;min-height:44px;white-space:normal}
 .featured-credential figcaption>span{font-size:.8125rem;line-height:1.6}.featured-credential h4{line-height:1.25;text-wrap:balance}
 .contact-section .contact-layout{padding-top:40px;gap:clamp(36px,6vw,100px)}
 .contact-introduction{container-type:inline-size}
 .contact-section .contact-introduction h2{max-width:100%;font-size:clamp(2rem,4.1vw,4.5rem);overflow-wrap:break-word}
 @supports(font-size:1cqw){.contact-section .contact-introduction h2{font-size:clamp(2rem,9.4cqw,4.5rem)}}
 /* A disabled form is a complete direct-contact composition, not an empty
    second column. Share one bounded gap with the footer in either state. */
 .contact-section{padding-bottom:calc(var(--section-space)/2)}
 .contact-section+.portfolio-footer{padding-top:calc(var(--section-space)/2)}
 .contact-layout:not(:has(.inquiry-form)){grid-template-columns:minmax(0,1fr)}
 .contact-layout:not(:has(.inquiry-form)) .contact-introduction{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px 8%;align-items:start;container-type:normal}
 .contact-layout:not(:has(.inquiry-form)) h2{grid-column:1;grid-row:1/4;font-size:clamp(2.5rem,4.7vw,5rem);margin:0}
 .contact-layout:not(:has(.inquiry-form)) .contact-introduction>p{grid-column:2;margin:0;max-width:48ch}
 .contact-layout:not(:has(.inquiry-form)) .contact-direct{grid-column:2;margin:0;gap:12px}
 .contact-section .section-label>span:last-child{max-width:none}
 .inquiry-context{min-height:0;font-size:1rem}.inquiry-privacy{font-size:.8125rem;line-height:1.75}
 .inquiry-topics label>span{font-size:.875rem;min-height:44px}.inquiry-field label{font-size:.875rem}
 .portfolio-footer{padding-block:var(--section-space) 28px;gap:40px 6%}
 .footer-label,.footer-bottom{font-size:.8125rem;line-height:1.7}.footer-nav a{font-size:.9375rem;min-height:44px}
 .records-intro{padding-block:var(--section-space) 48px}.records-intro h1{margin-block:28px 36px}
 .records-eyebrow{font-size:.75rem;letter-spacing:.07em;line-height:1.6}.record-section-heading>span{font-size:.75rem;line-height:1.6}
 .credential-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}
 .credential h3{font-size:1.375rem;line-height:1.35}.credential-issuer,.credential-head,.credential-id,.credential-id code,.credential-skills,.record-note{font-size:.8125rem;line-height:1.7}
 .credential-domain{padding-bottom:56px}.record-tools{margin-bottom:40px}.record-link{font-size:.875rem}
 .skill-detail{gap:6%;padding-block:48px}.skill-detail>div>p:last-child,.skill-detail li{font-size:1rem;line-height:1.7}
 .records-next{padding-block:48px}.records-small{font-size:.875rem}
 .resume-intro{padding-block:48px 36px}.resume-controls{min-width:0}.resume-controls legend,.format-note,.print-note{font-size:.8125rem;line-height:1.6}
 .resume-actions button,.resume-actions a{font-size:.8125rem;white-space:normal;line-height:1.5}
 body:has(#editorial-art-note) main{max-width:960px}body:has(#editorial-art-note) main :is(p,li){font-size:1rem;line-height:1.8;overflow-wrap:anywhere}
 .portfolio-case .section-pad{padding-block:var(--section-space)}
 .portfolio-case .case-header .fw-signature{filter:invert(1)}
 .portfolio-case .intent{padding-block:var(--section-space)}
 .portfolio-case .evolution{padding-top:0}.portfolio-case .section-grid{gap:var(--reading-space)}
 .portfolio-case :is(.body-copy,.study-story p,.proof-copy p,.closing>p){font-size:1rem;line-height:1.75}
 .portfolio-case :is(.project-meta>div>span,.study-panel figcaption,.material-pair figcaption,.archive-footer p,.metric small,.case-footer>div a){font-size:.8125rem;line-height:1.7}
 .portfolio-case .material-pair{margin-block:48px;gap:32px}.portfolio-case .material-pair figure:last-child{margin-top:48px}
 .portfolio-case .device-proof{margin-block:48px}.portfolio-case .landscape-column{padding-top:48px}
 [data-editorial-arrival]{--art-travel:24px;--art-tilt:2deg}
 @keyframes portfolio-reading-entrance{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
 @supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.reveal-item{animation-name:portfolio-reading-entrance;animation-range:entry 0% entry 30%}}}
 .reveal-item:focus-within{animation:none!important;opacity:1!important;transform:none!important}
 @supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){html[data-field-motion=native]:not(.reduced-motion) [data-editorial-arrival]{animation:field-art-flow linear both;animation-timeline:view();animation-range:entry 0% entry 72%}}}
 @media(max-width:900px),(max-aspect-ratio:4/5){
  :root{--section-space:clamp(48px,6vw,72px);--reading-space:32px;--editorial-gutter:max(24px,calc((100vw - 740px)/2))}
  :is(.practice-intro,.software-chapter,.work,.career,.record-portal,.contact-section){--content-gutter:var(--editorial-gutter);padding-inline:var(--content-gutter)}
  .practice-intro-bottom,.project-heading,.career-heading,.record-portal-heading,.record-highlights-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
  .practice-intro-bottom{padding-bottom:32px}.practice-intro h2{font-size:clamp(2.125rem,7vw,4rem)}
  .domain-index{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px}.domain-index a{font-size:.875rem;min-height:52px;gap:4px 10px;min-width:0;flex-wrap:wrap;overflow-wrap:anywhere}.domain-index span{font-size:.75rem}
  .project-heading h2{font-size:clamp(3.125rem,8.2vw,6.25rem)}.project-summary{max-width:40ch}
  .product-intro{font-size:1.125rem}.rr-product-spread{display:flex;flex-direction:column;gap:28px}.rr-product-caption{order:-1;max-width:65ch}
  .rr-system-heading,.rr-panel{display:flex;flex-direction:column;align-items:stretch;gap:28px}
  .rr-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.rr-tabs button{white-space:normal}
  .rr-evolution{display:block;padding-block:40px 20px}.rr-evolution ol{margin-top:28px}
  .rr-evolution>div>p:last-child{max-width:55ch}.case-document{gap:24px}
  .career-list summary{grid-template-columns:minmax(0,1fr) 24px;gap:8px 16px}
  .career-list summary>span:first-child{grid-area:1/1}.career-list summary h3{grid-area:2/1;margin:0}
  .career-list summary>span:nth-last-child(2){grid-area:3/1}.career-list summary .plus{grid-column:2;grid-row:1/4}
  .career .role-detail{padding-inline:0}.role-detail>p{max-width:65ch}
  .record-links{grid-template-columns:minmax(0,1fr);gap:0}.record-links h3{font-size:1.875rem}
  .record-links p{max-width:58ch}.record-highlights-heading>a{grid-column:auto;justify-self:start}
  /* Portrait reading is one consistent gallery; the fifth card never leaves
     an empty half row. Wide layouts retain two features over three credentials. */
  .featured-credentials{grid-template-columns:minmax(0,1fr);gap:24px}
  .featured-credential,.featured-credential.featured-primary,.featured-credential:nth-child(n){grid-column:1/-1}
  .featured-credential h4,.featured-credential:nth-child(n) h4{font-size:1.5rem}.featured-credential figcaption,.featured-credential:nth-child(n) figcaption{padding:22px}
  .contact-section .contact-layout{display:block}.contact-introduction{max-width:62ch}.contact-introduction h2{max-width:16ch}
  .contact-direct{margin-block:24px 36px}.inquiry-form{padding-top:28px;border-top:1px solid rgb(var(--fw-ivory-rgb) / 0.18)}
  .contact-layout:not(:has(.inquiry-form)) .contact-introduction{display:block;max-width:none}
  .contact-layout:not(:has(.inquiry-form)) h2{font-size:clamp(2rem,7.5vw,4rem);margin-bottom:24px}
  .contact-layout:not(:has(.inquiry-form)) .contact-direct{margin-top:24px}
  .contact-layout:not(:has(.inquiry-form)) .inquiry-preview-note{margin-top:24px}
  .portfolio-footer{padding-inline:max(24px,calc((100% - 740px)/2));grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .footer-identity{grid-column:1/-1}.footer-wordmark{flex-direction:row;align-items:center;gap:24px}.footer-wordmark>span{font-size:2rem}.footer-wordmark .fw-signature{width:86px}.footer-identity>p{margin:0}
  .record-tools{grid-template-columns:minmax(0,1fr);gap:12px}.record-tools p{text-align:left}
  .records-intro-bottom{display:block}.records-intro-bottom .records-small{margin-top:24px;max-width:55ch}
  .skill-detail{grid-template-columns:1fr;gap:28px}.record-section-heading{grid-template-columns:1fr;gap:16px}
  .resume-intro,.resume-workspace{grid-template-columns:minmax(0,1fr)}.resume-controls{position:static}
  .focus-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resume-actions{flex-direction:row;flex-wrap:wrap}
  [data-editorial-arrival]{--art-travel:14px;--art-tilt:0deg;--art-scale:.96}
  @supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){html[data-field-motion=native]:not(.reduced-motion) [data-editorial-arrival]{animation-range:entry 0% entry 60%}}}
  .portfolio-case :is(.section-grid,.intent .section-grid,.responsive-section .section-grid,.performance,.verification>div){grid-template-columns:1fr;gap:28px}
  .portfolio-case .section-grid h2{font-size:clamp(2.5rem,6vw,4rem)}
  .portfolio-case .study-story{grid-template-columns:70px minmax(0,1fr);gap:24px}.portfolio-case .study-story>.text-link{grid-column:2;justify-self:start}
  .portfolio-case .archive-footer{display:block;padding-top:32px}.portfolio-case .archive-footer>a{margin-top:20px}
  .portfolio-case .material-pair figure:last-child{margin-top:0}.portfolio-case .landscape-column{padding-top:0}
 }
 @media(max-width:520px){
  .portfolio-footer{grid-template-columns:minmax(0,1fr);gap:28px}
  .portfolio-footer .footer-nav{grid-column:1/-1;gap:8px}
  .portfolio-footer .footer-nav a{width:fit-content;max-width:100%;font-size:.9375rem;line-height:1.6;min-height:36px}
  .portfolio-footer .footer-nav a[href^="mailto:"]{white-space:nowrap;font-size:.875rem}
  .resume-intro .resume-intro-title{font-size:clamp(2.5rem,10.2vw,3.25rem);line-height:1.12;text-wrap:balance}
  .domain-index{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rr-tabs{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}.rr-tabs button{overflow-wrap:anywhere}
  .section-label{font-size:.75rem;gap:8px;flex-direction:column;align-items:flex-start}.section-label>*{max-width:100%;text-align:left}
  .section-label>span:last-child{max-width:100%;text-align:left}
  .software-ribbon{gap:12px}
  .rr-metrics{grid-template-columns:1fr 1fr;gap:20px}.rr-metrics>div:first-child{grid-column:1/-1}
  .rr-role-pair,.rr-ledger>div{grid-template-columns:minmax(0,1fr)}.rr-data-diagram{grid-template-columns:minmax(0,1fr);gap:20px}.rr-data-diagram>*{grid-column:1;grid-row:auto;min-width:0}.rr-node{padding:12px;min-width:0;overflow-wrap:anywhere}
  .rr-node strong{font-size:.875rem}.rr-node small,.rr-node .rr-kicker{font-size:.75rem}.rr-raw:after,.rr-gate:after,.rr-canonical:after{display:none}
  .rr-diagram{padding:16px}.rr-evolution li{grid-template-columns:1fr;gap:8px}
  .featured-credentials{grid-template-columns:1fr}.featured-credential,.featured-credential.featured-primary,.featured-credential:nth-child(n){grid-column:1}
  .featured-credential h4,.featured-credential:nth-child(n) h4{font-size:1.5rem}
  .inquiry-grid{grid-template-columns:1fr;gap:4px}.contact-section .section-label>span:last-child{text-align:left}
  .case-document{grid-template-columns:1fr}.case-cover{max-width:180px}.case-actions{display:flex;flex-wrap:wrap}
  .skill-detail ul{columns:1}.footer-wordmark>span{font-size:1.625rem}.portfolio-footer{gap:28px 20px}
 }
 @media(prefers-reduced-motion:reduce){[data-editorial-arrival]{animation:none!important;transform:none!important;opacity:1!important}}
 .reduced-motion [data-editorial-arrival],html[data-field-motion=reduce] [data-editorial-arrival]{animation:none!important;transform:none!important;opacity:1!important}
 /* This is one typographic composition, including at browser zoom. Size the
    three words from their actual container instead of wrapping or clipping. */
 .software-ribbon{container-type:inline-size;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:baseline;white-space:nowrap;gap:clamp(8px,2vw,24px);color:rgb(var(--fw-ivory-rgb) / .58)}
 .software-ribbon span{flex:0 0 auto;min-width:0;white-space:nowrap;overflow-wrap:normal;word-break:normal;font-size:clamp(16px,7.2vw,116px);letter-spacing:-.055em;line-height:1.2}
 @supports(font-size:1cqw){.software-ribbon span{font-size:min(116px,10cqw)}}
}
