@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}.portfolio-dialog{border:2px solid var(--blue);background:var(--paper);color:var(--blue);border-radius:7px;width:min(820px,100% - 40px);max-height:calc(100svh - 64px);padding:0;overflow:auto;box-shadow:10px 12px #26231f24,0 24px 100px #15182933}.portfolio-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#171b4838}.portfolio-dialog[open]{animation:.2s ease-out window-enter}@keyframes window-enter{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.dialog-bar{z-index:2;border-bottom:1px solid var(--blue);background:var(--paper);min-height:47px;padding-left:23px;font-size:16px;position:sticky;top:0}.dialog-bar .window-action{border-left:1px solid #26231f30;width:46px;height:46px}.dialog-body{padding:36px 42px 40px}.dialog-body h2{letter-spacing:-.05em;margin:0 0 25px;font-size:clamp(30px,4vw,45px);font-weight:700;line-height:1.1}.dialog-body p{letter-spacing:-.012em;font-size:17px;line-height:1.75}.dialog-body .dialog-intro{margin:0 0 23px;font-size:16px}.content-tabs{border-bottom:1px solid #26231f3b;gap:16px;margin-bottom:28px;display:flex}.content-tabs button{min-height:48px;padding:11px 8px 13px;font-size:15px;position:relative}.content-tabs button:first-child{padding-left:0}.content-tabs button[aria-selected=true]:after{content:"";background:var(--orange);width:100%;height:3px;position:absolute;bottom:-1px;left:0}.content-tabs button:hover{background:#26231f07}.tab-number{color:#7c7064;font:11px var(--mono);margin-right:7px}.experience-panel{min-height:335px}.tabbed-dialog{overflow:hidden}.tools-dialog{--dialog-height:680px}.tabbed-dialog .dialog-shell{height:min(var(--dialog-height,920px), calc(100svh - 68px));flex-direction:column;display:flex}.tabbed-dialog .dialog-bar,.tabbed-dialog .dialog-footer{flex-shrink:0}.tabbed-dialog .tabbed-body{flex-direction:column;flex:1;min-height:0;display:flex}.tabbed-body>h2,.tabbed-body>.dialog-intro,.tabbed-body>.content-tabs{flex-shrink:0}.tabbed-dialog .tabbed-panel{overscroll-behavior-y:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding-right:8px;overflow-y:auto}@media (width<=600px){.tabbed-dialog .dialog-shell{height:min(var(--dialog-height,920px), calc(100svh - 36px))}}@media (height<=600px){.portfolio-dialog.tabbed-dialog{max-height:calc(100svh - 32px)}.tabbed-dialog .dialog-shell{height:min(var(--dialog-height,920px), calc(100svh - 36px))}.tabbed-dialog .tabbed-body{padding:12px 21px}.experience-body>.dialog-intro{display:none}.tabbed-body>.content-tabs{margin-top:0;margin-bottom:12px}.tools-body>h2{display:none}}.experience-body>.content-tabs{scrollbar-width:thin;padding-bottom:3px;overflow-x:auto}.experience-body>.content-tabs button{white-space:nowrap;flex-shrink:0}.conversation-preview{background:#f4eee5;border:1px solid #26231f59;border-radius:5px;margin:25px 0;overflow:hidden}.conversation-preview h3{font:13px/1.5 var(--mono);background:var(--paper);border-bottom:1px solid #26231f2b;margin:0;padding:11px 17px;font-weight:400}.conversation-questions{flex-direction:column;align-items:flex-end;gap:10px;margin:0;padding:19px 20px 9px;list-style:none;display:flex}.conversation-questions li{background:var(--paper);border:1px solid #26231f2e;border-radius:10px 10px 2px;max-width:100%;padding:10px 15px;font-size:15px;line-height:1.5}.dialog-body .conversation-note{color:#655c52;margin:0;padding:5px 20px 16px;font-size:12px;line-height:1.6}.experience-panel h2{max-width:630px;margin-bottom:20px}.detail-list{margin:25px 0;padding:0;list-style:none}.detail-list li{border-bottom:1px solid #26231f18;align-items:baseline;gap:12px;padding:8px 0;font-size:15px;line-height:1.5;display:flex}.dialog-body .used-tools{font:12px/1.8 var(--mono);color:#655c52;margin-bottom:0}.tools-tabs{margin-top:28px}.tool-list{flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none;display:flex}.tool-list li{font:15px/1.4 var(--mono);background:#f6efe5;border:1px solid #26231f59;border-radius:2px;padding:11px 16px}.tool-list li:nth-child(3n+1){background:#eee7dc}.about-hello{color:#c44713;transform-origin:0;margin-bottom:12px;font-size:34px;display:block;transform:rotate(-4deg)}.about-body p{max-width:650px}.about-body .text-link{margin-top:15px}.contact-hello{color:#c44713;margin-bottom:10px;font-size:39px;display:block}.contact-body h2{font-size:clamp(34px,4vw,50px)}.contact-body>p{max-width:510px}.email-row{border-bottom:1px solid var(--blue);align-items:center;gap:15px;margin-top:32px;padding-bottom:12px;display:flex}.email-row>a{letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(18px,3vw,30px);text-decoration:none}.email-row>a:hover{text-underline-offset:5px;text-decoration:underline}.copy-button{border:1px solid #26231f4a;flex-shrink:0;place-items:center;width:42px;height:42px;margin-left:auto;display:grid}.copy-button:hover{background:#f3e8d9}.dialog-body .copy-feedback{min-height:23px;margin:7px 0 21px;font-size:13px}.social-links{gap:35px;display:flex}.social-links a{text-underline-offset:5px;align-items:center;gap:12px;font-size:17px;display:inline-flex}.social-links .icon{width:17px;height:17px}.dialog-footer{font:10px/1.5 var(--mono);background:#26231f05;border-top:1px solid #26231f34;justify-content:space-between;gap:16px;padding:13px 22px;display:flex}:root{color:#f1f2e9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#f1f2e9;--paper:#101211;--orange:#c3f85c;--blue:#f1f2e9;--accent:#c3f85c;--muted:#b8bbad;--mono:"IBM Plex Mono", monospace;--border:#77796b;background:#0b0d0c;font-family:Inter Variable,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,a{color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;background:0 0;border:0}a{text-underline-offset:5px}button:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:#101211}.icon{flex-shrink:0;width:23px;height:23px}.skip-link{z-index:100;background:var(--accent);color:#101211;padding:15px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.portfolio{max-width:1600px;margin:auto;padding:0 2.4%}.site-header{border-bottom:1px solid var(--border);height:73px;font-family:var(--mono);justify-content:space-between;align-items:center;display:flex}.wordmark{letter-spacing:-.045em;font-size:26px;text-decoration:none}.top-nav{gap:54px;display:flex}.top-nav button{padding:21px 0;font-size:18px;position:relative}.top-nav button:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .18s;position:absolute;bottom:10px;left:0;transform:scaleX(0)}.top-nav button:hover:after,.top-nav button:focus-visible:after{transform:scaleX(1)}.decode-text{display:inline-block;position:relative}.decode-original{opacity:0}.decode-display{white-space:nowrap;position:absolute;inset:0}main:focus{outline:none}.workbench{grid-template-columns:43% 57%;align-items:center;min-height:700px;padding:25px 0 29px;display:grid}.introduction{z-index:1;padding-left:13px;position:relative}h1{letter-spacing:-.045em;margin:0;font-size:clamp(48px,5.75vw,88px);font-weight:650;line-height:1.08}h1>span{color:var(--accent)}.role{font:25px/1.5 var(--mono);letter-spacing:-.03em;margin:29px 0 12px}.intro-copy{font:19px/1.55 var(--mono);color:var(--muted);letter-spacing:-.035em;margin:0}.hero-actions{flex-direction:column;align-items:flex-start;gap:23px;margin-top:31px;display:flex}.main-cta{background:var(--accent);color:#101211;min-height:56px;font:20px var(--mono);align-items:center;gap:21px;padding:13px 29px;transition:background .18s,transform .18s;display:inline-flex}.main-cta:hover{background:#d4ff89;transform:translateY(-2px)}.cta-arrow{flex-shrink:0;width:22px;height:22px}.stack-link{font:17px var(--mono);white-space:nowrap;padding:5px 0}.stack-link i{color:var(--accent);margin:0 3px;font-style:normal}.stack-link:hover{text-underline-offset:6px;text-decoration:underline}.ascii-sculpture{aspect-ratio:780/600;width:100%;position:relative}.sculpture-grid{background-image:linear-gradient(#a7b99b0b 1px,#0000 1px),linear-gradient(90deg,#a7b99b0b 1px,#0000 1px);background-size:37px 37px;position:absolute;inset:8% 4%;-webkit-mask-image:radial-gradient(#000 40%,#0000 73%);mask-image:radial-gradient(#000 40%,#0000 73%)}.ascii-canvas{width:100%;height:100%;position:absolute;inset:0}.sculpture-link{font:clamp(12px, 1.25vw, 18px) var(--mono);color:var(--accent);white-space:nowrap;border-bottom:1px solid #c3f85c40;padding:12px 8px;transition:border-color .18s,background .18s;position:absolute;transform:translate(-50%,-50%)}.sculpture-link span{margin-left:6px}.sculpture-link.active,.sculpture-link:hover{border-color:var(--accent);background:#c3f85c09}.sculpture-link-0{top:12%;left:19%}.sculpture-link-1{top:12%;left:81%}.sculpture-link-2{top:89%;left:19%}.sculpture-link-3{top:89%;left:81%}.motion-toggle{color:var(--muted);font:10px var(--mono);opacity:0;padding:7px;transition:opacity .18s;position:absolute;bottom:-13px;right:0}.ascii-sculpture:hover .motion-toggle,.ascii-sculpture:focus-within .motion-toggle{opacity:1}.solution-grid{border:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.solution-card{text-align:left;flex-direction:column;min-width:0;padding:24px 20px;transition:background .18s;display:flex;position:relative}.solution-card+.solution-card{border-left:1px solid var(--border)}.solution-card:hover,.solution-card:focus-visible{background:#c3f85c06}.card-heading{font:18px var(--mono);letter-spacing:-.055em;align-items:center;gap:9px;display:flex}.card-number{color:var(--accent);white-space:nowrap}.card-arrow{color:var(--accent);font:34px/1 var(--mono);margin-left:auto;transition:transform .18s}.solution-card:hover .card-arrow{transform:translate(3px,-3px)}.card-content{flex:1;grid-template-columns:64px 1fr;align-items:center;gap:14px;margin:23px 0 24px;display:grid}.competency-icon{color:#c5c8bc;justify-self:center;width:64px;max-width:100%;height:96px;transition:color .18s;display:block}.competency-icon .icon-accent{stroke:var(--accent)}.competency-icon .icon-surface{fill:#0b0d0c}.solution-card:hover .competency-icon{color:var(--accent)}.card-description{font:13px/1.65 var(--mono);letter-spacing:-.025em}.card-details{font:11px/1.6 var(--mono);letter-spacing:-.04em;color:var(--muted);flex-wrap:wrap;gap:8px;display:flex}.card-details>span:not(:last-child):after{content:"·";color:var(--accent);margin-left:8px}.site-footer{font:14px/1.6 var(--mono);letter-spacing:-.04em;align-items:center;gap:20px;padding:31px 0 30px;display:flex}.site-footer b{color:var(--accent);margin-right:8px;font-size:22px;font-weight:400}.footer-rule{background:var(--border);flex:1;height:1px}.window-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.window-action{place-items:center;padding:0;display:grid}.window-action:hover{background:#c3f85c15}.window-action:focus-visible{outline-offset:-5px}.text-link{text-underline-offset:6px;align-items:center;gap:16px;padding:0 0 5px;font-size:18px;text-decoration:underline;display:inline-flex}.portfolio-dialog{border:1px solid var(--border);border-radius:0;box-shadow:0 20px 90px #0008}.portfolio-dialog::backdrop{background:#0009}.dialog-bar{font:13px var(--mono);color:var(--accent);border-color:var(--border)}.content-tabs button[aria-selected=true]{color:var(--accent)}.handwritten{font-family:var(--mono)}.about-hello,.contact-hello{color:var(--accent);font-size:17px;transform:none}.content-tabs,.conversation-preview,.conversation-preview h3,.conversation-questions li,.detail-list li,.tool-list li,.copy-button,.dialog-footer,.dialog-bar .window-action{border-color:#77796b60}.tab-number,.dialog-body .conversation-note,.dialog-body .used-tools{color:var(--muted)}.conversation-preview,.tool-list li,.tool-list li:nth-child(3n+1),.copy-button:hover{background:#1b2018}.detail-list li span{color:var(--accent)}.dialog-footer{background:#c3f85c05}@media (width>=601px) and (width<=1250px){.solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-card:nth-child(3){border-left:0}.solution-card:nth-child(n+3){border-top:1px solid var(--border)}}@media (width>=901px) and (width<=1250px){.workbench{min-height:590px}.role{font-size:19px}.intro-copy{font-size:15px}.stack-link{font-size:13px}.main-cta{font-size:16px}.solution-card{padding:22px 19px}.card-heading{gap:8px;font-size:18px}.card-content{grid-template-columns:72px 1fr;gap:12px}.competency-icon{width:72px;height:96px}.card-description{font-size:13px}.card-details{gap:5px;font-size:10px}.card-details>span:not(:last-child):after{margin-left:5px}}@media (width<=900px){.portfolio{padding:0 5%}.wordmark{font-size:21px}.top-nav{gap:24px}.top-nav button{font-size:14px}.workbench{grid-template-columns:1fr;gap:24px;min-height:auto;padding:48px 0 35px}.introduction{padding:0}h1{font-size:clamp(45px,8.5vw,76px)}.role{font-size:21px}.intro-copy{font-size:17px}.ascii-sculpture{justify-self:center;max-width:740px}.sculpture-link{font-size:clamp(11px,2vw,17px)}.solution-card{padding:25px}.card-content{grid-template-columns:112px 1fr}.card-details{font-size:13px}.motion-toggle{opacity:1}.site-footer{font-size:10px}}@media (width<=600px){.solution-grid{grid-template-columns:1fr}.solution-card+.solution-card{border-left:0;border-top:1px solid var(--border)}.site-header{flex-wrap:wrap;gap:10px;height:auto;padding:22px 0 8px}.top-nav{justify-content:space-between;gap:20px;width:100%}.top-nav button{padding:12px 0}.workbench{gap:20px;padding:34px 0 30px}h1{letter-spacing:-.05em;font-size:clamp(34px,10vw,59px);line-height:1.1}.role{margin-top:24px;font-size:17px}.intro-copy{font-size:13px}.hero-actions{gap:18px;margin-top:26px}.main-cta{min-height:52px;padding:13px 23px;font-size:16px}.stack-link{font-size:12px}.ascii-sculpture{margin-top:10px}.sculpture-link{padding:10px 4px;font-size:11px}.sculpture-link span{margin-left:2px}.motion-toggle{font-size:9px;bottom:-17px}.solution-card{padding:22px 18px}.card-heading{gap:9px;font-size:19px}.card-content{grid-template-columns:76px 1fr;gap:17px;margin:21px 0}.competency-icon{width:72px;height:96px}.card-description{font-size:13px}.card-details{gap:6px;font-size:10px}.card-details>span:not(:last-child):after{margin-left:6px}.site-footer{gap:10px;padding:22px 0;font-size:9px}.site-footer>span:first-child{max-width:280px}.site-footer b{font-size:16px}.portfolio-dialog{width:calc(100% - 24px);max-height:calc(100svh - 32px)}.dialog-bar{padding-left:14px;font-size:12px}.dialog-body{padding:27px 21px 28px}.dialog-body h2{font-size:30px}.dialog-body p{font-size:15px;line-height:1.7}.content-tabs{gap:6px}.content-tabs button{padding:9px 5px;font-size:12px}.tab-number{display:none}.experience-panel{min-height:auto}.detail-list li{font-size:14px}.tools-tabs{overflow-x:auto}.tools-tabs button{flex-shrink:0}.tool-list{gap:8px}.tool-list li{padding:9px 11px;font-size:13px}.email-row{gap:8px}.email-row>a{font-size:16px}.copy-button{width:35px;height:35px}.dialog-footer{padding:11px 14px;font-size:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
