:root{--ink:#17181c;--paper:#f5f5f3;--line:rgba(23,24,28,.18);--muted:#77797d;--dark:#1b1c20;--blue:#4059ed;--pad:clamp(1.25rem,4vw,4rem);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:450;letter-spacing:-.03em;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.page{min-height:100vh}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1.6rem var(--pad);font-size:.95rem;mix-blend-mode:difference;color:#fff;pointer-events:none}.site-header>*{pointer-events:auto}.brand{font-weight:550;white-space:nowrap}.top-nav{display:flex;gap:2rem}.lang-switch{display:flex;align-items:center;gap:.3rem;margin-left:1rem;font-size:.72rem;letter-spacing:.04em}.lang-switch button{border:0;background:transparent;color:inherit;padding:0;cursor:pointer;opacity:.55}.lang-switch button.is-active{opacity:1}.lang-switch span{opacity:.4}.top-nav a{position:relative;padding:.2rem 0}.nav-dot{position:absolute;left:50%;bottom:-.35rem;width:4px;height:4px;border-radius:50%;background:currentColor;transform:translateX(-50%) scale(0);transition:transform .35s var(--ease)}.top-nav a:hover .nav-dot,.top-nav a.is-active .nav-dot{transform:translateX(-50%) scale(1)}.page-wipe{position:fixed;inset:0;z-index:100;background:var(--dark);transform:scaleY(0);transform-origin:bottom;pointer-events:none}.cursor{position:fixed;z-index:90;left:0;top:0;width:26px;height:26px;border:1px solid currentColor;border-radius:50%;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s var(--ease);display:none}.cursor span{display:block;width:4px;height:4px;background:currentColor;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}body.cursor-ready .cursor{display:block}.cursor.is-hover{width:72px;height:72px;background:#fff;color:#111;mix-blend-mode:normal}.section-pad{padding:clamp(7rem,14vw,14rem) var(--pad)}.section-pad-top{padding:0 var(--pad) clamp(8rem,14vw,13rem)}.section-kicker{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2rem}.display-xl{font-size:clamp(3.2rem,8.8vw,9.4rem);font-weight:450;line-height:.9;letter-spacing:-.08em;margin:0}.lead{font-size:clamp(1.3rem,2.3vw,2.2rem);line-height:1.1;letter-spacing:-.055em;margin:0}.muted{font-size:1rem;line-height:1.35;color:var(--muted);max-width:32rem}.home-hero{height:100svh;min-height:680px;position:relative;overflow:hidden;background:#b9bcba;color:#fff}.home-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),transparent 28%,rgba(0,0,0,.08));pointer-events:none}.home-hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.location-pill{position:absolute;z-index:3;left:0;top:47%;display:flex;align-items:center;gap:2rem;transform:translateY(-50%);padding:.9rem .9rem .9rem 2rem;background:#1d1e23;color:#f6f6f4;border-radius:0 3rem 3rem 0;font-size:1rem;line-height:1.05}.location-pill .globe{display:grid;place-items:center;width:4.5rem;height:4.5rem;border-radius:50%;background:#cfd1d0;color:#fff;font-size:3rem;line-height:1}.hero-role{position:absolute;z-index:3;right:7%;top:47%;transform:translateY(-50%);font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.05}.hero-arrow{position:absolute;z-index:3;right:30%;top:34%;font-size:2rem}.hero-name-rail{position:absolute;z-index:4;bottom:2.3rem;left:0;width:100%;overflow:hidden;white-space:nowrap}.hero-name-track{display:flex;width:max-content;font-size:clamp(6rem,17vw,17rem);letter-spacing:-.1em;line-height:.76;animation:marquee 22s linear infinite}.hero-name-track span{padding-right:3rem}@keyframes marquee{to{transform:translateX(-50%)}}.intro-section,.featured-section,.about-hero,.principles,.page-intro,.project-hero,.project-body{background:var(--paper)}.intro-grid,.about-intro-grid{display:grid;grid-template-columns:1fr minmax(280px,1fr);gap:2rem;margin-top:7rem}.intro-arrow,.contact-arrow{font-size:2rem}.intro-copy{max-width:42rem;display:grid;gap:2rem}.intro-rule,.about-rule{height:1px;background:var(--line);margin-top:8rem}.circle-link{width:8.2rem;height:8.2rem;border-radius:50%;background:var(--blue);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;font-size:.9rem;transition:transform .45s var(--ease)}.circle-link:hover{transform:scale(1.08) rotate(-8deg)}.circle-link b{font-size:1.5rem;font-weight:400}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem}.text-link{font-size:1rem}.text-link sup{font-size:.6em;margin-left:.2rem}.feature-list{border-top:1px solid var(--line)}.feature-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:2rem;padding:1rem 0 3rem;border-bottom:1px solid var(--line);transition:padding .5s var(--ease)}.feature-row:hover{padding-inline:1rem}.feature-visual{height:min(40vw,33rem);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:1.3rem;color:#fff}.feature-visual span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.feature-visual i,.card-art i,.project-art i{position:absolute;width:20%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.6);filter:blur(1px);transform:translate(-50%,-50%);left:50%;top:50%;transition:transform .8s var(--ease)}.feature-row:hover .feature-visual i,.work-card:hover .card-art i{transform:translate(-50%,-50%) scale(3.2)}.visual-signal,.art-signal{background:radial-gradient(circle at 70% 25%,#e3c55a 0 3%,transparent 4%),linear-gradient(125deg,#10131a,#374c72 55%,#d77534)}.visual-field,.art-field{background:linear-gradient(140deg,#526034,#d7cbbd 44%,#252a20);}.feature-meta{align-self:end}.feature-meta h2,.card-caption h2{margin:0 0 .35rem;font-size:clamp(1.5rem,2.2vw,2.2rem);font-weight:450;letter-spacing:-.06em}.feature-meta p,.card-caption p{margin:0;color:var(--muted);font-size:.9rem}.feature-meta span{display:block;margin-top:4rem;font-size:.8rem;color:var(--muted)}.contact-band{background:var(--dark);color:#f5f5f3;position:relative;min-height:70vh}.contact-band .section-kicker{color:#94969a}.contact-band .circle-link{position:absolute;right:var(--pad);bottom:var(--pad)}.site-footer{background:var(--dark);color:#f5f5f3;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:0 var(--pad) 2rem;font-size:.78rem}.site-footer>div{display:flex;flex-direction:column;gap:.6rem}.footer-label{font-size:.65rem;text-transform:uppercase;color:#797b81;letter-spacing:.03em}.site-footer a{margin-right:1rem}.page-intro{padding-top:12rem;min-height:70vh}.filter-bar{display:flex;gap:.5rem;margin-top:5rem}.filter-btn{background:transparent;border:1px solid var(--line);border-radius:999px;padding:1rem 2rem;cursor:pointer;color:inherit;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}.filter-btn:hover{transform:translateY(-3px)}.filter-btn.is-selected{background:var(--ink);color:#fff;border-color:var(--ink)}.filter-btn sup{font-size:.6em}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6rem 1.5rem}.work-card{display:block;transition:opacity .3s ease,transform .6s var(--ease)}.work-card.is-hidden{display:none}.card-art{height:min(47vw,39rem);position:relative;overflow:hidden;padding:1.3rem;color:#fff;display:flex;align-items:flex-end}.card-art>span{position:absolute;top:1.3rem;left:1.3rem;font-size:.7rem}.card-art>b{font-size:clamp(2.5rem,5vw,6rem);letter-spacing:-.08em;line-height:.84;font-weight:450;position:relative;z-index:1}.art-orbit{background:radial-gradient(circle at 50% 50%,#ececec 0 8%,transparent 9%),repeating-radial-gradient(circle at 50% 50%,transparent 0 20px,#f1c65d 22px 25px),#121826}.art-mono{background:#dedbd5;color:#151515}.art-kinetic{background:linear-gradient(135deg,#c9302c,#ffba3c 46%,#3234ad)}.art-common{background:linear-gradient(135deg,#ecba80,#e1e1dc 47%,#242b2f)}.card-caption{display:flex;justify-content:space-between;align-items:baseline;padding-top:1rem;border-bottom:1px solid var(--line);padding-bottom:1rem}.card-caption p{display:flex;gap:1rem}.page-about .about-hero{min-height:85vh;padding-top:14rem}.blue-orbit{width:9rem;height:9rem;background:var(--blue);border-radius:50%;display:grid;place-items:center;color:#fff;font-size:4rem;position:absolute;right:14%;top:36%;transition:transform .6s var(--ease)}.blue-orbit:hover{transform:scale(1.15) rotate(35deg)}.blue-orbit i{position:absolute;inset:20%;border:1px solid currentColor;border-radius:50%}.principle-list{border-top:1px solid var(--line)}.principle-list article{display:grid;grid-template-columns:5rem 1fr 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.principle-list span{color:var(--muted)}.principle-list h2{margin:0;font-size:clamp(1.7rem,3vw,3.2rem);font-weight:450;letter-spacing:-.07em}.principle-list p{margin:0;max-width:23rem;color:var(--muted);line-height:1.35}.page-contact{background:var(--dark);color:var(--paper)}.page-contact .site-header{mix-blend-mode:normal;color:#fff}.contact-hero,.contact-content{background:var(--dark)}.contact-hero{padding-top:14rem;min-height:76vh}.contact-title-row{display:flex;align-items:center;justify-content:space-between;gap:2rem}.portrait-token{width:7rem;height:7rem;border-radius:50%;background:#adb0ad;display:grid;place-items:center;transition:transform .5s var(--ease)}.portrait-token:hover{transform:scale(1.1) rotate(-10deg)}.portrait-token div{width:55%;height:70%;border-radius:48% 48% 42% 42%;background:linear-gradient(160deg,#edd8c2,#855f4d 35%,#122532 37% 100%);box-shadow:0 1.3rem 0 -1rem #122532}.contact-arrow{margin-top:7rem;margin-left:62%}.contact-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:5rem;padding-top:0}.contact-form{border-top:1px solid #494a4e}.contact-form label{display:grid;grid-template-columns:3.5rem 1fr;gap:1rem;padding:2rem 0;border-bottom:1px solid #494a4e}.contact-form label span{color:#7d7f83;font-size:.75rem}.contact-form label b{font-weight:450;font-size:1.4rem}.contact-form input,.contact-form textarea{grid-column:2;border:0;background:transparent;outline:0;color:var(--paper);padding:.5rem 0;font-size:1.25rem}.contact-form textarea{min-height:8rem;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#76787e}.submit-button{margin-top:2rem;border:0;background:var(--blue);color:#fff;border-radius:50%;width:9rem;height:9rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;transition:transform .45s var(--ease)}.submit-button:hover{transform:rotate(-8deg) scale(1.08)}.contact-details{display:grid;align-content:start;gap:3rem}.contact-details a,.contact-details p{display:block;margin:.5rem 0;font-size:1rem;line-height:1.2}.page-project .project-hero{padding-top:13rem;min-height:90vh}.project-summary{max-width:30rem;font-size:1.5rem;color:var(--muted);line-height:1.1;margin:3rem 0 5rem}.project-art{height:min(55vw,42rem);position:relative;overflow:hidden;padding:1.3rem;color:#fff;display:flex;align-items:flex-end}.project-art>b{font-size:clamp(4rem,11vw,12rem);letter-spacing:-.1em;line-height:.8;font-weight:450;position:relative;z-index:1}.project-media{margin:1.2rem 0 0}.project-media-frame{background:#111;border:1px solid rgba(23,24,28,.12);overflow:hidden}.project-media img{display:block;width:100%;height:auto}.project-media figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:.8rem;color:var(--muted);font-size:.75rem;line-height:1.25}.project-media-index{white-space:nowrap}.project-body{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.project-copy{max-width:34rem;display:grid;gap:2rem}.split-lines,.display-xl{opacity:1}.js .split-lines{opacity:0}.reveal-up{opacity:0;transform:translateY(40px)}@media (pointer:fine){body.cursor-ready{cursor:none}.magnetic{will-change:transform}}@media (max-width:720px){:root{--pad:1.25rem}.site-header{padding-top:1.25rem;font-size:.82rem}.top-nav{gap:1rem}.home-hero{min-height:620px}.hero-role{right:1.25rem;top:58%;font-size:1.05rem}.hero-arrow{right:35%;top:42%}.location-pill{top:57%;font-size:.75rem;gap:1rem;padding-left:1.25rem}.location-pill .globe{width:3.4rem;height:3.4rem;font-size:2.2rem}.hero-name-track{font-size:5.4rem}.section-pad{padding-top:6rem;padding-bottom:7rem}.display-xl{font-size:clamp(3rem,14vw,6rem)}.intro-grid,.about-intro-grid,.project-body{grid-template-columns:1fr;margin-top:4rem}.intro-arrow{display:none}.intro-rule,.about-rule{margin-top:4rem}.feature-row{grid-template-columns:1fr;gap:1rem}.feature-visual{height:65vw}.feature-meta span{margin-top:1.5rem}.contact-band{min-height:60vh}.contact-band .circle-link{position:relative;right:auto;bottom:auto;margin-top:3rem}.site-footer{grid-template-columns:1fr;gap:1.2rem}.page-intro{min-height:62vh;padding-top:10rem}.filter-bar{margin-top:3rem;overflow:auto;padding-bottom:.5rem}.filter-btn{white-space:nowrap;padding:.8rem 1.2rem}.work-grid{grid-template-columns:1fr;gap:4rem}.card-art{height:92vw}.page-about .about-hero{padding-top:10rem;min-height:82vh}.blue-orbit{width:6.5rem;height:6.5rem;font-size:3rem;right:8%;top:36%}.principle-list article{grid-template-columns:2.5rem 1fr;gap:.8rem 1rem}.principle-list p{grid-column:2}.contact-hero{padding-top:10rem;min-height:70vh}.contact-title-row{align-items:flex-end}.portrait-token{width:5rem;height:5rem}.contact-arrow{margin:4rem 0 0 70%}.contact-content{grid-template-columns:1fr;gap:5rem}.contact-form label{grid-template-columns:2rem 1fr}.contact-form label b{font-size:1.15rem}.contact-form input,.contact-form textarea{grid-column:2}.project-art{height:82vw}.project-media figcaption{display:block}.project-media-index{display:block;margin-top:.5rem}.project-body{padding-top:6rem}}
.credentials{background:var(--paper)}.credential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;border-top:1px solid var(--line)}.credential-grid>div{padding-top:1.2rem;border-bottom:1px solid var(--line);min-height:12rem}.credential-grid h2{font-size:1.2rem;font-weight:450;margin:0 0 2rem}.credential-grid p{color:var(--muted);line-height:1.35;margin:0}.credential-grid strong{color:var(--ink);font-weight:500}.project-link{display:inline-block;margin-top:2rem}.project-link.is-disabled{display:none}@media (max-width:720px){.site-header{flex-wrap:wrap}.lang-switch{order:3;width:100%;justify-content:flex-end;margin-top:.4rem}.credential-grid{grid-template-columns:1fr;gap:0}.credential-grid>div{min-height:auto;padding:1.2rem 0}.project-link{margin-top:1.5rem}}
.card-art.has-project-media,.feature-visual.has-project-media{padding:0;background:#111}.card-art-image,.feature-visual-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}.card-art-image[hidden],.feature-visual-image[hidden],.project-art-image[hidden],.project-art-placeholder[hidden]{display:none}.card-art.has-project-media>b,.feature-visual.has-project-media>span{position:relative;z-index:1;text-shadow:0 1px 1rem rgba(0,0,0,.7)}.project-art-media{padding:0;background:#101114;display:grid;place-items:center}.project-art-image{width:100%;height:100%;display:block;object-fit:contain}.project-art-placeholder{position:absolute;inset:0;padding:1.3rem;color:#fff;display:flex;align-items:flex-end}

/* High-contrast cursor and restrained placeholder motion. */
.cursor{width:18px;height:18px;border:1.5px solid #fff;background:#111319;color:#fff;mix-blend-mode:normal;box-shadow:0 0 0 1px rgba(17,19,25,.35),0 2px 8px rgba(0,0,0,.28)}
.cursor span{width:3px;height:3px;background:#fff}
.cursor.is-hover{width:42px;height:42px;background:rgba(17,19,25,.9);color:#fff;border-color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.45),0 4px 18px rgba(0,0,0,.28)}
.feature-visual i,.card-art i,.project-art-placeholder i{width:5.6rem;height:5.6rem;border:1px solid rgba(255,255,255,.48);background:radial-gradient(circle at center,rgba(255,255,255,.92) 0 2px,transparent 3px);filter:none;transform:translate(-50%,-50%) scale(1);animation:placeholder-breathe 4.8s ease-in-out infinite}
.feature-visual i::before,.card-art i::before,.project-art-placeholder i::before{content:"";position:absolute;inset:17%;border:1px solid rgba(255,255,255,.35);border-radius:50%}
.feature-visual i::after,.card-art i::after,.project-art-placeholder i::after{content:"";position:absolute;left:50%;top:-22%;width:1px;height:144%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.7),transparent);transform-origin:50% 50%;animation:placeholder-sweep 6.5s linear infinite}
.feature-row:hover .feature-visual i,.work-card:hover .card-art i{transform:translate(-50%,-50%) scale(1.16)}
.has-project-media i,.project-art-media i{display:none}
@keyframes placeholder-breathe{0%,100%{opacity:.58;box-shadow:0 0 0 0 rgba(255,255,255,0)}50%{opacity:.95;box-shadow:0 0 0 12px rgba(255,255,255,.06)}}
@keyframes placeholder-sweep{to{transform:rotate(360deg)}}

.experience-list{border-top:1px solid var(--line)}.experience-list article{display:grid;grid-template-columns:minmax(9rem,.3fr) minmax(0,1fr);gap:2rem;padding:1.5rem 0 2.4rem;border-bottom:1px solid var(--line)}.experience-list time{font-size:.75rem;color:var(--muted);letter-spacing:.02em}.experience-list h2{margin:0 0 .45rem;font-size:clamp(1.35rem,2.2vw,2rem);font-weight:450;letter-spacing:-.055em}.experience-list p{max-width:42rem;margin:.4rem 0 0;color:var(--muted);line-height:1.35}.experience-list .experience-role{color:var(--ink);font-size:.9rem}.experience-list article:hover h2{transform:translateX(.35rem);transition:transform .35s var(--ease)}
@media (max-width:720px){.experience-list article{grid-template-columns:1fr;gap:.7rem}.experience-list time{font-size:.7rem}}

.focus-section{background:var(--paper)}.focus-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:2rem;align-items:end;border-top:1px solid var(--line);padding-top:1.5rem}.focus-layout h2{max-width:48rem}.focus-copy{max-width:32rem;display:grid;gap:1.5rem}.focus-copy p{margin:0}.focus-copy .lead{font-size:clamp(1.5rem,2.8vw,2.6rem)}
@media (max-width:720px){.focus-layout{grid-template-columns:1fr;gap:2rem}.focus-copy{max-width:none}}
