@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");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{color-scheme:dark;--ink:#f5f8ed;--muted:#d5e4c7;--lime:#c4f83e;--line:#c2efaa2c;--font:"Inter Variable",Inter,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#08261d;color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:4px}::selection{background:var(--lime);color:#172007}.skip-link{position:fixed;top:-100px;left:16px;z-index:20;padding:10px 16px;background:var(--lime);color:#172007}.skip-link:focus{top:16px}.poster-stage{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 35% 0%,#c4f83e0d,transparent 70%)}.portfolio-poster,.case-poster,.project-dialog{position:relative;isolation:isolate;border:1px solid #a5d77c4f;border-radius:30px;background:radial-gradient(ellipse at 15% 0%,#c4f83e14,transparent 60%),linear-gradient(145deg,#18523e,#103c2b 62%,#0b2b22);box-shadow:0 24px 100px #0005,inset 0 1px #e3ffad22}.portfolio-poster{overflow:hidden;width:min(960px,100%,calc((100svh - 48px)*1.12));min-width:min(100%,660px);min-height:650px;aspect-ratio:1.12;--poster-padding:34px;padding:var(--poster-padding);display:flex;flex-direction:column}.portfolio-poster:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;background-image:linear-gradient(#d5ff8417 1px,transparent 1px),linear-gradient(90deg,#d5ff8417 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(#000,transparent 85%);pointer-events:none}.poster-view{display:flex;flex:1;min-height:0;flex-direction:column}.poster-view[hidden]{display:none!important}.portfolio-poster .home-view[hidden]{display:flex!important;visibility:hidden;pointer-events:none}.about-view{display:none;position:absolute;inset:var(--poster-padding);gap:16px;overflow:hidden}.portfolio-poster:not(.views-ready):has(#about:target) .home-view{visibility:hidden;pointer-events:none}.portfolio-poster:not(.views-ready) #about:target,.views-ready .about-view:not([hidden]){display:flex}.about-topline{flex-shrink:0;padding-bottom:10px;border-bottom:1px solid var(--line)}.about-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:var(--muted);font-size:12px;white-space:nowrap}.about-back:hover,.about-text-link:hover{color:var(--lime)}.about-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#c4f83e66 transparent;padding:3px 12px 8px 2px}.about-scroll:focus-visible{outline:1px solid #c4f83e66;outline-offset:-1px;border-radius:8px}.about-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center}.about-photo{position:relative;overflow:hidden;align-self:stretch;min-height:290px;border-radius:18px;background:#0c2e22;border:1px solid var(--line)}.about-photo picture{display:block;height:100%}.about-photo img{position:absolute;width:100%;height:125%;object-fit:cover;object-position:center top}.about-photo:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0b2b22);pointer-events:none}.experience-badge{display:flex;align-items:center;gap:10px;position:absolute;z-index:1;bottom:16px;left:16px;padding:10px 15px;background:#153c2edb;backdrop-filter:blur(12px);border:1px solid #c4f83e59;border-radius:13px}.experience-badge strong{color:var(--lime);font-size:37px;line-height:1;letter-spacing:-.05em}.experience-badge span{font-size:11px;line-height:1.4}.about-intro h2{font-size:clamp(32px,4vw,49px);line-height:1.05;letter-spacing:-.045em;margin:10px 0 15px;font-weight:650;outline:none}.about-intro h2 span{color:var(--lime)}.about-intro>p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:1.75;margin-bottom:11px}.about-intro .eyebrow{font-size:8px;letter-spacing:.12em}.about-text-link{display:inline-flex;align-items:center;gap:9px;min-height:40px;font-size:11px;font-weight:550}.about-section{margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.about-section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.about-section-heading h3,.about-contact h3{font-size:16px;font-weight:600;letter-spacing:-.025em}.about-section-heading>span,.about-section-heading>a{color:var(--muted);font-size:10px}.about-section-heading>a{display:inline-flex;align-items:center;gap:5px;min-height:30px}.about-section-heading>a:hover{color:var(--lime)}.about-work-grid,.about-skills,.about-video-grid,.about-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.about-work-grid .project-card{padding:6px;border-radius:12px}.about-work-grid .project-preview>img{aspect-ratio:1.95}.about-work-grid .project-label{padding:10px 7px 6px}.about-work-grid .project-label strong{font-size:12px}.skill-bar{position:relative;display:flex;align-items:flex-start;gap:10px;padding:15px 14px 20px;border-radius:12px;background:#c4f83e07;border:1px solid var(--line);overflow:hidden}.skill-number{color:var(--lime);font-size:10px;padding-top:2px}.skill-bar h4{font-size:12px;font-weight:550;margin:0 0 5px}.skill-bar p{color:var(--muted);font-size:10px;line-height:1.6}.skill-accent{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--lime),#c4f83e22)}.video-card{min-width:0;background:#071f173b;border:1px solid var(--line);border-radius:12px;overflow:hidden}.video-player{aspect-ratio:16/9;position:relative;background:#061d15}.video-launch{width:100%;height:100%;border:0;padding:0;background:transparent;cursor:pointer;display:block}.video-launch:focus-visible{outline-offset:-4px}.video-launch img{width:100%;height:100%;object-fit:cover}.video-play{display:grid;place-items:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:34px;padding-left:2px;border-radius:10px;background:#f03;color:#fff;box-shadow:0 3px 20px #0006;font-size:17px;pointer-events:none}.video-launch:hover .video-play{background:#d8002c}.video-player iframe{position:absolute;width:100%;height:100%;inset:0;border:0}.video-launch[hidden]{display:none}.video-copy{padding:12px}.video-copy p{font-size:9px;color:var(--muted);margin-bottom:5px}.video-copy h4{font-size:12px;font-weight:550;line-height:1.5;margin:0}.video-copy a:hover{color:var(--lime)}.section-caption{font-size:11px;line-height:1.6;color:var(--muted);margin:-6px 0 16px}.review-card{display:flex;flex-direction:column;min-width:0;margin:0;padding:18px;border:1px solid var(--line);background:#c4f83e06;border-radius:13px}.review-mark{color:var(--lime);font-size:34px;line-height:1;height:27px}.review-card blockquote{margin:2px 0 20px;font-size:12px;line-height:1.8;color:var(--ink)}.review-card figcaption{display:flex;align-items:center;gap:9px;margin-top:auto}.review-avatar{flex-shrink:0;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#c4f83e15;color:var(--lime);font-size:9px}.review-card figcaption strong{display:block;font-size:10px;font-weight:600}.about-contact{margin-top:28px;border-top:1px solid var(--line);padding:22px 0 5px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.about-contact p{font-size:11px;color:var(--muted);margin-top:5px}.poster-topline{display:flex;justify-content:space-between;align-items:center;gap:18px;position:relative;z-index:3}.identity-mark{display:flex;align-items:center;gap:9px;color:var(--lime);font-size:10px;letter-spacing:.18em;font-weight:600}.location{font-size:9px;letter-spacing:.2em;color:var(--muted)}.poster-main{position:relative;flex:1;min-height:340px}.poster-copy{position:relative;z-index:2;width:54%;padding-top:34px;padding-bottom:25px}.intro{color:var(--muted);font-size:16px;margin-bottom:9px}.poster-copy h1{font-size:clamp(62px,6.9vw,92px);line-height:.98;font-weight:650;letter-spacing:-.065em}.poster-copy h1 span{background:linear-gradient(110deg,#e1ffa1,#b6f02e);-webkit-background-clip:text;background-clip:text;color:transparent}.poster-description{font-size:15px;line-height:1.65;color:#e0e8cd;margin-top:21px}.expertise{margin:20px 0 0;padding:0;max-width:295px;list-style:none;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:10px;color:var(--muted)}.expertise li{display:flex;align-items:center;gap:5px}.expertise li:before{content:"";width:3px;height:3px;border-radius:50%;background:var(--lime)}.poster-portrait{position:absolute;z-index:1;right:-6%;bottom:-40px;width:66%;height:122%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 13%,#000 85%,transparent)}.poster-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 26%;mask-image:linear-gradient(transparent,#000 8%,#000 54%,transparent 84%)}.poster-bottom{position:relative;z-index:3}.work-panel{background:linear-gradient(115deg,#b6ef5f0b,#174e3b80);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:19px;padding:18px;box-shadow:inset 0 1px #edffb916}.work-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:14px}.work-heading h2{font-size:13px;font-weight:550;letter-spacing:-.01em}.work-heading-actions{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.project-grid{--project-gap:12px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - var(--project-gap)*2)/3);gap:var(--project-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-block:4px;margin-block:-4px}.project-grid::-webkit-scrollbar{display:none}.project-card{scroll-snap-align:start}.project-card:focus-visible{outline-offset:-3px}.carousel-controls,.carousel-pages{display:flex;align-items:center}.carousel-controls{position:relative;justify-content:center;margin-top:6px;margin-bottom:-8px;min-height:24px}.carousel-controls button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:transparent;color:var(--lime);cursor:pointer;border-radius:6px}.carousel-pages button span{width:5px;height:5px;border-radius:50%;background:#d5e4c74d}.carousel-pages button[aria-pressed=true] span{background:var(--lime)}.carousel-controls button:hover{background:#c4f83e1b}.project-card{min-width:0;padding:5px;border-radius:10px;border:1px solid #d2ef9026;background:#c4f83e0a;transition:transform .18s,background .18s,border-color .18s}.project-card:hover{transform:translateY(-3px);background:#c4f83e1b;border-color:#c4f83e80}.project-preview>img{border-radius:6px;width:100%;aspect-ratio:1.95;object-fit:cover;object-position:top}.project-preview{position:relative;display:block;overflow:hidden;border-radius:6px}.project-preview>img{display:block}.project-hover{position:absolute;inset:0;display:grid;place-items:center;background:#051b137a;opacity:0;transition:opacity .18s ease;pointer-events:none}.project-hover>span{padding:10px 15px;border-radius:999px;background:var(--lime);color:#142719;font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap;transform:translateY(5px);transition:transform .18s ease}.project-card:hover .project-hover,.project-card:focus-visible .project-hover{opacity:1}.project-card:hover .project-hover>span,.project-card:focus-visible .project-hover>span{transform:translateY(0)}@media(max-width:600px){.project-hover>span{font-size:10px;padding:7px 8px}}.project-label{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 5px 5px}.project-label strong{font-size:12px;font-weight:550;letter-spacing:-.025em}.project-label svg{color:var(--lime)}.poster-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:19px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;padding:11px 18px;border-radius:10px;border:1px solid var(--line);font-size:12px;font-weight:650;line-height:1.4;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.button-lime{background:var(--lime);color:#172007;border-color:var(--lime)}.button-lime:hover{background:#d8ff74}.button-glass{background:#d8efad0b;color:#eef5dc}.button-glass:hover{background:#c4f83e1b}.social-links{display:flex;align-items:center;gap:4px;margin-left:auto}.social-links a{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:#164431;border:1px solid #cce7bc26;box-shadow:inset 0 1px #ffffffa6,0 3px 8px #0000000d;transition:background .18s,transform .18s}.social-links a:hover{background:#20563d;transform:translateY(-2px)}.social-links img{width:24px;height:24px;object-fit:contain}.case-poster{width:min(100%,1020px);padding:38px}.back-link{display:inline-flex;align-items:center;min-height:40px;font-size:12px;color:var(--muted);margin-bottom:14px}.back-link:hover{color:#fff}.eyebrow{font-size:10px;letter-spacing:.15em;color:var(--muted)}.case-intro{padding-right:25px}.case-intro h1,.case-intro h2{font-size:clamp(34px,4.5vw,54px);line-height:1.1;letter-spacing:-.05em;font-weight:600;margin-top:12px}.case-intro h1>span,.case-intro h2>span{color:var(--lime)}.case-intro>p:last-child{color:#d8e2c4;font-size:13px;max-width:680px;margin-top:16px}.case-body{display:grid;grid-template-columns:1.5fr 1fr;gap:38px;align-items:center;margin-block:28px}.case-imagery{position:relative;padding:12px 26px 35px 0}.case-desktop{background:#f0f3e8;color:#5d634f;border-radius:10px;overflow:hidden;box-shadow:0 10px 25px #0a100444;border:1px solid #ffffff33}.case-desktop>span{display:block;font-size:8px;text-align:center;padding:5px}.case-desktop img{width:100%}.case-phone{position:absolute;right:0;bottom:0;width:23%;border:3px solid #dce4c9;border-radius:11px;overflow:hidden;box-shadow:0 6px 20px #0a100480}.case-phone img{width:100%}.role-label{font-size:9px;letter-spacing:.12em;color:var(--muted)}.role-label strong{display:block;color:#f0f6eb;font-size:13px;font-weight:550;letter-spacing:0;margin-top:4px}.case-details h3{font-size:15px;font-weight:550;margin-top:22px}.case-details ul{list-style:none;padding:0;display:grid;gap:10px;margin:12px 0 0}.case-details li{display:flex;align-items:center;gap:8px;color:#e0e8d0;font-size:12px}.case-details li svg{color:var(--lime)}.case-technology{font-size:10px;line-height:1.7;margin-top:22px;color:var(--muted)}.case-actions{display:flex;gap:10px;flex-wrap:wrap}.project-dialog{color:var(--ink);width:min(880px,calc(100% - 32px));max-height:calc(100svh - 32px);padding:32px}.project-dialog::backdrop{background:#041a12cc;backdrop-filter:blur(7px)}.dialog-close{position:absolute;top:12px;right:12px}.dialog-close button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#d8efad11;color:#f0f8e0;cursor:pointer;font-size:27px;font-weight:300;line-height:1}.dialog-close button:hover{background:#c4f83e2a}.not-found{max-width:700px;padding:50px}.not-found h1{font-size:clamp(36px,6vw,62px);line-height:1.05;letter-spacing:-.05em;margin-block:20px}.not-found p:not(.eyebrow){color:var(--muted);margin-bottom:28px}@media(max-width:800px){.portfolio-poster{--poster-padding:27px;min-height:650px}.poster-copy h1{font-size:72px}.poster-main{min-height:330px}.poster-portrait{right:-9%;width:72%;height:120%}.button{gap:13px;padding-inline:14px}.case-body{gap:24px}}@media(max-width:600px){.about-view{gap:12px}.about-topline{gap:8px;padding-bottom:7px}.about-back{font-size:10px;gap:5px}.about-scroll{padding-right:7px}.about-hero{grid-template-columns:1fr;gap:18px}.about-photo{min-height:0;height:225px}.about-photo img{object-position:center 22%}.experience-badge{bottom:12px;left:12px}.about-intro h2{font-size:37px;margin-block:9px 12px}.about-intro h2 br{display:none}.about-intro h2 span:before{content:" "}.about-intro>p:not(.eyebrow){font-size:12px}.about-section{margin-top:24px;padding-top:20px}.about-section-heading h3,.about-contact h3{font-size:15px}.about-section-heading>span,.about-section-heading>a{font-size:9px}.about-skills,.about-video-grid,.about-review-grid{grid-template-columns:1fr;gap:10px}.about-work-grid{gap:9px}.about-work-grid .project-card{padding:4px}.about-work-grid .project-label{padding:8px 3px 4px}.about-work-grid .project-label strong{font-size:10px}.review-card{padding:16px}.review-card blockquote{font-size:12px}.review-card figcaption strong{font-size:11px}.poster-stage{padding:12px}.portfolio-poster{width:100%;min-width:0;min-height:0;aspect-ratio:auto;--poster-padding:23px 20px 14px;border-radius:23px}.identity-mark{font-size:9px;gap:6px;letter-spacing:.12em}.identity-mark svg{width:14px}.location{font-size:7px;letter-spacing:.15em}.poster-main{min-height:330px}.poster-copy{width:63%;padding-top:33px;padding-bottom:0}.intro{font-size:12px;margin-bottom:9px}.poster-copy h1{font-size:clamp(43px,12.6vw,68px)}.poster-description{font-size:11px;line-height:1.65;margin-top:17px}.expertise{font-size:9px;gap:5px 10px;max-width:185px;margin-top:17px}.poster-portrait{right:-25%;bottom:-45px;width:94%;height:110%}.poster-portrait img{object-position:center 30%;mask-image:linear-gradient(transparent,#000 9%,#000 51%,transparent 80%)}.work-panel{padding:12px;border-radius:14px}.work-heading{margin-bottom:10px}.work-heading h2{font-size:11px}.work-heading-actions{font-size:8px;gap:3px}.work-heading-actions>span{display:none}.project-grid{--project-gap:7px}.project-card{padding:3px;border-radius:7px}.project-preview>img{border-radius:4px;aspect-ratio:1.4}.project-label{padding:7px 2px 4px;min-height:33px}.project-label strong{font-size:10px;line-height:1.25}.project-label svg{width:11px}.poster-actions{display:grid;grid-template-columns:1fr 1.23fr;gap:10px;margin-top:14px}.button{min-height:44px;padding:10px 12px;font-size:11px;gap:10px;border-radius:8px}.social-links{grid-column:1/-1;justify-content:center;margin:-1px 0 0}.case-poster{padding:23px;border-radius:23px}.back-link{margin-bottom:9px}.case-intro h1,.case-intro h2{font-size:36px}.case-intro>p:last-child{font-size:12px;margin-top:14px}.case-body{grid-template-columns:1fr;gap:20px;margin-block:19px}.case-imagery{max-width:410px;width:100%;padding-right:28px;padding-bottom:20px}.case-phone{width:21%}.case-details h3{margin-top:14px}.case-details ul{gap:7px}.case-technology{margin-top:14px}.case-actions .button{flex:1}.project-dialog{padding:26px 22px 22px;border-radius:21px}.project-dialog .case-intro{padding-top:14px}.project-dialog .eyebrow{font-size:8px}}@media(max-width:360px){.poster-stage{padding:8px}.portfolio-poster{--poster-padding:23px 16px 14px}.poster-main{min-height:310px}.poster-copy h1{font-size:43px}.poster-description{font-size:10px}.project-label strong{font-size:9px}.button{font-size:10px;gap:7px;padding-inline:9px}}@media(min-width:601px)and (max-height:800px){.portfolio-poster{--poster-padding:28px}.poster-copy{padding-top:22px}.poster-copy h1{font-size:72px}.poster-main{min-height:300px}.poster-description{margin-top:16px}.expertise{margin-top:14px}.work-panel{padding:14px}.poster-actions{margin-top:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
