@font-face{font-family:Portfolio;src:url('/assets/vendor/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#1c1d20;--paper:#fff;--blue:#455ce9;--grey:#999d9d;--line:rgba(28,29,32,.2);--muted:#737478;--ease:cubic-bezier(.25,1,.5,1)}
*{box-sizing:border-box}html{font-size:16px;scrollbar-color:#77787b #e9eaeb}body{margin:0;background:var(--paper);color:var(--ink);font-family:Portfolio,Arial,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--blue);color:white}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:7px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;line-height:1.12;letter-spacing:-.035em}svg{display:block;width:28px;height:28px;flex-shrink:0}button{border:0;background:none;padding:0}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;left:20px;top:-100px;padding:12px 20px;background:white;color:var(--ink);z-index:200}.skip-link:focus{top:20px}.site-header{position:absolute;top:0;left:0;width:100%;height:100px;padding:0 3.1%;display:flex;align-items:center;justify-content:space-between;z-index:10;font-size:15px}.page-home .site-header,.page-contact .site-header{color:white}.wordmark{display:flex;align-items:center;gap:5px;height:44px}.copyright{font-size:18px;display:inline-block;transition:transform .6s var(--ease)}.wordmark:hover .copyright{transform:rotate(360deg)}.wordmark-clip{overflow:hidden}.wordmark-text{display:block}.site-header nav{display:flex;gap:38px}.site-header nav a{display:flex;align-items:center;height:50px;position:relative}.site-header nav a:after{content:'';position:absolute;width:5px;height:5px;border-radius:100%;background:currentColor;bottom:0;left:calc(50% - 2.5px);transform:scale(0);transition:transform .3s}.site-header nav a:hover:after,.site-header nav a[aria-current=page]:after{transform:scale(1)}.mobile-menu{display:none}.section-shell{max-width:1440px;margin:0 auto;padding-left:12.5%;padding-right:12.5%}.hero{position:relative;isolation:isolate;height:100svh;min-height:660px;background:var(--grey);color:white;overflow:hidden}.hero-portrait{position:absolute;left:50%;top:0;width:auto;height:110%;max-width:none;object-fit:contain;transform:translateX(-50%);filter:grayscale(1);mix-blend-mode:multiply;z-index:-1}.location-badge{position:absolute;left:0;top:43.5%;background:var(--ink);border-radius:0 100px 100px 0;display:flex;align-items:center;gap:24px;padding:13px 13px 13px 3.1vw;font-size:14px;line-height:1.25;min-width:220px}.location-badge>div{width:64px;height:64px;background:#999d9d;border-radius:50%;display:grid;place-items:center}.globe{width:46px;height:46px;stroke:currentColor;stroke-width:1.6;transform:rotate(-15deg)}.hero-role{position:absolute;left:70.6%;top:35.4%;font-size:clamp(22px,2.3vw,38px);line-height:1.4;letter-spacing:-.035em}.hero-role>svg{margin-bottom:42px}.hero-role p{white-space:nowrap}.name-marquee{position:absolute;bottom:7%;left:0;width:100%;overflow:hidden;pointer-events:none}.name-track{display:flex;width:max-content;will-change:transform;line-height:1}.name-track h1,.name-track>span{font-size:clamp(130px,16.4vw,290px);white-space:nowrap;font-weight:400;line-height:1.14;letter-spacing:-.045em}.placeholder-caption{position:absolute;bottom:24px;left:3.1%;font-size:11px;opacity:.75;letter-spacing:.03em}.intro{display:grid;grid-template-columns:2.15fr 1fr;gap:7%;padding-top:145px;padding-bottom:135px}.intro h2{font-size:clamp(28px,2.65vw,44px);line-height:1.4;letter-spacing:-.025em}.intro-aside{display:flex;flex-direction:column;gap:36px;align-items:flex-start}.intro-aside p{font-size:16px;line-height:1.7;max-width:24ch}.button{--button-color:var(--ink);--button-bg:transparent;isolation:isolate;position:relative;display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:78px;padding:0 40px;border:1px solid var(--line);border-radius:100px;overflow:hidden;color:var(--button-color);background:var(--button-bg);font-size:15px;line-height:1.4;transform:translateZ(0)}.button-label{position:relative;z-index:1;display:block;pointer-events:none;transition:color .3s}.button-fill{position:absolute;inset:-20% -2%;background:var(--blue);border-radius:50%;transform:translateY(105%);transition:transform .55s var(--ease)}.button:hover .button-fill{transform:translateY(0)}.button:hover .button-label{color:white}.button.circle{width:176px;height:176px;padding:20px;border-radius:50%;border:0;flex-shrink:0}.button.dark{--button-bg:var(--ink);--button-color:white}.button.blue{--button-bg:var(--blue);--button-color:white}.button.blue .button-fill{background:#3347c1}.button sup{font-size:11px;position:relative;top:-.5em;margin-left:6px}.section-label,.meta-label{font-size:10px;letter-spacing:.025em;text-transform:uppercase;line-height:1.5;color:var(--muted)}.section-label{padding-bottom:30px}.section-label>span{float:right;font-size:11px}.project-row{display:grid;grid-template-columns:2fr 1fr 1.3fr .3fr;gap:20px;align-items:center;padding:42px 0;border-top:1px solid var(--line);transition:color .4s;position:relative}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row:hover{color:#929395}.project-name{transition:transform .45s var(--ease)}.project-row:hover .project-name{transform:translateX(18px)}.project-name{font-size:clamp(28px,4.4vw,70px);line-height:1.2;letter-spacing:-.04em}.project-location,.project-service,.project-year{font-size:13px}.project-year{text-align:right}.home-projects .project-row{grid-template-columns:1fr auto;padding:39px 4%}.home-projects .project-row:hover{padding-left:7%;padding-right:7%}.home-projects .project-location,.home-projects .project-year{display:none}.home-projects .project-name{font-size:clamp(36px,5vw,82px)}.recent-work{padding-left:9%;padding-right:9%}.recent-work>.section-label{padding-left:4%}.more-work{display:flex;justify-content:center;padding:60px 0 100px}.image-belt{overflow:hidden;padding:20px 0 140px}.belt-track{display:flex;gap:28px;width:max-content;transform:translateX(-8%)}.belt-track>a{width:34vw;min-width:280px}.project-art{background:var(--art-bg,#d5d5d0);aspect-ratio:1.35;display:flex;align-items:center;justify-content:center;padding:10%;overflow:hidden}.mini-site{width:100%;height:100%;background:#f7f5ef;color:#272923;box-shadow:0 6px 24px #0000000e;overflow:hidden;transition:transform .7s var(--ease)}a:hover .mini-site{transform:scale(1.025)}.mini-nav{display:flex;justify-content:space-between;padding:4% 5%;font-size:7px;align-items:center}.mini-nav>span:first-child{font-size:12px;letter-spacing:-.04em}.mini-menu{margin-left:14px}.mini-body{position:relative;height:74%;min-height:100px;background:#4c4e46}.mini-body>img{height:100%;width:100%;object-fit:cover}.mini-body .mini-title{position:absolute;z-index:1;left:6%;top:10%;color:white;font-size:clamp(18px,2.8vw,48px);max-width:8ch;line-height:1.04;letter-spacing:-.045em}.mini-bottom{display:flex;justify-content:space-between;padding:3% 5%;font-size:7px}.art-forma .mini-site{background:#e9e3d9}.art-forma .mini-body{background:#cfc6b6}.art-forma .mini-body>img{width:70%;margin-left:auto}.art-forma .mini-body .mini-title{color:#30372d;top:16%;font-size:clamp(25px,3.3vw,55px);left:5%;max-width:8ch}.art-offscript .mini-site{background:#f5f2e5}.art-offscript .mini-body{background:#6f6a58}.art-offscript .mini-body .mini-title{font-size:clamp(25px,3.5vw,55px);text-transform:uppercase;max-width:10ch;top:7%;left:5%}.art-objects .mini-site{background:#252623;color:white}.art-objects .mini-body{background:#252623}.art-objects .mini-body img{object-position:center}.art-objects .mini-body .mini-title{max-width:8ch;top:auto;bottom:10%;font-size:clamp(25px,3.4vw,55px)}.footer{position:relative;background:var(--ink);color:#fff;padding-top:170px;overflow:hidden}.footer-curve{position:absolute;top:-2px;left:-5%;width:110%;height:80px;border-radius:0 0 50% 50%;background:white}.footer-inner{max-width:1440px;margin:0 auto;padding:0 12.5%}.footer-title{max-width:800px}.footer-title-line{display:flex;align-items:center;gap:24px}.footer-title-line h2{font-size:clamp(58px,7.5vw,124px);letter-spacing:-.035em;line-height:1.1}.footer-title-line>img{width:82px;height:82px;border-radius:50%;object-fit:cover;object-position:center 24%}.footer-title-line>svg{margin-left:auto;transform:rotate(-90deg);width:36px;height:36px}.footer-divider{border-top:1px solid #ffffff30;margin-top:95px;height:80px;position:relative}.footer-divider .circle{position:absolute;right:5%;top:-88px}.contact-pills{display:flex;gap:12px;margin-top:18px;padding-bottom:110px}.contact-pills .button{--button-color:white;border-color:#ffffff35;min-height:72px}.footer-bottom{display:flex;gap:40px;align-items:flex-end;padding:25px 3.1% 30px;font-size:12px}.footer-bottom>div{display:flex;flex-direction:column;gap:12px}.footer-bottom .meta-label{color:#939497;font-size:9px}.footer-bottom .footer-socials{margin-left:auto}.footer-socials>div{display:flex;gap:26px}.footer-socials a{position:relative}.footer-socials a:after{content:'';height:1px;background:currentColor;position:absolute;bottom:-4px;left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .3s}.footer-socials a:hover:after{transform:scaleX(1)}.page-heading{padding-top:210px;padding-bottom:110px}.page-heading h1{font-size:clamp(54px,6.4vw,104px);letter-spacing:-.045em;line-height:1.12}.heading-note{margin-top:35px;font-size:15px;color:var(--muted)}.work-index{padding-left:9%;padding-right:9%;padding-bottom:10px}.work-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:65px}.filters{display:flex;gap:12px}.filters .button{min-height:74px;padding:0 35px}.filters .active{--button-bg:var(--ink);--button-color:white;border-color:var(--ink)}.view-controls{display:flex;gap:12px}.view-button{width:74px;height:74px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .3s,color .3s}.view-button svg{width:20px;height:20px}.view-button.active{background:var(--ink);color:white}.table-head{display:grid;grid-template-columns:2fr 1fr 1.3fr .3fr;gap:20px;font-size:11px;text-transform:uppercase;color:var(--muted);padding-bottom:26px}.table-head>span:last-child{text-align:right}.work-index .project-name,.archive-list .project-name{font-size:clamp(28px,3.5vw,55px)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 30px}.project-card{display:block}.project-card .project-art{aspect-ratio:1.3}.card-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:25px 0 18px}.card-heading h2{font-size:30px}.card-heading>span{font-size:12px}.card-caption{display:flex;justify-content:space-between;font-size:11px;padding-top:16px}.about-story{display:grid;grid-template-columns:1fr 1.8fr;gap:15%;padding-bottom:145px}.about-copy>svg{margin-bottom:60px}.about-copy>p{font-size:20px;line-height:1.5;margin-bottom:26px}.about-copy .muted{font-size:15px;color:var(--muted)}.small-note{font-size:12px;line-height:1.7;color:var(--muted)}.about-portrait{aspect-ratio:.85;overflow:hidden;background:var(--grey)}.about-portrait img{width:100%;height:115%;object-fit:cover;object-position:50% 40%;transform:scale(1.15)}.section-title{font-size:clamp(35px,3.4vw,55px);line-height:1.2}.services{padding-bottom:145px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:65px}.service-number{font-size:11px;color:var(--muted);display:block;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:35px}.services-grid h3{font-size:30px;margin-bottom:28px}.services-grid p{font-size:15px;line-height:1.8}.experience{padding-bottom:150px}.experience-heading{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:60px;gap:30px}.experience-row{padding:35px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.experience-row:last-child{border-bottom:1px solid var(--line)}.experience-row h3{font-size:27px;margin-bottom:14px}.experience-row p,.experience-row>span{font-size:13px;color:var(--muted)}.page-contact{background:var(--ink);color:white}.contact-layout{display:grid;grid-template-columns:3fr 1fr;gap:12%;padding-top:200px;padding-bottom:90px}.contact-main h1{font-size:clamp(50px,5.8vw,92px);line-height:1.15;margin-bottom:75px}.contact-aside{padding-top:10px}.contact-aside>img{width:95px;height:95px;border-radius:50%;object-fit:cover;object-position:center 25%;margin-bottom:70px}.contact-aside>svg{transform:rotate(-90deg);margin-bottom:65px}.contact-aside>div{margin-bottom:45px;font-size:14px}.contact-aside .meta-label{margin-bottom:20px;color:#939497}.contact-aside>div>p{margin-top:7px}.contact-aside .small-note{color:#b5b5b8}.form-row{display:flex;gap:28px;border-top:1px solid #ffffff30;padding:30px 0}.form-row>span{font-size:11px;padding-top:6px;color:#939497}.form-row label{display:block;flex:1;font-size:21px;line-height:1.4}.form-row input,.form-row textarea{background:none;border:0;color:white;padding:18px 0 4px;width:100%;font-size:20px;border-radius:0;resize:vertical;outline-offset:4px;caret-color:#fff}.form-row input::placeholder,.form-row textarea::placeholder{color:#a0a0a4;opacity:1}.form-row:focus-within>span{color:#fff}.form-row.invalid{border-top-color:#f09999}.form-row.invalid input,.form-row.invalid textarea{outline:0}.form-error{display:block;color:#f1aaaa;font-size:12px;margin-top:12px}.form-submit{border-top:1px solid #ffffff30;padding-top:40px;display:flex;justify-content:space-between;align-items:center;gap:20px}.form-submit>.small-note{color:#b5b5b8;max-width:23ch}.form-feedback{padding:25px;margin-top:25px;background:#ffffff0c;border:1px solid #ffffff30;font-size:15px}.form-feedback p+p{margin-top:12px}.contact-bottom{padding-top:40px}.archive-list{padding-bottom:60px}.case-heading{padding-top:210px;padding-bottom:75px}.case-heading h1{font-size:clamp(70px,9vw,150px);margin-bottom:75px}.case-meta{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:45px}.case-meta .meta-label{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:23px}.case-meta>div>p:last-child{font-size:14px}.case-cover{padding:0 4%;margin-bottom:130px}.case-cover .project-art{aspect-ratio:1.8;padding:8% 15%}.case-cover .mini-nav{font-size:12px}.case-cover .mini-nav>span:first-child{font-size:24px}.case-cover .mini-body .mini-title{font-size:clamp(35px,5vw,90px)}.case-cover .mini-bottom{font-size:10px}.case-intro{display:grid;grid-template-columns:1fr 1fr;gap:14%;padding-bottom:130px}.case-intro h2{font-size:clamp(36px,4vw,68px)}.case-intro p{font-size:18px;line-height:1.7}.case-intro .small-note{font-size:12px;margin-top:30px}.case-images{background:var(--case-bg);padding:8%}.case-images>img{width:100%;max-height:850px;object-fit:cover;aspect-ratio:1.65}.device-pair{display:flex;align-items:center;justify-content:center;gap:5%;padding:12% 0 5%}.device-desktop{width:75%;border-radius:10px;padding:8px;background:#242524;box-shadow:0 12px 50px #00000015}.device-desktop .project-art{padding:0;background:transparent;aspect-ratio:1.5}.device-mobile{width:20%;border:7px solid #242524;border-radius:25px;overflow:hidden;aspect-ratio:.48;background:#f5f3ed;position:relative;box-shadow:0 12px 50px #00000015}.device-mobile>div{padding:17% 8%}.device-mobile span{font-size:11px}.device-mobile .mini-title{font-size:clamp(18px,2.6vw,40px);margin-top:35%;margin-bottom:20%}.device-mobile img{height:300px;object-fit:cover}.next-project{padding-top:140px;padding-bottom:140px}.next-project>a{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:40px 0}.next-project h2{font-size:clamp(55px,7vw,112px)}.next-project svg{width:60px;height:60px;transform:rotate(-90deg);transition:transform .4s var(--ease)}.next-project a:hover svg{transform:rotate(-90deg) translateY(15px)}
/* Persistent navigation and the curved transition panel live outside Barba's containers. */
.menu-toggle{position:fixed;right:3%;top:25px;width:80px;height:80px;border-radius:50%;background:var(--ink);color:white;z-index:60;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;transform:scale(0);will-change:transform;transition:background .3s}.menu-toggle:hover,.menu-toggle[aria-expanded=true]{background:var(--blue)}.menu-toggle>span{height:1px;width:25px;background:white;transition:transform .4s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.menu-backdrop{position:fixed;inset:0;background:#0006;z-index:40;opacity:0;visibility:hidden;backdrop-filter:blur(2px)}.navigation-drawer{position:fixed;right:0;top:0;height:100dvh;width:min(60%,800px);background:var(--ink);color:white;z-index:50;transform:translateX(110%);visibility:hidden}.navigation-drawer:before{content:'';position:absolute;left:-90px;top:0;width:180px;height:100%;background:var(--ink);border-radius:50%;z-index:-1}.drawer-inner{padding:15vh 16% 6vh;height:100%;display:flex;flex-direction:column}.drawer-inner>.meta-label{border-bottom:1px solid #ffffff30;padding-bottom:24px;margin-bottom:30px;color:#939497}.drawer-inner nav{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.drawer-inner nav a{font-size:clamp(42px,5.5vw,86px);letter-spacing:-.035em;line-height:1.2;position:relative}.drawer-inner nav a:before{content:'';position:absolute;left:-27px;top:50%;width:8px;height:8px;border-radius:100%;background:white;transform:translateY(-50%) scale(0);transition:transform .3s}.drawer-inner nav a:hover:before,.drawer-inner nav a[aria-current=page]:before{transform:translateY(-50%) scale(1)}.drawer-bottom{margin-top:auto;padding-top:35px}.drawer-bottom>.meta-label{color:#939497;margin-bottom:16px}.drawer-bottom>a{display:flex;align-items:center;gap:25px;font-size:14px}.drawer-bottom svg{width:18px;height:18px;transform:rotate(-90deg)}.page-curtain{position:fixed;inset:0 0 auto;height:calc(100dvh + 140px);z-index:100;background:var(--ink);color:white;border-radius:0 0 50% 50% / 0 0 140px 140px;display:flex;align-items:center;justify-content:center;will-change:transform;pointer-events:all}.curtain-label{display:flex;gap:16px;align-items:center;font-size:clamp(28px,3vw,45px);margin-top:-140px}.curtain-label i{height:8px;width:8px;border-radius:50%;background:white}.project-cursor{position:fixed;left:0;top:0;width:350px;height:260px;pointer-events:none;z-index:35;transform:translate(-50%,-50%) scale(0);display:flex;align-items:center;justify-content:center;overflow:visible;visibility:hidden}.cursor-image{position:absolute;inset:0;background:#deddda;overflow:hidden;display:grid;place-items:center}.cursor-image>img{width:100%;height:100%;object-fit:cover}.project-cursor>span{position:relative;background:var(--blue);color:white;width:90px;height:90px;border-radius:50%;display:grid;place-items:center;font-size:13px}.c-scrollbar{z-index:70}.c-scrollbar_thumb{background:#626367!important;opacity:.65!important}.page-contact .c-scrollbar_thumb{background:#a0a0a4!important}.js .page-curtain{transform:translateY(0)}html:not(.js) .page-curtain{display:none}
@media(min-width:1600px){.section-shell,.footer-inner{padding-left:150px;padding-right:150px}.hero-role{left:71%}.hero-portrait{object-position:center 43%}}
@media(max-width:1000px){.section-shell{padding-left:7%;padding-right:7%}.intro{gap:8%}.hero-role{left:68%;font-size:25px}.location-badge{min-width:190px;gap:16px}.hero-role>svg{margin-bottom:30px}.hero{min-height:650px}.name-marquee{bottom:10%}.intro{padding-top:100px;padding-bottom:100px}.button.circle{width:150px;height:150px}.project-row{grid-template-columns:1.6fr 1fr 1.2fr .3fr;gap:15px}.table-head{grid-template-columns:1.6fr 1fr 1.2fr .3fr;gap:15px}.project-location,.project-service,.project-year{font-size:11px}.footer-inner{padding:0 8%}.footer-divider .circle{top:-75px}.contact-pills{padding-bottom:70px}.footer{padding-top:140px}.page-heading{padding-top:180px;padding-bottom:85px}.filters .button{padding:0 25px;min-height:65px}.view-button{width:65px;height:65px}.work-controls{margin-bottom:50px}.about-story{gap:9%}.services-grid{gap:30px}.services-grid h3{font-size:25px}.services-grid p{font-size:14px}.contact-layout{gap:8%;grid-template-columns:3fr 1fr}.contact-main h1{font-size:55px}.contact-aside>img{width:80px;height:80px}.contact-aside>div{font-size:12px}.form-row label{font-size:18px}.form-row input,.form-row textarea{font-size:17px}.navigation-drawer{width:65%}.drawer-inner{padding-left:15%;padding-right:15%}}
@media(max-width:700px){body{font-size:15px}.site-header{height:82px;padding:0 6%;font-size:13px}.site-header nav{display:none}.mobile-menu{display:flex;align-items:center;gap:8px;font-size:13px}.menu-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.hero{height:100svh;min-height:650px;max-height:1000px}.hero-portrait{top:4%;height:96%;width:auto;object-fit:contain}.hero-role{left:6%;top:auto;bottom:26%;font-size:24px;line-height:1.35;max-width:80%}.hero-role>svg{width:24px;height:24px;margin-bottom:20px;transform:rotate(-90deg)}.location-badge{top:19%;min-width:0;font-size:11px;padding:10px 10px 10px 6%;gap:16px;max-width:49%}.location-badge>div{height:45px;width:45px;flex-shrink:0}.globe{height:33px;width:33px}.name-marquee{bottom:7.5%}.name-track h1,.name-track>span{font-size:24vw;line-height:1.18}.placeholder-caption{left:6%;bottom:18px;font-size:9px}.section-shell{padding-left:6%;padding-right:6%}.intro{display:block;padding-top:80px;padding-bottom:80px}.intro h2{font-size:28px;line-height:1.4}.intro-aside{display:grid;grid-template-columns:1fr 140px;align-items:center;gap:25px;margin-top:32px}.intro-aside p{font-size:13px;max-width:none}.button.circle{width:138px;height:138px;font-size:13px}.button{min-height:64px;padding:0 28px;font-size:13px}.section-label{font-size:11px;padding-bottom:23px}.section-label>span{font-size:11px}.home-projects .project-row{padding:27px 0;display:block}.home-projects .project-name{font-size:42px}.home-projects .project-service{display:block;margin-top:10px;font-size:11px}.home-projects .project-row:hover{padding-left:10px;padding-right:10px}.more-work{padding:40px 0 70px}.image-belt{padding-bottom:70px}.belt-track{gap:14px;transform:translateX(-12%)}.belt-track>a{width:65vw;min-width:0}.mini-body .mini-title{font-size:24px}.mini-nav{font-size:5px}.mini-nav>span:first-child{font-size:9px}.mini-menu{margin-left:5px}.mini-bottom{font-size:5px}.art-forma .mini-body .mini-title,.art-offscript .mini-body .mini-title,.art-objects .mini-body .mini-title{font-size:28px}.footer{padding-top:100px}.footer-curve{height:35px}.footer-inner{padding:0 6%}.footer-title-line{gap:15px}.footer-title-line h2{font-size:13.2vw}.footer-title-line>img{width:12vw;height:12vw}.footer-title-line>svg{width:24px;height:24px;margin-right:5%}.footer-divider{margin-top:85px;height:75px}.footer-divider .circle{top:-69px;right:1%}.contact-pills{flex-direction:column;align-items:flex-start;gap:10px;padding-bottom:65px;margin-top:15px}.contact-pills .button{min-height:62px}.footer-bottom{padding:25px 6%;gap:30px;flex-wrap:wrap;font-size:11px}.footer-bottom .footer-socials{order:-1;width:100%;margin-left:0;margin-bottom:15px;padding-bottom:25px;border-bottom:1px solid #ffffff30}.footer-socials>div{gap:26px}.footer-bottom .meta-label{font-size:8px}.page-heading{padding-top:155px;padding-bottom:65px}.page-heading h1{font-size:11vw;line-height:1.2}.work-controls{margin-bottom:45px}.filters{gap:7px}.filters .button{min-height:53px;padding:0 16px;font-size:11px}.filters .button sup{font-size:8px;margin-left:3px}.view-controls{display:none}.table-head{grid-template-columns:1fr auto}.table-head>span:nth-child(2),.table-head>span:nth-child(3){display:none}.project-row{grid-template-columns:1fr auto;padding:27px 0}.project-location{display:none}.project-service{grid-column:1;grid-row:2;font-size:11px}.project-year{grid-column:2;grid-row:1;font-size:11px}.work-index .project-name,.archive-list .project-name{font-size:37px}.project-row:hover{padding-left:10px;padding-right:10px}.project-grid{grid-template-columns:1fr;gap:40px}.card-heading h2{font-size:28px}.card-caption{font-size:11px}.about-story{display:flex;flex-direction:column;gap:45px;padding-bottom:80px}.about-copy{display:grid;grid-template-columns:30px 1fr;gap:15px 24px}.about-copy>svg{margin:0;width:24px;height:24px}.about-copy>p{font-size:20px;margin:0;max-width:24ch}.about-copy .muted,.about-copy .small-note{grid-column:2;font-size:12px}.about-portrait{aspect-ratio:.95}.services{padding-bottom:75px}.section-title{font-size:32px}.services-grid{grid-template-columns:1fr;gap:35px;margin-top:40px}.service-number{padding-bottom:15px;margin-bottom:22px}.services-grid h3{font-size:28px;margin-bottom:20px}.services-grid p{font-size:15px;max-width:50ch}.experience{padding-bottom:85px}.experience-heading{display:block;padding-bottom:35px}.experience-heading .small-note{display:block;margin-top:15px}.experience-row{padding:26px 0;align-items:center}.experience-row h3{font-size:21px;margin-bottom:10px}.experience-row p,.experience-row>span{font-size:10px}.contact-layout{display:flex;flex-direction:column;padding-top:155px;padding-bottom:50px;gap:55px}.contact-main h1{font-size:11.8vw;margin-bottom:55px}.form-row{gap:18px;padding:25px 0}.form-row label{font-size:17px}.form-row input,.form-row textarea{font-size:16px;padding-top:14px}.form-row>span{font-size:11px}.form-submit>.small-note{max-width:17ch;font-size:11px}.contact-aside{display:grid;grid-template-columns:1fr 1fr;gap:15px 25px}.contact-aside>img,.contact-aside>svg{display:none}.contact-aside>div{margin-bottom:12px;font-size:13px}.contact-aside .meta-label{font-size:9px;margin-bottom:16px}.contact-aside .small-note{font-size:12px}.contact-bottom .footer-socials{order:0}.case-heading{padding-top:155px;padding-bottom:50px}.case-heading h1{font-size:15vw;margin-bottom:50px}.case-meta{grid-template-columns:1fr 1fr;gap:25px}.case-meta .meta-label{font-size:11px;padding-bottom:12px;margin-bottom:15px}.case-meta>div>p:last-child{font-size:11px}.case-cover{padding:0;margin-bottom:65px}.case-cover .project-art{aspect-ratio:1.2;padding:12% 8%}.case-cover .mini-body .mini-title{font-size:32px}.case-cover .mini-nav{font-size:6px}.case-cover .mini-nav>span:first-child{font-size:12px}.case-cover .mini-bottom{font-size:6px}.case-intro{grid-template-columns:1fr;gap:28px;padding-bottom:65px}.case-intro h2{font-size:38px;max-width:12ch}.case-intro p{font-size:15px}.case-intro .small-note{font-size:11px;margin-top:20px}.case-images{padding:6%}.case-images>img{aspect-ratio:1;max-height:450px}.device-pair{gap:5%;padding-top:20%;padding-bottom:10%;align-items:flex-start}.device-desktop{width:75%;padding:4px;border-radius:6px}.device-mobile{width:25%;border-width:4px;border-radius:12px;margin-top:25%}.device-mobile span{font-size:5px}.device-mobile .mini-title{font-size:12px}.device-mobile img{height:100px}.device-desktop .mini-body .mini-title{font-size:17px}.device-desktop .mini-nav{font-size:3px}.device-desktop .mini-nav>span:first-child{font-size:6px}.device-desktop .mini-body{min-height:50px}.device-desktop .mini-bottom{font-size:3px}.next-project{padding-top:75px;padding-bottom:70px}.next-project>a{padding:30px 0}.next-project h2{font-size:13vw}.next-project svg{width:34px;height:34px}.navigation-drawer{width:100%}.navigation-drawer:before{left:-35px;width:70px}.drawer-inner{padding:17vh 10% 7vh}.drawer-inner nav{gap:12px}.drawer-inner nav a{font-size:clamp(45px,12vw,72px)}.drawer-inner>.meta-label{margin-bottom:35px;font-size:9px}.drawer-bottom{padding-top:25px}.menu-toggle{right:5%;top:18px;width:64px;height:64px}.menu-toggle>span{width:22px}.curtain-label{font-size:30px}.project-cursor{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.name-track{transform:translateX(-3%)!important}.project-cursor{display:none}.c-scrollbar{display:none}}

/* Accessible bilingual navigation and career pages. */
:root { --grey: #6b7171; --muted: #686b70; }
html { scroll-padding-top: 40px; }
body { overflow-wrap: break-word; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.page-home :focus-visible, .page-contact :focus-visible, .navigation-drawer :focus-visible, .footer :focus-visible { outline-color: #fff; box-shadow: 0 0 0 7px #1c1d20; }
main:focus, h1:focus, .career-section:focus { outline: none; }
.site-header { gap: 30px; }
.site-header > nav { margin-left: auto; gap: 26px; }
.site-header > nav > a { min-height: 44px; }
.wordmark { min-height: 44px; flex-shrink: 1; min-width: 0; }
.wordmark-clip { max-width: 220px; text-overflow: ellipsis; }
.wordmark-text { white-space: nowrap; }
.header-tools { display: flex; align-items: center; gap: 24px; flex-shrink: 0; }
.language-switch { display: flex; gap: 2px; align-items: center; }
.language-switch a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 44px; font-size: 12px; letter-spacing: .03em; }
.language-switch a[aria-current=page]::after { content: ''; position: absolute; height: 2px; background: currentColor; bottom: 5px; left: 12px; right: 12px; }
.language-switch a:hover { text-decoration: underline; text-underline-offset: 6px; }
.navigation-drawer { width: min(650px, 58vw); transform: translateX(110%); overflow-y: auto; overscroll-behavior: contain; }
.drawer-inner { padding: 108px 12% 40px; min-height: 100%; height: auto; }
.drawer-inner > .meta-label { margin-bottom: 26px; font-size: 12px; }
.drawer-inner nav { gap: 8px; }
.drawer-inner nav a { font-size: clamp(34px, 4.8vw, 64px); line-height: 1.15; padding: 2px 0; min-height: 44px; }
.drawer-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-top: 40px; padding-top: 24px; border-top: 1px solid #ffffff40; }
.drawer-bottom > div > .meta-label { color: #b5b7bc; font-size: 11px; margin-bottom: 12px; }
.drawer-bottom > div > a { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 14px; }
.drawer-bottom svg { width: 18px; height: 18px; transform: rotate(-90deg); }
.drawer-close { position: absolute; top: 25px; right: 7%; width: 64px; height: 64px; border-radius: 50%; background: var(--blue); display: grid; place-content: center; z-index: 2; }
.drawer-close span { height: 1.5px; width: 24px; background: white; display: block; transform: rotate(45deg); }
.drawer-close span + span { transform: translateY(-1.5px) rotate(-45deg); }
.drawer-close:hover { background: #3347c1; }
.page-curtain { height: 100dvh; border-radius: 0; }
.curtain-label { margin-top: 0; }
.hero-role p { white-space: normal; }
.hero-role { right: 3%; }
.hero-portrait { filter: grayscale(1); }
.placeholder-caption { opacity: 1; font-size: 11px; max-width: 42%; }
.motion-toggle { position: absolute; right: 3.1%; bottom: 15px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 0 16px; border: 1px solid #ffffff70; border-radius: 50px; background: #1c1d20; color: #fff; font-size: 12px; }
.motion-toggle:hover { background: #35363b; }
.motion-icon { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.motion-icon.is-paused { border: 0; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 9px solid currentColor; }
.footer-socials a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-bottom .meta-label, .section-label, .meta-label { font-size: 12px; }
.footer .meta-label, .footer-bottom .meta-label { color: #b5b7bc; }
.footer-title-line h2 { overflow-wrap: normal; }
.career-heading { padding-bottom: 80px; }
.career-heading h1 { max-width: none; }
.career-heading .heading-note { max-width: 42ch; font-size: 18px; line-height: 1.6; }
.career-section-links { display: flex; flex-wrap: wrap; gap: 16px 38px; margin-top: 38px; }
.career-section-links a { display: inline-flex; align-items: center; gap: 18px; min-height: 48px; border-bottom: 1px solid var(--ink); font-size: 14px; }
.career-section-links svg { width: 16px; height: 16px; }
.career-section { padding-top: 35px; padding-bottom: 100px; scroll-margin-top: 50px; }
.career-section-heading { display: flex; justify-content: space-between; gap: 35px; align-items: flex-end; padding-bottom: 60px; }
.career-section-heading h2 { max-width: 14ch; }
.career-section-heading .small-note { max-width: 24ch; }
.career-timeline { padding: 0; margin: 0; list-style: none; }
.timeline-entry { display: grid; grid-template-columns: 165px 44px minmax(0,1fr); column-gap: 24px; position: relative; }
.timeline-date { display: flex; flex-direction: column; gap: 12px; padding-top: 8px; font-size: 14px; }
.timeline-kind { text-transform: uppercase; letter-spacing: .05em; font-size: 11px; color: var(--muted); }
.timeline-marker { position: relative; display: flex; justify-content: center; }
.timeline-marker::before { content: ''; position: absolute; top: 12px; bottom: -12px; left: 50%; width: 1px; background: #c7c9cd; }
.timeline-entry:last-child .timeline-marker::before { bottom: 45px; }
.timeline-marker::after { content: ''; width: 11px; height: 11px; border-radius: 50%; background: var(--ink); border: 6px solid #fff; box-sizing: content-box; position: relative; top: 5px; }
.timeline-entry:first-child .timeline-marker::after { background: var(--blue); }
.timeline-body { padding-bottom: 55px; margin-bottom: 40px; border-bottom: 1px solid #c7c9cd; }
.timeline-body h3 { font-size: clamp(26px,3vw,42px); line-height: 1.2; margin-bottom: 13px; }
.timeline-organization { font-size: 17px; margin-bottom: 24px; }
.timeline-description { max-width: 55ch; font-size: 15px; line-height: 1.8; color: #57595d; }
.timeline-details { padding-left: 18px; margin: 18px 0 0; color: #57595d; font-size: 14px; line-height: 1.8; }
.timeline-details li + li { margin-top: 8px; }
.education-section { padding-bottom: 100px; }
.career-preview-link { display: flex; justify-content: flex-start; padding-left: 257px; }
.form-help { color: #c4c6cb; font-size: 13px; line-height: 1.7; margin-bottom: 30px; }
.form-error-summary { border: 2px solid #f1aaaa; padding: 22px; margin-bottom: 30px; color: #fff; }
.form-error-summary h2 { font-size: 20px; letter-spacing: normal; margin: 0 0 12px; }
.form-error-summary ul { padding-left: 20px; margin: 0; }
.form-error-summary a { display: inline-flex; align-items: center; min-height: 44px; color: #ffd0d0; text-decoration: underline; text-underline-offset: 4px; }
.form-row { border-top-color: #777b83; }
.form-row input:focus-visible, .form-row textarea:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
.form-row.invalid input:focus-visible, .form-row.invalid textarea:focus-visible { outline: 2px solid #fff; }
.form-row label { min-width: 0; }
.form-submit button:disabled { opacity: .8; }
.filters { flex-wrap: wrap; }
button, a { touch-action: manipulation; }
html:not(.js) .site-header { flex-wrap: wrap; height: auto; padding-top: 20px; }
html:not(.js) .site-header > nav { display: flex; flex-wrap: wrap; gap: 16px; }
html:not(.js) .mobile-menu, html:not(.js) .motion-toggle { display: none; }
@media (max-width: 1000px) {
  .site-header { gap: 18px; }
  .site-header > nav { gap: 18px; }
  .header-tools { gap: 14px; }
  .wordmark-clip { max-width: 170px; }
  .timeline-entry { grid-template-columns: 125px 30px minmax(0,1fr); column-gap: 18px; }
  .career-preview-link { padding-left: 191px; }
  .career-section-heading { display: block; }
  .career-section-heading .small-note { max-width: none; margin-top: 18px; }
}
@media (max-width: 800px) {
  .site-header > nav { display: none; }
  .mobile-menu { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; }
}
@media (max-width: 700px) {
  .site-header { gap: 12px; padding-left: 6%; padding-right: 6%; }
  .wordmark-clip { max-width: min(145px, 35vw); }
  .wordmark-text { overflow: hidden; text-overflow: ellipsis; }
  .header-tools { gap: 12px; }
  .language-switch a { min-width: 32px; font-size: 11px; }
  .language-switch a[aria-current=page]::after { left: 8px; right: 8px; }
  .navigation-drawer { width: 100%; }
  .drawer-inner { padding: 105px 9% 30px; }
  .drawer-inner nav { gap: 6px; }
  .drawer-inner nav a { font-size: clamp(32px,9vw,48px); line-height: 1.15; min-height: 46px; }
  .drawer-close { top: 18px; right: 6%; width: 60px; height: 60px; }
  .drawer-bottom { gap: 16px; margin-top: 28px; padding-top: 18px; }
  .drawer-bottom .language-switch a { min-width: 40px; }
  .drawer-bottom > div > a { font-size: 13px; }
  .hero-role { max-width: 88%; right: 6%; }
  .hero-role p { max-width: 20ch; }
  .motion-toggle { right: 6%; padding: 0 12px; font-size: 11px; bottom: 14px; }
  .placeholder-caption { font-size: 11px; line-height: 1.5; bottom: 18px; max-width: 42%; }
  .footer-title-line h2 { font-size: 12vw; }
  .footer-title-line { gap: 12px; }
  .footer-title-line > img { width: 10vw; height: 10vw; }
  html[lang=fr] .footer-title-line:first-child h2 { font-size: 10.5vw; }
  .footer-socials > div { gap: 22px; }
  .footer-bottom .meta-label, .meta-label, .section-label { font-size: 11px; }
  .work-controls { gap: 15px; align-items: flex-start; flex-wrap: wrap; }
  .filters { gap: 8px; }
  .filters .button { min-height: 48px; padding: 0 15px; font-size: 12px; }
  .view-controls { display: flex; }
  .view-button { width: 48px; height: 48px; }
  .career-heading { padding-bottom: 55px; }
  .career-heading .heading-note { font-size: 16px; margin-top: 28px; }
  .career-section-links { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 28px; }
  .career-section-links a { font-size: 14px; }
  .career-section { padding-top: 20px; padding-bottom: 60px; }
  .career-section-heading { padding-bottom: 35px; }
  .career-section-heading h2 { font-size: 34px; }
  .timeline-entry { grid-template-columns: 18px minmax(0,1fr); column-gap: 20px; }
  .timeline-marker { grid-column: 1; grid-row: 1 / span 2; }
  .timeline-marker::after { width: 9px; height: 9px; top: 1px; border-width: 4px; }
  .timeline-marker::before { top: 9px; bottom: 0; }
  .timeline-entry:last-child .timeline-marker::before { bottom: 45px; }
  .timeline-date { grid-column: 2; flex-direction: row; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding-top: 0; font-size: 12px; margin-bottom: 18px; }
  .timeline-kind { font-size: 11px; }
  .timeline-body { grid-column: 2; padding-bottom: 35px; margin-bottom: 30px; }
  .timeline-body h3 { font-size: 27px; }
  .timeline-organization { font-size: 15px; margin-bottom: 18px; }
  .timeline-description { font-size: 14px; line-height: 1.75; }
  .timeline-details { font-size: 13px; }
  .career-preview-link { padding-left: 38px; }
  .experience-heading { gap: 0; }
  .contact-main h1 { font-size: 10.5vw; }
  .form-row label { font-size: 17px; }
  .form-row input, .form-row textarea { min-height: 48px; }
  .form-help { font-size: 12px; }
  .case-meta > div > p:last-child { font-size: 12px; }
}
@media (max-width: 360px) {
  .header-tools { gap: 8px; }
  .wordmark-clip { max-width: 115px; }
  .wordmark { font-size: 11px; }
  .language-switch a { min-width: 30px; }
  .location-badge { font-size: 10px; gap: 10px; }
  .location-badge > div { width: 36px; height: 36px; }
  .hero-role { font-size: 22px; }
  .drawer-inner { padding-left: 9%; padding-right: 9%; }
}
@media (max-height: 600px) {
  .drawer-inner { padding-top: 80px; padding-bottom: 20px; }
  .drawer-inner > .meta-label { padding-bottom: 15px; margin-bottom: 18px; }
  .drawer-inner nav { gap: 0; }
  .drawer-inner nav a { font-size: 32px; min-height: 44px; }
  .drawer-bottom { margin-top: 20px; padding-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-toggle { cursor: default; }
  .navigation-drawer, .page-curtain { will-change: auto; }
}
html:not(.js) .site-header { position: relative; background: var(--ink); color: white; padding: 16px 6%; gap: 12px; }
html:not(.js) .site-header > nav { order: 3; width: 100%; justify-content: space-between; gap: 8px; }
.project-row:hover { color: #686b70; }
.section-label > span { font-size: 10px; }
.table-head { font-size: 11px; }

/* Personal profile, technical skills and the original portfolio's FAQs. */
.hero-portrait { filter: none; }
.about-story { row-gap: 48px; column-gap: 10%; }
.about-copy .bio-secondary { font-size: 15px; line-height: 1.8; }
.profile-facts { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 60px; margin: 0; padding-top: 35px; border-top: 1px solid var(--line); }
.profile-facts dt { font-size: 12px; color: var(--muted); margin-bottom: 10px; }
.profile-facts dd { font-size: 16px; margin: 0; overflow-wrap: anywhere; }
.profile-facts a { display: inline-flex; align-items: center; min-height: 44px; }
.skills-section { padding-bottom: 130px; }
.skill-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 50px 70px; margin-top: 55px; }
.skill-groups h3 { font-size: 23px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.skill-list { display: flex; flex-wrap: wrap; list-style: none; gap: 12px 24px; padding: 24px 0 0; margin: 0; }
.skill-list li { font-size: 15px; line-height: 1.7; }
.profile-links { display: flex; align-items: center; flex-wrap: wrap; gap: 24px 36px; margin-top: 50px; }
.profile-links > a:not(.button) { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 14px; }
.profile-links svg { width: 18px; height: 18px; transform: rotate(-90deg); }
.timeline-location { font-size: 14px; color: var(--muted); margin-top: -12px; margin-bottom: 20px; }
.timeline-location:empty { display: none; }
.faq-section { padding-bottom: 140px; }
.faq-list { margin-top: 55px; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding: 27px 0; min-height: 64px; cursor: pointer; font-size: 20px; line-height: 1.5; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-indicator { width: 16px; height: 16px; flex-shrink: 0; position: relative; }
.faq-indicator::before, .faq-indicator::after { content: ''; position: absolute; left: 0; top: 7px; width: 16px; height: 1px; background: currentColor; }
.faq-indicator::after { transform: rotate(90deg); }
.faq-list details[open] .faq-indicator::after { transform: rotate(0deg); }
.faq-list details > p { padding: 0 45px 30px 0; max-width: 70ch; color: #57595d; font-size: 15px; line-height: 1.8; }
.contact-aside a { display: block; min-height: 44px; padding: 8px 0; overflow-wrap: anywhere; }
.contact-aside a:hover, .profile-facts a:hover, .profile-links > a:hover { text-decoration: underline; text-underline-offset: 5px; }
.contact-social-links { display: flex; flex-direction: column; }
.form-feedback > a { display: inline-flex; align-items: center; min-height: 44px; color: white; text-decoration: underline; overflow-wrap: anywhere; }
.heading-note { line-height: 1.7; max-width: 60ch; }
@media (max-width: 700px) {
 .about-story { row-gap: 32px; }
 .about-copy .bio-secondary { grid-column: 2; font-size: 14px; line-height: 1.75; }
 .profile-facts { grid-template-columns: 1fr; gap: 20px; padding-top: 26px; }
 .profile-facts dt { font-size: 11px; margin-bottom: 6px; }
 .profile-facts dd { font-size: 15px; }
 .skills-section { padding-bottom: 80px; }
 .skill-groups { grid-template-columns: 1fr; gap: 30px; margin-top: 35px; }
 .skill-groups h3 { font-size: 21px; padding-bottom: 18px; }
 .skill-list { gap: 10px 20px; padding-top: 18px; }
 .skill-list li { font-size: 14px; }
 .profile-links { margin-top: 35px; gap: 18px 28px; }
 .faq-section { padding-bottom: 80px; }
 .faq-list { margin-top: 35px; }
 .faq-list summary { font-size: 17px; padding: 22px 0; gap: 20px; }
 .faq-list details > p { font-size: 14px; padding: 0 25px 25px 0; }
 .timeline-location { font-size: 12px; margin-top: -7px; margin-bottom: 16px; }
 .contact-aside a { font-size: 12px; }
 .contact-aside > div { min-width: 0; }
}

/* Full-screen photograph supplied by Cédrick; retain portrait framing on phones. */
.hero { height: 100svh; min-height: 0; max-height: none; }
.hero-portrait { inset: 0; width: 100%; height: 100%; max-width: none; transform: none; object-fit: cover; object-position: 50% 64%; mix-blend-mode: normal; filter: none; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgb(0 0 0 / .54), rgb(0 0 0 / .12) 38%, rgb(0 0 0 / .6)); }
.hero-role, .name-marquee, .placeholder-caption { text-shadow: 0 2px 16px rgb(0 0 0 / .45); }
@media (max-width: 720px) { .hero-portrait { object-position: 54% 55%; } }

/* Quiet editorial finish: still typography, an unobstructed portrait and minimal colophon. */
.hero-portrait { object-position: 50% 70%; }
.name-marquee { bottom: 3%; width: 100%; }
.name-track { width: 100%; transform: none; justify-content: center; }
.name-track h1 { font-size: clamp(64px, 13.5vw, 230px); line-height: 1.05; letter-spacing: -.04em; white-space: nowrap; }
.location-badge .globe { animation: globe-turn 18s linear infinite; transform-origin: center; }
@keyframes globe-turn { from { transform: rotate(-15deg) rotateY(0deg); } to { transform: rotate(-15deg) rotateY(360deg); } }
.premium-footer { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px 6%; border-top: 1px solid #ffffff26; }
.premium-footer .footer-signature { font-size: 12px; letter-spacing: .02em; color: #fff; }
.premium-footer .footer-socials { margin: 0; }
.premium-footer .footer-socials > div { display: flex; flex-wrap: wrap; gap: 24px; }
.premium-footer .footer-socials a { font-size: 12px; text-underline-offset: 6px; }
.contact-bottom.premium-footer { background: #1c1d20; color: white; }
@media (max-width: 720px) {
 .hero-portrait { object-position: 54% 68%; }
 .name-marquee { bottom: 4%; }
 .name-track h1 { font-size: 14vw; }
 .premium-footer { align-items: flex-start; flex-direction: column; gap: 22px; padding: 28px 6%; }
 .premium-footer .footer-socials { order: initial; width: auto; padding: 0; border: 0; margin: 0; }
 .premium-footer .footer-socials > div { gap: 18px; }
}
@media (prefers-reduced-motion: reduce) { .location-badge .globe { animation: none; } }

/* Apple system display typography for the signature, with platform fallbacks. */
.name-track { width: max-content; justify-content: flex-start; }
.name-track h1, .name-track > span {
 font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
 font-weight: 500; font-size: clamp(72px, 13.5vw, 230px); line-height: 1.08;
 letter-spacing: -.035em; white-space: nowrap; flex-shrink: 0;
}
@media (max-width: 720px) { .name-track h1, .name-track > span { font-size: 19vw; } }
@media (prefers-reduced-motion: reduce) {
 .name-track { width: 100%; justify-content: center; transform: none !important; }
 .name-track > span { display: none; }
 .name-track h1 { font-size: 13vw; }
}

/* Text-led biography: a readable story alongside concise profile facts. */
.about-text-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(220px, 1fr); column-gap: clamp(40px, 8vw, 140px); align-items: start; }
.about-text-layout .about-copy { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.about-text-layout .about-copy > svg { margin: 0 0 8px; }
.about-text-layout .about-copy > p { max-width: 58ch; margin: 0; }
.about-text-layout .about-copy > p:first-of-type { font-size: clamp(24px, 2.4vw, 36px); line-height: 1.45; letter-spacing: -.025em; }
.about-text-layout .about-copy .bio-secondary { font-size: 17px; line-height: 1.8; }
.about-text-layout .profile-facts { grid-column: auto; grid-template-columns: 1fr; gap: 30px; padding-top: 24px; }
@media (max-width: 800px) {
 .about-text-layout { grid-template-columns: 1fr; gap: 42px; }
 .about-text-layout .about-copy { gap: 22px; }
 .about-text-layout .about-copy .bio-secondary { font-size: 16px; }
 .about-text-layout .profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 420px) { .about-text-layout .profile-facts { grid-template-columns: 1fr; } }

.concept-disclaimer { max-width: 68ch; margin: 24px 0 40px; font-size: 16px; line-height: 1.7; color: var(--ink); }

/* Real project imagery: original site screenshots, without fabricated mock interfaces. */
.project-screenshot { display: grid; place-items: center; aspect-ratio: auto; padding: 0; background: var(--art-bg); overflow: hidden; }
.project-screenshot > img { width: 100%; height: auto; object-fit: contain; }
.case-cover { padding: 0; }
.case-cover .project-screenshot { display: block; aspect-ratio: auto; padding: 0; }
.project-cover-placeholder { min-height: 320px; }
.project-cover-placeholder { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; height: 100%; text-align: center; color: var(--ink); }
.project-cover-placeholder > span { font-size: clamp(28px, 5vw, 70px); letter-spacing: -.04em; }
.project-cover-placeholder > p { font-size: 13px; }
.cursor-image > span { display: grid; place-items: center; width: 100%; height: 100%; background: #efddc5; color: var(--ink); font-size: 32px; }
.filters { flex-wrap: wrap; }
.filters .button { padding-left: 22px; padding-right: 22px; }
.project-year { overflow-wrap: anywhere; }
.work-index .project-row, .archive-list .project-row { grid-template-columns: 1.55fr .85fr 1fr .85fr; }
.work-index .table-head, .archive-list .table-head { grid-template-columns: 1.55fr .85fr 1fr .85fr; }
.project-visit { display: inline-flex; gap: 18px; align-items: center; padding: 18px 0; margin-top: 36px; border-bottom: 1px solid var(--ink); }
.project-visit svg { width: 20px; height: 20px; transform: rotate(-90deg); }
.case-heading h1 { font-size: clamp(48px, 8vw, 132px); max-width: 18ch; text-wrap: balance; overflow-wrap: normal; }
.project-gallery { padding-bottom: 120px; }
.project-gallery-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 48px; }
.project-gallery-heading > span { font-size: 13px; color: var(--muted); }
.project-gallery-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; }
.project-gallery-grid figure { margin: 0; min-width: 0; }
.project-gallery-grid figure:first-child { grid-column: 1 / -1; }
.project-gallery-grid img { width: 100%; height: auto; border: 1px solid var(--line); }
.project-gallery-grid figcaption { font-size: 13px; line-height: 1.6; margin-top: 14px; }
.gallery-empty { max-width: 50ch; font-size: 18px; padding: 40px 0; border-top: 1px solid var(--line); }
.next-project h2 { max-width: 80%; overflow-wrap: anywhere; }
@media(max-width:700px) {
 .work-controls { display: block; }
 .filters .button { min-height: 48px; padding: 0 14px; }
 .work-index .project-row, .archive-list .project-row { grid-template-columns: minmax(0, 1fr); }
 .work-index .table-head, .archive-list .table-head { grid-template-columns: 1fr; }
 .work-index .table-head > span:not(:first-child), .archive-list .table-head > span:not(:first-child) { display: none; }
 .work-index .project-row .project-year, .archive-list .project-row .project-year { display: none; }
 .work-index .project-name, .archive-list .project-name { font-size: clamp(28px, 8vw, 38px); overflow-wrap: anywhere; }
 .project-gallery { padding-bottom: 72px; }
 .project-gallery-heading { display: block; margin-bottom: 28px; }
 .project-gallery-heading > span { display: block; margin-top: 12px; }
 .project-gallery-grid { grid-template-columns: 1fr; gap: 30px; }
 .project-screenshot { padding: 0; }
 .home-projects .project-name { font-size: clamp(32px, 9vw, 42px); overflow-wrap: anywhere; }
 .next-project h2 { font-size: 10vw; }
}

/* Progressive contact, adapted from the owner's NeoCraft component. */
.progressive-contact-layout { grid-template-columns: minmax(0, 2.3fr) minmax(220px, 1fr); gap: 8%; align-items: start; }
.progressive-contact-layout .contact-main h1 { font-size: clamp(42px, 5.5vw, 84px); margin-bottom: 24px; }
.contact-lead { color: #c6c6c8; margin-bottom: 48px; font-size: 18px; }
.progressive-contact-form { padding: 0; max-width: 760px; }
.stepper-progress { margin-bottom: 32px; }
.stepper-progress progress { display: block; appearance: none; width: 100%; height: 3px; border: 0; background: #ffffff26; color: #7789ff; }
.stepper-progress progress::-webkit-progress-bar { background: #ffffff26; }
.stepper-progress progress::-webkit-progress-value { background: #7789ff; }
.stepper-progress progress::-moz-progress-bar { background: #7789ff; }
.contact-stage-status { font-size: 13px; color: #c6c6c8; margin-top: 18px; }
.progressive-contact-form .form-help { font-size: 12px; color: #b6b6bb; max-width: 55ch; margin-bottom: 36px; }
.contact-step { border: 0; padding: 0; margin: 0 0 40px; min-width: 0; }
.contact-step legend { font-size: clamp(24px, 2.6vw, 38px); line-height: 1.25; letter-spacing: -.03em; padding: 0; margin-bottom: 26px; }
.contact-step input, .contact-step textarea { display: block; appearance: none; width: 100%; border: 0; border-bottom: 1px solid #ffffff50; border-radius: 0; background: transparent; color: white; padding: 16px 0; font: inherit; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.6; outline: none; box-shadow: none; }
.contact-step input:focus-visible, .contact-step textarea:focus-visible { outline: none; border-bottom-color: #91a0ff; box-shadow: 0 1px 0 #91a0ff; }
.contact-step input::placeholder, .contact-step textarea::placeholder { color: #a5a5ad; opacity: 1; }
.contact-step textarea { resize: vertical; min-height: 180px; }
.contact-step input:-webkit-autofill { -webkit-text-fill-color: white; box-shadow: 0 0 0 1000px #1c1d20 inset; caret-color: white; }
.contact-step [aria-invalid=true] { border-bottom-color: #ffb9b9; }
.contact-step .form-error { display: block; font-size: 14px; margin-top: 14px; color: #ffb9b9; }
.stepper-actions { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 36px; min-height: 64px; }
.step-back { display: inline-flex; gap: 12px; align-items: center; min-height: 48px; color: #c6c6c8; padding: 8px 0; }
.step-key-hint { color: #b6b6bb; font-size: 12px; margin-right: auto; }
.step-action { display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 18px 28px; border-radius: 40px; background: var(--blue); color: white; min-height: 60px; margin-left: auto; }
.step-action svg { width: 20px; height: 20px; transform: rotate(-90deg); }
.step-action:disabled { opacity: .65; }
.contact-complete { padding: 24px 0; }
.contact-complete > svg { width: 52px; height: 52px; color: #aebaff; margin-bottom: 28px; }
.contact-complete h2 { font-size: 36px; margin-bottom: 20px; }
.contact-complete p { max-width: 48ch; font-size: 18px; line-height: 1.7; margin-bottom: 24px; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.progressive-contact-aside { display: block; padding-top: 18px; }
.progressive-contact-aside .contact-aside-title { font-size: 24px; color: white; margin-bottom: 24px; }
.contact-aside-copy { color: #c6c6c8; font-size: 16px; line-height: 1.8; max-width: 28ch; }
.direct-email-link { display: flex; align-items: center; gap: 14px; min-height: 64px; margin: 28px 0 36px; border-bottom: 1px solid #ffffff30; }
.direct-email-link svg { width: 22px; height: 22px; }
.direct-email-link svg:last-child { margin-left: auto; }
.contact-social-links { display: flex; gap: 12px; flex-wrap: wrap; }
.social-icon-link { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; }
.social-icon-link svg { width: 21px; height: 21px; }
.contact-aside .social-icon-link { margin: 0; }
.premium-footer .footer-socials > div { gap: 8px; }
@media(hover:hover) and (pointer:fine) { .social-icon-link:hover { background: #ffffff15; } .step-action:hover { background: #354bd3; } }
@media(max-width:800px) {
 .progressive-contact-layout { display: flex; flex-direction: column; gap: 64px; }
 .progressive-contact-layout .contact-main { width: 100%; }
 .progressive-contact-aside { width: 100%; border-top: 1px solid #ffffff30; padding-top: 32px; }
 .contact-aside-copy { max-width: 42ch; }
 .step-key-hint { display: none; }
 .stepper-actions { gap: 16px; }
 .step-action { padding: 16px 24px; }
 .contact-step { margin-bottom: 26px; }
}

.progressive-contact-layout { padding-top: 160px; }
.progressive-contact-layout .contact-main { min-width: 0; }
.progressive-contact-layout .contact-main h1 { font-size: clamp(36px, 3.8vw, 60px); text-wrap: balance; overflow-wrap: normal; }
.progressive-contact-aside .direct-email-link { display: flex; }
.progressive-contact-aside .contact-social-links { display: flex; flex-direction: row; gap: 12px; margin: 0; }
.contact-aside .social-icon-link { display: inline-flex; margin: 0; }
@media(max-width:700px) { .progressive-contact-layout { padding-top: 138px; } .progressive-contact-layout .contact-main h1 { font-size: clamp(36px, 10vw, 52px); } }

.progressive-contact-layout .contact-lead { margin-bottom: 32px; }
.progressive-contact-form .stepper-progress { margin-bottom: 24px; }
.progressive-contact-form .form-help { margin-bottom: 24px; }
.progressive-contact-form .contact-step { margin-bottom: 32px; }
.progressive-contact-form .stepper-actions { margin-top: 0; }

/* Keep short page titles intact; longer headings wrap naturally with the viewport. */
.page-heading h1 { text-wrap: balance; overflow-wrap: normal; }
.footer-title-line { align-items: flex-end; }
.footer-title-line h2 { font-size: clamp(44px, 6.5vw, 100px); text-wrap: balance; }
.footer-title-line > svg { margin-bottom: .35em; }
.direct-email-link > span { min-width: 0; line-height: 1.4; }
@media(max-width:700px) {
 .footer-title-line h2, html[lang=fr] .footer-title-line:first-child h2 { font-size: clamp(36px, 10vw, 64px); }
 .page-heading h1 { font-size: clamp(32px, 9vw, 64px); }
 .project-gallery-grid { gap: 32px; }
 .stepper-actions { flex-wrap: wrap; }
}

/* Hero role replaces the location badge; social marks stay on the right. */
.hero-role { left: 6%; right: auto; top: 43.5%; max-width: 34%; font-size: clamp(22px, 2.3vw, 38px); }
.hero-role > svg { margin-bottom: 24px; }
.premium-footer .footer-socials { margin-left: auto; }
@media(max-width:700px) {
 .hero-role { left: 6%; right: auto; top: auto; bottom: 27%; max-width: 75%; font-size: clamp(20px, 5.8vw, 28px); }
 .hero-role > svg { margin-bottom: 16px; }
 .mobile-menu { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; flex-shrink: 0; }
 .mobile-menu > svg { width: 25px; height: 25px; }
}
@media(max-width:720px) {
 .premium-footer .footer-signature { align-self: flex-start; }
 .premium-footer .footer-socials { align-self: flex-end; margin-left: auto; }
}

/* Mobile language selection lives in the drawer; transitions keep a straight edge. */
@media(max-width:700px) {
 .header-tools > .language-switch { display: none; }
}
.premium-footer .footer-socials { display: block; margin-left: auto; color: #fff; }
.premium-footer .footer-socials > div { display: flex; justify-content: flex-end; gap: 8px; }
.premium-footer .social-icon-link { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; color: #fff; }
.premium-footer .social-icon-link svg { display: block; width: 24px; height: 24px; }
