/* BLUEFLAKE / one motion language: uncover, align, acknowledge. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:240ms;--motion-medium:650ms;--motion-long:950ms}
@view-transition{navigation:auto}@keyframes page-soft-out{to{opacity:0}}@keyframes page-soft-in{from{opacity:0}to{opacity:1}}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}html[data-motion="subtle"]::view-transition-old(root){animation:page-soft-out 140ms ease both!important}html[data-motion="subtle"]::view-transition-new(root){animation:page-soft-in 240ms ease both!important}
@keyframes hero-type-settle{from{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes hero-type-exit{to{transform:translateY(-105%)}}
html[data-motion="subtle"] .hero-visual{transition:opacity 950ms ease,visibility 950ms!important;transform:none!important}html[data-motion="subtle"] .hero-visual.is-leaving{visibility:visible!important}html[data-motion="subtle"] .hero-visual img{animation:none!important;transform:none!important}html[data-motion="subtle"] .hero-copy .hero-line>span{animation:hero-type-settle 750ms var(--motion-ease) both!important;filter:none!important}html[data-motion="subtle"] .hero-copy .hero-line:nth-child(2)>span{animation-delay:65ms!important}html[data-motion="subtle"] .hero-copy.is-changing .hero-line>span{animation:hero-type-exit 260ms cubic-bezier(.55,0,1,.45) both!important}html[data-motion="subtle"] .hero-copy .hero-description,html[data-motion="subtle"] .hero-copy .hero-cta{animation:hero-copy-in 650ms var(--motion-ease) both!important}
html[data-motion="subtle"] .hero-copy.is-changing .hero-description,html[data-motion="subtle"] .hero-copy.is-changing .hero-cta{animation:none!important;opacity:0;transition:opacity 200ms ease!important}
.motion-line{display:block;padding-bottom:.1em;margin-bottom:-.1em;overflow:hidden}.motion-line>span{display:block;transform-origin:left bottom}
.page-hero h1>.motion-line,.page-hero h1>.motion-line>span,.manifesto h2>.motion-line,.manifesto h2>.motion-line>span{color:inherit}
/* Content settles into its existing position. No cards or objects float. */
html[data-motion="subtle"] .motion-line>span{transform:translateY(105%);transition:transform 850ms var(--motion-ease);transition-delay:calc(var(--line-order,0)*65ms)}
html[data-motion="subtle"] .is-in-view>.motion-line>span{transform:translateY(0)}
html[data-motion="subtle"] [data-motion="image"]{position:relative;overflow:hidden}
html[data-motion="subtle"] [data-motion="image"]::before{content:'';position:absolute;inset:0;z-index:2;background:var(--rain);pointer-events:none;transform:scaleY(1);transform-origin:bottom;transition:transform var(--motion-long) var(--motion-ease);transition-delay:calc(var(--motion-order,0)*70ms)}
html[data-motion="subtle"] .client-study-dark [data-motion="image"]::before{background:var(--navy)}
html[data-motion="subtle"] [data-motion="image"].is-in-view::before{transform:scaleY(0)}
/* Structure draws only on entering a chapter; paragraphs stay still. */
.section-heading,.study-head,.hero-bottom,.connection-result,.study-details>div,.process>article,.connection-steps>li{position:relative}
html[data-motion="subtle"] .study-details>div::before,html[data-motion="subtle"] .process>article::before,html[data-motion="subtle"] .connection-steps>li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;transform:scaleX(0);transform-origin:left;background:currentColor;opacity:.2;transition:transform 800ms var(--motion-ease);transition-delay:calc(var(--motion-order,0)*90ms)}
html[data-motion="subtle"] .study-details>div.is-in-view::before,html[data-motion="subtle"] .process>article.is-in-view::before,html[data-motion="subtle"] .connection-steps>li.is-in-view::before{transform:scaleX(1)}
.study-details>div{padding-top:18px}.process-number,.connection-steps li>span{transition:color 500ms ease}.process>article.is-in-view .process-number{color:var(--ink)}.connection-steps li.is-in-view>span{color:var(--rain)}
/* Lines and arrows respond at the point of an action. */
.header nav a,.footer-bottom nav a,.footer-bottom>a,.direct-contact a,.footer-contact a,.hero-topline>a,.system-card-link{position:relative}
.header nav a::after,.footer-bottom nav a::after,.footer-bottom>a::after,.direct-contact a::after,.footer-contact a::after,.hero-topline>a::after,.system-card-link::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 420ms var(--motion-ease)}
.header nav a:hover::after,.header nav a:focus-visible::after,.footer-bottom nav a:hover::after,.footer-bottom nav a:focus-visible::after,.footer-bottom>a:hover::after,.footer-bottom>a:focus-visible::after,.direct-contact a:hover::after,.direct-contact a:focus-visible::after,.footer-contact a:hover::after,.footer-contact a:focus-visible::after,.hero-topline>a:hover::after,.hero-topline>a:focus-visible::after,.system-card:hover .system-card-link::after,.system-card:focus-visible .system-card-link::after{transform:scaleX(1);transform-origin:left}
.text-link,.hero-cta{position:relative;isolation:isolate;overflow:hidden}.text-link::after,.hero-cta::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform 450ms var(--motion-ease)}
.text-link:hover::after,.text-link:focus-visible::after,.hero-cta:hover::after,.hero-cta:focus-visible::after{transform:scaleX(1);transform-origin:left}
.text-link>span,.hero-cta>span,.system-arrow,.project-caption>span,.project-index a>span:last-child{transition:transform 350ms var(--motion-ease),color 240ms ease}
.text-link:hover>span,.text-link:focus-visible>span,.hero-cta:hover>span,.hero-cta:focus-visible>span,.system-card:hover .system-arrow,.system-card:focus-visible .system-arrow{transform:translate(3px,-3px)}
.system-card h3{transition:color 250ms ease}.system-card:focus-visible h3{color:#2965bf}.system-card:focus-visible .system-arrow{color:#2965bf}
.project-index a{position:relative;isolation:isolate}.project-index a::before{content:'';position:absolute;z-index:-1;inset:0 -10px;background:#1a1d2105;transform:scaleX(0);transform-origin:right;transition:transform 450ms var(--motion-ease)}.project-index a:hover::before,.project-index a:focus-visible::before{transform:scaleX(1);transform-origin:left}.project-index a:hover>span:last-child,.project-index a:focus-visible>span:last-child{transform:translate(2px,2px)}.project-index a:focus-visible{outline-offset:3px}
.project-caption h3{transition:color 250ms ease}.featured-work:hover .project-caption h3,.featured-work:focus-visible .project-caption h3{color:#2965bf}.featured-work:hover .project-caption>span,.featured-work:focus-visible .project-caption>span{transform:translateX(3px)}
/* Actual project images remain protected from easy open/save actions. */
@media(hover:hover) and (pointer:fine){
 html[data-motion="subtle"] .project-image-surface img,html[data-motion="subtle"] .client-feature-image img{transition:transform 1100ms var(--motion-ease)!important;transform:scale(1)!important}
 html[data-motion="subtle"] .project-image-surface:hover img,html[data-motion="subtle"] .featured-work:hover .client-feature-image img,html[data-motion="subtle"] .featured-work:focus-visible .client-feature-image img{transform:scale(1.018)!important}
 html[data-motion="subtle"] .system-card .system-image img{transition:transform 1100ms var(--motion-ease)!important;transform:translateX(-30%) scale(1)!important}
 html[data-motion="subtle"] .system-card:hover .system-image img,html[data-motion="subtle"] .system-card:focus-visible .system-image img{transform:translateX(-30%) scale(1.025)!important}
}
.submit-button{position:relative;isolation:isolate;overflow:hidden;transition:transform 160ms ease,background 350ms ease}.submit-button::before{content:'';position:absolute;inset:0;background:#253650;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform 550ms var(--motion-ease)}.submit-button:hover::before,.submit-button:focus-visible::before{transform:scaleX(1);transform-origin:left}.submit-button:active:not(:disabled){transform:scale(.995)}.submit-button>span{transition:transform 350ms var(--motion-ease)}.submit-button:hover>span,.submit-button:focus-visible>span{transform:translate(2px,-2px)}
.hero-controls>button{transition:background 250ms ease,border-color 250ms ease,transform 150ms ease}.hero-controls>button:active{transform:scale(.96)}.chips label>span{transition:background 240ms ease,border-color 240ms ease,color 240ms ease,box-shadow 240ms ease}.chips label:hover>span{border-color:#59677c}.chips input:checked+span{box-shadow:inset 0 0 0 1px #ebedf220}.chips input:active+span{box-shadow:inset 0 0 0 1px var(--blue)}
.field-focus-line{display:block!important;position:relative;height:1px;margin-top:-1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform 420ms var(--motion-ease);color:transparent!important;pointer-events:none}label:focus-within>.field-focus-line{transform:scaleX(1)}.has-value>input,.has-value>textarea,.has-value>select{border-bottom-color:#1a1d2180!important}
.motion-preference{background:none;border:0;padding:0;color:inherit;font-size:9px;line-height:1.65;opacity:.6;white-space:nowrap;transition:opacity 250ms ease}.motion-preference:hover,.motion-preference:focus-visible{opacity:1}.reading-progress{position:fixed;left:0;right:0;top:0;height:2px;pointer-events:none;z-index:100;opacity:.65}.reading-progress i{display:block;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left}
@keyframes menu-uncover{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}@media(max-width:600px){html[data-motion="subtle"] .header.menu-open nav{animation:menu-uncover 480ms var(--motion-ease) both!important}}
@media(max-width:600px){.motion-preference{font-size:9px}.reading-progress{height:1px}.study-details>div{padding-top:15px}}
/* Per-site opt-in can enable restrained motion without changing OS settings. */
html[data-motion="subtle"] .motion-line>span,html[data-motion="subtle"] [data-motion="image"]::before,html[data-motion="subtle"] .study-details>div::before,html[data-motion="subtle"] .process>article::before,html[data-motion="subtle"] .connection-steps>li::before{transition-duration:850ms!important;transition-timing-function:var(--motion-ease)!important;transition-property:transform!important;transition-delay:calc(var(--line-order,var(--motion-order,0))*65ms)!important}
html[data-motion="reduced"] .motion-line>span{transform:none!important;transition:none!important}html[data-motion="reduced"] [data-motion="image"]::before{display:none!important}html[data-motion="reduced"] .reading-progress{display:none}html[data-motion="reduced"] .text-link>span,html[data-motion="reduced"] .hero-cta>span,html[data-motion="reduced"] .system-arrow,html[data-motion="reduced"] .project-caption>span,html[data-motion="reduced"] .project-index a>span:last-child{transform:none!important;transition:none!important}
html[data-motion="reduced"] .project-image-surface img,html[data-motion="reduced"] .client-feature-image img{transform:none!important;transition:none!important}
html[data-motion="reduced"] .submit-button:active,html[data-motion="reduced"] .hero-controls>button:active{transform:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion="subtle"]) .motion-line>span{transform:none!important}.motion-ready[data-motion="subtle"] .text-link::after,.motion-ready[data-motion="subtle"] .hero-cta::after,.motion-ready[data-motion="subtle"] .header nav a::after,.motion-ready[data-motion="subtle"] .system-card-link::after,.motion-ready[data-motion="subtle"] .project-index a::before,.motion-ready[data-motion="subtle"] .submit-button::before,.motion-ready[data-motion="subtle"] .field-focus-line{transition:transform 420ms var(--motion-ease)!important}.motion-ready[data-motion="subtle"] .text-link>span,.motion-ready[data-motion="subtle"] .hero-cta>span,.motion-ready[data-motion="subtle"] .system-arrow,.motion-ready[data-motion="subtle"] .project-index a>span:last-child{transition:transform 350ms var(--motion-ease)!important}}
