*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#060a0b;color:#fff}body{font-family:Archivo,Arial,sans-serif}.home{position:relative;width:100%;height:100svh;overflow:hidden}.background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home header{position:absolute;z-index:2;top:36px;left:0;width:100%;padding:0 32px;display:flex;justify-content:space-between;align-items:center;height:28px}header a{width:156px;height:28px;display:block}header img{display:block}button{font:400 14px 'Chivo Mono',monospace;color:inherit;border:0;background:none;padding:0;cursor:pointer}button:focus-visible,a:focus-visible{outline:1px solid white;outline-offset:6px}.claim{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;text-align:center;pointer-events:none}.claim h1{font:700 12px/normal Archivo,Arial,sans-serif;margin:0}.claim p{font:400 14px/normal 'Playfair Display',Georgia,serif;margin:0}.reel{position:absolute;bottom:10px;left:0;width:100%;height:187px;padding:16px 0;touch-action:none}.track{display:flex;gap:24px;width:max-content;will-change:transform;padding-left:36px}.card{flex:none;width:181px;margin:0}.capsule{position:relative;width:181px;height:119px}.capsule video{position:absolute;top:6px;left:6px;width:169px;height:107px;object-fit:cover}.corner{position:absolute;width:6px;height:6px;border-color:rgba(255,255,255,.5);border-style:solid;border-width:0}.tl{top:0;left:0;border-top-width:.35px;border-left-width:.35px}.tr{top:0;right:0;border-top-width:.35px;border-right-width:.35px}.bl{bottom:0;left:0;border-bottom-width:.35px;border-left-width:.35px}.br{bottom:0;right:0;border-bottom-width:.35px;border-right-width:.35px}figcaption{margin-top:8px;white-space:nowrap}.brand{font:700 11px/normal Archivo,Arial,sans-serif;margin:0}.project{font:400 12px/normal 'Playfair Display',Georgia,serif;margin:0}dialog{position:fixed;inset:0;width:100%;height:100svh;max-width:none;max-height:none;margin:0;border:0;background:#060a0b;color:#fff;padding:36px 32px}dialog::backdrop{background:#060a0b}.menu-close{position:absolute;top:43px;right:32px}.menu-heading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:12px;line-height:1.5}.menu-heading span{font:14px 'Playfair Display',Georgia,serif}.back-home{position:absolute;bottom:36px;left:32px}@media(max-width:600px){.home header{top:24px;padding:0 20px}.track{padding-left:20px}.menu-close{right:20px}.reel{bottom:max(10px,env(safe-area-inset-bottom))}}

@media (hover:hover){.capsule:hover video{filter:grayscale(0)}}

/* Intro transforms are isolated from the track's continuous movement. */
.claim h1,.claim p{overflow:hidden}
.claim span{display:inline-block;vertical-align:top}
.intro-pending header,.intro-pending .claim,.intro-pending .card{visibility:hidden}
.intro-enter header{animation:header-enter 750ms cubic-bezier(.22,1,.36,1) 150ms both}
.intro-enter .claim h1 span{animation:text-enter 850ms cubic-bezier(.22,1,.36,1) 220ms both}
.intro-enter .claim p span{animation:text-enter 950ms cubic-bezier(.22,1,.36,1) 370ms both}
.intro-enter .card{animation:card-enter 1400ms cubic-bezier(.16,1,.3,1) calc(280ms + var(--enter-delay)) both}
@keyframes card-enter{from{transform:translate3d(100vw,0,0);opacity:0}18%{opacity:1}to{transform:translate3d(0,0,0);opacity:1}}
@keyframes text-enter{from{transform:translate3d(0,110%,0);opacity:0;filter:blur(3px)}to{transform:translate3d(0,0,0);opacity:1;filter:blur(0)}}
@keyframes header-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.intro-enter header,.intro-enter .claim span,.intro-enter .card{animation:none}}

.background,.capsule video{transition:filter 220ms ease}
.home.is-focusing .background{filter:none}
.home.is-focusing .capsule:not(.is-active) video{filter:grayscale(1)}
.home.is-focusing .capsule.is-active video{filter:grayscale(0)}
@media(prefers-reduced-motion:reduce){.background,.capsule video{transition:none}}

.loader-track{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:20px;width:max-content;opacity:0;will-change:transform}
.loader-track.is-ready{opacity:1}
.loader-track img{display:block;flex:none;width:169px;height:107px;object-fit:cover;max-width:none}

