:root{--ui-fast:.18s;--ui-settle:.3s;--ui-ease:cubic-bezier(.22, .8, .2, 1)}html :is(.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.cf-submit-button){transition:transform var(--ui-fast) var(--ui-ease), filter var(--ui-fast), background-color var(--ui-fast), box-shadow var(--ui-fast)}html :is(.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.cf-submit-button):is(:hover,:focus-visible){filter:brightness(.92)}html :is(.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.cf-submit-button):active:not(:disabled){transform:scale(.98,.96)}html :is(.home-button,.resources-design .button,.resources-design .text-link) .site-icon{transition:transform var(--ui-settle) var(--ui-ease)}html :is(.home-button,.resources-design .button,.resources-design .text-link):is(:hover,:focus-visible) .site-icon{transform:translate(3px)}html .nav-dropdown-panel{transform-origin:50% 0;transition:opacity var(--ui-fast), transform var(--ui-settle) var(--ui-ease), visibility 0s var(--ui-settle);transform:translate(-50%,-6px)scale(.97)}html .nav-dropdown-panel.is-open{transition-delay:0s;transform:translate(-50%)scale(1)}.mobile-menu-icon{flex:none;width:24px;height:24px;display:block;position:relative}.mobile-menu-icon line{transform-origin:12px 12px;stroke:currentColor;stroke-width:1.5px;transition:transform var(--ui-settle) var(--ui-ease), opacity var(--ui-fast)}.mobile-menu-icon line:first-child{transform:translateY(-5px)}.mobile-menu-icon line:last-child{transform:translateY(5px)}.mobile-menu-icon.is-open line:first-child{transform:rotate(45deg)}.mobile-menu-icon.is-open line:nth-child(2){opacity:0;transform:scaleX(0)}.mobile-menu-icon.is-open line:last-child{transform:rotate(-45deg)}html .mobile-menu-dialog{opacity:0;transition:opacity var(--ui-fast), transform var(--ui-settle) var(--ui-ease), display var(--ui-settle) allow-discrete, overlay var(--ui-settle) allow-discrete;transform:translateY(-8px)}html .mobile-menu-dialog[open]{opacity:1;transform:none}.mobile-menu-dialog[open] .mobile-menu-scroll nav>*,.mobile-menu-dialog[open] .mobile-menu-footer{animation:ui-enter var(--ui-settle) var(--ui-ease) both}.mobile-menu-dialog[open] .mobile-menu-scroll nav>:nth-child(2){animation-delay:30ms}.mobile-menu-dialog[open] .mobile-menu-scroll nav>:nth-child(3){animation-delay:60ms}.mobile-menu-dialog[open] .mobile-menu-scroll nav>:nth-child(4){animation-delay:90ms}.mobile-menu-dialog[open] .mobile-menu-scroll nav>:nth-child(5){animation-delay:.12s}@starting-style{html .mobile-menu-dialog[open]{opacity:0;transform:translateY(-8px)}.mobile-menu-dialog[open] .mobile-menu-icon.is-open line:first-child{transform:translateY(-5px)}.mobile-menu-dialog[open] .mobile-menu-icon.is-open line:nth-child(2){opacity:1;transform:none}.mobile-menu-dialog[open] .mobile-menu-icon.is-open line:last-child{transform:translateY(5px)}}.cf-submit-content{animation:ui-enter var(--ui-fast) var(--ui-ease);justify-content:center;align-items:center;gap:9px;display:inline-flex}.cf-submit-content svg{width:17px;height:17px}.cf-submit-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite ui-spin}.cf-status-message{animation:ui-enter var(--ui-fast) var(--ui-ease);display:block}html .cf-request-receipt,html .cf-request-receipt-mark{animation:ui-enter var(--ui-settle) var(--ui-ease) both}html .cf-request-receipt-mark path{animation-duration:var(--ui-settle);animation-delay:.1s}html .cf-services-needed label>span{position:relative}.service-check{pointer-events:none;width:12px;height:12px;position:absolute;top:2px;right:3px}.service-check path{stroke-dasharray:24;stroke-dashoffset:24px;transition:stroke-dashoffset var(--ui-settle) var(--ui-ease)}.cf-services-needed input:checked+span .service-check path{stroke-dashoffset:0}.cf-services-needed input:checked+span{animation:ui-check var(--ui-settle) var(--ui-ease)}html .cf-services-needed input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}.article-reading-progress{z-index:1100;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0}.article-reading-progress>span{background:var(--ink);transform-origin:0;height:100%;transform:scaleX(var(--reading-progress,0));display:block}.resources-design .reading-index nav a{transition:color var(--ui-fast), box-shadow var(--ui-fast), background-color var(--ui-fast)}.resources-design .reading-index nav a[aria-current=location]{color:var(--ink);background:var(--paper);box-shadow:-3px 0 var(--ink)}.article-byline-tools{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex;position:relative}.article-byline-tools .copy-link-control{margin-top:20px;position:static}.article-byline-tools .copy-link-status{left:auto;right:0}.copy-link-control{width:fit-content;font:400 12px/1.5 var(--font-body), sans-serif;position:relative}.copy-link-button{border:1px solid var(--line);min-width:120px;min-height:44px;color:var(--ink);background:var(--white);font:inherit;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.copy-link-button svg{flex:none;width:16px;height:16px}.copy-link-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.copy-link-status{z-index:20;width:min(280px,80vw);position:absolute;top:calc(100% + 8px);left:0}.copy-link-feedback{background:var(--white);color:var(--ink);border:1px solid var(--line);animation:ui-enter var(--ui-settle) var(--ui-ease);border-radius:8px;padding:12px 14px;display:block;box-shadow:0 8px 26px #00000012}.copy-link-feedback input{border:1px solid var(--line);background:var(--paper);width:100%;min-height:40px;color:var(--ink);font:inherit;margin-top:8px;display:block}.copy-link-check{stroke-dasharray:24;stroke-dashoffset:0;animation:ui-draw var(--ui-settle) var(--ui-ease)}html[data-theme=dark] :is(.copy-link-button,.copy-link-feedback){background:var(--theme-surface)}html :is(.project-lightbox,.visual-portfolio-lightbox){animation:ui-fade var(--ui-fast) ease-out both}html :is(.project-lightbox-media,.visual-portfolio-lightbox-media){animation:ui-gallery-in var(--ui-settle) var(--ui-ease) both}html :is(.project-lightbox,.visual-portfolio-lightbox).is-closing{animation:.26s ease-in both project-lightbox-out}.gallery-counter{white-space:pre;font-variant-numeric:tabular-nums;align-items:baseline;display:inline-flex}.gallery-digit{vertical-align:bottom;width:.65em;height:1.3em;display:inline-block;overflow:hidden}.gallery-digit-strip{transition:transform var(--ui-settle) var(--ui-ease);flex-direction:column;display:flex}.gallery-digit-strip>span{text-align:center;flex:none;height:1.3em;line-height:1.3;display:block}.gallery-thumbnail-rail{position:relative}.gallery-selection-outline{pointer-events:none;opacity:0;transition:transform var(--ui-settle) var(--ui-ease);border:2px solid #fff;border-radius:3px;position:absolute;top:0;left:0}.has-selection-outline .gallery-selection-outline{opacity:1}html .gallery-thumbnail-rail.has-selection-outline>button[aria-current=true]{border-color:#0000}@keyframes ui-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-gallery-in{0%{transform:translateY(7px)scale(.98)}to{transform:none}}@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-draw{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes ui-check{0%{transform:scale(.97)}to{transform:none}}html.a11y-pause-motion .cf-request-receipt-mark path{stroke-dashoffset:0}html.a11y-pause-motion :is(.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.cf-submit-button):active,html.a11y-pause-motion :is(.home-button,.resources-design .button,.resources-design .text-link) .site-icon{transform:none}@media (prefers-reduced-motion:reduce){html :is(.nav-dropdown-panel,.nav-chevron,.mobile-menu-dialog,.mobile-menu-icon line,.mobile-menu-scroll nav>*,.mobile-menu-footer,.cf-submit-content,.cf-submit-spinner,.cf-status-message,.cf-request-receipt,.cf-request-receipt-mark,.cf-request-receipt-mark path,.cf-services-needed span,.service-check path,.copy-link-feedback,.copy-link-check,.project-lightbox,.visual-portfolio-lightbox,.project-lightbox-media,.visual-portfolio-lightbox-media,.gallery-digit-strip,.gallery-selection-outline,.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.resources-design .text-link .site-icon,.cf-submit-button){transition:none!important;animation:none!important}html .cf-request-receipt-mark path{stroke-dashoffset:0}html :is(.home-button,.start-project-button,.project-cta-primary,.project-cta-secondary,.resources-design .button,.cf-submit-button):active,html :is(.home-button,.resources-design .button,.resources-design .text-link) .site-icon{transform:none}}
