@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-cyrillic-wght-normal.Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-greek-wght-normal.DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-vietnamese-wght-normal.usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-ext-wght-normal.Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-wght-normal.DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-ext-400-normal.C2zvOubV.woff2)format("woff2"),url(/_astro/dm-mono-latin-ext-400-normal.1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-400-normal.4GdczIuU.woff2)format("woff2"),url(/_astro/dm-mono-latin-400-normal.-0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope-fallback;src:local(Arial);size-adjust:104%}:root{--paper:#f6f7f9;--ink:#172033;--muted:#626c7c;--line:#dce1e9;--surface:#eef1f6;--accent:#2563eb;--accent-ink:#1d4ed8;--dark:#172136;--card:#fff;--font:"Manrope Variable",Manrope-fallback,sans-serif;--mono:"DM Mono",monospace;color-scheme:light;scroll-behavior:smooth;scroll-padding-top:32px}:root[data-theme=dark]{--paper:#101722;--ink:#f1f5fb;--muted:#a3afc1;--line:#303d52;--surface:#192335;--accent:#2563eb;--accent-ink:#93c5fd;--dark:#0b1220;--card:#182334;color-scheme:dark}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{background:0 0}button:disabled{cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent-ink);outline-offset:6px}::selection{background:var(--accent);color:#fff}h1,h2,h3,p{margin:0}img{max-width:100%;height:auto;display:block}svg{flex-shrink:0}button svg,a svg{vertical-align:middle}[hidden]{display:none!important}.shell{width:calc(100% - 112px);max-width:1328px;margin-inline:auto}.eyebrow{font:11px/1.6 var(--mono);letter-spacing:1.1px}.status-dot{background:#2563eb;border-radius:50%;width:7px;height:7px;margin-right:10px;display:inline-block;box-shadow:0 0 0 4px #2563eb12}.skip-link{background:var(--accent);color:#fff;z-index:100;padding:12px 18px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden}.skip-link:focus{transform:none}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;height:112px;display:flex}.brand{letter-spacing:-.3px;align-items:center;gap:13px;font-size:14px;font-weight:750;display:flex}.site-header nav{gap:31px;font-size:12px;display:flex}.site-header nav a{padding:8px 0;position:relative}.site-header nav a:after{content:"";background:currentColor;width:0;height:1px;transition:width .2s;position:absolute;bottom:1px;left:0}.site-header nav a:hover:after{width:100%}.header-actions{align-items:center;gap:23px;display:flex}.icon-button{border:1px solid var(--line);border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.theme-toggle svg:last-child,[data-theme=dark] .theme-toggle svg:first-child{display:none}[data-theme=dark] .theme-toggle svg:last-child{display:block}.header-contact{align-items:center;gap:17px;font-size:12px;display:flex}.button{border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:28px;padding:17px 23px;font-size:12px;font-weight:600;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--accent);color:#fff}.text-link{align-items:center;gap:13px;font-size:12px;font-weight:600;display:inline-flex}.text-link:hover svg{transform:translate(2px,-2px)}.text-link svg{transition:transform .2s}.work-section{padding-top:64px;padding-bottom:89px}.section-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px;display:flex}h2{letter-spacing:-1.8px;font-size:clamp(28px,3.1vw,44px);font-weight:500;line-height:1.2}h2 span{color:var(--muted)}.work-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:23px;display:flex}.project-filters{gap:5px;display:flex}.project-filters button{border:1px solid #0000;border-radius:30px;padding:9px 14px;font-size:10px;transition:background .2s}.project-filters button[aria-pressed=true]{background:var(--accent);color:#fff}.project-filters button:not([aria-pressed=true]):hover{border-color:var(--line)}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px;display:grid}.project-card{min-width:0}.project-image-link{border-radius:7px;display:block;position:relative;overflow:hidden}.project-visual{color:#23344d;isolation:isolate;height:350px;position:relative;overflow:hidden}.visual-caption{font:8px var(--mono);letter-spacing:1.3px;z-index:3;position:absolute;top:24px;left:26px}.visual-cloudgateway{background:#dce7fb}.visual-grid{background-image:linear-gradient(#6d92cc20 1px,#0000 1px),linear-gradient(90deg,#6d92cc20 1px,#0000 1px);background-size:35px 35px;position:absolute;inset:0;mask-image:radial-gradient(#000 5%,#0000 80%)}.cloud-desktop{border:4px solid #26364e;border-radius:10px;width:75%;transition:transform .5s;position:absolute;top:79px;left:9%;overflow:hidden;transform:perspective(1000px)rotateY(4deg)rotate(-3deg);box-shadow:0 20px 35px #254b8230}.cloud-desktop>img{object-fit:cover;object-position:top;width:100%;height:220px}.window-bar{background:#202d42;align-items:center;gap:4px;height:19px;padding:0 8px;display:flex}.window-bar i,.terminal-label i{background:#7b8fae;border-radius:50%;width:4px;height:4px}.window-bar i:first-child{background:#bba294}.window-bar i:nth-child(2){background:#c8c294}.window-bar span{font:6px var(--mono);color:#c2d2e9;margin:auto;transform:translate(-10px)}.cloud-phone{object-fit:cover;object-position:top;border:4px solid #1c2c45;border-radius:17px;width:20%;height:auto;max-height:250px;transition:transform .5s;position:absolute;top:104px;right:9%;transform:rotate(6deg);box-shadow:0 12px 25px #1c355e40}.project-image-link:hover .cloud-desktop{transform:perspective(1000px)rotateY(0)rotate(-1deg)translateY(-5px)}.project-image-link:hover .cloud-phone{transform:rotate(3deg)translateY(-5px)}.visual-streamtrack{background:#dde5f6}.visual-shelf{background:#dce9ec}.shelf-desktop{border:1px solid #b9c9d8;border-radius:7px;width:84%;position:absolute;top:20%;left:8%;overflow:hidden;box-shadow:0 15px 35px #17203326}.shelf-desktop>img{width:100%;display:block}.shelf-phone{border:4px solid #252735;border-radius:17px;width:21%;position:absolute;top:30%;right:5%;box-shadow:0 10px 25px #17203333}.visual-the-catch{background:#e0e6f5}.visual-ai-developer-tools{color:#dbe8fa;background:#172944}.toolkit-art{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:12px;display:grid;position:absolute;inset:24% 8%}.toolkit-art span{min-height:49px;font:12px/1.6 var(--mono);background:#233c5d;border:1px solid #44618a;border-radius:5px;align-items:center;padding:12px;display:flex}.case-cover .toolkit-art{gap:20px;inset:23% 12%}.case-cover .toolkit-art span{min-height:76px;padding:20px;font-size:20px}.phone-trio{align-items:flex-start;gap:16px;width:80%;display:flex;position:absolute;top:68px;left:50%;transform:translate(-50%)rotate(-7deg)}.phone-trio img{border:4px solid #252735;border-radius:18px;width:30.5%;transition:transform .5s;box-shadow:5px 15px 24px #24243c2c}.phone-trio img:first-child{margin-top:29px}.phone-trio img:last-child{margin-top:35px}.phone-trio img:nth-child(2){z-index:1;position:relative}.project-image-link:hover .phone-trio img:nth-child(2){transform:translateY(-12px)}.visual-clipboard-history{color:#dbe8fa;background:#172944}.clipboard-art{justify-content:center;align-items:center;gap:8px;padding-top:129px;display:flex;position:absolute;inset:40px 0 0}.clipboard-art kbd{color:#e3edfb;width:44px;height:38px;font:18px var(--font);background:#263b5c;border:1px solid #4e6a92;border-bottom-width:4px;border-radius:7px;place-items:center;display:grid;transform:rotate(-5deg)}.clipboard-art kbd:nth-of-type(2){transform:rotate(3deg)}.clipboard-art kbd:last-child{transform:rotate(7deg)}.clip-outline{border:1px solid #88a7cf;border-radius:13px;width:105px;height:125px;position:absolute;top:39px;left:calc(50% - 52px)}.clip-back{background:#355580;transform:rotate(-16deg)translate(-20px,-4px)}.clip-front{color:#244d85;background:#c6dafa;place-items:center;display:grid;transform:rotate(8deg);box-shadow:5px 8px 20px #10254733}.clip-front svg{width:70px}.visual-codelaunch{background:#e5ebf5}.codelaunch-screen{border:4px solid #293851;border-radius:9px;width:77%;position:absolute;top:74px;left:8%;overflow:hidden;transform:rotate(-4deg);box-shadow:0 18px 25px #29477126}.codelaunch-screen>img{object-fit:cover;object-position:top;width:100%;height:235px}.codelaunch-phone{object-fit:cover;object-position:top;border:4px solid #243853;border-radius:16px;width:21%;height:231px;transition:transform .5s;position:absolute;top:102px;right:8%;transform:rotate(6deg);box-shadow:0 8px 15px #233a6033}.project-image-link:hover .codelaunch-phone{transform:rotate(2deg)translateY(-7px)}.visual-br0wser{background:#e3eaf3}.visual-t3-thread{background:#e2e8f2}.project-visual.compact{height:245px}.terminal-art{color:#e4edf9;background:#19283f;border-radius:8px;width:74%;position:absolute;top:63px;left:13%;overflow:hidden;transform:rotate(-2deg);box-shadow:0 13px 26px #20395925}.terminal-label{background:#2b405e;align-items:center;gap:5px;height:26px;padding:0 11px;display:flex}.terminal-label span{font:7px var(--mono);opacity:.6;margin:auto;transform:translate(-12px)}.terminal-art code{font:11px/2 var(--mono);padding:14px 18px;display:block}.prompt{color:#93c5fd}.terminal-dim{color:#a1b2ca;font-size:9px}.terminal-cursor{color:#93c5fd}.thread-art{font:13px/1.8 var(--mono);color:#475c7a;position:absolute;top:62px;left:24%;transform:rotate(-3deg)}.thread-art b{color:#334f77;font-weight:400}.thread-art em{color:#2563eb;font-style:normal}.thread-line{justify-content:space-between;width:220px;margin-top:18px;display:flex;position:relative}.thread-line:before{content:"";background:#9db4d2;width:100%;height:1px;position:absolute;top:5px}.thread-line i{z-index:1;background:#e2e8f2;border:2px solid #7d9ac1;border-radius:50%;width:11px;height:11px}.thread-line i:last-child{background:#2563eb}.project-info{padding:22px 2px 0}.project-kind{color:var(--muted);letter-spacing:1px;font-size:8px}.project-info h3{letter-spacing:-1px;margin-top:8px;font-size:26px;font-weight:550}.project-info h3 a{justify-content:space-between;align-items:center;display:flex}.project-info h3 svg{width:19px;transition:transform .2s}.project-info h3 a:hover svg{transform:translate(3px,-3px)}.project-info p{color:var(--muted);max-width:420px;margin-top:11px;font-size:12px;line-height:1.8}.tags{flex-wrap:wrap;gap:6px;margin:17px 0 0;padding:0;list-style:none;display:flex}.tags li{font:8px/1.5 var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:5px 8px}.all-github{justify-content:center;gap:12px;margin-top:47px;font-size:11px;display:flex}.project-mention{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-top:42px;padding:28px 0;display:flex}.project-mention-main{align-items:center;gap:20px;min-width:0;display:flex}.project-app-icon{border-radius:16px;flex-shrink:0;width:80px;height:80px}.project-mention .eyebrow{color:var(--muted);font-size:9px}.project-mention h3{margin:8px 0;font-size:20px}.project-mention p{color:var(--muted);font-size:12px;line-height:1.8}.project-mention-links{flex-wrap:wrap;gap:20px;display:flex}.project-mention-links .text-link{font-size:11px}.all-github svg:first-child{margin-left:6px}.about-section{background:var(--surface);padding:85px 0}.education{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:22px;margin-top:31px;padding:24px 0;display:grid}.education .eyebrow{color:var(--muted);letter-spacing:.6px;font-size:8px}.education strong{margin-top:8px;font-size:12px;font-weight:600;display:block}.education div>span:last-child{color:var(--muted);margin-top:5px;font-size:10px;display:block}.experience-section{padding-top:87px;padding-bottom:90px}.experience-section .section-heading{margin-bottom:34px}.experience-section .section-heading>.text-link{margin-bottom:6px}.experience-item{border-top:1px solid var(--line)}.experience-item:last-child{border-bottom:1px solid var(--line)}.experience-item summary{cursor:pointer;grid-template-columns:215px 1fr 30px;align-items:center;gap:20px;padding:27px 0;list-style:none;display:grid}.experience-item summary::-webkit-details-marker{display:none}.experience-date{font:9px var(--mono);color:var(--muted);letter-spacing:.4px}.experience-company{letter-spacing:-.4px;font-size:18px;font-weight:550}.experience-company>span{letter-spacing:0;color:var(--muted);margin-top:6px;font-size:11px;font-weight:400;display:block}.experience-expand{text-align:right;font-size:22px;font-weight:300;transition:transform .2s}.experience-item[open] .experience-expand{transform:rotate(45deg)}.experience-item>ul{color:var(--muted);max-width:630px;margin:0 95px 26px 235px;padding-left:1.2em;font-size:12px;line-height:1.9}.experience-item>ul>li+li{margin-top:8px}.contact-section{padding-bottom:62px}.contact-inner{background:var(--dark);color:#f1f5fb;border-radius:7px;padding:42px 52px 27px}.contact-inner>.eyebrow{color:#b8c8dd;font-size:9px}.copy-email{font:9px var(--mono);color:#b8c8dd;border:0;align-items:center;gap:8px;min-height:28px;margin-left:auto;display:flex}.copy-status{font:9px var(--mono);color:#93c5fd}.copy-status:empty{display:none}.site-footer{grid-template-columns:1fr 1fr;gap:25px;padding-bottom:32px;display:grid}.footer-name{font-size:12px;font-weight:600}.site-footer>div{justify-content:flex-end;align-items:flex-start;gap:27px;font-size:10px;display:flex}.site-footer>div a{align-items:center;gap:7px;display:flex}.footer-colophon{font:8px var(--mono);color:var(--muted);border-top:1px solid var(--line);grid-column:1/-1;padding-top:16px}.will-reveal{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(18px)}.will-reveal.is-visible{opacity:1;transform:none}.case-hero{padding:46px 0 44px}.back-link{color:var(--muted);font:10px var(--mono);align-items:center;gap:12px;margin-bottom:54px;display:inline-flex}.back-link svg{transform:rotate(180deg)}.case-title-row{justify-content:space-between;align-items:flex-start;gap:35px;display:flex}.case-title-row>div,.case-content{min-width:0}.case-hero h1{letter-spacing:-4px;margin:14px 0 16px;font-size:clamp(48px,6.5vw,88px);font-weight:500;line-height:1.1}.case-headline{color:var(--muted);letter-spacing:-.6px;font-size:21px}.case-links{flex-wrap:wrap;gap:13px;padding-top:43px;display:flex}.button-outline{border-color:var(--line)}.case-hero .tags{margin-top:26px}.case-cover{border-radius:8px;overflow:hidden}.case-cover .project-visual{height:550px}.case-cover .visual-caption{font-size:11px;top:34px;left:40px}.case-cover .cloud-desktop{width:64%;max-width:800px;top:83px;left:15%}.case-cover .cloud-desktop>img{height:400px}.case-cover .cloud-phone{border-radius:25px;width:16%;max-height:420px;top:112px;right:16%}.case-cover .phone-trio{gap:27px;width:57%;max-width:730px;top:65px}.case-cover .phone-trio img{border-width:6px;border-radius:30px}.case-cover .codelaunch-screen{width:63%;top:87px;left:14%}.case-cover .codelaunch-screen>img{height:420px}.case-cover .codelaunch-phone{border-radius:24px;width:17%;height:425px;top:110px;right:17%}.case-cover .clipboard-art{gap:12px;padding-top:190px}.case-cover .clip-outline{width:155px;height:175px;top:95px;left:calc(50% - 77px)}.case-cover .clip-front svg{width:100px}.case-cover .clipboard-art kbd{width:63px;height:54px;font-size:25px}.case-cover .terminal-art{width:58%;top:120px;left:21%}.case-cover .terminal-label{height:40px}.case-cover .terminal-art code{padding:28px 36px;font-size:21px}.case-cover .terminal-dim{font-size:15px}.case-cover .thread-art{font-size:26px;top:126px;left:32%}.case-cover .thread-line{width:390px;margin-top:32px}.case-body{grid-template-columns:250px 1fr;gap:80px;padding-top:67px;padding-bottom:70px;display:grid}.case-meta .eyebrow{color:var(--muted);font-size:9px}.case-meta p{max-width:200px;margin-top:10px;font-size:12px;line-height:1.8}.case-meta a{color:var(--muted);font:9px var(--mono);align-items:center;gap:9px;margin-top:28px;display:inline-flex}.case-content>p{letter-spacing:-.5px;max-width:800px;font-size:22px;line-height:1.7}.case-highlights{gap:28px;margin-top:39px;display:grid}.case-highlights h2{letter-spacing:-.6px;font-size:22px}.case-highlights p{color:var(--muted);max-width:740px;margin-top:11px;font-size:13px;line-height:1.9}.case-highlights .text-link{margin-top:14px;font-size:12px}.developer-tools{margin-top:38px}.developer-tools>h2{margin-bottom:18px;font-size:24px}.developer-tool{border-top:1px solid var(--line);padding:26px 0}.developer-tool h3{letter-spacing:-.5px;font-size:21px}.developer-tool p{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.9}.developer-tool-links{flex-wrap:wrap;gap:12px 22px;margin-top:16px;display:flex}.developer-tool-links .text-link{font-size:11px}.developer-tool .tool-credit{margin-top:16px;font-size:11px}.case-credit{color:var(--muted);border-top:1px solid var(--line);margin-top:33px;padding-top:22px;letter-spacing:0!important;font-size:11px!important;line-height:1.9!important}.gallery-section{border-top:1px solid var(--line);padding-top:37px;padding-bottom:75px}.gallery-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;display:flex}.gallery-heading h2{font-size:29px}.gallery-heading p{font:9px var(--mono);color:var(--muted)}.case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px;display:grid}.case-gallery.phone-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-figure{min-width:0;margin:0}.gallery-trigger{background:var(--surface);border:1px solid var(--line);cursor:zoom-in;border-radius:7px;justify-content:center;align-items:center;width:100%;height:390px;padding:24px;display:flex;overflow:hidden}.gallery-trigger img{object-fit:contain;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:100%;transition:transform .3s;box-shadow:0 8px 22px #00000013}.gallery-trigger:hover img{transform:scale(1.025)}.phone-gallery .gallery-trigger{height:570px}.gallery-figure figcaption{color:var(--muted);max-width:380px;margin-top:12px;font-size:11px;line-height:1.8}.gallery-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;max-width:min(1100px,92vw);max-height:92vh;padding:50px 22px 22px}.gallery-dialog::backdrop{backdrop-filter:blur(8px);background:#081426d9}.gallery-dialog>img{object-fit:contain;max-width:100%;max-height:75vh;margin:auto}.gallery-dialog>.icon-button{position:absolute;top:10px;right:12px}.gallery-dialog>p{text-align:center;color:var(--muted);margin-top:17px;font-size:11px;line-height:1.8}.next-project{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:34px 0 60px;display:flex}.next-project h2{margin-top:10px;font-size:40px}.next-project>svg{width:50px;height:50px}.not-found{padding:100px 0 130px}.not-found h1{letter-spacing:-4px;font-size:80px}.not-found p{color:var(--muted);margin:15px 0 30px}@media (width>=1500px){.project-visual{height:390px}.cloud-desktop>img{height:255px}.cloud-phone{max-height:280px}.codelaunch-screen>img,.codelaunch-phone{height:265px}.phone-trio{top:70px}}@media (width<=1100px){.shell{width:calc(100% - 72px)}.project-visual{height:315px}.cloud-desktop>img{height:195px}.cloud-phone{max-height:212px;top:114px}.codelaunch-screen>img{height:200px}.codelaunch-phone{height:208px}.phone-trio{gap:10px}.case-title-row{display:block}.case-links{padding-top:25px}.case-body{grid-template-columns:200px 1fr;gap:45px}.phone-gallery .gallery-trigger{height:430px}}@media (width<=800px){.shell{width:calc(100% - 48px)}.site-header{height:88px}.site-header nav{gap:20px}.header-actions{gap:13px}.header-contact{gap:9px;font-size:11px}.work-section{padding-top:65px}.section-heading h2{font-size:31px}.projects-grid{gap:32px 20px}.project-visual{height:280px}.visual-caption{letter-spacing:.8px;font-size:6px;top:20px;left:18px}.cloud-desktop{width:80%;top:70px;left:7%}.cloud-desktop>img{height:170px}.cloud-phone{border-width:3px;border-radius:12px;width:23%;max-height:180px;top:107px;right:6%}.phone-trio{gap:8px;width:87%;top:65px}.phone-trio img{border-width:3px;border-radius:13px}.codelaunch-screen{width:80%;top:70px;left:7%}.codelaunch-screen>img{height:170px}.codelaunch-phone{border-width:3px;border-radius:12px;width:23%;height:174px;top:101px;right:6%}.project-info h3{font-size:22px}.project-kind{font-size:6px}.project-info p{font-size:11px}.tags{gap:5px}.tags li{padding:4px 6px;font-size:7px}.clipboard-art{padding-top:111px}.clip-outline{width:90px;height:105px;top:26px;left:calc(50% - 45px)}.clip-front svg{width:60px}.clipboard-art kbd{width:36px;height:32px;font-size:15px}.project-visual.compact{height:220px}.terminal-art{width:82%;top:58px;left:9%}.terminal-art code{padding:11px 13px;font-size:9px}.terminal-dim{font-size:7px}.thread-art{font-size:11px;left:18%}.thread-line{width:185px}.about-section{padding:65px 0}.education{grid-template-columns:1fr;gap:21px}.experience-item summary{grid-template-columns:150px 1fr 24px;gap:18px}.experience-date{font-size:8px}.experience-company{font-size:16px}.experience-item>ul{margin-left:168px;margin-right:40px}.contact-inner{padding:35px 33px 24px}.copy-email{font-size:8px}.site-footer>div{gap:18px}.case-cover .project-visual{height:440px}.case-cover .cloud-desktop>img{height:310px}.case-cover .cloud-phone{max-height:310px}.case-cover .codelaunch-screen>img{height:320px}.case-cover .codelaunch-phone{height:315px}.case-cover .terminal-art{width:72%;top:105px;left:14%}.case-cover .terminal-art code{font-size:17px}.case-cover .terminal-dim{font-size:12px}.case-cover .thread-art{font-size:20px;top:110px;left:25%}.case-cover .thread-line{width:300px}.case-body{grid-template-columns:160px 1fr;gap:30px;padding-top:45px}.case-content>p{font-size:18px}.case-highlights h2{font-size:20px}.case-highlights p{font-size:12px}.gallery-trigger{height:290px;padding:16px}.phone-gallery .gallery-trigger{height:350px}.case-gallery{gap:18px}}@media (width<=600px){.shell{width:calc(100% - 40px)}.site-header{gap:12px;height:80px}.brand{gap:7px;font-size:12px}.site-header nav{gap:18px;margin-left:auto}.site-header nav a{font-size:10px}.site-header nav a:last-child{display:none}.header-actions{gap:0}.header-contact{display:none}.icon-button{width:32px;height:32px}.icon-button svg{width:16px}.work-section{padding-top:50px;padding-bottom:55px}.section-heading{gap:15px;margin-bottom:25px}.section-heading h2{letter-spacing:-1.5px;max-width:310px;font-size:29px;line-height:1.3}.section-heading h2 span{display:block}.work-toolbar{margin-bottom:23px;padding-bottom:18px}.project-filters{gap:2px}.project-filters button{padding:8px 10px;font-size:9px}.projects-grid{grid-template-columns:1fr;gap:34px}.project-visual{height:310px}.visual-caption{font-size:7px;top:22px;left:21px}.cloud-desktop{width:76%;top:75px;left:8%}.cloud-desktop>img{height:196px}.cloud-phone{border-radius:14px;width:22%;max-height:213px;top:103px;right:8%}.phone-trio{gap:10px;width:83%;top:67px}.phone-trio img{border-width:4px;border-radius:15px}.codelaunch-screen{width:77%;top:76px;left:8%}.codelaunch-screen>img{height:200px}.codelaunch-phone{border-radius:14px;width:22%;height:207px;top:106px;right:8%}.clipboard-art{padding-top:128px}.clip-outline{width:100px;height:115px;top:31px;left:calc(50% - 50px)}.clipboard-art kbd{width:39px;height:35px;font-size:17px}.project-info{padding-top:18px}.project-info h3{margin-top:7px;font-size:25px}.project-kind{font-size:7px}.project-info p{margin-top:9px;font-size:12px}.tags{margin-top:14px}.tags li{padding:4px 7px;font-size:8px}.project-visual.compact{height:230px}.terminal-art{width:77%;top:60px;left:11.5%}.terminal-art code{padding:12px 17px;font-size:10px;line-height:2}.terminal-dim{font-size:8px}.thread-art{font-size:12px;left:22%}.thread-line{width:205px}.all-github{margin-top:34px;font-size:10px}.about-section{padding:51px 0}.education{grid-template-columns:1fr 1fr;gap:17px;margin-top:24px;padding:23px 0}.education .eyebrow{letter-spacing:.3px;font-size:7px}.education strong{font-size:11px}.education div>span:last-child{font-size:9px;line-height:1.7}.experience-section{padding-top:53px;padding-bottom:54px}.experience-section .section-heading{margin-bottom:23px;display:block}.experience-section .section-heading>.text-link{margin:18px 0 0;font-size:10px}.experience-item summary{grid-template-columns:1fr 25px;gap:9px;padding:21px 0}.experience-date{grid-column:1/-1;font-size:8px}.experience-company{font-size:16px;line-height:1.6}.experience-company>span{margin-top:2px;font-size:11px}.experience-expand{grid-area:2/2;font-size:22px}.experience-item>ul{margin:0 20px 24px 0;font-size:11px;line-height:1.9}.contact-section{padding-bottom:38px}.contact-inner{padding:29px 23px 21px}.contact-inner>.eyebrow{letter-spacing:.6px;font-size:7px}.copy-email{margin:0;font-size:8px}.copy-email>span{display:none}.copy-status{overflow-wrap:anywhere;width:100%;font-size:9px}.site-footer{gap:24px;padding-bottom:25px}.footer-name{font-size:11px}.site-footer>div{flex-wrap:wrap;align-content:flex-start;gap:11px;font-size:9px}.site-footer>div a{gap:4px}.site-footer>div svg{width:11px}.footer-colophon{font-size:7px}.case-hero{padding-top:29px;padding-bottom:29px}.back-link{margin-bottom:35px;font-size:9px}.case-hero .eyebrow{font-size:8px}.case-hero h1{letter-spacing:-2.7px;overflow-wrap:anywhere;font-size:clamp(40px,12vw,48px)}.case-headline{letter-spacing:-.5px;font-size:17px;line-height:1.6}.case-links{gap:10px;padding-top:22px}.case-links .button{gap:13px;padding:12px 14px;font-size:10px}.case-hero .tags{margin-top:21px}.case-cover .project-visual{height:330px}.case-cover .visual-caption{font-size:7px;top:22px;left:20px}.case-cover .cloud-desktop{width:77%;top:78px;left:8%}.case-cover .cloud-desktop>img{height:210px}.case-cover .cloud-phone{border-radius:14px;width:22%;max-height:220px;top:110px;right:7%}.case-cover .phone-trio{gap:11px;width:83%;top:67px}.case-cover .phone-trio img{border-width:4px;border-radius:16px}.case-cover .codelaunch-screen{width:77%;top:78px;left:8%}.case-cover .codelaunch-screen>img{height:210px}.case-cover .codelaunch-phone{border-radius:14px;width:23%;height:216px;top:110px;right:7%}.case-cover .clipboard-art{padding-top:134px}.case-cover .clip-outline{width:100px;height:115px;top:37px;left:calc(50% - 50px)}.case-cover .clip-front svg{width:65px}.case-cover .clipboard-art kbd{width:39px;height:35px;font-size:17px}.case-cover .terminal-art{width:86%;top:83px;left:7%}.case-cover .terminal-art code{padding:18px 19px;font-size:12px}.case-cover .terminal-label{height:28px}.case-cover .terminal-dim{font-size:9px}.case-cover .thread-art{font-size:14px;top:96px;left:19%}.case-cover .thread-line{width:235px}.case-body{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:43px}.case-meta{border-bottom:1px solid var(--line);padding-bottom:23px}.case-meta p{max-width:100%;margin-top:7px;font-size:11px}.case-meta a{margin-top:15px}.case-content>p{font-size:19px;line-height:1.75}.case-highlights{gap:25px;margin-top:30px}.case-highlights h2{font-size:21px}.case-highlights p{font-size:12px}.case-credit{font-size:10px!important}.gallery-section{padding-top:28px;padding-bottom:43px}.gallery-heading{margin-bottom:21px;display:block}.gallery-heading h2{font-size:26px}.gallery-heading p{margin-top:9px;font-size:8px}.case-gallery,.case-gallery.phone-gallery{grid-template-columns:1fr;gap:26px}.gallery-trigger{height:360px;padding:20px}.phone-gallery .gallery-trigger{height:550px}.gallery-figure figcaption{font-size:10px}.next-project{padding:27px 0 43px}.next-project h2{letter-spacing:-1.3px;font-size:32px}.next-project>.eyebrow{font-size:8px}.next-project>svg{width:35px;height:35px}.not-found{padding:65px 0 90px}.not-found h1{font-size:64px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.will-reveal{opacity:1;transform:none}}.hero-main{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:70px;padding:52px 0 64px;display:grid}.hero h1{letter-spacing:-4px;font-size:clamp(44px,6.2vw,84px);font-weight:600;line-height:1.12}.hero-copy>p{max-width:570px;color:var(--muted);margin-top:22px;font-size:15px;line-height:1.9}.hero-ctas{align-items:center;gap:28px;margin-top:28px;display:flex}.hero-details{border-left:1px solid var(--line);gap:25px;margin:0;padding:4px 0 4px 32px;display:grid}.hero-details dt{font:10px/1.6 var(--mono);color:var(--muted);margin-bottom:8px}.hero-details dd{margin:0;font-size:15px;font-weight:550;line-height:1.6}.hero-details dd>span{color:var(--muted);margin-top:3px;font-size:12px;font-weight:400;display:block}.hero-profile-links{gap:23px;display:flex}.hero-profile-links a{align-items:center;gap:8px;font-size:12px;display:inline-flex}.about-grid{grid-template-columns:1fr 1.5fr;gap:70px;display:grid}.about-title h2{letter-spacing:-1.3px;font-size:36px}.about-copy{min-width:0}.education{border-top:0;margin-top:0;padding-top:0}.education div>span:not(.eyebrow){color:var(--muted);margin-top:6px;font-size:11px;line-height:1.7;display:block}.skill-groups{gap:21px;margin-top:27px;display:grid}.skill-groups h3{margin-bottom:7px;font-size:12px;font-weight:650}.skill-groups p{color:var(--muted);font-size:12px;line-height:1.9}.contact-main{justify-content:space-between;align-items:center;gap:28px;padding:0 0 28px;display:flex}.contact-main h2{letter-spacing:-1.2px;font-size:36px}.contact-main p{color:#b8c8dd;margin-top:12px;font-size:13px;line-height:1.9}.contact-main .button{flex-shrink:0}.contact-actions{flex-wrap:wrap;flex-shrink:0;gap:12px;display:flex}.contact-bottom{border-top:1px solid #344966;align-items:center;gap:18px;padding-top:20px;display:flex}.contact-bottom>a{align-items:center;gap:12px;font-size:12px;display:inline-flex}[data-theme=dark] .contact-inner{color:var(--ink);border-top:1px solid var(--line);background:0 0;border-radius:0;padding-inline:0}[data-theme=dark] .contact-main p,[data-theme=dark] .copy-email{color:var(--muted)}[data-theme=dark] .contact-bottom{border-color:var(--line)}@media (width<=1000px){.hero-main{gap:35px}.hero h1{letter-spacing:-3px;font-size:clamp(44px,6.2vw,70px)}.hero-details{padding-left:25px}.about-grid{gap:40px}}@media (width<=700px){.project-mention-main{gap:14px}.project-app-icon{border-radius:12px;width:56px;height:56px}.project-mention{flex-direction:column;align-items:flex-start}.toolkit-art{gap:8px}.toolkit-art span{min-height:40px;padding:8px;font-size:10px}.case-cover .toolkit-art{gap:10px;inset:24% 8%}.case-cover .toolkit-art span{min-height:45px;padding:10px;font-size:11px}.shelf-phone{border-width:2px;border-radius:10px}.hero-main{grid-template-columns:1fr;gap:33px;padding:35px 0 38px}.hero h1{letter-spacing:-2px;font-size:clamp(39px,9vw,62px)}.hero-copy>p{margin-top:20px;font-size:13px}.hero-ctas{gap:24px;margin-top:24px}.hero-ctas .button{gap:20px;padding:14px 18px;font-size:11px}.hero-details{border-left:0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px 15px;padding:24px 0 0}.hero-details dd{font-size:12px}.hero-details dd>span{font-size:10px}.hero-details dt{font-size:9px}.about-grid{grid-template-columns:1fr;gap:28px}.about-title h2{font-size:29px}.contact-main{flex-direction:column;align-items:flex-start;gap:22px;padding-bottom:25px}.contact-main h2{font-size:30px}.contact-main p{font-size:12px}.contact-bottom{flex-wrap:wrap;gap:12px}.contact-bottom>a{font-size:10px}}