#menu{padding:0;overflow:hidden;background:#060a0b}
.menu-header{position:absolute;top:36px;left:32px;right:32px;height:28px;display:flex;align-items:center;justify-content:space-between}
.menu-logo{width:156px;height:28px;text-align:left}.menu-logo img{display:block}
#menu .menu-close{position:static}
.menu-navigation{position:absolute;left:calc(50% + .5px);top:calc(50% + .5px);transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
.menu-navigation a{position:relative;display:block;padding:5px 0;color:#fff;text-decoration:none;font:700 24px/normal Archivo,Arial,sans-serif;white-space:nowrap}
.menu-navigation a:hover,.menu-navigation a:focus-visible{font:italic 400 32.4px/normal 'Playfair Display',Georgia,serif}
.menu-languages{position:absolute;left:36px;top:50%;transform:translateY(-50%);display:flex;gap:5px;align-items:center;font:400 11px/normal Archivo,Arial,sans-serif}
.menu-languages span:nth-child(2){font-size:12px}
.menu-contact{position:absolute;right:32px;top:50%;transform:translateY(-50%);display:flex;gap:8px;font:400 11px/normal Archivo,Arial,sans-serif}
.menu-contact a{color:inherit;text-decoration:none}.menu-contact a:hover{text-decoration:underline}
.menu-email{position:relative;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}
.menu-email-address{display:block;transition:opacity 180ms ease}
.menu-email-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 180ms ease}
.menu-email:hover .menu-email-address,.menu-email:focus-visible .menu-email-address{opacity:0}
.menu-email:hover .menu-email-hint,.menu-email:focus-visible .menu-email-hint{opacity:1}
.menu-social{position:relative;display:block;overflow:hidden;line-height:1.4;cursor:pointer}
.menu-social>span{display:block;transition:transform 450ms cubic-bezier(.22,1,.36,1)}
.menu-social>span+span{position:absolute;top:100%;left:0}
.menu-social:hover>span,.menu-social:focus-visible>span{transform:translateY(-100%)}
.menu-language-current{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.menu-language-option{position:relative;cursor:pointer}
.menu-language-option::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 250ms ease}
.menu-language-option:hover::after,.menu-language-option:focus-visible::after{transform:scaleX(1)}
.menu-copy-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.menu-social>span,.menu-email-address,.menu-email-hint,.menu-language-option::after{transition:none}}
.menu-footer{position:absolute;bottom:19px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center}
.menu-time{display:flex;gap:8px;font:400 10px/normal Archivo,Arial,sans-serif}
.menu-times{display:flex;flex-wrap:wrap;gap:12px 28px}
.menu-times .menu-time{flex-direction:column;gap:3px;white-space:nowrap}
@media(max-width:760px){.menu-times{display:grid;grid-template-columns:repeat(4,max-content);gap:12px 16px}.menu-times .menu-time{font-size:9px}}
@media(max-width:380px){.menu-times{gap:12px 10px}.menu-times .menu-time{font-size:8px}}
.menu-legal{display:flex;gap:16px;font:400 11px/normal Archivo,Arial,sans-serif}
@media(max-width:760px){.menu-header{top:24px;left:20px;right:20px}.menu-languages{left:20px;top:auto;bottom:116px;transform:none}.menu-contact{left:20px;right:auto;top:auto;bottom:88px;transform:none}.menu-footer{left:20px;right:20px;bottom:24px;align-items:flex-start;gap:14px;flex-direction:column}.menu-navigation a:hover,.menu-navigation a:focus-visible{font-size:27.6px}}

