:root{--bg: #070707;--ink: #f2efe9;--muted: #8a8780;--line: rgba(242, 239, 233, .14);--accent: #f2efe9;--gutter: clamp(16px, 5.3vw, 76px);--edge: clamp(18px, 4.4vh, 40px);--sans: "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--display: "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ease: cubic-bezier(.19, 1, .22, 1);--ease-io: cubic-bezier(.77, 0, .175, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none;touch-action:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}img{display:block;max-width:100%}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}#gl{position:fixed;inset:0;width:100%;height:100%;display:block;cursor:grab}body.is-dragging #gl{cursor:grabbing}@media(pointer:fine){#gl,#gl:active{cursor:none}}.labels{position:fixed;inset:0;pointer-events:none;z-index:2}.label{position:absolute;left:0;top:0;font-size:clamp(15px,1.35vw,22px);font-weight:500;letter-spacing:-.02em;white-space:nowrap;will-change:transform,opacity;text-shadow:0 1px 18px rgba(0,0,0,.45);transform-origin:0 100%}.label small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;opacity:.8;margin-bottom:2px}.chrome{position:fixed;inset:0;pointer-events:none;z-index:20}header.chrome>*{pointer-events:auto;position:absolute}.link{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1;padding:6px 0;position:relative;transition:opacity .4s var(--ease)}.link:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}@media(hover:hover){.link:hover:after{transform:scaleX(1);transform-origin:left}}.chrome__tl{left:var(--gutter);top:var(--edge)}.chrome__tr{right:var(--gutter);top:var(--edge)}.chrome__bl{left:var(--gutter);bottom:var(--edge);display:flex;gap:6px;align-items:center}.chrome__br{right:var(--gutter);bottom:var(--edge)}.chrome__bl .link{color:var(--muted)}.chrome__bl .link.is-active{color:var(--ink)}.chrome__bl .sep{font-size:11px;font-weight:600}.chrome__bc{left:50%;bottom:var(--edge);transform:translate(-50%);font-size:11px;font-weight:600;letter-spacing:.06em;padding:6px 0;line-height:1;font-variant-numeric:tabular-nums;transition:opacity .6s var(--ease)}.counter__of{color:var(--muted);margin-left:6px}body.view-index .chrome__bc,body.view-profile .chrome__bc,body.view-detail .chrome__bc{opacity:0}.hint{position:fixed;left:50%;top:calc(var(--edge) + 1px);transform:translate(-50%);margin:0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);z-index:3;pointer-events:none;transition:opacity 1s var(--ease)}body:not(.view-home) .hint,body.has-interacted .hint{opacity:0}.loader{position:fixed;inset:0;z-index:50;background:var(--bg);display:grid;place-items:center;transition:opacity 1s var(--ease),visibility 1s}.loader__name{position:absolute;left:var(--gutter);top:var(--edge);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:6px 0;line-height:1}.loader__count{font-family:var(--display);font-weight:500;font-size:clamp(90px,18vw,260px);line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums;padding:0 .06em}.loader__bar{position:absolute;left:var(--gutter);right:var(--gutter);bottom:var(--edge);height:1px;background:var(--line)}.loader__bar i{display:block;height:100%;background:var(--ink);transform-origin:left;transform:scaleX(0)}body:not(.is-loading) .loader{opacity:0;visibility:hidden}.panel{position:fixed;inset:0;z-index:10;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none}.panel::-webkit-scrollbar{display:none}.panel{visibility:hidden;pointer-events:none}body.view-index .index,body.view-profile .profile,body.view-detail .detail{visibility:visible;pointer-events:auto}body:not(.view-index) .index,body:not(.view-profile) .profile,body:not(.view-detail) .detail{transition-property:opacity,clip-path,visibility;transition-delay:0s,0s,1.1s}.index{padding:calc(var(--edge) + 90px) var(--gutter) calc(var(--edge) + 80px);background:#070707d1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);opacity:0;transition:opacity .8s var(--ease)}body.view-index .index{opacity:1}.index__head,.index__row a{display:grid;grid-template-columns:70px minmax(0,2fr) 1fr 1.2fr 70px;gap:24px;align-items:baseline}.index__head{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line)}.index__head span:last-child,.index__row .yr{text-align:right}.index__list{list-style:none;margin:0;padding:0}.index__row{border-bottom:1px solid var(--line);overflow:hidden}.index__row a{padding:26px 0 22px;position:relative;transition:color .5s var(--ease),padding .6s var(--ease)}.index__row .no{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.index__row .ttl{font-family:var(--display);font-weight:500;font-size:clamp(32px,4.4vw,76px);white-space:nowrap;line-height:1;letter-spacing:-.045em;padding-right:.06em}.index__row .meta{font-size:13px;color:var(--muted)}.index__row .yr{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.index__row>a>*{transform:translateY(105%);transition:transform 1.1s var(--ease)}body.view-index .index__row>a>*{transform:none}.index__row:nth-child(2)>a>*{transition-delay:.05s}.index__row:nth-child(3)>a>*{transition-delay:.1s}.index__row:nth-child(4)>a>*{transition-delay:.15s}.index__row:nth-child(5)>a>*{transition-delay:.2s}.index__row:nth-child(n+6)>a>*{transition-delay:.25s}@media(hover:hover){.index__list:hover .index__row a{color:var(--muted)}.index__list .index__row a:hover{color:var(--ink);padding-left:18px}}.index__preview{position:fixed;left:0;top:0;width:min(34vw,460px);aspect-ratio:16 / 10;pointer-events:none;z-index:11;border-radius:12px;overflow:hidden;opacity:0;transform:scale(.8);transition:opacity .4s var(--ease),transform .6s var(--ease);box-shadow:0 40px 80px -20px #000000b3}.index__preview.is-on{opacity:1;transform:scale(1)}.index__preview img{width:100%;height:100%;object-fit:cover}@media(max-width:760px){.index__head,.index__row a{grid-template-columns:34px minmax(0,1fr) 44px;gap:12px}.hide-sm,.index__preview{display:none}}.profile{background:var(--bg);clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}body.view-profile .profile{clip-path:inset(0 0 0 0)}.profile__inner{padding:calc(var(--edge) + 110px) var(--gutter) calc(var(--edge) + 90px);max-width:1500px}.profile__lead{font-family:var(--display);font-weight:500;font-size:clamp(32px,4.8vw,78px);line-height:1.04;letter-spacing:-.04em;margin:0;max-width:17ch}.profile__lead em{font-style:normal;color:var(--muted)}.profile__grid{display:grid;grid-template-columns:1fr 1.4fr;gap:48px 8vw;margin-top:clamp(56px,10vh,120px)}.profile__intro{font-size:clamp(16px,1.3vw,19px);line-height:1.55;color:#cfccc5;margin:0;max-width:42ch}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}.timeline{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.timeline li{display:grid;grid-template-columns:110px 1fr 1.6fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.timeline .t{color:var(--muted);font-variant-numeric:tabular-nums}.timeline .r{color:#bdbab3}.contacts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:36px}.contacts a{font-family:var(--display);font-weight:500;font-size:clamp(24px,2.4vw,36px);letter-spacing:-.035em;line-height:1.1;transition:color .4s var(--ease)}.contacts a span{font-family:var(--sans);font-size:12px;vertical-align:super;margin-left:4px}@media(hover:hover){.contacts a:hover{color:var(--muted)}}@media(max-width:860px){.profile__grid{grid-template-columns:1fr}.timeline li{grid-template-columns:84px 1fr}.timeline .r{grid-column:2}}.detail{background:var(--bg);clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease-io)}body.view-detail .detail{clip-path:inset(0 0 0 0)}.detail__inner{padding:0}.dx-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}.dx-intro{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:calc(var(--edge) + 88px) var(--gutter) calc(var(--edge) + 52px)}.d-kicker{display:flex;gap:18px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.d-kicker b{color:var(--accent);font-weight:600}.dx-intro__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 48px;margin-top:12px}.d-title{font-family:var(--display);font-weight:500;font-size:clamp(48px,7.2vw,128px);line-height:.95;letter-spacing:-.055em;margin:0;text-wrap:balance}.tw{display:inline-block;overflow:hidden;padding:0 .08em .14em;margin:0 -.08em -.14em;vertical-align:top}.tw>span{display:inline-block;transform:translateY(110%) rotate(3deg);transform-origin:0 100%;transition:transform 1.4s var(--ease)}body.view-detail .tw>span{transform:none}.d-actions{display:flex;flex-wrap:wrap;gap:10px}.dx-intro__head .d-actions{margin-bottom:.35em;opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease) .6s,transform 1.2s var(--ease) .6s}body.view-detail .dx-intro__head .d-actions{opacity:1;transform:none}.dx-hero{position:relative;flex:1 1 auto;min-height:240px;margin:clamp(22px,3.6vh,40px) 0 0;border-radius:20px;overflow:hidden;isolation:isolate;border:1px solid var(--line);background:radial-gradient(90% 75% at 50% 0%,color-mix(in oklab,var(--accent) 30%,transparent) 0%,transparent 70%),linear-gradient(180deg,color-mix(in oklab,var(--accent) 8%,#121212),#0c0c0c);opacity:0;transform:translateY(24px);transition:opacity 1.1s var(--ease) .2s,transform 1.4s var(--ease) .2s}body.view-detail .dx-hero{opacity:1;transform:none}.dx-hero picture{display:contents}.dx-hero img{position:absolute;left:50%;top:8%;height:108%;width:auto;max-width:80%;translate:-50% 0;aspect-ratio:16 / 10;object-fit:cover;object-position:top center;border-radius:12px 12px 0 0;box-shadow:0 40px 90px -30px #000000d9,0 0 0 1px #ffffff0f;transform:translateY(40px);transition:transform 1.6s var(--ease) .35s}body.view-detail .dx-hero img{transform:none}.d-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line)}.d-meta dt{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.d-meta dd{margin:0;font-size:14px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{font-size:12px;padding:5px 10px;border:1px solid var(--line);border-radius:99px}.btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 22px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}.btn--solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}@media(hover:hover){.btn:hover{background:var(--accent);border-color:var(--accent);color:#0a0a0a}}.btn--muted{color:var(--muted);cursor:default}.dx-statement{padding:14vh var(--gutter) 12vh}.dx-statement .eyebrow{margin-bottom:28px}.dx-words{font-family:var(--display);font-weight:500;font-size:clamp(30px,4.2vw,72px);line-height:1.08;letter-spacing:-.04em;margin:0;max-width:1250px}.dx-words .w{opacity:.16}.dx-float{height:210vh;height:210svh}.dx-float__space{position:absolute;inset:0;perspective:900px;transform-style:preserve-3d}.dx-float__item{position:absolute;margin:0;width:clamp(150px,21vw,360px);border-radius:10px;overflow:hidden;background:#111;transform:translate3d(-50%,-50%,-2000px);opacity:0;will-change:transform,opacity;box-shadow:0 30px 60px -20px #000c}.dx-float__item.is-phone{width:clamp(80px,8.5vw,150px);border-radius:16px}.dx-float__item img{width:100%;height:auto}.dx-float__center{z-index:2;position:absolute;left:50%;top:50%;translate:-50% -50%;text-align:center;opacity:0;pointer-events:none;width:min(90vw,760px)}.dx-float__center:before{content:"";position:absolute;inset:-60% -30%;z-index:-1;background:radial-gradient(closest-side,#070707d9,#07070700)}.dx-float__center .eyebrow{margin-bottom:18px}.dx-float__text{text-shadow:0 2px 30px rgba(0,0,0,.9);font-family:var(--display);font-weight:500;font-size:clamp(28px,3.4vw,56px);line-height:1.06;letter-spacing:-.04em;margin:0 auto;max-width:15ch}.dx-feat{height:calc(var(--n) * 55vh + 45vh);height:calc(var(--n) * 55svh + 45svh)}.dx-feat__inner{display:grid;grid-template-columns:1.2fr 1fr;gap:6vw;align-items:center;padding:0 var(--gutter)}.dx-feat__media{position:relative;aspect-ratio:16 / 10;border-radius:14px;overflow:hidden;background:#111}.dx-feat__layer{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}.dx-feat__layer.is-active{clip-path:inset(0 0 0 0)}.dx-feat__layer img{width:100%;height:100%;object-fit:cover;object-position:top center;transform:scale(1.14);transition:transform 1.8s var(--ease)}.dx-feat__layer.is-active img{transform:scale(1)}.dx-feat__layer.is-phone{background:radial-gradient(circle at 50% 40%,#222,#0d0d0d 70%)}.dx-feat__layer.is-phone img{object-fit:contain;padding:5% 0}.dx-feat__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.dx-feat__item{position:relative;padding:22px 0 24px;border-bottom:1px solid var(--line)}.dx-feat__item h2{font-family:var(--display);font-weight:500;font-size:clamp(28px,3vw,52px);line-height:1.04;letter-spacing:-.04em;margin:0;color:var(--muted);transition:color .6s var(--ease)}.dx-feat__item.is-active h2{color:var(--ink)}.dx-feat__body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .9s var(--ease-io),opacity .6s var(--ease)}.dx-feat__item.is-active .dx-feat__body{grid-template-rows:1fr;opacity:1}.dx-feat__body>div{overflow:hidden}.dx-feat__body p{color:#c9c6bf;max-width:46ch;margin:14px 0 0}.dx-feat__body .chips{margin-top:16px}.dx-feat__bar{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left}.dx-feat__item.is-active .dx-feat__bar{transform:scaleX(var(--p, 0))}.dx-next{display:block;padding:12vh var(--gutter) calc(var(--edge) + 80px);border-top:1px solid var(--line)}.dx-next .eyebrow{margin-bottom:8px}.dx-next .ttl{font-family:var(--display);font-weight:500;font-size:clamp(52px,9vw,150px);line-height:.95;letter-spacing:-.055em;padding-right:.06em;transition:color .5s var(--ease)}.dx-next__media{margin:36px 0 0;width:min(560px,80%);aspect-ratio:16 / 10;border-radius:14px;overflow:hidden;clip-path:inset(0 0 0 0 round 14px);transition:clip-path 1s var(--ease)}.dx-next__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.4s var(--ease)}@media(hover:hover){.dx-next:hover .ttl{color:var(--accent)}.dx-next:hover .dx-next__media{clip-path:inset(4% 4% 4% 4% round 14px)}.dx-next:hover .dx-next__media img{transform:scale(1)}}@media(max-width:760px){.dx-intro{min-height:0;padding-top:calc(var(--edge) + 68px)}.dx-intro__head{gap:18px}.dx-intro__head .d-actions{margin-bottom:0;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.d-actions .btn{justify-content:center;padding:0 12px}.dx-hero{flex:none;min-height:0;border-radius:16px}.dx-hero.has-phone{height:min(64svh,132vw)}.dx-hero.has-phone img{top:7%;height:100%;max-width:64%;aspect-ratio:390 / 844;border-radius:22px 22px 0 0}.dx-hero:not(.has-phone){aspect-ratio:16 / 10}.dx-hero:not(.has-phone) img{top:16%;height:auto;width:88%;max-width:none;border-radius:8px 8px 0 0}.d-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-feat__inner{grid-template-columns:1fr;align-content:start;gap:18px;padding-top:calc(var(--edge) + 48px);padding-bottom:calc(var(--edge) + 48px)}.dx-feat__media{aspect-ratio:auto;height:min(30svh,58vw)}.dx-feat__item{padding:11px 0 13px}.dx-feat__item h2{font-size:28px}.dx-float__item{width:38vw;border-radius:8px}.dx-float__item.is-phone{width:17vw;border-radius:10px}.dx-statement{padding:10vh var(--gutter) 8vh}.dx-feat__body p{font-size:14px;line-height:1.45;margin-top:10px}}.fx-off .dx-float,.fx-off .dx-feat{height:auto}.fx-off .dx-sticky{position:relative;height:auto;overflow:visible}.fx-off .dx-words .w{opacity:1}.fx-off .dx-float__space{position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:10vh var(--gutter);perspective:none}.fx-off .dx-float__item{position:static;transform:none;opacity:1;width:auto}.fx-off .dx-float__item:nth-child(n+5){display:none}.fx-off .dx-float__center{position:static;translate:none;opacity:1;margin:0 auto}.fx-off .dx-feat__inner{padding:10vh var(--gutter)}.fx-off .dx-feat__body{grid-template-rows:1fr;opacity:1}.fx-off .dx-feat__item h2{color:var(--ink)}#gl,.labels{transition:opacity .9s var(--ease),filter .9s var(--ease)}body.view-profile #gl,body.view-detail #gl,body.view-index .labels,body.view-profile .labels,body.view-detail .labels{opacity:0}.cursor{position:fixed;left:0;top:0;z-index:60;pointer-events:none;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink);display:grid;place-items:center;mix-blend-mode:difference;transition:width .5s var(--ease),height .5s var(--ease),margin .5s var(--ease),opacity .3s}.cursor span{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .3s}.cursor.is-label{width:78px;height:78px;margin:-39px 0 0 -39px;mix-blend-mode:normal}.cursor.is-label span{opacity:1}.cursor.is-hidden{opacity:0}@media(pointer:coarse),(hover:none){.cursor{display:none}}.grain{position:fixed;inset:-50%;z-index:40;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1s steps(6) infinite}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}body.no-webgl #gl,body.no-webgl .labels,body.no-webgl .chrome__bc,body.no-webgl .hint,body.no-webgl #navFeatured,body.no-webgl .chrome__bl .sep{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation:none!important}}.chrome:before,.chrome:after{content:"";position:absolute;left:0;right:0;height:calc(var(--edge) + 72px);opacity:0;pointer-events:none;transition:opacity .6s var(--ease);z-index:-1}.chrome:before{top:0;background:linear-gradient(var(--bg) 40%,rgba(7,7,7,0))}.chrome:after{bottom:0;background:linear-gradient(rgba(7,7,7,0),var(--bg) 60%)}body.view-detail .chrome:before,body.view-detail .chrome:after,body.view-profile .chrome:before,body.view-profile .chrome:after,body.view-index .chrome:before,body.view-index .chrome:after{opacity:1}@media(max-width:640px){.hint{top:auto;bottom:calc(var(--edge) + 34px)}}@media(max-width:760px)and (max-height:700px){.dx-feat__media{height:min(25svh,52vw)}.dx-feat__item{padding:8px 0 10px}.dx-feat__item h2{font-size:24px}.dx-feat__body p{font-size:13px}.dx-feat__body .chips{margin-top:10px}}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/portfolio/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:500;src:url(/portfolio/assets/inter-tight-latin-500-normal-BFXNXuvF.woff2) format("woff2"),url(/portfolio/assets/inter-tight-latin-500-normal-pobXraBK.woff) format("woff")}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:600;src:url(/portfolio/assets/inter-tight-latin-600-normal-BgSTtRxb.woff2) format("woff2"),url(/portfolio/assets/inter-tight-latin-600-normal-D7bG6gX1.woff) format("woff")}
