@font-face{font-family:FuturaNCNE;src:url('../fonts/futurapt-light.woff') format('woff');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:SFNCNE;src:url('../fonts/sfprodisplay-blackitalic.woff') format('woff');font-style:italic;font-weight:900;font-display:swap}
:root{--ink:#111113;--paper:#f1f0eb;--white:#fff;--muted:#777771;--line:rgba(17,17,19,.18);--blue:#3156ff;--pad:clamp(30px,6.3vw,108px);--radius:clamp(18px,2vw,30px)}
*{box-sizing:border-box}
html{width:100%;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-y:none;background:var(--ink)}
body{width:100%;min-width:0;margin:0;overflow-x:hidden;scrollbar-width:none;overscroll-behavior-y:none;background:var(--paper);color:var(--ink);font-family:FuturaNCNE,"Helvetica Neue",Arial,sans-serif;font-size:18px;font-weight:300;line-height:1.35;-webkit-font-smoothing:antialiased}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button,input{font:inherit}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 16px;background:#fff;color:#000;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-header{--header-bg:#111113;--header-color:#fff;position:fixed;z-index:50;top:0;right:0;left:0;display:flex;min-height:78px;align-items:center;justify-content:space-between;padding:18px var(--pad);border:0;background:var(--header-bg);color:var(--header-color);transition:background .3s ease,color .3s ease,padding .25s ease}
.site-header[data-theme="hero"]{--header-bg:transparent;--header-color:#fff}
.site-header[data-theme="light"]{--header-bg:#f1f0eb;--header-color:#111113}
.site-header[data-theme="dark"]{--header-bg:#111113;--header-color:#fff}
.menu-open .site-header{--header-bg:#111113;--header-color:#fff}
.site-header.is-scrolled{padding-top:13px;padding-bottom:13px}
.portfolio-header{visibility:visible;opacity:1;pointer-events:none;transform:none;transition:background .3s ease,color .3s ease,padding .25s ease}
.portfolio-header>.brand,.portfolio-header>.menu-toggle{opacity:0;pointer-events:none;transition:opacity .25s ease}
.portfolio-header .language-switcher{pointer-events:auto;transition:opacity .65s cubic-bezier(.22,.7,.2,1),transform .65s cubic-bezier(.22,.7,.2,1)}
.portfolio-header:not(.is-past-hero) .language-switcher{position:fixed;top:64px;right:var(--pad);margin:0;opacity:1;transform:none}
.portfolio-header:not(.is-past-hero)[data-hero-language-tone="dark"] .language-toggle{color:#111113}
.portfolio-header.is-hero-scrolled:not(.is-past-hero) .language-switcher{opacity:0;pointer-events:none;transform:none}
.portfolio-header.is-past-hero .language-switcher{display:block}
.portfolio-header.is-past-hero{pointer-events:auto}
.portfolio-header.is-past-hero>.brand,.portfolio-header.is-past-hero>.menu-toggle{opacity:1;pointer-events:auto}
.brand{display:block;line-height:0}
.brand-logo{display:block;width:clamp(85px,5.8vw,110px);height:auto;filter:none}
.portfolio-header.is-past-hero>.brand .brand-logo{width:clamp(68px,4.64vw,88px)}
.site-header[data-theme="hero"] .brand-logo,.site-header[data-theme="dark"] .brand-logo,.menu-open .site-header .brand-logo,.hero-brand .brand-logo{filter:invert(1)}
.site-header>.brand,.menu-toggle{position:relative;z-index:2}
.site-nav{position:fixed;z-index:1;top:0;right:0;display:flex;width:100vw;height:100dvh;align-items:flex-end;justify-content:space-between;padding:clamp(110px,12vw,180px) var(--pad) clamp(45px,7vw,90px);background:#111113;color:#fff;opacity:0;pointer-events:none;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease}
.site-nav.is-open{opacity:1;pointer-events:auto;transform:none}
.site-nav-links{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.site-nav a{position:relative;font-size:clamp(28px,4.5vw,65px);letter-spacing:-.04em;line-height:.92;text-transform:none}
.site-nav a:after{position:absolute;right:0;bottom:-5px;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:right;transition:transform .25s ease}
.site-nav a:hover:after,.site-nav a:focus-visible:after{transform:scaleX(1);transform-origin:left}
.bored-button{padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:clamp(11px,.9vw,14px);font-weight:300;letter-spacing:.03em;line-height:.92;cursor:pointer;transition:opacity .2s ease,transform .2s ease}
.menu-game-stage{position:absolute;z-index:1;top:clamp(88px,8vw,112px);right:var(--pad);bottom:clamp(24px,3vw,48px);left:var(--pad);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:20px;background:#f1f0eb;box-shadow:0 28px 90px rgba(0,0,0,.35);opacity:0;transform:translateY(12px) scale(.992);transition:opacity .28s ease,transform .28s ease}
.menu-game-stage[hidden]{display:none}
.menu-game-stage iframe{display:block;width:100%;height:100%;border:0;background:transparent}
.site-nav-links{transition:opacity .2s ease,transform .2s ease}
.site-nav.is-game-open .site-nav-links,.site-nav.is-game-open>.bored-button{opacity:0;pointer-events:none;transform:translateY(10px)}
.site-nav.is-game-open .menu-game-stage{opacity:1;transform:none}
.menu-toggle{display:flex;align-items:center;padding:8px 0;border:0;background:transparent;color:inherit;cursor:pointer}
.menu-toggle span{font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.menu-toggle .menu-close{display:none;letter-spacing:0}
.menu-toggle[aria-expanded="true"] .menu-label{display:none}
.menu-toggle[aria-expanded="true"]{display:grid;width:42px;height:42px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(255,255,255,.03);color:#fff;transition:background .2s,border-color .2s,transform .2s}
.menu-toggle[aria-expanded="true"] .menu-close{display:block;font-size:24px;font-weight:300;letter-spacing:0;line-height:1;text-transform:none}
.menu-toggle[aria-expanded="true"]:hover{border-color:#fff;background:rgba(255,255,255,.09)}
.language-switcher{--language-trigger-height:38px;position:relative;z-index:3;margin-left:auto;margin-right:24px;color:inherit;pointer-events:auto}
.language-toggle{position:relative;z-index:2;display:grid;min-height:var(--language-trigger-height);padding:8px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:14px;font-weight:300;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;place-items:center;transition:opacity .2s ease}
.language-toggle:hover,.language-toggle:focus-visible{opacity:.58}
.language-toggle:focus-visible{outline:0}
.language-menu{position:absolute;z-index:1;top:0;right:0;display:flex;width:74px;overflow:hidden;flex-direction:column;padding:5px;border:1px solid rgba(17,17,19,.16);border-radius:26px;background:rgba(255,255,255,.97);color:#111113;box-shadow:0 10px 28px rgba(0,0,0,.14);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.language-menu[hidden]{display:none}
.language-menu button{display:block;width:100%;padding:7px 9px;border:0;background:transparent;color:rgba(17,17,19,.62);font:inherit;font-size:11px;font-weight:300;letter-spacing:.06em;text-align:center;cursor:pointer;transition:color .18s ease,opacity .18s ease}
.language-menu button:hover,.language-menu button:focus-visible{background:transparent;color:#111113}
.language-menu button.is-active{display:block;background:transparent;color:#111113;font-weight:500}
.language-toggle[aria-expanded="true"]{visibility:hidden}
.portfolio-header:not(.is-past-hero) .language-switcher{--language-trigger-height:32px}
.portfolio-header:not(.is-past-hero) .language-toggle{width:74px;padding:0;border:1px solid rgba(17,17,19,.16);border-radius:999px;background:rgba(255,255,255,.97);color:#111113;font-size:11px;box-shadow:0 10px 28px rgba(0,0,0,.14);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.portfolio-header:not(.is-past-hero) .language-toggle:hover,.portfolio-header:not(.is-past-hero) .language-toggle:focus-visible,.portfolio-header:not(.is-past-hero) .language-toggle[aria-expanded="true"]{opacity:1}
.portfolio-header:not(.is-past-hero) .language-toggle:focus-visible{outline:0}
.portfolio-header:not(.is-past-hero) .language-menu{width:74px}
.translation-notice{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:20px}
.translation-notice[hidden]{display:none}
.translation-notice-backdrop{position:absolute;inset:0;background:rgba(38,40,44,.34);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.translation-notice-dialog{position:relative;width:min(690px,100%);padding:52px;border:1px solid rgba(255,255,255,.9);border-radius:32px;background:rgba(248,249,250,.98);box-shadow:0 32px 90px rgba(26,29,35,.2)}
.translation-notice-dialog h2{margin:0 0 22px;font-size:clamp(34px,4vw,54px);font-weight:600;letter-spacing:-.045em;line-height:1.08}
.translation-notice-dialog p{margin:0;color:#5f6268;font-size:clamp(17px,1.65vw,23px);line-height:1.55}
.translation-notice-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:38px}
.translation-notice-actions button{min-width:145px;min-height:54px;padding:0 26px;border:1px solid #d4d6da;border-radius:999px;background:#fff;color:#55585e;cursor:pointer;font:inherit;font-size:17px;font-weight:600}
.translation-notice-actions [data-translation-proceed]{border-color:#1265e5;background:#1265e5;color:#fff}
.translation-notice-actions button:focus-visible{outline:3px solid #1265e5;outline-offset:4px}
body.translation-notice-open{overflow:hidden}
@media (max-width:540px){.translation-notice-dialog{padding:34px 25px}.translation-notice-actions{align-items:stretch;flex-direction:column-reverse}.translation-notice-actions button{width:100%}}
.dark-section{background:var(--ink);color:#fff}
.hero{position:relative;left:50%;display:flex;width:100vw;max-width:none;min-height:100svh;overflow:hidden;margin:0 0 0 -50vw;border:0;border-radius:0;align-items:flex-end;padding:clamp(130px,18vh,220px) var(--pad) clamp(48px,8vh,90px)}
.hero-brand{position:fixed;z-index:2;top:64px;left:var(--pad);display:flex;height:32px;align-items:center;color:#fff;text-shadow:none;transition:opacity .65s cubic-bezier(.22,.7,.2,1)}
.hero-media{position:absolute;inset:-2px;background:#111113;pointer-events:none;user-select:none;-webkit-user-select:none}
.hero-shade{position:absolute;inset:0}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 42%;filter:none;-webkit-user-drag:none}
.hero-slide{opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);will-change:opacity}
.hero-slide.is-active{opacity:1}
.hero-shade{pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.64) 0%,rgba(0,0,0,.18) 54%,transparent 82%),linear-gradient(0deg,rgba(0,0,0,.42),transparent 52%)}
.hero-copy{position:relative;z-index:1;width:min(1100px,90vw)}
.eyebrow,.section-label,.project-number,.contact-kicker{font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.eyebrow{margin:0 0 26px}
.hero h1,.section-heading h2,.page-hero h1{margin:0;font-size:clamp(58px,9.2vw,152px);font-weight:300;letter-spacing:-.065em;line-height:.79}
.hero h1 em,.section-heading h2 em,.page-hero h1 em{font-family:SFNCNE,FuturaNCNE,sans-serif;font-size:.86em;font-weight:900}
.hero h1 em{letter-spacing:-.035em}
.hero-intro{width:min(530px,84vw);margin:36px 0 0;font-size:clamp(19px,1.7vw,27px);line-height:1.35}
.hero-index{position:absolute;right:var(--pad);bottom:55px;z-index:1;font-size:11px;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl}
.portfolio-hero{min-height:100vh;min-height:100dvh;background:#111113}
.portfolio-hero h1{max-width:900px;font-size:clamp(58px,7.4vw,118px);line-height:.84}
.portfolio-hero .hero-intro{margin-top:28px;font-size:clamp(16px,1.3vw,20px);letter-spacing:.02em}
.portfolio-hero .hero-copy{display:flex;width:calc(100vw - (var(--pad) * 2));max-width:none;align-items:baseline;justify-content:flex-end}
.portfolio-hero .hero-meta{position:static;display:block;width:auto;margin:0}
.portfolio-hero .hero-credits{min-width:0;white-space:nowrap}
.hero-meta{display:flex;justify-content:space-between;gap:40px;width:100%;margin:28px 0 0;font-size:clamp(16px,1.3vw,20px);letter-spacing:.02em;line-height:1.35}
.hero-meta p{margin:0}
.hero-credits{position:relative;display:grid;min-width:280px;text-align:right}
.hero-credit{grid-area:1/1;opacity:0;transition:opacity .75s ease;pointer-events:none}
.hero-credit.is-active{opacity:1}
.language-rtl .site-header,.language-rtl .hero,.language-rtl .section-pad,.language-rtl .contact-section,.language-rtl .site-footer,.language-rtl .page-hero,.language-rtl .gallery,.language-rtl .legal-page,.language-rtl .contact-page{direction:ltr}
.language-rtl main :is(p,h1,h2,h3,address,label),.language-rtl .site-nav a,.language-rtl .footer-links{direction:rtl;text-align:left}
.language-rtl input,.language-rtl textarea{direction:rtl;text-align:right}
.section-pad{padding:clamp(90px,12vw,190px) var(--pad)}
.section-label{display:flex;gap:18px;align-items:center;margin-bottom:clamp(55px,8vw,120px)}
.section-label span{color:var(--muted)}
.work>.section-label{font-size:13.8px}
.intro{display:grid;grid-template-columns:minmax(180px,.7fr) 1.25fr;column-gap:5vw}
.intro>.section-label{grid-row:1 / span 2;align-self:start}
.intro-copy h2{margin:0 0 44px;font-size:clamp(46px,6.7vw,108px);font-weight:300;letter-spacing:-.055em;line-height:.9}
.intro-copy>p{width:min(670px,100%);margin:0;font-size:clamp(20px,2vw,31px);line-height:1.4}
.portfolio-intro{min-height:92vh;align-content:start}
.portfolio-intro .intro-copy h2{font-size:clamp(48px,6.2vw,98px)}
.portfolio-intro .intro-copy>p{max-width:560px;font-size:clamp(18px,1.7vw,25px)}
.overview{padding-top:clamp(150px,15vw,240px);padding-bottom:clamp(100px,11vw,170px)}
.overview .intro-copy h2{max-width:1050px;margin-bottom:0;font-size:clamp(44px,5.4vw,84px);line-height:.94}
.overview .services-grid{margin-top:clamp(60px,7vw,100px)}
.overview .services-grid article{scroll-margin-top:100px}
.intro-index{grid-column:2;display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center;margin-top:clamp(100px,14vw,210px);padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.intro-index b{font-size:20px;font-weight:300;transition:transform .2s ease}
.intro-index:hover b{transform:translateY(4px)}
.services-grid{grid-column:2;display:grid;grid-template-columns:1fr 1fr;margin-top:90px;border-top:1px solid var(--line)}
.services-grid article{min-height:230px;padding:24px 30px 30px 0;border-bottom:1px solid var(--line)}
.services-grid article:nth-child(odd){border-right:1px solid var(--line)}
.services-grid article:nth-child(even){padding-left:30px}
.services-grid span{color:var(--muted);font-size:11px}
.services-grid h3{margin:35px 0 12px;font-size:25px;font-weight:300}
.services-grid p{max-width:320px;margin:0;color:#5f5f5a;font-size:16px}
.work{padding-top:clamp(60px,7vw,110px)}
.section-heading{display:grid;grid-template-columns:minmax(180px,.7fr) 1.25fr;column-gap:5vw;margin-bottom:clamp(80px,12vw,180px)}
.section-heading .section-label{margin:0}
.section-heading h2{font-size:clamp(58px,8.6vw,138px)}
.section-heading .projects-title{align-self:start;font-size:clamp(62px,8vw,126px);line-height:.85}
.project{margin:0 0 clamp(100px,14vw,220px)}
.project-visual,.custom-video-player{width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);background:#d8d7d2}
.project-visual>img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.project:hover .project-visual>img{transform:scale(1.015)}
.project-gallery-card{position:relative;cursor:pointer}
.project-gallery-trigger{position:relative;display:block;color:#fff;text-align:initial}
.project-gallery-card-trigger{position:absolute;z-index:2;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:var(--radius);appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.project-gallery-card-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.project-gallery-trigger>img{object-position:center bottom}
.dan-carter-gallery-card .project-gallery-trigger>img{object-position:center center}
.architecture-project-visual{display:block;aspect-ratio:1920/1197}
.split-visual{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.split-visual img{width:100%;height:100%;object-fit:cover;min-width:0}
.split-visual.landscape{aspect-ratio:1.75/1}
.project-copy{display:grid;grid-template-columns:1fr 1.1fr 1.4fr;gap:28px;padding-top:25px;border-top:1px solid var(--line);margin-top:24px}
.project-copy p{margin:0}
.project-copy h3{margin:0;font-size:clamp(29px,3.3vw,56px);font-weight:300;letter-spacing:-.04em;line-height:.98}
.project-copy>p:last-child{max-width:520px;color:#53534e;font-size:16px;line-height:1.5}
.project-credit-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.application-link{display:inline-flex;align-items:baseline;gap:.2em;text-decoration:none}
.application-link span{font-size:.68em;line-height:1;transition:transform .2s ease}
.application-link:hover span{transform:translate(3px,-3px)}
.project-number{color:#777771!important;font-size:11px!important}
.project-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,50px)}
.project.compact .project-visual,.project.compact .custom-video-player{aspect-ratio:1.28/1}
.project.compact .project-copy{display:block}
.project.compact .project-copy h3{margin:18px 0 20px;font-size:clamp(27px,2.4vw,40px);line-height:1.02}
.project.compact .project-copy>p:last-child{max-width:90%}
.featured-video-pair .project{min-width:0}
.architecture-teaser{display:grid;grid-template-columns:1.4fr 1fr;aspect-ratio:1.44/1;overflow:hidden;margin-bottom:30px;border-radius:var(--radius);background:#d2d1cc;color:var(--ink)}
.architecture-images{display:grid;min-width:0;min-height:0;grid-template-columns:1fr;overflow:hidden}
.architecture-images img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover}
.architecture-images img:not(:first-child){display:none}
.architecture-copy{display:flex;flex-direction:column;padding:clamp(34px,5vw,80px)}
.architecture-copy .project-number{color:rgba(17,17,19,.55)!important}
.architecture-copy h3{margin:auto 0 25px;font-size:clamp(45px,5.7vw,92px);font-weight:300;letter-spacing:-.05em}
.architecture-copy>p:not(.project-number){color:var(--ink);font-size:18px}
.architecture-copy>span{display:flex;margin-top:45px;padding-top:20px;border-top:1px solid rgba(17,17,19,.25);justify-content:space-between;font-size:14px;text-transform:uppercase}
.architecture-copy b{font-size:23px;font-weight:300;transition:transform .2s}
.architecture-teaser:hover .architecture-copy b{transform:translate(5px,-5px)}
.nav-anchor{display:block;scroll-margin-top:80px}
.contact-section{padding:clamp(90px,12vw,180px) var(--pad)}
.contact-section .section-label{color:#fff}
.contact-grid{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(40px,5vw,75px);background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2)}
.contact-grid.single-contact{grid-template-columns:1fr}
.contact-card{min-height:330px;padding:clamp(28px,3vw,50px);background:var(--ink)}
.contact-card h3{margin:80px 0 8px;font-size:30px;font-weight:300}
.contact-card>p:not(.contact-kicker){max-width:440px;color:#aaa;font-size:15px}
.contact-card>a:not(.contact-email){display:flex;margin-top:40px;padding-top:14px;border-top:1px solid rgba(255,255,255,.25);justify-content:space-between;font-size:13px;text-transform:uppercase}
.contact-email{display:flex;width:100%;margin:72px 0 25px;padding:0;align-items:center;justify-content:space-between;border:0;border-radius:0;appearance:none;-webkit-appearance:none;background:none;color:inherit;font-size:clamp(34px,4.5vw,70px);font-weight:300;letter-spacing:-.04em;text-align:left;cursor:pointer}
.contact-email span{display:inline-block;font-size:28px;transition:transform .2s ease}
.contact-card>a:not(.contact-email) span{display:inline-block;transition:transform .2s ease}
.contact-email:hover span,.contact-email:focus-visible span,.contact-card>a:not(.contact-email):hover span,.contact-card>a:not(.contact-email):focus-visible span{transform:translate(5px,-5px)}
.site-footer{display:grid;min-height:220px;grid-template-columns:1fr auto;align-items:end;padding:60px var(--pad) 48px;border-top:1px solid rgba(255,255,255,.18)}
.footer-primary{align-self:end}
.site-footer p{margin:0;color:#aaa;font-size:14px}
.footer-links{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:0;text-align:left;font-size:14px}
.footer-links button{width:max-content;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.copyright{align-self:end;margin:0!important;text-align:right;font-size:11px!important;text-transform:uppercase;letter-spacing:.08em}
.custom-video-player{--video-control-active:#3f4145;position:relative;color:#23252a}
.custom-video-player video{width:100%;height:100%;object-fit:cover}
.custom-video-player video::cue{background:rgba(17,17,19,.78);color:#fff;font-family:inherit;font-size:clamp(13px,1.15vw,18px);line-height:1.35}
.linkedin-video-player video{object-position:40% center}
.custom-video-player video::-webkit-media-controls{display:none!important}
.video-poster-play{position:absolute;z-index:2;bottom:clamp(16px,1.8vw,28px);left:clamp(16px,1.8vw,28px);display:grid;width:34px;height:34px;padding:0;place-items:center;border:0;background:transparent;color:#fff;font-size:0;cursor:pointer;filter:drop-shadow(0 2px 5px rgba(0,0,0,.48));transform:none;transition:opacity .2s,transform .2s}
.video-poster-play::before{width:0;height:0;margin-left:2px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor;content:""}
.video-poster-play:hover{transform:scale(1.12)}
.custom-video-player[data-playing="true"] .video-poster-play{pointer-events:none;opacity:0;transform:scale(.82)}
.application-project .video-poster-play{left:50%;transform:translateX(-50%)}
.application-project .video-poster-play:hover{transform:translateX(-50%) scale(1.12)}
.application-project .custom-video-player[data-playing="true"] .video-poster-play{transform:translateX(-50%) scale(.82)}
.frosted-video-controls{position:absolute;right:clamp(8px,1.35vw,18px);bottom:clamp(8px,1.35vw,18px);left:clamp(8px,1.35vw,18px);display:flex;gap:clamp(5px,.8vw,12px);align-items:center;min-height:clamp(40px,4.2vw,50px);padding:5px clamp(7px,1.1vw,14px);border:1px solid rgba(255,255,255,.76);border-radius:999px;background:rgba(255,255,255,.6);box-shadow:0 8px 28px rgba(25,29,38,.12);backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);transition:opacity .24s,transform .24s}
.custom-video-player[data-playing="true"][data-controls-hidden="true"] .frosted-video-controls,.custom-video-player:not([data-playing="true"]) .frosted-video-controls{pointer-events:none;opacity:0;transform:translateY(8px)}
.custom-video-player[data-scrubbing="true"] .frosted-video-controls{pointer-events:auto;opacity:1;transform:translateY(0)}
.custom-video-player[data-scrubbing="true"] .video-poster-play{pointer-events:none;opacity:0}
.video-icon-button{display:inline-grid;flex:0 0 auto;width:30px;height:30px;padding:0;place-items:center;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:12px}
.video-icon-button:hover{background:rgba(35,37,42,.08)}
.video-progress{--video-progress:0%;flex:1 1 auto;min-width:40px;height:3px;margin:0;border:0;border-radius:999px;appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--video-control-active) 0 var(--video-progress),rgba(35,37,42,.2) var(--video-progress) 100%);cursor:pointer}
.video-progress::-webkit-slider-thumb{width:11px;height:11px;border:0;border-radius:50%;appearance:none;-webkit-appearance:none;background:var(--video-control-active)}
.video-progress::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:var(--video-control-active)}
@media (max-width:1024px){
  .video-progress{height:40px;background-position:center;background-repeat:no-repeat;background-size:100% 4px;touch-action:none}
}
.video-time{flex:0 0 auto;color:#5f6268;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.custom-video-player :focus-visible{outline-color:var(--video-control-active)}
.gallery-lightbox{position:fixed;z-index:300;inset:0;display:block;overflow:hidden;background:var(--paper);color:var(--ink);opacity:0;transition:opacity .32s ease}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox.is-open{opacity:1}
.gallery-lightbox-dialog{position:relative;width:100%;height:100dvh;min-height:100%;padding:clamp(18px,2.4vw,38px)}
.gallery-lightbox-bar{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto auto;gap:clamp(18px,2vw,32px);align-items:center}
.gallery-lightbox-bar p{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.gallery-lightbox-count{color:rgba(17,17,19,.55);font-variant-numeric:tabular-nums}
.gallery-lightbox-close,.gallery-lightbox-nav{display:grid;padding:0;place-items:center;border:1px solid rgba(17,17,19,.28);border-radius:50%;background:rgba(17,17,19,.03);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.gallery-lightbox-close{width:42px;height:42px;font-size:24px;font-weight:300;line-height:1}
.gallery-lightbox-close:hover,.gallery-lightbox-nav:hover{border-color:var(--ink);background:rgba(17,17,19,.09)}
.gallery-lightbox-stage{position:absolute;z-index:1;inset:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);margin:0;padding:clamp(74px,7vw,110px) clamp(82px,8vw,150px) clamp(38px,4vw,65px);place-items:center;cursor:default}
.gallery-lightbox-image{display:block;min-width:0;min-height:0;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 22px 70px rgba(17,17,19,.14);opacity:1;transform:none;transition:opacity .28s ease,transform .42s cubic-bezier(.2,.8,.2,1);user-select:none;-webkit-user-select:none;-webkit-user-drag:none;cursor:default}
.gallery-lightbox-image.is-changing{opacity:0;transform:scale(.992)}
.gallery-lightbox-nav{position:absolute;z-index:2;top:50%;width:48px;height:48px;font-size:18px;transform:translateY(-50%)}
.gallery-lightbox-nav svg{display:block;width:17px;height:17px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.gallery-lightbox-nav:hover{transform:translateY(-50%) scale(1.04)}
.gallery-lightbox-prev{left:clamp(18px,2.4vw,38px)}
.gallery-lightbox-next{right:clamp(18px,2.4vw,38px)}
body.gallery-open{overflow:hidden}
.contact-modal{position:fixed;z-index:200;inset:0;display:grid;padding:20px;place-items:center}
.contact-modal[hidden]{display:none}
.contact-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(14,14,15,.48);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:default}
.contact-dialog{position:relative;z-index:1;width:min(570px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:clamp(30px,4vw,48px);border:1px solid rgba(255,255,255,.88);border-radius:24px;background:rgba(244,243,239,.97);box-shadow:0 32px 90px rgba(0,0,0,.3);color:var(--ink)}
.contact-dialog>.eyebrow{margin:0 0 18px;color:#767771}
.contact-dialog h2{margin:0 0 34px;font-size:clamp(42px,5vw,62px);font-weight:300;letter-spacing:-.055em;line-height:.92}
.contact-dialog h2 span{display:block}.contact-dialog h2 span:last-child{font-family:SFNCNE,FuturaNCNE,sans-serif;font-weight:900}
.contact-close{position:absolute;top:18px;right:18px;display:grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid #d0d0cc;border-radius:50%;background:#fff;color:#555;font-size:22px;line-height:1;cursor:pointer}
.contact-dialog form,.contact-dialog label{display:grid;gap:8px}.contact-dialog form{gap:17px}.contact-dialog label{color:#62635f;font-size:11px;letter-spacing:.09em;text-transform:uppercase}
.contact-dialog input,.contact-dialog textarea{width:100%;padding:13px 14px;border:1px solid #d0d0cc;border-radius:11px;outline:none;background:#fff;color:#18191c;font:inherit;font-size:15px;resize:vertical}
.contact-dialog input:focus,.contact-dialog textarea:focus{border-color:#777;box-shadow:0 0 0 3px rgba(30,30,30,.08)}
.contact-honeypot{position:absolute!important;left:-10000px!important}
.contact-submit-row{display:flex;gap:18px;align-items:center;min-height:48px}.contact-submit{padding:13px 20px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font:inherit;font-size:13px;cursor:pointer}.contact-submit:disabled{cursor:wait;opacity:.55}.contact-status{margin:0;color:#60615d;font-size:12px}.contact-alternative{margin:22px 0 0;color:#777872;font-size:12px}.contact-alternative a{text-decoration:underline;text-underline-offset:3px}body.contact-open{overflow:hidden}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-slide,.hero-credit{transition:none}.project-visual>img{transition:none}}
@media (min-width:901px){
  :root{--content-max:1280px;--pad:max(clamp(124px,12.4vw,248px),calc((100vw - var(--content-max))/2))}
  .hero-brand,.portfolio-header:not(.is-past-hero) .language-switcher{top:84px}
  .work>.section-label{margin-bottom:clamp(22px,3.2vw,48px)}
  .project:not(.compact) .project-copy{grid-template-columns:.5fr 1.5fr 1.5fr}
  .project:not(.compact) .project-copy h3{font-size:clamp(24px,2.3vw,42px);white-space:nowrap}
}
@media (max-width:900px){
  .intro,.section-heading{grid-template-columns:1fr}.intro>.section-label{grid-row:auto}.intro-copy,.services-grid,.intro-index{grid-column:1}.section-heading .section-label,.intro>.section-label{margin-bottom:55px}
  .section-heading h2{margin-left:14vw}.services-grid{margin-top:65px}
  .project-copy{grid-template-columns:.55fr 1fr}.project-copy>p:last-child{grid-column:2;margin-top:5px}
  .architecture-teaser{grid-template-columns:1fr;aspect-ratio:auto}.architecture-images{min-height:auto;aspect-ratio:1.5/1}.architecture-copy{min-height:410px}
  .contact-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  :root{--pad:24px;--radius:16px}body{font-size:16px}
  .hero-brand,.portfolio-header:not(.is-past-hero) .language-switcher{top:calc(64px + env(safe-area-inset-top,0px))}
  .site-header{min-height:68px;padding-top:16px;padding-bottom:16px}
  .language-switcher{margin-right:15px}.language-toggle{font-size:11px}.language-menu{width:68px}.portfolio-header:not(.is-past-hero) .language-toggle,.portfolio-header:not(.is-past-hero) .language-menu{right:0;width:68px}
  .menu-toggle span{font-size:11px;letter-spacing:.1em}.site-nav{padding:100px 20px 40px}.site-nav-links{gap:7px}.site-nav a{font-size:clamp(27px,8vw,36px);line-height:1}.bored-button{max-width:92px;font-size:10px;text-align:right}.menu-game-stage{top:78px;right:8px;bottom:8px;left:8px;border-radius:16px}
  .hero{min-height:850px;padding-bottom:73px}.hero h1{font-size:clamp(55px,18vw,78px);line-height:.84}.portfolio-hero h1{font-size:clamp(54px,15vw,70px)}.hero-intro{font-size:18px}.hero-meta{display:grid;gap:6px;font-size:16px}.hero-index{display:none}
  .hero-slide{transition:none;will-change:auto}.hero-slide[data-mobile-crop="tenko"]{object-position:100% 42%;transform:translateX(-20px) scale(1.1);transform-origin:center}.hero-slide[data-mobile-hidden]{display:none}.portfolio-hero .hero-copy{transform:translateY(-60px)}
  .section-pad{padding-top:90px;padding-bottom:90px}.section-label{margin-bottom:50px}.intro-copy h2{font-size:48px}.intro-copy>p{font-size:20px}.portfolio-intro{min-height:720px}.overview{padding-top:130px;padding-bottom:100px}.overview .intro-copy h2{font-size:44px}.intro-index{margin-top:110px}.services-grid{grid-template-columns:1fr}.services-grid article:nth-child(odd){border-right:0}.services-grid article:nth-child(even){padding-left:0}.services-grid article{min-height:auto;padding:20px 0 25px}.services-grid h3{margin:25px 0 8px}
  .section-heading{margin-bottom:80px}.section-heading h2{margin-left:0;font-size:54px}.project,.project.compact{margin-bottom:90px}.project-row{display:block}
  .project-visual,.custom-video-player,.project.compact .project-visual,.project.compact .custom-video-player{aspect-ratio:4/3}.split-visual{grid-template-columns:1fr;aspect-ratio:4/3}.split-visual img:last-child{display:none}.split-visual.landscape{aspect-ratio:4/3}
  .gallery-lightbox-dialog{padding:16px}.gallery-lightbox-bar{gap:14px}.gallery-lightbox-stage{padding:72px 14px 92px}.gallery-lightbox-nav{top:auto;bottom:22px;width:46px;height:46px;transform:none}.gallery-lightbox-nav:hover{transform:scale(1.04)}.gallery-lightbox-prev{left:calc(50% - 58px)}.gallery-lightbox-next{right:calc(50% - 58px)}
  .project-copy{display:block;margin-top:15px;padding-top:17px}.project-copy h3,.project.compact .project-copy h3{margin:14px 0 16px;font-size:34px}.project-copy>p:last-child,.project.compact .project-copy>p:last-child{max-width:100%;font-size:15px}
  .architecture-images{grid-template-columns:1fr;aspect-ratio:4/3}.architecture-copy{min-height:360px;padding:28px}.architecture-copy h3{font-size:48px}.architecture-copy>p:not(.project-number){font-size:16px}
  .video-time{display:none}.frosted-video-controls{gap:2px}.video-icon-button{width:28px;height:28px}
  .application-link span{font-size:.578em}.contact-email span{font-size:23.8px}
  .contact-section{padding-top:90px;padding-bottom:90px}.contact-grid{grid-template-columns:1fr;margin-top:40px}.contact-card{min-height:270px}.contact-email{margin-top:55px;font-size:28px}.contact-dialog{max-height:calc(100dvh - 24px);padding:28px 20px;border-radius:18px}.contact-dialog h2{font-size:42px}.contact-submit-row{display:grid}.contact-submit{width:max-content}
  .site-footer{min-height:230px;padding-top:45px}.copyright{padding-top:0}
}

/* Secondary pages */
.page-body{background:var(--paper)}
.page-hero{position:relative;padding:clamp(150px,20vw,270px) var(--pad) 80px;background:var(--ink);color:#fff}
.page-hero .section-label{margin-bottom:55px}.page-hero h1{max-width:1250px}.page-hero>p:last-child{max-width:590px;margin:40px 0 0 auto;font-size:clamp(18px,1.8vw,27px)}
.gallery{padding:var(--pad)}
.gallery-story{margin:0 0 clamp(100px,13vw,190px)}
.gallery-story header{display:grid;grid-template-columns:.65fr 1fr;gap:6vw;margin:0 0 35px}
.gallery-story h2{margin:0;font-size:clamp(43px,6.5vw,96px);font-weight:300;letter-spacing:-.055em;line-height:.9}
.gallery-story .story-meta{align-self:end}.gallery-story .story-meta p{max-width:580px;margin:15px 0 0;color:#555;font-size:16px}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1vw,18px)}
.gallery-grid img{width:100%;height:100%;max-height:1000px;object-fit:cover;border-radius:var(--radius)}
.gallery-grid .wide{grid-column:1/-1;max-height:none;aspect-ratio:1.7/1}
.architecture-page .site-header{--header-bg:#f1f0eb;--header-color:#111113}
.architecture-gallery{padding:clamp(145px,14vw,210px) var(--pad) clamp(90px,10vw,150px)}
.architecture-story{margin:0 0 clamp(130px,15vw,230px)}
.architecture-story:last-child{margin-bottom:0}
.architecture-story-header{display:grid;grid-template-columns:.42fr 1fr;gap:18px 6vw;align-items:end;margin-bottom:clamp(45px,6vw,90px);padding-top:24px;border-top:1px solid var(--line)}
.architecture-story-header>.project-number{grid-column:1/-1;margin:0;color:var(--muted)}
.architecture-story-kicker{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:30px}
.architecture-story-kicker p{margin:0}
.architecture-credit{color:var(--muted);font-size:14px;letter-spacing:0;text-transform:none}
.architecture-story-header h1,.architecture-story-header h2{margin:0;font-size:clamp(48px,7vw,108px);font-weight:300;letter-spacing:-.06em;line-height:.88}
.architecture-story-meta{align-self:end;max-width:620px;padding-bottom:5px}
.architecture-story-meta p{margin:0;color:#555;font-size:clamp(16px,1.4vw,21px);line-height:1.45}
.architecture-story-meta .project-number{margin-bottom:18px;color:var(--muted);font-size:12px}
.architecture-photo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(5px,.7vw,12px)}
.architecture-photo-grid--residences{margin-top:clamp(5px,.55vw,9px)}
.architecture-photo{grid-column:span 6;margin:0;overflow:hidden;background:#deddd7}
.architecture-photo img{width:100%;height:100%;object-fit:cover;border:0;border-radius:0}
.architecture-photo--wide{grid-column:1/-1;aspect-ratio:1.7/1}
.architecture-photo--feature{grid-column:1/-1}
.architecture-photo--feature img{display:block;height:auto;object-fit:contain}
.architecture-photo--half{aspect-ratio:1.15/1}
.architecture-photo--three-two{aspect-ratio:3/2}
.architecture-photo--museum-courtyard img{transform:scale(1.014);transform-origin:center top}
.architecture-photo--portrait{grid-column:span 5;aspect-ratio:.76/1}
.architecture-photo--landscape{grid-column:span 7;aspect-ratio:1.35/1}
.architecture-instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(5px,.55vw,9px);margin-top:clamp(40px,5vw,75px)}
.architecture-instagram-grid--opening{margin-top:0}
.architecture-instagram-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.architecture-instagram-grid figure{margin:0;aspect-ratio:1;overflow:hidden;background:#deddd7}
.architecture-instagram-grid img{width:100%;height:100%;object-fit:cover;border:0;border-radius:0}
.architecture-masonry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(5px,.55vw,9px);align-items:start}
.architecture-masonry-column{display:grid;gap:clamp(5px,.55vw,9px);align-content:start}
.architecture-masonry-grid figure{margin:0;overflow:hidden;background:#deddd7}
.architecture-masonry-grid img{display:block;width:100%;height:auto;border:0;border-radius:0}
.architecture-masonry-baseline-correction img{transform:scaleY(1.0007);transform-origin:top}
.architecture-footer{grid-template-columns:1fr;justify-items:center;border-top-color:rgba(17,17,19,.18);background:var(--paper);color:var(--ink)}
.architecture-footer .copyright{color:#555;text-align:center}
.contact-page{min-height:100svh;padding:clamp(150px,18vw,240px) var(--pad) 70px;background:var(--ink);color:#fff}
.contact-page h1{margin:0;font-size:clamp(58px,11vw,170px);font-weight:300;letter-spacing:-.07em;line-height:.8}.contact-page h1 em{font-family:SFNCNE;font-weight:900}
.contact-directory{display:grid;grid-template-columns:1.4fr 1fr;gap:1px;margin-top:100px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2)}
.contact-detail{min-height:460px;padding:clamp(28px,4vw,65px);background:var(--ink)}
.contact-detail h2{margin:95px 0 8px;font-size:clamp(35px,5vw,70px);font-weight:300;letter-spacing:-.04em}.contact-detail>p{color:#aaa}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}.pill-link{padding:13px 20px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:13px;transition:background .2s,color .2s}.pill-link:hover{background:#fff;color:#111}.contact-aside{display:flex;flex-direction:column;justify-content:space-between}.contact-aside address{color:#aaa;font-style:normal;font-size:15px;line-height:1.6}
.legal-page{padding:clamp(150px,18vw,240px) var(--pad) 120px}.legal-page h1{margin:0 0 90px;font-size:clamp(55px,9vw,135px);font-weight:300;letter-spacing:-.06em}.legal-grid{display:grid;grid-template-columns:.55fr 1.45fr;gap:6vw}.legal-toc{position:sticky;top:100px;align-self:start;font-size:13px}.legal-copy section{padding:0 0 55px;margin:0 0 55px;border-bottom:1px solid var(--line)}.legal-copy h2{margin:0 0 25px;font-size:32px;font-weight:300}.legal-copy h3{margin:28px 0 10px;font-size:19px;font-weight:300}.legal-copy p,.legal-copy li{color:#4d4d49;font-size:16px;line-height:1.65}
@media(max-width:680px){.page-hero{padding-top:145px}.page-hero h1{font-size:58px}.page-hero>p:last-child{margin-left:0}.gallery{padding-top:70px}.gallery-story header{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-grid .wide{grid-column:auto;aspect-ratio:auto}.gallery-grid img{max-height:none}.architecture-gallery{padding-top:118px}.architecture-story-header{grid-template-columns:1fr}.architecture-story-header>.project-number{grid-column:auto}.architecture-story-kicker{align-items:flex-end}.architecture-credit{max-width:52%;font-size:12px;text-align:right}.architecture-story-header h1,.architecture-story-header h2{font-size:clamp(47px,13vw,68px)}.architecture-story-meta{margin-top:12px}.architecture-photo{grid-column:1/-1;aspect-ratio:auto}.architecture-photo img{height:auto;object-fit:contain}.architecture-instagram-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-masonry-grid{grid-template-columns:1fr}.architecture-masonry-column{display:contents}.architecture-masonry-grid figure{order:var(--masonry-order)}.contact-page h1{font-size:61px}.contact-directory{grid-template-columns:1fr;margin-top:70px}.contact-detail{min-height:360px}.contact-detail h2{margin-top:65px}.legal-grid{grid-template-columns:1fr}.legal-toc{position:static}.legal-page h1{margin-bottom:50px}}
