.header .brand{font-size:14px;font-weight:450;letter-spacing:-.035em;line-height:1.3;white-space:nowrap}.header nav,.header .language,.header .contact-nav{font-size:14px;font-weight:400;line-height:1.3}
html{scrollbar-gutter:stable}.motion-cursor{position:fixed;left:0;top:0;z-index:1100;width:12px;height:12px;border-radius:50%;background:#252823;color:#fafaf5;pointer-events:none;display:grid;place-items:center;opacity:0;font-size:18px;line-height:1;transform:translate(-100px,-100px);transition:width .25s,height .25s,background .25s,opacity .15s}.motion-cursor[data-mode=link],.motion-cursor[data-mode=gallery]{width:48px;height:48px}.motion-cursor[data-mode=drag]{width:58px;height:58px;background:#53594e}.motion-cursor[data-mode=text]{width:3px;height:25px;border-radius:1px}.motion-cursor span{pointer-events:none}
@media(hover:hover) and (pointer:fine){html.cursor-ready,html.cursor-ready a,html.cursor-ready button,html.cursor-ready .perspective-stage,html.cursor-ready .perspective-stage.is-dragging{cursor:none}}
.site-preloader{position:fixed;inset:0;z-index:1050;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto}.loader-sheets{position:relative;width:400px;height:210px}.loader-sheet{position:absolute;left:50%;top:50%;width:90px;height:140px;margin-left:-45px;margin-top:-70px;background:#e7e9e5;transform-origin:50% 80%;box-shadow:0 15px 35px #2428200a}.loader-sheet:nth-child(2){background:#e7ebed}.loader-sheet:nth-child(3){background:#e4e8ee}.loader-sheet:nth-child(4){background:#eae5dd}.loader-sheet:nth-child(5){background:#edece4}.loader-line{margin-top:30px;font-size:clamp(35px,4vw,68px);font-weight:400;letter-spacing:-.065em;line-height:1.1}.loader-line em{font-family:Georgia,serif;font-weight:400}.loader-name{position:absolute;left:var(--gutter);top:34px;font-size:14px;letter-spacing:-.03em}.loader-note{position:absolute;bottom:40px;font-size:10px;letter-spacing:.08em;color:var(--muted)}html.is-preloading{overflow:hidden}html.is-preloading .motion-cursor{opacity:0!important}
@media(max-width:600px){.header .brand{font-size:12px;max-width:125px;white-space:normal}.header nav,.header .language,.header .contact-nav{font-size:12px}.loader-sheets{width:290px;height:180px}.loader-sheet{width:64px;height:110px;margin-left:-32px;margin-top:-55px}.loader-name{font-size:12px}.loader-note{font-size:8px}}
@media(prefers-reduced-motion:reduce){.motion-cursor{transition:none}}


.header .brand{background:#171917;color:#fff;padding:3px 6px;letter-spacing:-.025em}
.header .language{margin-right:8px}
@media(max-width:600px){.header .brand{padding:3px 6px}.header .language{margin-right:6px}}

.header .brand{justify-self:start;align-self:center;width:fit-content}

/* One responsive outer frame shared by the header, hero and page sections. */
:root{--gutter:clamp(10px,2.25vw,48px)}
.header{padding:var(--gutter)}
.perspective-hero{padding-bottom:var(--gutter)}
.perspective-stage{width:100%;margin-left:0}
footer{padding:var(--gutter)}
.perspective-counter{font-size:14px}
.gallery-cover-image{display:block;width:100%;height:100%;object-fit:cover;mix-blend-mode:normal}
@media(max-width:600px){.perspective-counter{font-size:12px}}

.portfolio-loader{display:none;position:fixed;inset:0;z-index:1050;overflow:hidden;background:#0267ff;color:#fcfcfa}
html.is-preloading .portfolio-loader{display:block}
.portfolio-loader-fill{position:absolute;inset:0;background:#fcfcfa;color:#20211f;clip-path:inset(100% 0 0 0);will-change:clip-path}
.portfolio-loader-count{position:absolute;left:var(--gutter);bottom:var(--gutter);font-family:Inter,Arial,sans-serif;font-size:clamp(112px,21vw,380px);font-weight:450;line-height:1;letter-spacing:-.075em;font-variant-numeric:tabular-nums;display:block}
.portfolio-loader.is-exiting{display:block}
html.loader-exiting{overflow:hidden}
html.loader-exiting .motion-cursor{opacity:0!important}
.motion-cursor,.motion-cursor[data-mode=drag]{background:#0267ff}
.motion-cursor{font-family:Inter,Arial,sans-serif;font-weight:400;font-style:normal;letter-spacing:0}
.header{position:sticky;top:0;z-index:50;background:transparent;box-shadow:none}
.header.is-hidden{pointer-events:none}
html.is-smooth-scrolling{scroll-behavior:auto}
/* Shared navigation, with a compact frame and a mobile sheet. */
.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;padding:calc(var(--gutter)/1.5) var(--gutter) var(--gutter);font-family:Inter,Arial,sans-serif}
.header-panel{display:contents}
.header nav{grid-column:2;display:flex;gap:32px;margin:0}
.header-actions{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:28px}
.header .language{margin:0;padding:8px 0}
.header .contact-nav{padding:8px 0;width:auto;text-align:left;white-space:nowrap}
.header .resume-link{font-size:14px;font-weight:400;line-height:1.3;padding:8px 0;background:none;border:0;white-space:nowrap;color:var(--ink);cursor:pointer}
.header .resume-link:disabled{color:var(--muted);cursor:default}
.header .resume-link:hover,.header .contact-nav:hover{color:#0267ff}
.header nav a{display:flex;align-items:center;gap:8px}
.header nav a:after{display:none}
.header nav a:before{content:'';width:5px;height:5px;border-radius:50%;background:#0267ff;flex:none;opacity:0;transition:opacity .35s}
.header nav a.active:before,.header nav a:hover:before{opacity:1}
.menu-toggle{display:none}
@media(min-width:761px) and (max-width:1100px){.header{gap:18px}.header nav{gap:20px}.header-actions{gap:20px}.header .brand,.header nav,.header .language,.header .contact-nav,.header .resume-link{font-size:12px}}
@media(max-width:760px){
 .header{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:16px;padding:calc(var(--gutter)/1.5) var(--gutter) var(--gutter)}
 .header .brand{max-width:none;white-space:nowrap;font-size:12px;width:fit-content;flex-shrink:0;position:relative;z-index:2}
 .menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;flex:none;width:44px;height:36px;background:none;border:0;padding:0;position:relative;z-index:2}
 .menu-toggle span{width:24px;height:1px;background:currentColor;transition:transform .5s cubic-bezier(.22,1,.36,1)}
 .is-menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
 .is-menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .header-panel{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;height:calc(100dvh - var(--menu-header-height,56px));background:#fcfcfa;padding:55px var(--gutter) 40px;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1),visibility .7s;overflow-y:auto}
 .is-menu-open .header-panel{visibility:visible;clip-path:inset(0 0 0 0)}
 .header.is-menu-open{background:#fcfcfa}
 .header nav{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin:0;font-size:clamp(36px,9vw,58px)}
 .header nav a{padding:8px 0;gap:13px;letter-spacing:-.045em;line-height:1.15;transform:translateY(18px);transition:transform .8s cubic-bezier(.22,1,.36,1)}
 .is-menu-open nav a{transform:translateY(0)}
 .header nav a:before{width:7px;height:7px}
 .header-actions{margin-top:auto;padding-top:65px;display:grid;grid-template-columns:1fr auto;gap:25px 32px;align-items:center;font-size:14px}
 .header .resume-link{grid-column:1/-1;justify-self:start}
 .header .language{grid-column:2;grid-row:2;justify-self:end;font-size:14px}
 .header .contact-nav{grid-column:1;grid-row:2;justify-self:start;font-size:14px;padding:8px 0}
 html.mobile-menu-open{overflow:hidden}
}
.header .language{background:#e9ebe6;border-radius:4px;min-width:38px;padding:8px 9px;line-height:1.3;transition:background .3s}
.header .language:hover{background:#dfe4d9;color:var(--ink)}
.header .resume-link{display:inline-flex;align-items:center;gap:9px}
.resume-link svg{width:17px;height:17px;flex:none}
.header nav a{position:relative;gap:0}
.header nav a:before{display:none}
.header nav a:after{display:block;content:'';position:absolute;left:0;right:0;bottom:2px;width:100%;height:2px;background:#0267ff;transform:scaleX(0);transform-origin:left;transition:transform .45s}
.header nav a.active{color:#0267ff}
.header nav a.active:after{background:#0267ff;height:2px;transform:scaleX(1)}
.header nav a:hover:after{transform:scaleX(1)}
@media(max-width:760px){.header-actions{grid-template-columns:auto 1fr;gap:24px 22px}.header .language{grid-column:1;grid-row:1;justify-self:start}.header .resume-link{grid-column:2;grid-row:1;justify-self:start}.header .contact-nav{grid-column:1/-1;grid-row:2}.header nav a:after{bottom:0}.header nav a.active:after{height:2px}}
