@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-cyrillic-ext-400-normal.f572b170.woff2) format("woff2"),url(/_next/static/media/inter-cyrillic-ext-400-normal.2a31c04b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-cyrillic-400-normal.372704ff.woff2) format("woff2"),url(/_next/static/media/inter-cyrillic-400-normal.a6b6ef6f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-greek-ext-400-normal.4ce1df5d.woff2) format("woff2"),url(/_next/static/media/inter-greek-ext-400-normal.88ede1ea.woff) format("woff");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-greek-400-normal.d7020e3c.woff2) format("woff2"),url(/_next/static/media/inter-greek-400-normal.cc58c11b.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-vietnamese-400-normal.de4fc44f.woff2) format("woff2"),url(/_next/static/media/inter-vietnamese-400-normal.a9dd2faf.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-latin-ext-400-normal.32a25442.woff2) format("woff2"),url(/_next/static/media/inter-latin-ext-400-normal.4edcaace.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/inter-latin-400-normal.ef6d3f52.woff2) format("woff2"),url(/_next/static/media/inter-latin-400-normal.2c7a775c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-cyrillic-ext-500-normal.fe0d9b14.woff2) format("woff2"),url(/_next/static/media/inter-cyrillic-ext-500-normal.5a6bb1da.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-cyrillic-500-normal.7c15bba8.woff2) format("woff2"),url(/_next/static/media/inter-cyrillic-500-normal.b9f8c929.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-greek-ext-500-normal.cbd51e2d.woff2) format("woff2"),url(/_next/static/media/inter-greek-ext-500-normal.7a4aa726.woff) format("woff");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-greek-500-normal.f41f43db.woff2) format("woff2"),url(/_next/static/media/inter-greek-500-normal.d9a33207.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-vietnamese-500-normal.7c0a695f.woff2) format("woff2"),url(/_next/static/media/inter-vietnamese-500-normal.a3a73b95.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-latin-ext-500-normal.d9b491de.woff2) format("woff2"),url(/_next/static/media/inter-latin-ext-500-normal.a19a84a6.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/inter-latin-500-normal.b7b43ace.woff2) format("woff2"),url(/_next/static/media/inter-latin-500-normal.cb4c8ceb.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--ink:#252422;--muted:#868686;--copy-muted:#797979;--placeholder:#cccccc;--placeholder-hover:#c7c7c7;--rule:#d4d4d4;--page-bg:#ffffff;--radius:16px;--shell-width:1333px;--sidebar-width:363px;--home-width:633.594px;--detail-width:828px;--ease-out:cubic-bezier(0.22,1,0.36,1)}html:has(.portfolio-shell){--ink:#f0efeb;--muted:#9b9b96;--copy-muted:#aaa9a4;--placeholder:#30302d;--placeholder-hover:#3a3a36;--rule:#444440;--page-bg:#151513;color-scheme:dark}html[data-theme=light]:has(.portfolio-shell){--ink:#252422;--muted:#868686;--copy-muted:#797979;--placeholder:#cccccc;--placeholder-hover:#c7c7c7;--rule:#d4d4d4;--page-bg:#ffffff;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable both-edges}body,html{width:100%;height:100%;min-width:320px;overflow:hidden;background:var(--page-bg)}body{margin:0;color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:15px;font-weight:400;line-height:21px;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}a{color:inherit;text-decoration:none}figure,h1,h2,p{margin:0}::selection{color:var(--page-bg);background:var(--ink)}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:6px 10px;color:var(--page-bg);background:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.focus-ring: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}@keyframes load-fade-in{0%{opacity:0}}@keyframes load-appear{0%{opacity:0;transform:translateY(4px)}}@keyframes initial-project-reveal{0%{opacity:0;transform:translateY(12px)}}@keyframes detail-content-enter{0%{opacity:0;transform:translateY(8px)}}@keyframes signature-trim-path{0%{clip-path:inset(0 100% 0 0);stroke-dashoffset:100%}82%{clip-path:inset(0);opacity:1;stroke-dashoffset:0}to{clip-path:inset(0);opacity:0;stroke-dashoffset:0}}@keyframes signature-fill-in{0%{opacity:0}}.portfolio-shell{--radius:0px;display:grid;grid-template-columns:var(--sidebar-width) var(--content-width);justify-content:space-between;width:min(100%,var(--shell-width));height:100svh;min-height:0;margin:0 auto;overflow:hidden;color:var(--ink);background:var(--page-bg)}.portfolio-shell--about,.portfolio-shell--home{--content-width:var(--home-width)}.portfolio-shell--contact,.portfolio-shell--detail{--content-width:var(--detail-width)}.sidebar{position:relative;width:var(--sidebar-width);height:100%;min-height:0;justify-content:space-between;align-self:start;padding-block:50px;animation:load-fade-in .42s var(--ease-out) backwards}.sidebar,.sidebar-top{display:flex;flex-direction:column}.sidebar-top{width:100%;gap:26px}.identity{display:flex;flex-direction:column;gap:8px}.identity h1,.identity p,.identity-name,.sidebar-copy,.sidebar-copy p,.signature,.social-line{font-size:15px;line-height:21px}.identity h1,.identity-name{color:var(--ink);font-weight:500;margin:0}.proximity-text{position:relative;display:inline}.proximity-text__base{opacity:1}.proximity-text__overlay{position:absolute;inset:0;opacity:0;pointer-events:none}.proximity-text__character{position:absolute;display:block;color:inherit;font:inherit;line-height:inherit;text-align:left;transform-origin:center;white-space:pre}.reference-cursor{position:fixed;z-index:2147483646;inset:0;display:none;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .12s var(--ease-out)}.reference-cursor__head,.reference-cursor__tail{position:absolute;top:0;left:0;display:block;pointer-events:none;will-change:transform,opacity}.reference-cursor__head{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(26,26,26,.08),0 1px 3px rgba(26,26,26,.18);transform-origin:center}.reference-cursor__tail{width:12px;height:7px;background:linear-gradient(90deg,#d92d55,#ee4568 52%,#ff758a);clip-path:polygon(0 50%,42% 37%,100% 3%,100% 97%,42% 63%);opacity:0;transform-origin:100% 50%}.identity p{color:var(--muted)}.sidebar-copy{display:flex;flex-direction:column;gap:12px}.sidebar-copy--about{white-space:pre-wrap}.social-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;white-space:normal}.social-links{display:inline-flex;flex-wrap:wrap;gap:4px}.social-item{white-space:nowrap}.social-link{position:relative;display:inline-block;color:inherit;line-height:inherit;text-decoration:none;transform-origin:left center;transition:transform .18s var(--ease-out)}.social-link:after{position:absolute;right:0;bottom:0;left:0;height:1px;background:currentColor;content:"";opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity .16s ease,transform .16s ease}.social-link:focus-visible:after{opacity:1;transform:scaleX(1)}.social-link:active{transform:scale(.98);transition-duration:.12s}.signature{display:block;width:174px;height:24px;color:var(--ink);font-family:Segoe Script,Bradley Hand,cursive;overflow:visible}.signature__fill,.signature__stroke{font:15px Segoe Script,Bradley Hand,cursive;letter-spacing:0}.signature__fill{fill:currentColor;animation:signature-fill-in .18s var(--ease-out) .48s backwards}.signature__stroke{fill:none;stroke:currentColor;stroke-width:.55px;stroke-dasharray:100%;stroke-dashoffset:100%;stroke-linecap:round;stroke-linejoin:round;animation:signature-trim-path .52s var(--ease-out) 80ms both}.sidebar-footer{display:flex;width:100%;min-height:25px;align-items:center}.sidebar-nav{min-width:0;flex:1}.sidebar-nav ul{display:grid;grid-template-columns:41px 44px 58px 15px;justify-content:space-between;align-items:center;margin:0;padding:0;list-style:none}.sidebar-theme-item{width:15px;height:25px}.contact-trigger,.sidebar-nav a{display:inline-block;color:var(--muted);line-height:25px;transition:color .18s ease,transform .16s var(--ease-out)}.contact-trigger:focus-visible,.sidebar-nav a:focus-visible{color:var(--ink)}.contact-trigger{padding:0;border:0;background:none;font:inherit;line-height:25px;cursor:pointer}.contact-positioner{z-index:50}.contact-popover{position:relative;display:flex;align-items:center;gap:4px;padding:1px 8px;max-width:calc(100vw - 32px);border-radius:7px;color:#868686;background:#000;font-size:15px;line-height:25px;transform-origin:var(--transform-origin);opacity:1;transform:translateY(0) scale(1);transition:opacity 125ms var(--ease-out),transform 125ms var(--ease-out)}.contact-popover[data-ending-style],.contact-popover[data-starting-style]{opacity:0;transform:translateY(12%) scale(.95)}.contact-popover[data-side=bottom][data-ending-style],.contact-popover[data-side=bottom][data-starting-style]{transform:translateY(-12%) scale(.95)}.contact-popover-email{display:inline-block;white-space:nowrap;transform:scale(1);transform-origin:center;transition:transform .14s var(--ease-out)}.contact-popover-email:active{transform:scale(.95);transition-duration:.1s}.contact-copy{display:grid;place-items:center;flex:0 0 20px;width:20px;height:25px;padding:0;border:0;background:transparent;color:#bdbdbd;font:inherit;cursor:pointer}.contact-copy-check,.contact-copy-icon{grid-area:1/1;display:grid;place-items:center;opacity:1;transform:scale(1);transition:opacity 125ms var(--ease-out),transform 125ms var(--ease-out)}.contact-copy-check,.contact-copy[data-copied] .contact-copy-icon{opacity:0;transform:scale(.95)}.contact-copy[data-copied] .contact-copy-check{opacity:1;transform:scale(1)}.contact-copy img{display:block;width:12px;height:12px}.contact-popover a:focus-visible,.contact-popover button:focus-visible{outline:1px solid #fff;outline-offset:2px}.contact-feedback{position:absolute;right:0;bottom:calc(100% + 6px)}.contact-feedback:not(:empty){padding:3px 8px;border-radius:7px;background:#000;color:#bdbdbd;font-size:12px;line-height:18px}@media (prefers-reduced-motion:reduce){.contact-copy-check,.contact-copy-icon,.contact-popover,.contact-popover-email{transition:opacity 125ms var(--ease-out)}.contact-popover,.contact-popover .contact-copy .contact-copy-check,.contact-popover .contact-copy .contact-copy-icon,.contact-popover-email,.contact-popover[data-side][data-ending-style],.contact-popover[data-side][data-starting-style]{transform:none}}.contact-popover[data-instant=dismiss],.contact-popover[data-instant=focus],.contact-popover[data-instant=trigger-change],.contact-popover[data-keyboard],.contact-popover[data-keyboard] .contact-copy-check,.contact-popover[data-keyboard] .contact-copy-icon{transition:none}@media (hover:none),(pointer:coarse){.contact-popover{padding-block:4px;gap:8px}.contact-copy{width:32px;height:32px;flex-basis:32px}}.theme-toggle{position:relative;display:grid;width:25px;height:25px;flex:0 0 25px;place-items:center;padding:0;margin-inline:-5px;border:0;border-radius:0;color:var(--muted);background:transparent;cursor:pointer;transition:color .18s ease,border-color .18s ease,transform .16s var(--ease-out)}.theme-toggle__icon{position:absolute;width:15px;height:15px;background:currentColor;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-position:center;mask-repeat:no-repeat;mask-size:contain;transition:opacity .18s ease,transform .18s var(--ease-out)}.theme-toggle__icon--sun{-webkit-mask-image:url(/sun.svg);mask-image:url(/sun.svg);opacity:1;transform:rotate(0deg) scale(1)}.theme-toggle__icon--moon{-webkit-mask-image:url(/figma/nav-moon.svg);mask-image:url(/figma/nav-moon.svg);opacity:0;transform:rotate(28deg) scale(.82)}html[data-theme=light] .theme-toggle__icon--sun{opacity:0;transform:rotate(-28deg) scale(.82)}html[data-theme=light] .theme-toggle__icon--moon{opacity:1;transform:rotate(0deg) scale(1)}.theme-toggle:focus-visible{color:var(--ink);border-color:var(--ink)}.theme-toggle:active{transform:scale(.92);transition-duration:.12s}.content-column{width:100%;height:100%;min-width:0;padding:50px 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;animation:load-appear .52s var(--ease-out) 60ms backwards}.content-column::-webkit-scrollbar{display:none}@media (min-width:768px){.portfolio-shell--about,.portfolio-shell--contact,.portfolio-shell--detail,.portfolio-shell--home{overflow:visible}.portfolio-shell--home .content-column{width:calc(100% + 16px);margin-inline:-8px;padding-inline:8px}}.route-content{width:100%;min-width:0}[data-reveal-root][data-reveal-ready] [data-reveal]{opacity:1;transform:translateY(0) scale(1);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--reveal-delay,0s)}[data-reveal-root][data-reveal-ready] [data-reveal]:not([data-revealed]){opacity:0;transform:translateY(16px) scale(.997)}[data-reveal-root][data-reveal-ready] [data-reveal][data-initial-reveal]{animation:initial-project-reveal .42s var(--ease-out) backwards;animation-delay:var(--reveal-delay,0s)}.about-feed,.home-feed{display:flex;flex-direction:column;gap:42px}.showreel-card{display:grid;grid-template-columns:235.506px minmax(0,1fr);gap:16.096px;width:633.127px;max-width:100%}.showreel-card .placeholder{width:235.506px;max-width:100%;height:132.472px}.showreel-copy{display:flex;height:132px;flex-direction:column;gap:6px}.showreel-description{display:flex;flex-direction:column;gap:10px;color:var(--copy-muted)}.project-card{display:flex;width:633.127px;max-width:100%;flex-direction:column;gap:32px}.about-feed .placeholder,.about-media,.project-card .placeholder{width:100%;aspect-ratio:633.594/356.397}.about-media{position:relative;display:block;overflow:hidden;margin:0;background:var(--placeholder)}.about-media__asset{display:block;width:100%;height:100%;object-fit:cover}.about-media--portrait .about-media__asset{object-position:50% 68%}.about-media--landscape-photo .about-media__asset{object-position:50% 72%}.placeholder{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--placeholder);transform-origin:center;transition:filter .24s var(--ease-out),opacity .16s var(--ease-out),transform .24s var(--ease-out)}.placeholder,.placeholder-surface,.project-media-inner{display:block;filter:brightness(1) contrast(1);will-change:transform}.placeholder-surface,.project-media-inner{position:absolute;inset:0;transform:scale(1);transition:background-color .18s ease,filter .6s var(--ease-out),transform .6s var(--ease-out)}.placeholder-surface{background:var(--placeholder)}.placeholder-number{position:absolute;z-index:1;bottom:18px;left:20px;display:block;color:color-mix(in srgb,var(--ink) 46%,transparent);font-size:clamp(42px,6vw,72px);font-weight:500;line-height:.82;letter-spacing:-.07em;pointer-events:none}.showreel-card .placeholder-number{bottom:12px;left:13px;font-size:36px}.detail-project .placeholder-number{bottom:24px;left:26px;font-size:clamp(64px,8vw,104px)}.project-media-inner{overflow:hidden}.project-media-poster,.project-media-preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.project-media-poster{opacity:1;transition:opacity .14s var(--ease-out)}.project-media-preview{opacity:0;transform:scale(1.01);transition:opacity .14s var(--ease-out),transform .14s var(--ease-out)}.project-media[data-previewing=true] .project-media-preview{opacity:1;transform:scale(1);transition-duration:.18s,.24s}.project-media[data-previewing=true] .project-media-poster{opacity:0;transition:opacity .18s var(--ease-out)}.project-card:active .placeholder,.showreel-card:active .placeholder{transform:scale(.97);transition:background-color .18s ease,filter .16s var(--ease-out),opacity .16s var(--ease-out),transform .16s var(--ease-out)}.detail-project-copy,.overview-copy,.project-copy{display:flex;width:100%;flex-direction:column;gap:5.365px}.overview-title,.project-title,.showreel-title{padding:1.341px 0 2.683px;font-size:15px;font-weight:500;line-height:21px}.detail-meta,.overview-description,.project-description{padding:1.341px 0 2.683px;color:var(--copy-muted);font-size:15px;line-height:21px}.detail-feed{display:flex;width:100%;flex-direction:column;gap:42px}.overview-copy .overview-description+.overview-description{margin-top:12px}.detail-project{display:flex;width:100%;flex-direction:column;gap:32px}.detail-project .placeholder{width:100%;aspect-ratio:828/487}.detail-copy-entrance,.detail-media-entrance,.detail-overview-entrance,.detail-rule-entrance{animation:detail-content-enter .26s var(--ease-out) backwards}.detail-media-entrance,.detail-media-entrance .placeholder{width:100%}.detail-media-entrance simple-player,.simple-project-player__fallback{display:block;width:100%;aspect-ratio:828/487;overflow:hidden;border:0;border-radius:0;background:var(--placeholder)}.simple-project-player__fallback{height:auto;object-fit:cover}.simple-project-player{position:relative;width:100%;background:var(--placeholder)}.simple-project-player__poster{z-index:1;object-fit:contain;pointer-events:none}.player-quality{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;color:var(--copy-muted);font-size:12px;line-height:20px}.player-quality select{max-width:145px;border:0;border-radius:0;padding:2px 0;background:var(--page-bg);color:var(--ink);font:inherit}.detail-copy-entrance{animation-delay:40ms}.detail-rule-entrance{animation-delay:80ms}.detail-overview-entrance{animation-delay:.12s}.figma-rule{display:block;width:100%;height:.5px;object-fit:fill}html:has(.portfolio-shell) .figma-rule{filter:brightness(.34)}.showreel-description p{padding:1.341px 0 2.683px}.overview-copy{max-width:698px}.contact-panel{display:flex;min-height:487px;flex-direction:column;justify-content:space-between;padding:32px;border-radius:var(--radius);background:var(--placeholder)}.contact-panel h2{font-size:15px;font-weight:500;line-height:21px}.contact-email{display:inline-block;font-size:clamp(28px,4vw,56px);font-weight:400;line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere;transform-origin:left center;transition:opacity .16s var(--ease-out),transform .16s var(--ease-out)}.contact-email:active{transform:scale(.97)}.not-found{display:flex;min-height:100svh;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.not-found h1{font-size:15px;font-weight:500}@media (max-width:1432px){.portfolio-shell{width:calc(100% - 64px)}}@media (max-width:1200px){:root{--sidebar-width:300px}.portfolio-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:72px}}@media (max-width:900px){:root{--sidebar-width:248px}.portfolio-shell{width:calc(100% - 40px);gap:48px}.contact-trigger,.detail-meta,.identity h1,.identity p,.identity-name,.overview-description,.overview-title,.project-description,.project-title,.showreel-title,.sidebar-copy,.sidebar-nav a,.signature,.social-line{font-size:14px;line-height:20px}.showreel-card{grid-template-columns:minmax(150px,.72fr) minmax(0,1fr)}.showreel-card .placeholder{width:100%}}@media (max-width:767px){body,html{width:100%;height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:auto}body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.portfolio-shell{display:block;width:calc(100% - 32px);height:auto;min-height:0;overflow:visible}.sidebar{position:static;width:100%;height:auto;min-height:0;padding-top:24px}.sidebar-top{max-width:520px}.sidebar-footer{position:fixed;z-index:20;right:0;bottom:0;left:0;width:100%;padding:12px 28px calc(16px + env(safe-area-inset-bottom));background:var(--page-bg)}.content-column{height:auto;padding:64px 0 24px;overflow:visible}.showreel-card{grid-template-columns:1fr;gap:20px;width:100%}.showreel-card .placeholder{width:100%;height:auto;aspect-ratio:16/9}.showreel-copy{height:auto}.detail-project,.project-card{gap:20px}.about-feed,.detail-feed,.home-feed{gap:36px}.contact-panel{min-height:360px;padding:24px}}@media (max-width:374px){body:has(.portfolio-shell),html:has(.portfolio-shell){min-width:0}.portfolio-shell{width:calc(100% - 24px)}}.v2-page{width:100%;height:100svh;overflow-x:hidden;overflow-y:auto;color:var(--ink);background:#f7f7f4;overscroll-behavior-y:contain;scrollbar-width:none}.v2-page::-webkit-scrollbar{display:none}.v2-header{position:sticky;z-index:30;top:0;border-bottom:1px solid rgba(37,36,34,.14);background:rgba(247,247,244,.96);animation:load-fade-in .42s var(--ease-out) backwards}.v2-footer,.v2-header-inner,.v2-main{width:min(100%,1600px);margin-inline:auto}.v2-header-inner{display:grid;min-height:82px;grid-template-columns:1fr auto 1fr;align-items:center;padding-inline:clamp(24px,4vw,64px)}.v2-brand{display:inline-flex;width:fit-content;align-items:flex-start;gap:6px;font-weight:500}.v2-version{padding-top:1px;font-size:9px;font-weight:500;letter-spacing:.08em;line-height:1}.v2-header-role,.v2-muted{color:var(--copy-muted)}.v2-nav{display:flex;justify-content:flex-end;gap:28px}.v2-nav a{position:relative;color:var(--copy-muted);transition:color .18s ease}.v2-nav a[aria-current=page]{color:var(--ink)}.v2-nav-indicator{position:absolute;right:0;bottom:-6px;left:0;height:1px;background:currentColor}.v2-main{min-height:calc(100svh - 82px);padding:56px clamp(24px,4vw,64px) 120px;animation:load-appear .52s var(--ease-out) 60ms backwards}.v2-route-content{width:100%;min-width:0}.v2-kicker{color:var(--copy-muted);font-size:12px;font-weight:500;letter-spacing:.08em;line-height:16px;text-transform:uppercase}.v2-home-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.38fr);gap:32px;padding-bottom:104px}.v2-home-intro .v2-kicker{grid-column:1/-1}.v2-about-hero h1,.v2-contact h1,.v2-detail-header h1,.v2-home-intro h1{max-width:1080px;font-size:clamp(46px,6.4vw,104px);font-weight:400;letter-spacing:-.055em;line-height:.94}.v2-intro-copy{max-width:420px;align-self:end;color:var(--copy-muted);font-size:16px;line-height:23px}.v2-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:14px 0 18px;border-top:1px solid rgba(37,36,34,.2)}.v2-section-heading h2,.v2-section-heading p{font-size:13px;font-weight:400;line-height:18px}.v2-section-heading p{color:var(--copy-muted)}.v2-featured-card{display:block;margin-bottom:80px}.v2-detail-media,.v2-thumb{display:block;width:100%;overflow:hidden;background:#cecece;filter:brightness(1) contrast(1);transition:background-color .18s ease,filter .6s var(--ease-out),opacity .16s var(--ease-out),transform .6s var(--ease-out)}.v2-thumb{aspect-ratio:4/3}.v2-thumb--featured{aspect-ratio:2.05/1}.v2-featured-card:active .v2-thumb,.v2-project-card:active .v2-thumb{transform:scale(.97);transition:background-color .18s ease,filter .16s var(--ease-out),opacity .16s var(--ease-out),transform .16s var(--ease-out)}.v2-project-meta{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;padding-top:16px}.v2-project-meta h3,.v2-project-meta p,.v2-project-number{font-size:13px;line-height:18px}.v2-project-meta h3{font-weight:500}.v2-project-meta p,.v2-project-number{color:var(--copy-muted)}.v2-project-meta>div p{max-width:460px;margin-top:2px}.v2-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 24px}.v2-project-card:nth-child(4n+2) .v2-thumb,.v2-project-card:nth-child(4n+3) .v2-thumb{aspect-ratio:1/1}.v2-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:32px;padding:30px clamp(24px,4vw,64px) 38px;border-top:1px solid rgba(37,36,34,.14);animation:load-fade-in .42s var(--ease-out) .1s backwards}.v2-footer-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.v2-v1-link{justify-self:end}.v2-about-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:72px;padding-bottom:104px}.v2-about-hero .v2-kicker{margin-bottom:24px}.v2-about-copy{display:flex;max-width:520px;flex-direction:column;align-self:end;gap:18px;color:var(--copy-muted);font-size:16px;line-height:23px}.v2-about-media{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:24px}.v2-about-media .v2-thumb:first-child{aspect-ratio:4/3}.v2-about-media .v2-thumb:last-child{aspect-ratio:3/4}.v2-capabilities{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-top:120px;padding-top:18px;border-top:1px solid rgba(37,36,34,.2)}.v2-capabilities h2{font-size:13px;font-weight:400}.v2-capabilities ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 32px;margin:0;padding:0;list-style:none;font-size:clamp(22px,2.5vw,38px);letter-spacing:-.035em;line-height:1.1}.v2-contact{display:flex;min-height:calc(100svh - 258px);flex-direction:column}.v2-contact-main{display:flex;flex:1;flex-direction:column;justify-content:center;gap:48px;padding-block:80px}.v2-contact h1{max-width:1200px}.v2-contact-email{display:inline-block;width:fit-content;border-bottom:1px solid;font-size:clamp(26px,4vw,64px);letter-spacing:-.04em;line-height:1.05;transform-origin:left center;transition:opacity .16s var(--ease-out),transform .16s var(--ease-out)}.v2-contact-email:active{transform:scale(.97)}.v2-contact-footnote{display:flex;justify-content:space-between;gap:24px;padding-top:18px;border-top:1px solid rgba(37,36,34,.2);color:var(--copy-muted)}.v2-detail-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);gap:36px 64px;padding-bottom:64px}.v2-detail-header .v2-kicker,.v2-detail-header h1{grid-column:1/-1}.v2-detail-intro{display:contents}.v2-detail-intro>p{max-width:760px;font-size:clamp(22px,2.7vw,42px);letter-spacing:-.035em;line-height:1.08}.v2-detail-intro dl{display:flex;margin:0;flex-direction:column;gap:10px}.v2-detail-intro dl div{display:flex;justify-content:space-between;gap:24px;padding-bottom:8px;border-bottom:1px solid rgba(37,36,34,.14)}.v2-detail-intro dd,.v2-detail-intro dt{margin:0;font-size:13px;line-height:18px}.v2-detail-intro dt{color:var(--copy-muted)}.v2-detail-media{aspect-ratio:16/9}.v2-detail-overview{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-block:104px;padding-top:18px;border-top:1px solid rgba(37,36,34,.2)}.v2-detail-overview h2{font-size:13px;font-weight:400}.v2-detail-overview p{max-width:820px;font-size:clamp(22px,2.7vw,42px);letter-spacing:-.035em;line-height:1.1}.v2-detail-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.v2-detail-media--secondary{aspect-ratio:4/3}.v2-detail-back{margin-top:104px;padding-top:18px;border-top:1px solid rgba(37,36,34,.2)}@media (max-width:900px){.v2-header-inner{grid-template-columns:1fr 1fr}.v2-header-role{display:none}.v2-about-hero,.v2-detail-header,.v2-home-intro{grid-template-columns:1fr}.v2-about-copy,.v2-intro-copy{align-self:start}.v2-about-hero .v2-kicker,.v2-detail-header .v2-kicker,.v2-detail-header h1{grid-column:auto}.v2-detail-intro{display:flex;flex-direction:column;gap:36px}}@media (max-width:767px){.v2-page{height:auto;min-height:100svh;overflow:visible}.v2-header-inner{display:flex;min-height:96px;flex-wrap:wrap;align-content:center;gap:14px 24px;padding:14px 16px}.v2-header-inner,.v2-nav{justify-content:space-between}.v2-nav{width:100%;gap:16px}.v2-main{min-height:calc(100svh - 96px);padding:32px 16px 72px}.v2-home-intro{display:block;padding-bottom:64px}.v2-about-hero h1,.v2-contact h1,.v2-detail-header h1,.v2-home-intro h1{margin-top:22px;font-size:clamp(42px,13vw,64px)}.v2-intro-copy{margin-top:28px}.v2-featured-card{margin-bottom:56px}.v2-thumb--featured{aspect-ratio:4/3}.v2-about-media,.v2-detail-media-grid,.v2-project-grid{grid-template-columns:1fr;gap:52px}.v2-project-card:nth-child(n) .v2-thumb{aspect-ratio:4/3}.v2-project-meta{grid-template-columns:30px minmax(0,1fr) auto}.v2-footer{grid-template-columns:1fr auto;gap:28px 16px;padding:26px 16px 34px}.v2-footer-socials{grid-column:1/-1;grid-row:2;justify-content:flex-start}.v2-about-hero{gap:36px;padding-bottom:64px}.v2-about-copy{font-size:15px;line-height:21px}.v2-about-media .v2-thumb:last-child{aspect-ratio:4/3}.v2-capabilities,.v2-detail-overview{grid-template-columns:1fr;gap:28px;margin-top:72px}.v2-capabilities ul{grid-template-columns:1fr}.v2-contact{min-height:calc(100svh - 190px)}.v2-contact-main{gap:36px;padding-block:56px}.v2-contact-email{font-size:clamp(24px,8vw,36px)}.v2-contact-footnote{flex-direction:column}.v2-detail-header{gap:28px;padding-bottom:48px}.v2-detail-intro>p,.v2-detail-overview p{font-size:24px}.v2-detail-overview{margin-bottom:72px}.v2-detail-back{margin-top:72px}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.portfolio-shell,.portfolio-shell *{cursor:none!important}.reference-cursor{display:block}}@media (hover:hover) and (pointer:fine){.social-link:hover:after{opacity:1;transform:scaleX(1)}.social-link:hover:not(:active){transform:translateY(-1px) scale(1.02)}.contact-trigger:hover,.sidebar-nav a:hover{color:var(--ink)}.theme-toggle:hover:not(:active){color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}.sidebar-nav .sidebar-back-link:hover:not(:active){transform:translateX(-2px)}.project-card:hover .placeholder-surface,.showreel-card:hover .placeholder-surface,.v2-featured-card:hover .v2-thumb,.v2-project-card:hover .v2-thumb{background:var(--placeholder-hover)}.project-card:hover:not(:active) .placeholder,.showreel-card:hover:not(:active) .placeholder,.v2-featured-card:hover:not(:active) .v2-thumb,.v2-project-card:hover:not(:active) .v2-thumb{filter:brightness(1.02) contrast(1.01);transform:scale(1.02)}.contact-email:hover:not(:active),.v2-contact-email:hover:not(:active){transform:translateY(-1px) scale(1.01)}}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle__icon{transform:none;transition-duration:.12s}html[data-theme=light] .theme-toggle__icon--moon,html[data-theme=light] .theme-toggle__icon--sun{transform:none}}.sidebar-back-link:active{transform:translateX(-1px) scale(.98)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.content-column,.sidebar,.v2-footer,.v2-header,.v2-main{animation-name:load-fade-in;animation-duration:.1s;animation-delay:0s}[data-reveal-root][data-reveal-ready] [data-reveal]{transform:none!important;transition:opacity .1s ease!important;transition-delay:0s}.detail-copy-entrance,.detail-media-entrance,.detail-overview-entrance,.detail-rule-entrance,[data-reveal-root][data-reveal-ready] [data-reveal][data-initial-reveal]{animation:load-fade-in .1s ease backwards;animation-delay:0s}.proximity-text__base{opacity:1!important}.proximity-text__overlay,.signature__stroke{display:none}.signature__fill{animation:load-fade-in .1s ease backwards}.social-link:after{transform:none;transition:opacity .1s ease}.contact-email,.placeholder-surface,.project-card .placeholder,.project-media-inner,.project-media-poster,.project-media-preview,.showreel-card .placeholder,.v2-contact-email,.v2-featured-card .v2-thumb,.v2-project-card .v2-thumb{transition:opacity .1s ease!important}.contact-email,.placeholder-surface,.project-card .placeholder,.project-media-inner,.showreel-card .placeholder,.social-link,.v2-contact-email,.v2-featured-card .v2-thumb,.v2-project-card .v2-thumb{filter:none!important;transform:none!important}.sidebar-back-link{transform:none!important}.contact-email:active,.project-card:active .placeholder,.showreel-card:active .placeholder,.v2-contact-email:active,.v2-featured-card:active .v2-thumb,.v2-project-card:active .v2-thumb{opacity:.82;transform:none}}