@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2) format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff) format("woff");unicode-range:U+0000-00FF,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");unicode-range:U+0000-00FF,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:Syne Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/syne-mono-latin-ext-400-normal-CcK8JL-r.woff2) format("woff2"),url(/assets/syne-mono-latin-ext-400-normal-VVWgLRdL.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:Syne Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/syne-mono-latin-400-normal-KJbW1Qny.woff2) format("woff2"),url(/assets/syne-mono-latin-400-normal-DLtpCS0I.woff) format("woff");unicode-range:U+0000-00FF,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{--radius: 6px;--corner-shape: superellipse(2);--gap: 2px;--page-bg: #c8c4bd;--surface: #ece9e3;--surface-strong: #2a2a2a;--text: #161616;--text-inverse: #ece9e3;--muted: #5f5f5f;--rule: #3c3c3c;--accent: #2a2a2a;--image-bg: #5f5f5f;--field-bg: rgb(42 42 42 / 8%);--field-bg-focus: rgb(42 42 42 / 18%);font-family:Space Grotesk,Arial,sans-serif;color:var(--text);background:var(--page-bg);font-synthesis:none}:root[data-theme=dark]{--page-bg: #2a2a2a;--surface: #0d0d0d;--surface-strong: #e7e3dc;--text: #e7e3dc;--text-inverse: #0d0d0d;--muted: #a9a9a9;--rule: #585858;--accent: #e7e3dc;--image-bg: #070707;--field-bg: rgb(231 227 220 / 12%);--field-bg-focus: rgb(231 227 220 / 18%)}*{box-sizing:border-box}html,body{background:var(--page-bg)}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}a{color:inherit;text-decoration:none}.portfolio-shell{min-height:100svh;padding:2px;display:grid;grid-template-rows:clamp(112px,10vw,136px) minmax(500px,1fr) 62px;gap:var(--gap);background:var(--page-bg)}.portfolio-shell>*{min-width:0}.surface{min-width:0;background:var(--surface);border:0;border-radius:var(--radius);corner-shape:var(--corner-shape)}.masthead{min-height:0;display:grid;grid-template-columns:clamp(104px,10vw,148px) minmax(210px,.72fr) minmax(420px,1.6fr) 62px;gap:var(--gap)}.logo-panel{display:grid;place-items:center}.logo-mark{width:clamp(64px,6vw,82px);aspect-ratio:1;padding:10px;display:grid;grid-template-columns:1fr 1fr;place-items:center;border:1px solid var(--rule);border-radius:var(--radius);corner-shape:var(--corner-shape);background:transparent;color:var(--text);cursor:pointer;font-family:Syne Mono,monospace;font-size:clamp(19px,1.6vw,26px);line-height:1;transition:background-color .16s ease,color .16s ease,transform .22s ease}.logo-mark:hover,.logo-mark:focus-visible,.logo-mark.is-about{background:var(--surface-strong);color:var(--text-inverse)}.logo-mark:active{transform:scale(.96)}.logo-dynamic{min-width:1ch;text-align:center}.name-panel,.statement-panel{display:flex;align-items:center;padding:clamp(16px,1.5vw,20px) clamp(20px,1.8vw,24px)}.name-panel p,.statement-panel p{margin:0;letter-spacing:-.045em}.header-socials{min-height:0;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--gap)}.header-social{display:grid;place-items:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.header-social:hover,.header-social:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}.brand-icon{width:22px;height:22px;display:block;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}.brand-icon-behance{-webkit-mask-image:url(/icons/behance.svg);mask-image:url(/icons/behance.svg)}.brand-icon-linkedin{-webkit-mask-image:url(/icons/linkedin.svg);mask-image:url(/icons/linkedin.svg)}.name-panel p{font-size:clamp(30px,3.2vw,48px);line-height:.94;font-weight:500}.statement-panel p{max-width:38ch;font-size:clamp(16px,1.65vw,23px);line-height:1.12}.work-browser,.project-accordion{min-height:0;display:flex;gap:var(--gap)}.project-slot{min-width:0;overflow:hidden;border-radius:var(--radius);corner-shape:var(--corner-shape);transition:flex-basis .42s cubic-bezier(.22,1,.36,1),flex-grow .42s cubic-bezier(.22,1,.36,1)}.project-slot.is-active{flex:1 1 0}.project-slot.is-collapsed{flex:0 0 62px}.active-stage{min-width:0;flex:1}.project-stage,.about-stage{height:100%;min-height:0;display:grid;grid-template-columns:minmax(250px,.62fr) minmax(360px,1.38fr);gap:var(--gap);animation:stage-in .32s cubic-bezier(.22,1,.36,1)}.project-copy,.about-copy,.press-list,.contact-copy,.contact-form{padding:clamp(24px,3vw,48px)}.project-copy{position:relative;display:flex;flex-direction:column;justify-content:center}.section-header{min-height:38px;display:flex;align-items:flex-start;justify-content:space-between}.eyebrow,.project-link,.availability,.footer-action,.theme-toggle{font-family:Syne Mono,monospace;text-transform:uppercase;letter-spacing:.02em}.eyebrow{margin:0;font-size:12px;color:var(--muted)}.project-copy h2{margin:0 0 18px;font-size:clamp(40px,5vw,78px);line-height:.92;letter-spacing:-.055em;font-weight:500;overflow-wrap:normal}.project-copy>div p,.about-footer-copy p,.contact-copy p{max-width:38ch;margin:0;font-size:clamp(16px,1.4vw,21px);line-height:1.35}.project-copy>div .project-role{margin-top:18px;color:var(--muted);font-family:Space Grotesk,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.3;letter-spacing:.02em;text-transform:none}.project-link{position:absolute;left:clamp(24px,3vw,48px);bottom:clamp(24px,3vw,48px);width:44px;height:44px;display:grid;place-items:center}.project-link svg{width:19px;height:19px;transition:transform .16s ease}.project-link:hover svg,.project-link:focus-visible svg{transform:translate(3px,-3px)}.project-media{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--image-bg)}.project-media picture{position:absolute;inset:clamp(56px,8vh,80px) 0 0;width:auto;height:auto;display:block}.project-media img{width:100%;height:100%;display:block}.project-media img{object-fit:contain;object-position:center bottom}.project-rails{min-height:0;display:flex;gap:var(--gap)}.project-rail{width:62px;height:100%;min-height:0;padding:18px 12px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:32px;background:var(--surface);color:var(--text);cursor:pointer;transition:width .26s cubic-bezier(.22,1,.36,1),background-color .16s ease,color .16s ease}.project-slot .project-rail{width:100%}.project-rail:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}@media(hover:hover){.project-rail:hover{background:var(--surface-strong);color:var(--text-inverse)}}.rail-title{writing-mode:vertical-rl;text-orientation:mixed;font-size:clamp(13px,1.15vw,17px);white-space:nowrap}.project-rail svg{width:18px;height:18px}.about-stage{grid-template-columns:minmax(360px,1fr) minmax(320px,.82fr)}.about-copy{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:clamp(18px,2.3vw,32px)}.about-close{position:absolute;z-index:1;top:12px;right:12px;width:38px;height:38px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--text);cursor:pointer}.about-close:hover,.about-close:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}.about-close svg{width:24px;height:24px}.about-photo{height:clamp(220px,34vh,360px);min-height:0;overflow:hidden;border-radius:var(--radius);corner-shape:var(--corner-shape);background:var(--image-bg)}.about-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 32%}.about-footer-copy{display:grid;gap:20px}.contact-copy{position:relative;display:flex;flex-direction:column;justify-content:space-between}.contact-copy h3{margin:0 0 24px;font-size:clamp(42px,5vw,76px);font-weight:500;letter-spacing:-.055em;line-height:.94}.contact-form{min-height:0;display:grid;grid-template-rows:auto auto auto minmax(140px,1fr) auto auto;gap:18px}.contact-form label{min-height:64px;display:grid;gap:8px;font-family:Syne Mono,monospace;font-size:12px;text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;padding:12px;border:0;border-radius:var(--radius);corner-shape:var(--corner-shape);background:var(--field-bg);color:var(--text);font-family:Space Grotesk,Arial,sans-serif;font-size:16px;resize:none;transition:background-color .16s ease}.contact-form input:focus,.contact-form textarea:focus{background:var(--field-bg-focus)}.contact-form textarea{min-height:120px}.contact-form .message-field{grid-template-rows:auto minmax(120px,1fr)}.contact-form .message-field textarea{height:100%}.send-button{min-height:50px;padding:0 16px;border:0;border-radius:var(--radius);corner-shape:var(--corner-shape);background:var(--surface-strong);color:var(--text-inverse);cursor:pointer;font-family:Syne Mono,monospace;text-transform:uppercase}.send-button:hover,.send-button:focus-visible{opacity:.82}.form-status{min-height:18px;margin:0;font-size:12px}.press-list{min-height:0;display:flex;flex-direction:column;font-family:Space Grotesk,Arial,sans-serif}.press-list ul{min-height:0;flex:1;margin:28px 0 0;padding:0;display:grid;grid-template-rows:repeat(7,minmax(44px,1fr));list-style:none}.press-list li:not(:last-child){border-bottom:1px solid var(--rule)}.press-list a{height:calc(100% - 6px);margin:3px 0;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:var(--radius);corner-shape:var(--corner-shape);font-family:Space Grotesk,Arial,sans-serif;font-size:clamp(15px,1.25vw,17px);font-weight:400;transition:background-color .16s ease,color .16s ease}.press-list a svg{flex:0 0 auto;width:17px;height:17px;transition:transform .16s ease}.press-list a:hover,.press-list a:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}.press-list a:hover svg,.press-list a:focus-visible svg{transform:translate(3px,-3px)}.footer-bar{position:relative;display:grid;grid-template-columns:minmax(280px,1.9fr) minmax(142px,.72fr) minmax(100px,.55fr) 62px;gap:var(--gap)}.availability,.footer-action,.theme-toggle{min-height:0;display:flex;align-items:center;justify-content:center;border:0;background:var(--surface);color:var(--text);font-size:12px}.availability{justify-content:flex-start;gap:12px;padding-inline:20px}.status-glyph{width:1ch;flex:0 0 auto;color:var(--text);font-family:Syne Mono,monospace;font-size:15px;line-height:1;text-align:center}.footer-action,.theme-toggle{cursor:pointer;transition:background-color .16s ease,color .16s ease}.footer-action:hover,.footer-action:focus-visible,.footer-action.is-active,.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}.theme-toggle svg{width:22px;height:22px}.footer-label-compact,.footer-icon,.availability-label-short,.availability-break{display:none}@keyframes stage-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:900px){.about-photo{height:clamp(300px,44vh,440px)}}@media(min-width:900px)and (min-height:900px){.portfolio-shell{height:100svh;overflow:hidden}.about-copy{min-height:0;grid-template-rows:auto minmax(0,1fr) auto}.about-photo{height:auto;max-height:440px}}@media(min-width:900px)and (max-width:1099px){.project-accordion{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:minmax(0,1fr) 64px}.project-slot.is-active{order:0;grid-column:1 / -1;min-height:0}.project-slot.is-collapsed{order:1;min-height:0;flex-basis:auto}.project-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(430px,1fr)}.project-copy{min-height:172px;padding:20px 72px 20px 24px}.project-copy h2{margin-bottom:8px;font-size:clamp(34px,6vw,48px);line-height:.95}.project-copy>div p{font-size:16px}.project-copy>div .project-role{margin-top:10px}.project-link{inset:12px 12px auto auto}.project-rail,.project-rail:hover,.project-rail:focus-visible{min-height:64px;padding:10px 14px;flex-direction:row;justify-content:flex-start;gap:10px}.rail-title{writing-mode:horizontal-tb;font-size:12px;white-space:normal}.project-rail svg{display:none}}@media(max-width:899px){.portfolio-shell{grid-template-rows:auto minmax(620px,1fr) 56px}.masthead{grid-template-columns:104px minmax(190px,.72fr) minmax(0,1.28fr) 56px;grid-template-rows:104px}.statement-panel{min-height:0;padding:16px 18px}.statement-panel p{font-size:clamp(16px,2.25vw,18px);line-height:1.16}.work-browser{flex-direction:column}.project-accordion{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:minmax(0,1fr) 64px}.project-slot.is-active{order:0;grid-column:1 / -1;min-height:0}.project-slot.is-collapsed{order:1;min-height:0;flex-basis:auto}.project-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(430px,1fr)}.about-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(240px,auto) minmax(260px,1fr)}.project-copy{min-height:172px;padding:20px 72px 20px 24px}.project-copy h2{margin-bottom:8px;font-size:clamp(34px,6vw,48px);line-height:.95}.project-copy>div p{font-size:16px}.project-copy>div .project-role{margin-top:10px;font-size:16px;line-height:1.3}.project-link{inset:12px 12px auto auto}.project-rails{height:78px;flex:0 0 auto}.project-rail,.project-rail:hover,.project-rail:focus-visible{min-height:64px;padding:10px 14px;flex-direction:row;justify-content:center;gap:10px}.project-rails .project-rail{width:auto;flex:1}.rail-title{writing-mode:horizontal-tb;font-size:16px;line-height:1.2;white-space:normal}.project-rail svg{display:none}.footer-bar{grid-template-columns:minmax(160px,1fr) 128px 74px 56px}.footer-label-full{display:none}.footer-label-compact{display:inline}.status-glyph,.eyebrow,.contact-form label,.form-status,.press-list a,.availability,.footer-action{font-size:16px}}@media(max-width:560px){.portfolio-shell{padding:2px;grid-template-rows:auto auto auto}.masthead{grid-template-columns:88px minmax(0,1fr) 44px;grid-template-rows:88px auto}.header-socials{grid-column:3;grid-row:1}.brand-icon{width:18px;height:18px}.logo-mark{width:62px;padding:8px;font-size:18px}.name-panel,.statement-panel{padding:18px}.name-panel p{font-size:clamp(27px,9vw,40px)}.statement-panel{grid-column:1 / -1;min-height:0;padding:12px 16px}.statement-panel p{font-size:17px;line-height:1.25}.active-stage{min-height:0}.project-stage{height:auto;grid-template-rows:minmax(470px,1fr) auto}.project-media{grid-row:1}.project-copy{grid-row:2}.about-stage{height:auto;grid-template-rows:minmax(280px,auto) minmax(300px,auto)}.project-copy,.about-copy,.press-list,.contact-copy,.contact-form{padding:24px}.project-copy{min-height:0;padding:18px 64px 18px 18px}.project-copy h2{margin-bottom:5px;font-size:32px;line-height:.94}.project-copy>div p{font-size:16px;line-height:1.3}.project-copy>div .project-role{margin-top:8px;font-size:16px;line-height:1.3}.project-rail,.project-rail:hover,.project-rail:focus-visible{height:auto;min-height:54px;padding:6px 10px}.project-rail:hover{background:var(--surface);color:var(--text)}.project-rail:focus-visible{background:var(--surface-strong);color:var(--text-inverse)}.project-accordion{grid-template-rows:auto minmax(54px,auto)}.project-rails{height:auto;min-height:54px}.rail-title{font-size:16px;line-height:1.2}.footer-bar{position:relative;bottom:auto;z-index:10;height:auto;min-height:54px;grid-template-columns:minmax(0,1fr) repeat(3,54px);grid-template-rows:minmax(54px,auto)}.footer-bar .availability{grid-column:auto}.availability{min-width:0;padding-inline:12px;flex-direction:row;justify-content:center;gap:10px;overflow:visible;font-size:15px;line-height:1.2;white-space:normal}.availability .status-glyph,.availability-label-full{display:inline-flex;align-items:center;line-height:1}.availability-label-full{overflow:visible}.availability-break{display:block}.footer-label-compact,.footer-action-label{display:none}.footer-icon{display:block;width:20px;height:20px}.theme-toggle svg{width:19px;height:19px}}@media(max-width:360px){.footer-bar{grid-template-columns:minmax(0,1fr) repeat(3,54px)}.availability-label-full{display:none}.availability-label-short{display:inline-flex;align-items:center;line-height:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.status-glyph{animation:none}}