/* Menu entry and exit replay every time the dialog opens. */
#menu[open]:not(.is-closing) .menu-header{animation:menu-detail-in 650ms ease 100ms both}
#menu[open]:not(.is-closing) .menu-navigation a{animation:menu-link-in 750ms cubic-bezier(.22,1,.36,1) both}
#menu .menu-navigation a:nth-of-type(1){animation-delay:180ms}
#menu .menu-navigation a:nth-of-type(2){animation-delay:270ms}
#menu .menu-navigation a:nth-of-type(3){animation-delay:360ms}
#menu[open]:not(.is-closing) .menu-languages,#menu[open]:not(.is-closing) .menu-contact{animation:menu-detail-in 650ms ease 450ms both}
#menu[open]:not(.is-closing) .menu-footer{animation:menu-detail-in 650ms ease 550ms both}
.menu-navigation a{transition:font-size 220ms cubic-bezier(.22,1,.36,1)}
.menu-navigation a .corner{opacity:0;transition:opacity 160ms ease;border-color:currentColor}
.menu-navigation a .tl,.menu-navigation a .bl{left:-20px}
.menu-navigation a .tr,.menu-navigation a .br{right:-20px}
.menu-navigation a:is(:hover,:focus-visible) .corner{opacity:1}
#menu.is-closing .menu-header,#menu.is-closing .menu-navigation,#menu.is-closing .menu-languages,#menu.is-closing .menu-contact,#menu.is-closing .menu-footer{animation:menu-fade-out 250ms ease both}
@keyframes menu-link-in{from{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes menu-detail-in{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}
@keyframes menu-fade-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#menu[open] *{animation:none!important;transition:none!important}}
body{font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* The modal backdrop filters the live page underneath it. */
#menu{background:transparent;color:#fff;--menu-tint:rgba(0,0,0,.25)}
#menu::backdrop{background:var(--menu-tint);backdrop-filter:blur(var(--menu-blur,62px));-webkit-backdrop-filter:blur(var(--menu-blur,62px))}
#menu[open]:not(.is-closing)::backdrop{animation:menu-overlay-in 1000ms cubic-bezier(.22,1,.36,1) both}
#menu.is-closing::backdrop{animation:menu-overlay-out 320ms ease both}
.menu-navigation a{color:inherit}
.menu-navigation a .corner{border-color:currentColor}
@keyframes menu-overlay-in{from{background:transparent;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{background:var(--menu-tint);backdrop-filter:blur(var(--menu-blur,62px));-webkit-backdrop-filter:blur(var(--menu-blur,62px))}}
@keyframes menu-overlay-out{from{background:var(--menu-tint);backdrop-filter:blur(var(--menu-blur,62px));-webkit-backdrop-filter:blur(var(--menu-blur,62px))}to{background:transparent;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}}
@media(prefers-reduced-motion:reduce){#menu::backdrop{animation:none!important}}

#menu::backdrop{--menu-tint:rgba(0,0,0,.25)}

.track .capsule{display:block;color:inherit;text-decoration:none;cursor:pointer}

:is(.about-header,.work-header,.fc-header)>a{display:block;width:156px;height:28px}
:is(.about-header,.work-header,.fc-header)>a img,.footer-brand>img[src$="logo.svg"]{display:block;width:56px;height:28px;object-fit:contain}
.fc-header>a img{filter:invert(1)}

/* Menu: email at the left edge, language above primary links. */
.menu-email-group{position:absolute;left:36px;top:50%;transform:translateY(-50%);font:400 11px/normal Archivo,Arial,sans-serif}
.menu-navigation .menu-languages{left:50%;right:auto;top:-44px;bottom:auto;transform:translateX(-50%);white-space:nowrap}
#menu[open]:not(.is-closing) .menu-email-group{animation:menu-detail-in 650ms ease 450ms both}
#menu.is-closing .menu-email-group{animation:menu-fade-out 250ms ease both}
@media(max-width:760px){.menu-email-group{left:20px;top:auto;bottom:100px;transform:none}.menu-contact{left:auto;right:20px;top:auto;bottom:100px;transform:none}.menu-navigation .menu-languages{left:50%;top:-40px;bottom:auto;transform:translateX(-50%)}}
@media(max-width:360px){.menu-email-group,.menu-contact{font-size:10px}.menu-contact{gap:6px}}

.menu-header-actions{display:flex;align-items:center;gap:24px}
.menu-header-actions .menu-languages{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;white-space:nowrap}
@media(max-width:760px){.menu-header-actions{gap:20px}.menu-header-actions .menu-languages{position:static;left:auto;top:auto;bottom:auto;transform:none}}

.menu-contact a.menu-social:hover{text-decoration:none}

.home .capsule video{filter:grayscale(1)}
.home.is-focusing .capsule:not(.is-active) video{filter:grayscale(1)}
.home .capsule:is(:hover,:focus-visible) video,.home.is-focusing .capsule.is-active video{filter:grayscale(0)}

.menu-legal{flex-wrap:wrap;justify-content:flex-end}.menu-credits{white-space:nowrap}
@media(max-width:760px){.menu-legal{align-self:flex-end}}

html.loader-seen .loader{display:none!important}
