@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff")}:root{color:#183c3c;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--paper:#e7ece8;--ink:#183c3c;--muted:#52625f;--blue:#2859c5;--ease:cubic-bezier(.22, 1, .36, 1);background:#e7ece8;font-family:Be Vietnam Pro,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{min-width:320px;margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}button{background:0 0;border:0}h1,h2,h3,p{margin:0}button,svg{flex-shrink:0}::selection{color:#183c3c;background:#c3d1ef}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.portfolio{position:relative;overflow:clip}.header{z-index:10;justify-content:space-between;align-items:center;padding:32px 5vw;display:flex;position:fixed;inset:0 0 auto}.wordmark{letter-spacing:-2px;font-size:32px;font-weight:700}.wordmark-dot{color:var(--blue)}.nav{gap:36px;font-size:13px;display:flex}.nav a{position:relative}.nav a:after{content:"";transform-origin:0;background:currentColor;height:1px;position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(0)}.nav a:hover:after{transform:scaleX(1)}.header-actions{align-items:center;gap:20px;display:flex}.cv-link{border:1px solid #183c3c30;border-radius:30px;align-items:center;gap:24px;padding:12px 19px;font-size:13px;display:flex}.cv-link:hover{background:#fafcf980}.arrow{width:22px;height:22px}.menu-toggle{display:none}.skip-link{z-index:50;background:var(--ink);color:#fff;padding:15px;position:fixed;top:0;left:20px;transform:translateY(-100%)}.skip-link:focus{transform:translateY(0)}.phone-scene{z-index:0;pointer-events:none;opacity:0;position:fixed;inset:0}.phone-scene.is-ready{opacity:1}.phone-scene canvas{width:100%;height:100%;display:block}.scene-loading{color:var(--muted);z-index:2;align-items:center;gap:12px;font-size:12px;display:flex;position:fixed;bottom:90px;right:6vw}.phone-scene:not(.is-ready){opacity:1}.phone-scene:not(.is-ready) canvas{opacity:0}.progress-track{z-index:20;pointer-events:none;height:2px;position:fixed;inset:0 0 auto}.progress-track span{background:var(--blue);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}main{z-index:1;position:relative}.chapter{scroll-margin-top:0;position:relative}.hero-section{align-items:center;min-height:100svh;padding:24vh 5vw 16vh;display:flex}.hero-copy{width:45%;max-width:610px}.intro-line{align-items:center;gap:10px;margin-bottom:30px;font-size:12px;display:flex}.status-dot{background:var(--blue);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.hero-copy h1{letter-spacing:-.065em;font-size:clamp(52px,5.6vw,92px);font-weight:500;line-height:1.1}.title-stop{color:var(--blue)}.hero-description{max-width:340px;color:var(--muted);margin-top:30px;font-size:14px;line-height:1.9}.round-link{align-items:center;gap:14px;margin-top:38px;font-size:12px;display:inline-flex}.circle-icon{border:1px solid #183c3c30;border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.circle-icon svg{width:20px;height:20px}.round-link:hover .circle-icon{background:#fafcf9}.hero-bottom{justify-content:space-between;font-size:10px;line-height:1.8;display:flex;position:absolute;bottom:56px;left:5vw;right:5vw}.hero-index{text-align:right;color:var(--muted)}.muted{color:var(--muted)}.caller-section{justify-content:space-between;align-items:flex-end;min-height:95svh;padding:0 6vw 12vh;display:flex}.caller-note{align-items:center;gap:12px;font-size:13px;display:flex}.caller-hint{color:var(--muted);text-align:right;font-size:12px;line-height:1.8}.pickup-section{align-items:center;min-height:80svh;padding:12vh 9vw;display:flex}.pickup-message{max-width:45%}.small-label{color:var(--muted);font-size:11px}.pickup-message p{letter-spacing:-.06em;margin-top:20px;font-size:clamp(55px,6.4vw,100px);line-height:1.14}.about-section{min-height:160svh;padding:20vh 9vw 18vh}.left-copy{max-width:63%}.section-kicker{color:var(--muted);margin-bottom:28px;font-size:12px;line-height:1.8}h2{letter-spacing:-.055em;font-size:clamp(38px,4.6vw,74px);font-weight:500;line-height:1.14}.body-large{max-width:560px;color:var(--muted);margin-top:35px;font-size:clamp(15px,1.4vw,20px);line-height:1.9}.experience-list{grid-template-columns:1fr 1fr;gap:38px;max-width:670px;margin-top:78px;display:grid}.experience-period{color:var(--muted);margin-bottom:20px;font-size:10px;display:block}.experience-list h3{letter-spacing:-.5px;margin-bottom:7px;font-size:19px;font-weight:500}.experience-list p{font-size:12px;line-height:1.8}.experience-list .experience-detail{color:var(--muted);margin-top:17px;font-size:12px}.skill-line{max-width:620px;color:var(--muted);flex-wrap:wrap;gap:9px 22px;margin:40px 0 25px;font-size:11px;display:flex}.text-link{align-items:center;gap:12px;padding:0 0 6px;font-size:12px;display:inline-flex;box-shadow:0 1px #183c3c40}.text-link .arrow{width:17px;height:17px}.text-link:hover{color:var(--blue)}.transition-section{text-align:center;justify-content:center;align-items:center;min-height:80svh;display:flex}.transition-section p{letter-spacing:-.04em;font-size:clamp(24px,3vw,44px);line-height:1.45}.transition-section p span{color:var(--muted)}.work-section{padding:16vh 7vw 18vh}.right-copy{max-width:850px;margin-left:29%}.work-heading{margin-bottom:80px}.work-heading>p:last-child{color:var(--muted);margin-top:26px;font-size:14px;line-height:1.9}.projects{flex-direction:column;gap:110px;display:flex}.project{pointer-events:auto}.visual-link{display:block;position:relative}.project-visual{aspect-ratio:1.6;border-radius:12px;overflow:hidden}.project-open{background:#fafcf9;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;bottom:18px;right:18px;box-shadow:0 4px 20px #183c3c0c}.project-heading{justify-content:space-between;align-items:center;margin-top:28px;display:flex}.project-category{color:var(--muted);margin-bottom:10px;font-size:10px}.project-heading h3{letter-spacing:-.045em;font-size:clamp(25px,2.5vw,40px);font-weight:500}.project-number{color:var(--muted);font-size:12px}.project-role{margin-top:14px;font-size:12px}.project-description{color:var(--muted);max-width:650px;margin-top:14px;font-size:13px;line-height:1.9}.project-bottom{justify-content:space-between;align-items:center;gap:18px;margin-top:24px;display:flex}.project-stack{flex-wrap:wrap;gap:9px;font-size:9px;display:flex}.project-stack span{background:#dbe3dc;border-radius:15px;padding:7px 10px}.project-link{white-space:nowrap;align-items:center;gap:9px;font-size:10px;display:flex}.project-link .arrow{width:15px;height:15px}.all-work{align-items:center;gap:16px;margin-top:60px;font-size:12px;display:inline-flex}.all-work:hover{color:var(--blue)}.booking-visual{background:#d2e0f2;flex-direction:column;justify-content:center;align-items:center;padding:10% 9% 7%;display:flex;position:relative}.boarding-pass{background:#f9fbff;border-radius:11px;width:100%;padding:23px 25px;transform:rotate(-5deg);box-shadow:0 18px 45px #17335718}.pass-head{justify-content:space-between;align-items:center;display:flex}.pass-head strong{color:#2664d9;letter-spacing:-1px;font-size:23px}.pass-head strong span{margin-left:3px;font-size:13px;font-weight:500}.pass-head>span{color:#6b7f96;font-size:8px}.flight-route{justify-content:space-between;align-items:center;margin:23px 0;display:flex}.flight-route>span{letter-spacing:-2px;color:#214e90;font-size:38px;font-weight:500}.flight-route small{letter-spacing:0;color:#627991;margin-top:4px;font-size:8px;font-weight:400;display:block}.flight-route svg{color:#4f7aaf;width:35%}.pass-foot{color:#6b7f96;border-top:1px dashed #b8cbdf;justify-content:space-between;padding-top:14px;font-size:8px;display:flex}.visual-caption{color:#516d8a;margin-top:22px;font-size:8px}.stock-visual{background:#d2dbd8;padding:25px 26px 0}.stock-visual img{border-radius:0 0 5px 5px;width:100%;height:auto;display:block;box-shadow:0 10px 30px #183c3c12}.window-top{background:#f7faf7;border-radius:6px 6px 0 0;align-items:center;gap:5px;padding:10px;display:flex}.window-top i{background:#bdc9c2;border-radius:50%;width:5px;height:5px}.window-top span{color:#677a70;font-size:8px;position:absolute;left:47%}.divisions-visual{background:#cedbd0;place-items:center;padding:28px;display:grid}.code-window{background:#f6f9f5;border-radius:9px;width:100%;max-width:580px;overflow:hidden;box-shadow:0 20px 45px #243c2e10}.code-title{background:#ecf1e9;align-items:center;gap:10px;padding:17px 20px;font-size:10px;display:flex}.package-icon{color:#55765c;font-size:15px}.package-label{color:#6c806f;margin-left:auto;font-size:8px}.code-window pre{color:#324b43;margin:0;padding:20px 26px;font:clamp(10px,1.1vw,15px)/1.9 Consolas,monospace}.syntax-purple{color:#82639b}.syntax-green{color:#5c8152}.syntax-blue{color:#3d739d}.syntax-comment{color:#8a998d}.code-footer{color:#6a7f70;background:#ecf1e9;align-items:center;gap:7px;padding:10px 20px;font-size:8px;display:flex}.code-footer .status-dot{background:#67966d;width:4px;height:4px}.hangup-section{text-align:center;justify-content:center;align-items:flex-start;min-height:110svh;padding:14vh 8vw;display:flex}.hangup-section p{letter-spacing:-.04em;font-size:clamp(22px,3vw,42px);line-height:1.4}.contact-section{align-items:center;min-height:100svh;padding:18vh 7vw;display:flex}.contact-copy{width:52%}.contact-copy h2{font-size:clamp(35px,4vw,66px)}.contact-email{letter-spacing:-.03em;word-break:break-word;align-items:center;gap:14px;margin-top:35px;font-size:clamp(13px,1.5vw,20px);display:inline-flex}.contact-email:hover{color:var(--blue)}.contact-links{flex-wrap:wrap;align-items:center;gap:25px;margin-top:30px;font-size:11px;display:flex}.contact-links a{align-items:center;gap:7px;display:flex}.contact-links .arrow{width:14px;height:14px}.contact-links .text-link{font-size:11px}.footer{z-index:2;background:var(--paper);border-top:1px solid #183c3c14;justify-content:space-between;align-items:center;padding:35px 5vw 90px;display:flex;position:relative}.footer p{font-size:10px;line-height:1.9}.footer p span{color:var(--muted)}.back-top{align-items:center;gap:10px;font-size:11px;display:flex}.back-top .arrow{width:17px;height:17px;transform:rotate(-90deg)}.scene-toolbar{z-index:9;pointer-events:none;color:var(--muted);justify-content:space-between;align-items:center;font-size:9px;display:flex;position:fixed;bottom:20px;left:5vw;right:5vw}.scene-toolbar button{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fafcf9bc;border-radius:22px;padding:10px 15px;font-size:9px;box-shadow:0 2px 14px #183c3c05}.connection-status{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#e7ece8bb;border-radius:22px;align-items:center;gap:8px;padding:10px 12px;display:flex}.connection-status .status-dot{width:4px;height:4px}.static-phone{mix-blend-mode:multiply;width:45%;height:auto;position:absolute;top:20%;right:4%}.is-simple .caller-section,.is-simple .pickup-section,.is-simple .transition-section,.is-simple .hangup-section{display:none}.is-simple .about-section{min-height:auto;padding-top:100px}.is-simple .left-copy{max-width:750px}.is-simple .right-copy{margin-left:0;max-width:950px;margin-inline:auto}.is-simple .contact-copy{width:auto}.is-simple .contact-section{min-height:70svh}@media (width>=1700px){.hero-copy{max-width:700px}.about-section,.work-section{padding-inline:12vw}.right-copy{margin-left:29%}.hero-copy h1{font-size:100px}}@media (width<=1024px) and (width>=761px){.hero-copy h1{font-size:55px}.hero-copy{width:48%}.hero-description{max-width:280px;font-size:12px}.about-section{padding-inline:6vw}.left-copy{max-width:67%}.experience-list{gap:20px}.right-copy{margin-left:26%}.project-bottom{flex-direction:column;align-items:flex-start}.work-section{padding-inline:6vw}}@media (width<=760px){html{scroll-padding-top:90px}.header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#e7ece8e8;padding:22px 6vw;position:fixed}.wordmark{font-size:28px}.cv-link{gap:12px;padding:9px 14px;font-size:11px}.cv-link .arrow{width:15px;height:15px}.header-actions{gap:18px}.menu-toggle{flex-direction:column;justify-content:space-around;width:22px;height:24px;padding:4px 0;display:flex}.menu-toggle span{background:var(--ink);width:22px;height:1px;display:block}.nav{background:var(--paper);gap:28px;padding:30px 6vw;display:none;position:absolute;top:81px;left:0;right:0;box-shadow:0 16px 20px #183c3c08}.nav.is-open{display:flex}.phone-scene{background:var(--paper);z-index:2;height:39svh;top:80px;bottom:auto}.phone-scene:after{content:"";background:linear-gradient(var(--paper), #e7ece800);height:24px;position:absolute;bottom:-24px;left:0;right:0}.scene-loading{justify-content:center;font-size:10px;inset:25svh 0 auto}.hero-section{align-items:flex-start;min-height:100svh;padding:calc(41svh + 96px) 7vw 95px}.hero-copy{width:100%;max-width:none}.intro-line{margin-bottom:22px;font-size:10px}.hero-copy h1{font-size:clamp(43px,10vw,67px);line-height:1.1}.hero-description{max-width:310px;margin-top:22px;font-size:12px;line-height:1.85}.round-link{margin-top:25px;font-size:10px}.circle-icon{width:36px;height:36px}.hero-bottom{display:none}.caller-section{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:95svh;padding:calc(45svh + 80px) 7vw 12vh}.caller-hint{text-align:center;font-size:11px}.caller-note{font-size:12px}.pickup-section{align-items:flex-start;min-height:95svh;padding:calc(42svh + 80px) 7vw 80px}.pickup-message{max-width:100%}.pickup-message p{font-size:58px}.about-section{min-height:auto;padding:calc(44svh + 80px) 7vw 100px}.left-copy{max-width:100%}h2{font-size:clamp(36px,9vw,56px)}.section-kicker{margin-bottom:22px;font-size:11px}.body-large{margin-top:25px;font-size:14px;line-height:1.85}.experience-list{grid-template-columns:1fr;gap:38px;margin-top:45px}.experience-detail{max-width:430px}.skill-line{gap:12px 18px;margin-top:30px}.transition-section{align-items:flex-start;min-height:100svh;padding:calc(43svh + 80px) 7vw 100px}.transition-section p{font-size:26px}.work-section{padding:calc(43svh + 80px) 7vw 100px}.right-copy{max-width:none;margin-left:0}.work-heading{margin-bottom:45px}.work-heading>p:last-child{font-size:12px}.desktop-break{display:none}.projects{gap:70px}.project-visual{aspect-ratio:1.3;border-radius:9px}.project-heading h3{font-size:27px}.project-description{font-size:12px}.project-role{font-size:11px;line-height:1.7}.project-bottom{flex-direction:column;align-items:flex-start;gap:20px}.project-link{font-size:11px}.project-open{width:33px;height:33px;bottom:12px;right:12px}.project-open .arrow{width:18px;height:18px}.booking-visual{padding:12% 7% 9%}.boarding-pass{padding:18px}.pass-head strong{font-size:21px}.pass-head strong span{font-size:11px}.pass-head>span{display:none}.flight-route{margin:20px 0}.flight-route>span{font-size:30px}.visual-caption{text-align:center;font-size:7px}.stock-visual{padding:22px 12px 0}.divisions-visual{padding:16px}.code-title{padding:13px 12px;font-size:8px}.code-window pre{padding:18px 15px;font-size:10px}.code-footer{padding-inline:12px;font-size:7px}.all-work{gap:8px;font-size:10px}.hangup-section{min-height:110svh;padding:calc(43svh + 80px) 7vw 100px}.hangup-section p{font-size:28px}.contact-section{align-items:flex-start;min-height:100svh;padding:calc(43svh + 80px) 7vw 100px}.contact-copy{width:100%}.contact-copy h2{font-size:clamp(34px,8.7vw,54px)}.contact-email{gap:8px;margin-top:30px;font-size:13px}.contact-email .arrow{width:17px;height:17px}.footer{z-index:3;flex-wrap:wrap;gap:25px;padding:30px 7vw 85px}.footer p{text-align:right;flex:1;font-size:9px}.back-top{margin-left:auto;font-size:10px}.scene-toolbar{font-size:8px;bottom:14px;left:5vw;right:5vw}.scene-toolbar button{padding:9px 12px;font-size:8px}.connection-status{max-width:55%;padding:9px 11px}.connection-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.static-phone{order:-1;width:100%;margin-bottom:30px;position:relative;inset:auto}.is-simple .hero-section{flex-direction:column;padding-top:110px;display:flex}.is-simple .hero-copy{order:1}.is-simple .about-section,.is-simple .work-section,.is-simple .contact-section{padding-top:80px}.is-simple .contact-section{min-height:auto;padding-bottom:100px}html{scroll-behavior:auto}.is-mobile .progress-track{display:none}.is-mobile .hero-section{justify-content:center;min-height:80svh;padding-top:170px;padding-bottom:90px}.is-mobile .hero-copy h1{font-size:clamp(44px,10.6vw,72px)}.is-mobile .hero-description{max-width:370px;font-size:14px;line-height:1.9}.is-mobile .intro-line{font-size:10px}.is-mobile .round-link{margin-top:32px;font-size:12px}.is-mobile .about-section{padding-top:60px}.is-mobile .footer{padding-bottom:35px}}@media (width>=761px){.portfolio:not(.is-simple) .pickup-message p,.portfolio:not(.is-simple) #about-title,.portfolio:not(.is-simple) #work-title{visibility:hidden}.has-motion .receiver-word{transform-origin:50%;display:inline-block}.has-motion .hero-motion-line-mask{margin-bottom:-.1em;padding-bottom:.1em}.has-motion .reading-word{display:inline-block}.has-motion .visual-link{border-radius:12px}}.voice-source{pointer-events:none;z-index:2;visibility:hidden;width:36px;height:36px;position:fixed;top:0;left:0}.voice-orbit{border-top:1px solid #0000;border-bottom:1px solid #0000;border-left:1px solid #2859c566;border-radius:50%;position:absolute;inset:0}html.has-smooth-scroll{scroll-behavior:auto}.has-smooth-scroll .portfolio{overflow:visible}#smooth-content{display:flow-root}@media (width>=761px){.portfolio:not(.is-simple) .pickup-section{min-height:110svh;padding-top:52vh}}html.is-loading{scroll-behavior:auto;overflow:hidden!important}.page-loader{z-index:9999;color:#173e3f;will-change:transform;touch-action:none;background:#e7ede9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;transform:translate(0,0)}.page-loader.is-complete{visibility:hidden;pointer-events:none}.loader-brand{letter-spacing:-2px;font-size:32px;font-weight:700;position:absolute;top:32px;left:5vw}.loader-count{letter-spacing:-.07em;font-variant-numeric:tabular-nums;font-size:clamp(80px,14vw,180px);font-weight:500;line-height:1.2}.loader-count .loader-unit{letter-spacing:0;margin-left:12px;font-size:.25em}.loader-track{background:#173e3f22;width:100%;height:4px;margin:0;position:absolute;bottom:0;left:0}.loader-track>span{transform-origin:0;background:#2859c5;width:100%;height:100%;display:block}.loader-caption{margin-top:20px;font-size:12px}
