:root{color-scheme:dark;--background:#000;--text:#fff;--muted:#888;--line:#252525;--display:'Inter Display','Inter',sans-serif;--body:'Inter',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid #fff;outline-offset:6px}p,h1,h2,h3,figure{margin:0}img{display:block;width:100%;height:auto}::selection{background:#fff;color:#000}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;z-index:10;left:20px;top:-100px;background:#fff;color:#000;padding:12px}.skip-link:focus{top:12px}
.site-header{max-width:1200px;min-height:90px;margin:auto;padding:24px;display:grid;grid-template-columns:1.14fr 1fr .5fr;align-items:center;border-bottom:1px solid var(--line);font:600 14px/1.2 var(--display)}.wordmark{font:500 22px/1.4 var(--display);letter-spacing:-.5px;justify-self:start}.nav-links{margin-top:4px;color:#999;font-weight:400}.nav-links a{display:inline-block;transition:color .2s,transform .2s}.nav-links a:hover{color:#fff;transform:translateY(-2px)}.location p+p{color:#999;margin-top:4px}
.intro{max-width:1480px;margin:22px auto 0;padding:0 24px;display:grid;grid-template-columns:473px 1fr;gap:25px;position:relative}.intro::after{content:'';height:24px;background:#fff;position:absolute;left:0;right:0;top:402px;z-index:0}.portrait{height:550px;overflow:hidden;border-radius:9px;z-index:1}.portrait img{height:100%;object-fit:cover;transform:scale(1.3)}.intro-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;z-index:1;padding-top:48px}.intro h1{max-width:945px;font:500 49px/1.04 var(--display);letter-spacing:-.8px}.contact-button{display:inline-flex;border:2px solid currentColor;border-radius:100px;padding:7px 16px;font:600 23px/.95 var(--display);text-transform:uppercase;transition:background .2s,color .2s}.contact-button:hover{background:#fff;color:#000}
.work{max-width:1480px;margin:20px auto 0;scroll-margin-top:24px}.marquee{overflow:hidden;padding:0 0 16px}.marquee-track{display:flex;width:max-content;font:600 208px/.9 var(--display);letter-spacing:-9px;animation:marquee 24s linear infinite;will-change:transform}.marquee-track span{white-space:nowrap}@keyframes marquee{to{transform:translateX(-50%)}}
.home-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 8px;align-items:start}.project-card{display:block;min-width:0}.card-image{position:relative;overflow:hidden;border-radius:16px;background:#121212;aspect-ratio:368/401}.card-image>img{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.3,1),filter .4s}.card-fairy .card-image,.card-dodot .card-image{aspect-ratio:368/522}.card-aldeias .card-image,.card-old .card-image{aspect-ratio:368/309}.card-caption{padding:15px 4px 0}.card-caption :is(h2,h3){font-size:28px;font-weight:500;line-height:1.3;letter-spacing:-1.1px}.card-caption p{margin-top:5px;color:var(--muted);font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.65px}.card-hover{position:absolute;inset:0;display:grid;place-items:center;opacity:0;background:#0005;transition:opacity .35s}.card-hover .brand-logo{width:56px;height:56px;object-fit:contain}.project-card:hover .card-image>img{transform:scale(1.04);filter:brightness(.72)}.project-card:hover .card-hover,.project-card:focus-visible .card-hover{opacity:1}
.site-footer{padding:0 24px;overflow:hidden;margin-top:48px}.footer-links{padding:0 0 26px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font:600 14px/1.2 var(--display)}.networks{text-align:right}.copyright{font:600 30.1vw/.935 var(--display);letter-spacing:-.07em;white-space:nowrap;margin-top:32px;padding-bottom:24px}
.project-heading{padding:35px 40px 28px;display:grid;grid-template-columns:1fr 2fr;align-items:center;min-height:278px}.client{font-size:16px;line-height:1.6}.client p:first-child{color:#888}.client p+p{font-weight:500}.project-heading-copy h1{max-width:860px;font-size:64px;line-height:1.1;font-weight:600;letter-spacing:-3px}.project-heading-copy>p{font-size:18px;font-weight:500;line-height:1.3;max-width:754px;margin-top:24px;letter-spacing:-.5px}.explore{display:inline-flex;gap:24px;align-items:center;margin-top:24px;padding:12px 20px;border:1px solid #2b2b2b;border-radius:99px;font-size:18px;font-weight:600;transition:background .2s}.explore:hover{background:#222}.project-cover{width:100%;overflow:hidden}.project-cover img{height:100%;object-fit:cover}.project-content{padding:0 40px}.text-section{display:grid;grid-template-columns:1fr 2fr;gap:0;padding:48px 0}.text-section h2{font-size:16px;line-height:1.6;font-weight:600}.section-body{font-size:32px;line-height:1.2;font-weight:600;letter-spacing:-1px;max-width:867px}.section-note{font:600 14px/1.2 var(--display);color:#999;max-width:754px;margin-top:24px}.project-figure{overflow:hidden;aspect-ratio:var(--image-ratio,auto)}.project-figure img{height:100%;object-fit:cover}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-gallery+.project-figure{margin-top:12px}.related{margin-top:40px}.related .text-section{padding:48px 0 36px}.related-title{font-size:48px;line-height:1.1;font-weight:600;letter-spacing:-2px}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.related-grid .card-image{aspect-ratio:463/389}.project-route .site-footer{margin-top:54px}#about-the-project{scroll-margin-top:20px}
.contact-route .site-header{max-width:1480px}.contact-page{max-width:1480px;margin:auto;padding:42px 24px 40px;border-bottom:1px solid var(--line)}.contact-layout{display:flex;justify-content:space-between;align-items:center;gap:60px}.contact-portrait{width:490px;height:337px;border-radius:10px;overflow:hidden}.contact-portrait img{height:100%;object-fit:cover;transform:scale(1.3)}.contact-details{width:500px;max-width:50%;padding-bottom:10px;border-bottom:1px solid var(--line)}.contact-details a{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font:500 16px/1.3 var(--display)}.contact-details a:hover{color:#999}.contact-details a>span:last-child{font-size:21px;line-height:1}.contact-route .site-footer{max-width:1480px;margin:224px auto 0;border-top:24px solid #fff;padding-top:26px}.not-found{padding:100px 24px;text-align:center}.not-found h1{font:600 clamp(100px,20vw,260px)/1 var(--display)}.not-found p{margin:20px}.not-found .contact-button{font-size:18px}
@media(min-width:1600px){.project-heading,.project-content{max-width:1600px;margin:auto}.project-heading{min-height:278px}}
@media(max-width:1199px){.site-header{margin:0 24px;padding:24px 0;grid-template-columns:1fr 1fr auto}.intro{grid-template-columns:1fr;gap:28px}.portrait{width:100%;height:550px}.intro-copy{padding-top:0;gap:36px}.intro::after{display:none}.intro h1{font-size:44px;max-width:900px}.work{margin-top:44px}.marquee-track{font-size:160px;letter-spacing:-7px}.home-grid{margin:0 24px;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 12px}.home-grid .card-image{aspect-ratio:4/5}.project-heading{padding:40px 24px;grid-template-columns:1fr 2fr}.project-heading-copy h1{font-size:48px;letter-spacing:-2px}.project-content{padding:0 24px}.section-body{font-size:27px}.text-section{gap:24px}.related-title{font-size:38px}.related-grid .card-caption :is(h2,h3){font-size:23px}.related-grid .card-caption p{font-size:17px}.contact-layout{gap:40px}.contact-portrait{width:48%}.contact-route .site-header{margin:0 24px}}
@media(max-width:809px){.site-header{margin:0 20px;padding:20px 0;min-height:86px;grid-template-columns:1fr auto;gap:20px}.site-header nav{font-size:12px}.site-header .location{display:none}.wordmark{font-size:22px}.intro{margin-top:20px;padding:0 20px;gap:28px}.portrait{height:auto;aspect-ratio:353/410}.intro h1{font-size:35px;line-height:1.08;letter-spacing:-1.3px}.intro-copy{gap:28px}.contact-button{font-size:20px}.work{margin-top:38px}.marquee-track{font-size:100px;line-height:.95;letter-spacing:-4px}.marquee{padding-bottom:24px}.home-grid{grid-template-columns:1fr;margin:0 20px;gap:36px}.home-grid .card-image{aspect-ratio:368/401}.home-grid .card-fairy .card-image,.home-grid .card-dodot .card-image{aspect-ratio:368/522}.home-grid .card-aldeias .card-image,.home-grid .card-old .card-image{aspect-ratio:368/309}.card-caption :is(h2,h3){font-size:26px}.card-caption p{font-size:18px}.site-footer{padding:0 20px;margin-top:60px}.footer-links{font-size:12px;gap:24px}.copyright{margin-top:24px;font-size:29.3vw;letter-spacing:-.07em;padding-bottom:16px}.project-heading{display:flex;flex-direction:column;align-items:stretch;padding:36px 20px 30px;gap:24px}.client{display:flex;gap:14px;font-size:14px}.project-heading-copy h1{font-size:42px;letter-spacing:-1.7px}.project-heading-copy>p{font-size:17px;margin-top:18px}.explore{font-size:16px;margin-top:20px;padding:10px 16px}.project-content{padding:0 20px}.text-section{grid-template-columns:1fr;gap:20px;padding:36px 0}.text-section h2{font-size:14px}.section-body{font-size:25px;letter-spacing:-.65px}.section-note{font-size:13px;margin-top:20px}.project-gallery{grid-template-columns:1fr;gap:12px}.related{margin-top:24px}.related .text-section{padding:36px 0 24px}.related-title{font-size:34px;letter-spacing:-1.1px}.related-grid{grid-template-columns:1fr;gap:32px}.related-grid .card-caption :is(h2,h3){font-size:26px}.related-grid .card-caption p{font-size:18px}.contact-route .site-header{margin:0 20px}.contact-page{padding:24px 20px 36px}.contact-layout{flex-direction:column;align-items:stretch;gap:32px}.contact-portrait{width:100%;height:auto;aspect-ratio:490/337}.contact-details{max-width:none;width:100%}.contact-route .site-footer{margin-top:90px;border-top-width:12px}.card-hover{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track{animation:none}*,*::before,*::after{transition:none!important}}

/* Motion recreated from the published portfolio. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.rolling-link{position:relative}.roll-label{display:inline-flex;position:relative;overflow:hidden;vertical-align:top;line-height:1.2}.roll-unit{display:block;position:relative;white-space:pre;transition:transform .48s var(--motion-ease);transition-delay:var(--delay,0ms)}.roll-unit::after{content:attr(data-copy);position:absolute;left:0;top:100%;white-space:pre}.rolling-link:is(:hover,:focus-visible) .roll-unit{transform:translateY(-100%)}.nav-links a:hover{transform:none}.nav-links .roll-label{line-height:1.2}
.contact-button{position:relative;isolation:isolate;overflow:hidden;transition:color .35s var(--motion-ease)}.contact-button::before{content:'';position:absolute;inset:0;background:#fff;border-radius:50% 50% 0 0;transform:translateY(105%);transition:transform .45s var(--motion-ease),border-radius .45s var(--motion-ease);z-index:-1}.contact-button:is(:hover,:focus-visible){background:transparent;color:#000}.contact-button:is(:hover,:focus-visible)::before{transform:translateY(0);border-radius:0}.contact-button .roll-label{line-height:1.05}
.contact-details a{position:relative;overflow:hidden;transition:color .3s}.contact-details a:hover{color:#fff}.contact-details a::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--motion-ease)}.contact-details a:is(:hover,:focus-visible)::after{transform:scaleX(1)}.contact-arrow{position:relative;transition:transform .45s var(--motion-ease)}.contact-arrow::after{content:'↗';position:absolute;top:130%;right:130%}.contact-details a:is(:hover,:focus-visible) .contact-arrow{transform:translate(130%,-130%)}
.portrait,.contact-portrait{position:relative}.portrait img,.contact-portrait img{position:absolute;inset:-25% 0 auto;width:100%;height:150%;object-fit:cover;transform:translate3d(0,var(--parallax-y,0px),0);will-change:transform}
.card-hover{transition:opacity .45s var(--motion-ease);pointer-events:none}.card-hover .brand-logo{transform:translateY(18px) scale(.8);transition:transform .5s var(--motion-ease),opacity .4s;opacity:0}.project-card:is(:hover,:focus-visible) .card-image>img{transform:scale(1.045);filter:blur(3px) brightness(.7)}.project-card:is(:hover,:focus-visible) .brand-logo{opacity:1;transform:translateY(0) scale(1)}
.site-footer{container-type:inline-size}.copyright{overflow:hidden;margin-top:32px;padding-bottom:0;font-size:31cqw;line-height:1;letter-spacing:-.055em}.copyright-text{display:block;transform:translate3d(0,var(--year-y,0px),0);will-change:transform}.contact-route .site-footer{margin-top:64px}

@media(max-width:809px){.copyright{margin-top:24px;font-size:31cqw}.contact-route .site-footer{margin-top:48px}.card-hover{display:grid}}
@media(hover:none){.project-card:hover .card-image>img{filter:none;transform:none}.project-card:hover .card-hover{opacity:0}}
@media(prefers-reduced-motion:reduce){.roll-unit,.rolling-link:is(:hover,:focus-visible) .roll-unit,.copyright-text,.portrait img,.contact-portrait img{transform:none!important}.copyright-text,.portrait img,.contact-portrait img{will-change:auto}.card-hover .brand-logo{transform:none}.contact-arrow,.contact-details a:is(:hover,:focus-visible) .contact-arrow{transform:none}.contact-arrow::after{display:none}}

/* All work: a regular image gallery, independent of the home selection. */
.work-page{max-width:1480px;margin:0 auto;padding:0 24px}.work-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:64px 0 44px}.work-heading h1{font:600 clamp(64px,9vw,140px)/.95 var(--display);letter-spacing:-.055em}.work-heading p{font:500 14px/1.3 var(--display);color:var(--muted);padding-bottom:10px;white-space:nowrap}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}:is(.work-grid,.home-grid) .project-card{position:relative;overflow:hidden;border-radius:16px}.work-grid .card-image{aspect-ratio:16/11}:is(.work-grid,.home-grid) .card-caption{position:absolute;inset:auto 0 0;padding:56px 24px 24px;background:linear-gradient(transparent,#000c);opacity:0;transform:translateY(14px);transition:opacity .4s var(--motion-ease),transform .45s var(--motion-ease);pointer-events:none}:is(.work-grid,.home-grid) .project-card:is(:hover,:focus-visible) .card-caption{opacity:1;transform:none}:is(.work-grid,.home-grid) .card-caption :is(h2,h3){font-size:26px}:is(.work-grid,.home-grid) .card-caption p{font-size:16px;color:#ccc;letter-spacing:-.3px}:is(.work-grid,.home-grid) .brand-logo{width:48px;height:48px}:is(.work-grid,.home-grid) .card-hover{padding-bottom:40px}.work-route .site-footer{max-width:1480px;margin:64px auto 0}
@media(max-width:1199px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-heading{padding-top:48px}}
@media(max-width:809px){.work-page{padding:0 20px}.work-heading{padding:36px 0 28px;align-items:flex-start;flex-direction:column;gap:16px}.work-heading h1{font-size:64px}.work-heading p{padding:0}.work-grid{grid-template-columns:1fr;gap:28px}:is(.work-grid,.home-grid) .card-caption{position:static;opacity:1;transform:none;padding:14px 4px 0;background:none}:is(.work-grid,.home-grid) .project-card{overflow:visible}:is(.work-grid,.home-grid) .card-hover{padding-bottom:0}}
@media(hover:none){:is(.work-grid,.home-grid) .card-caption{opacity:1;transform:none}}

/* One entry layer keeps navigation responsive without stacked motion. */
@media(prefers-reduced-motion:no-preference){
  main{animation:page-in .32s var(--motion-ease) both}
  @keyframes page-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
}
.arrow-window{display:block;flex:0 0 24px;width:24px;height:24px;overflow:hidden}.contact-arrow{display:block;width:24px;height:24px;text-align:center;font-size:21px;line-height:24px}
@media(prefers-reduced-motion:no-preference){.copyright.is-visible .copyright-text{animation:year-enter 1s var(--motion-ease) both}@keyframes year-enter{from{translate:0 90px}to{translate:0 0}}}

/* Straight image edges throughout the portfolio. */
img,video,.portrait,.contact-portrait,.card-image,.project-card,:is(.work-grid,.home-grid) .project-card,.project-cover,.project-figure,.experiment-media{border-radius:0}
.work-grid{gap:4px}
.index-heading{padding:44px 0 24px}.index-heading .marquee{margin:0 -24px}.index-count{font:500 14px/1.3 var(--display);color:var(--muted);margin-top:8px}
.lab-page{max-width:1480px;margin:auto;padding:0 24px}.lab-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:24px;margin:28px 0 24px}.lab-intro p:first-child{font:500 40px/1.1 var(--display);letter-spacing:-1px;max-width:490px}.lab-intro p:last-child{font:400 18px/1.4 var(--display);color:var(--muted);justify-self:end}.lab-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lab-filters{display:flex;flex-wrap:wrap;gap:8px 28px}.lab-filters button{font:500 16px/1.4 var(--display);background:none;color:var(--muted);border:0;border-bottom:1px solid transparent;padding:6px 0;cursor:pointer;transition:color .2s,border-color .2s}.lab-filters button:hover,.lab-filters button[aria-pressed="true"]{color:#fff;border-bottom-color:#fff}.lab-filters button:focus-visible{outline:2px solid #fff;outline-offset:5px}.lab-count{font:400 14px/1.3 var(--display);color:var(--muted);white-space:nowrap}.lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 4px;padding-top:4px}.experiment-media{aspect-ratio:16/11;overflow:hidden;background:#111}.experiment-media img,.experiment-media video{width:100%;height:100%;object-fit:cover}.experiment-caption{padding:16px 4px}.experiment-type{font:400 13px/1.4 var(--display);color:var(--muted);margin-bottom:8px}.experiment-caption h2{font:500 26px/1.2 var(--display);letter-spacing:-.7px}.experiment-caption>p:last-child:not(.experiment-type){font:400 16px/1.4 var(--display);color:var(--muted);margin-top:8px}.lab-empty{padding:64px 0 72px;border-bottom:1px solid var(--line)}.lab-empty p:first-child{font:500 32px/1.2 var(--display);letter-spacing:-.8px}.lab-empty p+p{margin-top:12px;color:var(--muted);font-size:16px}.lab-route .site-footer{max-width:1480px;margin:48px auto 0}[hidden]{display:none!important}
@media(max-width:1199px){.lab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:809px){.work-grid{gap:16px}.index-heading{padding:32px 0 20px}.index-heading .marquee{margin:0 -20px}.lab-page{padding:0 20px}.lab-intro{grid-template-columns:1fr;margin:20px 0;gap:14px}.lab-intro p:first-child{font-size:32px}.lab-intro p:last-child{justify-self:start;font-size:16px}.lab-toolbar{flex-direction:column;align-items:flex-start;gap:16px;padding:16px 0}.lab-filters{gap:6px 20px}.lab-grid{grid-template-columns:1fr}.lab-empty{padding:44px 0 48px}.lab-empty p:first-child{font-size:27px}}

/* Audit refinements: clear navigation, generous targets and immediate feedback. */
.nav-links{display:flex;flex-wrap:wrap;gap:0 4px}
.nav-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 4px}
.nav-links a[aria-current]{color:#fff;text-decoration:line-through}
.nav-links a[aria-current] .roll-unit,.nav-links a[aria-current] .roll-unit::after{text-decoration:line-through}
.wordmark{display:inline-flex;align-items:center;min-height:44px}
.lab-filters{gap:8px 16px}
.lab-filters button{min-height:44px;min-width:44px;padding:10px 6px}
.contact-button,.explore,.contact-details a{min-height:44px;align-items:center}
button:focus-visible{outline:2px solid #fff;outline-offset:5px}
:is(.nav-links a,.wordmark,.lab-filters button,.contact-button,.explore,.contact-details a):active{background:#292929;color:#fff;transition:none}
:is(.work-grid,.home-grid) .card-caption{padding:40px 16px 16px}
:is(.work-grid,.home-grid) .card-caption :is(h2,h3){font-size:22px}
.marquee{position:relative}
/* The empty Lab keeps its visual signature at a quieter scale. */
.lab-page.is-empty .marquee-track{font-size:clamp(100px,11vw,160px)}
.lab-page.is-empty .lab-empty{padding:40px 0 48px}
@media(max-width:809px){
  .site-header{grid-template-columns:1fr;gap:12px}
  .site-header nav{font-size:.875rem}
  .footer-links{flex-wrap:wrap;gap:20px}
  .footer-links .networks{text-align:left}
  :is(.work-grid,.home-grid) .card-caption{padding:14px 4px 0}
}
/* Single page titles share the portfolio display typography. */
.index-title{font:600 208px/.95 var(--display);letter-spacing:-9px;padding-bottom:16px}
.nav-links{margin-top:0}
@media(max-width:1199px){.index-title{font-size:160px;letter-spacing:-7px}}
@media(max-width:809px){.index-title{font-size:100px;letter-spacing:-4px;padding-bottom:24px}}

/* Shared title spacing and contained home footer. */
.contact-page{padding-top:0}
.home-route .site-footer{max-width:1480px;margin-left:auto;margin-right:auto}
@media(max-width:809px){.index-title{font-size:min(100px,17vw)}}

/* Featured projects use the same grid geometry as the Works page. */
.home-grid{max-width:none;margin:0 24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.home-grid .project-card .card-image{aspect-ratio:16/11}
@media(max-width:1199px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:809px){.home-grid{margin:0 20px;grid-template-columns:1fr;gap:16px}}

/* Slashed zero, keeping the original numeral width and footer motion. */
.slashed-zero{position:relative;display:inline-block}
.slashed-zero::after{content:'';position:absolute;left:calc(50% + .0275em);top:50%;width:.085em;height:.62em;background:currentColor;transform:translate(-50%,-50%) rotate(26deg);pointer-events:none}

/* Blend outgoing and incoming documents without delaying link navigation. */
@view-transition{navigation:auto}
@media(prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:route-out .35s ease both}
  ::view-transition-new(root){animation:route-in .5s var(--motion-ease) both}
  html.route-transition main{animation:none}
  @keyframes route-out{to{opacity:0}}
  @keyframes route-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* A full-width background travels with the header, driven directly by scroll. */
.header-dock{position:sticky;top:0;z-index:100;background:var(--background);transform:translate3d(0,var(--header-offset,0px),0);will-change:transform}
.header-dock .site-header{background:var(--background)}
@media(prefers-reduced-motion:reduce){.header-dock{transform:none;will-change:auto}}

/* Soften the header's lower edge without intercepting content interactions. */
.header-dock::after{content:'';position:absolute;top:100%;left:0;right:0;height:24px;opacity:var(--header-edge,1);background:linear-gradient(to bottom,#000 0%,#0005 45%,transparent 100%);pointer-events:none}
.header-dock .site-header{border-bottom-color:transparent}

/* Project covers and footers share the site's contained page width. */
.project-route .project-cover{max-width:1432px;width:calc(100% - 48px);margin-inline:auto}
.project-route .site-footer{max-width:1480px;margin-inline:auto}
@media(max-width:809px){.project-route .project-cover{width:calc(100% - 40px)}}

/* Lab projects: editorial covers opening a complete visual case study. */
.lab-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px;padding-top:24px}
.lab-project-cover{position:relative;overflow:hidden;aspect-ratio:4/3;background:#111}
.lab-project-cover img{height:100%;object-fit:cover;object-position:50% 35%;transition:transform .5s var(--motion-ease),filter .5s}
.lab-project-cover span{position:absolute;bottom:24px;left:24px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.lab-project-card a:is(:hover,:focus-visible) img{transform:scale(1.035);filter:brightness(.65)}
.lab-project-card a:is(:hover,:focus-visible) span{opacity:1;transform:none}
.lab-project-caption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0}
.lab-project-caption h2{font:500 32px/1.1 var(--display);letter-spacing:-1px}
.lab-project-caption p,.aria-meta,.aria-back,.aria-videos figcaption{color:#999;font-size:14px;line-height:1.5}
.aria-page{max-width:1480px;margin:auto;padding:0 24px}
.aria-back{display:inline-flex;min-height:44px;align-items:center}
.aria-hero{background:#101010}
.aria-hero img{width:100%;max-height:850px;object-fit:contain}
.aria-text{display:grid;grid-template-columns:1fr 2fr;gap:32px;padding:64px 0}
.aria-text h2{font-size:14px;font-weight:500}
.aria-text p{max-width:700px;font:500 28px/1.3 var(--display);letter-spacing:-.5px}
.aria-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.aria-gallery img,.aria-stories img{height:100%;object-fit:contain;background:#101010}
.aria-motion>h2{font:500 48px/1.1 var(--display);letter-spacing:-2px;margin-bottom:28px}
.aria-videos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.aria-videos video{display:block;width:100%;height:auto;max-height:760px;background:#111}
.aria-videos figcaption{padding-top:12px}
.aria-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:64px}
.aria-return{margin-top:32px}
.lab-project-route .site-footer{max-width:1480px;margin-inline:auto}
@media(max-width:809px){.lab-grid{grid-template-columns:1fr}.lab-project-caption{display:block}.lab-project-caption p{margin-top:8px}.aria-page{padding:0 20px}.aria-text{grid-template-columns:1fr;gap:16px;padding:40px 0}.aria-text p{font-size:24px}.aria-gallery,.aria-videos{grid-template-columns:1fr}.aria-stories{grid-template-columns:1fr;margin-top:40px}.aria-motion>h2{font-size:36px}.lab-project-cover span{opacity:1;transform:none;text-shadow:0 1px 8px #000}}

.aria-stories{grid-template-columns:repeat(2,minmax(0,1fr))}
.aria-motion>h2{font-size:16px;letter-spacing:0;color:#999;margin-bottom:20px}
@media(max-width:809px){.aria-stories{grid-template-columns:1fr}}

.aria-videos{max-width:1000px;margin-inline:auto;gap:24px}
.aria-videos video{aspect-ratio:716/1284;max-height:none;object-fit:contain}

.video-player{position:relative;background:#111}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;min-height:56px;padding:16px 24px;border:1px solid #ffffff80;border-radius:99px;background:#000c;color:#fff;font:500 16px/1.2 var(--body);cursor:pointer;white-space:nowrap;transition:background .2s}
.video-play:hover{background:#fff;color:#000}
.video-play:active{background:#ddd;color:#000}
.video-play:focus-visible{outline:2px solid white;outline-offset:5px}

/* Outdoor case study: preserve the panoramic master, then reveal its details. */
.card-hover .brand-wordmark{width:auto!important;height:auto!important;font:600 28px/1 var(--display);letter-spacing:-1px}
.project-nplay .project-heading,.project-nplay .outdoor-content{max-width:1480px;margin-inline:auto;padding-inline:24px}
.project-nplay .project-cover img{height:auto;object-fit:contain}
.outdoor-copy .section-body{font-size:22px;line-height:1.45;font-weight:400;letter-spacing:-.25px;max-width:800px}
.outdoor-copy .section-body+p{margin-top:20px}
.outdoor-copy+.outdoor-copy{padding-top:8px}
.outdoor-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.outdoor-details{align-items:start}
.outdoor-detail img{height:auto;object-fit:contain}
.outdoor-scale{padding:64px 0;display:flex;align-items:baseline;justify-content:space-between;gap:24px}
.outdoor-scale h2{font:500 clamp(64px,9vw,136px)/1 var(--display);letter-spacing:-.06em}
.outdoor-scale p,.outdoor-installed figcaption{font:400 14px/1.5 var(--body);color:#999}
.outdoor-installed img{height:auto}
.outdoor-installed figcaption{padding-top:12px}
.outdoor-credits{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px;margin:0;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.outdoor-credits dt{color:#999;font-size:14px;margin-bottom:10px}
.outdoor-credits dd{margin:0;font-size:16px;line-height:1.5}
@media(max-width:809px){
  .project-nplay .project-heading,.project-nplay .outdoor-content{padding-inline:20px}
  .outdoor-copy .section-body{font-size:18px;line-height:1.5}
  .outdoor-details{grid-template-columns:1fr}
  .outdoor-scale{padding:44px 0;flex-direction:column;gap:16px}
  .outdoor-credits{grid-template-columns:1fr 1fr;gap:28px 20px}
}

.outdoor-video{margin-bottom:40px}
.outdoor-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#111}

/* Aldeias: image sequence and proportions from the supplied presentation. */
.project-aldeias .project-heading,.project-aldeias .identity-content{max-width:1480px;margin-inline:auto;padding-inline:24px}
.project-aldeias .project-cover img{height:auto;object-fit:contain}
.identity-row{display:grid;grid-template-columns:var(--columns);gap:6px;align-items:start}
.identity-opening{gap:0}
.identity-content .project-figure img{height:auto;object-fit:contain}
.identity-applications{display:grid;gap:6px}
@media(max-width:809px){
  .project-aldeias .project-heading,.project-aldeias .identity-content{padding-inline:20px}
  .identity-row{grid-template-columns:1fr}
}

/* Slightly larger hover marks for these three brands. */
:is(.card-labs,.card-dodot) .brand-logo{width:67.76px;height:67.76px}
.card-old .brand-logo{width:73.92px;height:73.92px}
:is(.work-grid,.home-grid) :is(.card-labs,.card-dodot) .brand-logo{width:58.08px;height:58.08px}
:is(.work-grid,.home-grid) .card-old .brand-logo{width:63.36px;height:63.36px}

.aria-copy p+p{margin-top:24px}
