/* Shared text decoding preserves the original text and its layout for accessibility. */
.decode-target{position:relative}
.decode-target.decoding{color:transparent!important}
.decode-target.decoding>:not(.decode-layer){visibility:hidden!important}
.decode-layer{position:absolute;inset:0;display:block;pointer-events:none;color:var(--decode-ink)!important;visibility:visible!important;overflow:hidden;text-align:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;padding:inherit}
.decode-layer *{visibility:visible!important;opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
.decode-target[data-reveal],.decode-target.line-sequence,.decode-target .line-word-ink,.decode-target .reveal-inner,.decode-target .project-label-inner{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
.decode-target .line-word,.decode-target .reveal-line{overflow:visible!important}
.nav-decode{display:inline-block;position:relative}
header nav a,.mobile-menu a{transition:color .18s ease}
header nav a.nav-decoding,.mobile-menu a.nav-decoding{color:var(--nav-rest-color)!important}
header nav a.nav-decoded,.mobile-menu a.nav-decoded{color:var(--orange,#ff5b00)!important}
.homepage .hero-intro{max-width:calc(100% - 2 * var(--edge))}
.homepage .hero .expertise-intro{font-size:clamp(18px,1.7vw,32px);line-height:1.3;letter-spacing:-.035em;max-width:25em}
.expertise-lead{display:inline-block;margin-top:.35em}
.expertise-cycle{display:block;min-height:1.35em;width:22ch;max-width:100%;font-weight:500}
.expertise-value{display:inline-block;white-space:nowrap;position:relative}
.expertise-value:after{content:'';display:inline-block;width:1px;height:.9em;margin-left:.16em;background:currentColor;animation:decode-caret .85s steps(1) infinite}
@keyframes decode-caret{50%{opacity:0}}
/* Live, responsive version of the supplied 1342 x 624 frame. */
.homepage .project{position:relative;isolation:isolate}
.homepage .project-media{z-index:2;container-type:inline-size;overflow:hidden;text-align:left;color:#20292e}
.case-hover-frame{position:absolute;inset:0;pointer-events:none;z-index:3;--rim:14px;--panel:21%;--frame:#e5e5e5;color:#20292e}
.case-hover-frame:before,.case-hover-frame:after,.case-hover-top{content:'';position:absolute;background:var(--frame);transition:transform .55s cubic-bezier(.22,1,.36,1)}
.case-hover-frame:before{inset:0 auto 0 0;width:var(--rim);transform:translateX(-101%)}
.case-hover-frame:after{inset:0 0 0 auto;width:var(--rim);transform:translateX(101%)}
.case-hover-top{inset:0 0 auto;height:var(--rim);transform:translateY(-101%)}
.case-hover-date{position:absolute;right:0;top:0;background:var(--frame);padding:14px 14px 8px;border-radius:0 0 0 5px;font:500 16px/1 Onest,sans-serif;transform:translateY(-110%);transition:transform .55s cubic-bezier(.22,1,.36,1)}
.case-hover-panel{position:absolute;inset:auto 0 0;min-height:var(--panel);display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,40%);gap:36px;align-items:center;background:var(--frame);padding:20px 18px;transform:translateY(101%);transition:transform .55s cubic-bezier(.22,1,.36,1)}
.case-hover-title{display:block;font:600 28px/1.1 Onest,sans-serif;text-transform:uppercase;margin:0 0 8px;letter-spacing:0}
.case-hover-category{display:flex;align-items:flex-start;gap:9px;font:450 16px/1.3 Onest,sans-serif;text-transform:uppercase;letter-spacing:0}
.case-hover-category:before{content:'';width:.65em;height:.65em;background:#ff5b00;border-radius:50%;flex-shrink:0;margin-top:.25em}
.case-hover-description{display:block;font:400 16px/1.3 Onest,sans-serif;letter-spacing:-.02em}
.homepage .project .project-dates,.homepage .project .project-meta{position:relative;z-index:1;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .25s}
.homepage .project.case-hovering .project-dates{transform:translateY(120%);opacity:0}
.homepage .project.case-hovering .project-meta{transform:translateY(-120%);opacity:0}
.case-hovering .case-hover-frame:before,.case-hovering .case-hover-frame:after,.case-hovering .case-hover-top,.case-hovering .case-hover-panel,.case-hovering .case-hover-date{transform:translate(0)}
.case-hover-panel [data-card-decode],.case-hover-date [data-card-decode]{opacity:0;transition:opacity .1s}
.case-hovering .case-hover-panel [data-card-decode],.case-hovering .case-hover-date [data-card-decode]{opacity:1;transition-delay:.22s}
.homepage .case-cursor.visible{display:block!important;width:230px;height:50px;border-radius:8px;background:transparent url('/assets/case-hover-pointer.png') center/contain no-repeat;opacity:1;z-index:100;transition:opacity .2s;transform:translate(-50%,-50%)}
.homepage .case-cursor span{display:none!important}
body.case-pointer-active .portfolio-pointer{opacity:0!important}
@media(hover:hover) and (pointer:fine){.homepage .project-media{cursor:none}.homepage .project-media:focus-visible{outline:2px solid var(--orange);outline-offset:5px}}
@media(max-width:640px){
 .homepage .hero .expertise-intro{font-size:clamp(15px,4vw,22px);line-height:1.3;max-width:23em}
 .homepage .hero-intro{max-width:calc(100% - 2 * var(--edge));top:7%}
 .homepage .hero .location{top:35%}
 .homepage .case-cursor.visible{display:none!important}
}
@media(hover:none),(pointer:coarse){
 .homepage .project{height:auto!important;grid-template-rows:auto auto auto!important}
 .homepage .project .project-dates,.homepage .project .project-meta{display:none}
 .homepage .project-media{height:auto!important;aspect-ratio:auto!important;overflow:hidden;background:#e5e5e5;padding:8px!important;border-radius:5px}
 .homepage .project .project-media .cover{position:relative;inset:auto;height:auto;aspect-ratio:var(--source-ratio,16/9);object-fit:contain!important}
 .case-hover-frame{position:relative;display:block;inset:auto}
 .case-hover-frame:before,.case-hover-frame:after,.case-hover-top{display:none}
 .case-hover-date{position:absolute;top:auto;bottom:100%;right:0;transform:none;font-size:12px;padding:8px;border-radius:5px 0 0}
 .case-hover-panel{position:relative;display:grid;transform:none;grid-template-columns:1fr;gap:12px;padding:20px 6px 12px;min-height:0}
 .case-hover-title{font-size:20px}
 .case-hover-category{font-size:12px}
 .case-hover-description{font-size:14px}
 .case-hover-panel [data-card-decode],.case-hover-date [data-card-decode]{opacity:1}
}
@media(prefers-reduced-motion:reduce){
 .case-hover-frame:before,.case-hover-frame:after,.case-hover-top,.case-hover-panel,.case-hover-date,.homepage .project .project-dates,.homepage .project .project-meta{transition:none!important}
 .expertise-value:after{animation:none}
}
.case-hover-date [data-card-decode],.case-hover-category [data-card-decode]{display:block}
.decode-target .editorial-line svg{transform:none!important;transition:none!important}
.decode-target .editorial-mask{clip-path:none!important;animation:none!important}
.homepage .project .cover{transition:clip-path .55s cubic-bezier(.22,1,.36,1);clip-path:inset(0 round 0)}
@media(hover:hover) and (pointer:fine){.homepage .project.case-hovering .cover{clip-path:inset(14px 14px 0 round 5px)}}
@media(prefers-reduced-motion:reduce){.homepage .project .cover{transition:none}}
@media(min-width:641px) and (max-width:1200px) and (hover:hover){
 .homepage .project-pair,.homepage .project-pair.reverse{height:auto;grid-template-columns:1fr}
 .homepage .project-pair .project{height:auto;grid-template-rows:var(--home-date-height) minmax(320px,auto) var(--home-caption-height)}
 .homepage .project-pair .project .project-media{height:320px}
}
