@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-opsz-normal.D9N6E8K1.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-opsz-normal.IcJDqblK.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}:root{color-scheme:light;--accent:#c8f031;--font-sans:"Bricolage Grotesque Variable", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--bg:#f3f2ec;--bg2:#ecebe4;--surface:#fbfaf6;--fg:#111110;--fg2:#34332f;--muted:#5e5d57;--line:#dedcd3;--border:#cfcdc3;--card-border:#d6d4ca;--grid:#1111100f;--btn-bg:#111110;--btn-fg:#f3f2ec;--outline:#111110;--band:#111110;--band-fg:#edebe3;--band-dot:var(--accent);--term:#111110;--term-border:#111110;--stripe-a:#dcdad0;--stripe-b:#e4e2d9;--tab-bg:#111110;--tab-fg:#f3f2ec;--tab-count:var(--accent);--dot-stroke:3px #111110;--contact-line:#2e2e2b;--mail-color:#edebe3;--ghost:#222220;--glow:0;--glass-bg:#ffffff9e;--glass-bd:#1111101a;--glass-sh:0 12px 40px -14px #11111047, inset 0 1px 0 #ffffffd9;--dock-hover:#1111100f;--dock-active:#111110;--dock-active-fg:#f3f2ec;--card-hover-bg:#111110;--card-hover-fg:#f3f2ec;--card-hover-muted:#b9b8b0;--card-hover-arrow-bg:var(--accent);--card-hover-arrow-fg:#111110}:root[data-theme=dark]{color-scheme:dark;--bg:#0d0d0c;--bg2:#121211;--surface:#161614;--fg:#edebe3;--fg2:#c4c2ba;--muted:#9a988f;--line:#23231f;--border:#34332f;--card-border:#2a2a27;--grid:#edebe30d;--btn-bg:#edebe3;--btn-fg:#0d0d0c;--outline:#4a4944;--band:var(--accent);--band-fg:#0d0d0c;--band-dot:#0d0d0c;--term:#161614;--term-border:#2e2e2b;--stripe-a:#1d1d1b;--stripe-b:#171715;--tab-bg:var(--accent);--tab-fg:#0d0d0c;--tab-count:#0d0d0c;--dot-stroke:0 transparent;--contact-line:#23231f;--mail-color:var(--accent);--ghost:#1c1c1a;--glow:.11;--glass-bg:#ffffff14;--glass-bd:#ffffff24;--glass-sh:0 12px 40px -12px #000000bf, inset 0 1px 0 #ffffff29;--dock-hover:#ffffff12;--dock-active:#0009;--dock-active-fg:#edebe3;--card-hover-bg:var(--accent);--card-hover-fg:#0d0d0c;--card-hover-muted:#2b2b28;--card-hover-arrow-bg:#0d0d0c;--card-hover-arrow-fg:var(--accent)}@media (width<=760px){:root{--dot-stroke:2px #111110}:root[data-theme=dark]{--dot-stroke:0 transparent;--glow:.13}}@keyframes rise{0%{transform:translateY(110%)}to{transform:none}}@keyframes fade{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes rot{0%,20%{transform:translateY(0)}25%,45%{transform:translateY(-1.2em)}50%,70%{transform:translateY(-2.4em)}75%,95%{transform:translateY(-3.6em)}to{transform:translateY(-4.8em)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes marq{to{transform:translate(-50%)}}@keyframes iconin{0%{opacity:0;transform:rotate(-120deg)scale(.3)}to{opacity:1;transform:none}}@keyframes wave{0%,7%,to{transform:none}3.5%{transform:translateY(-.09em)rotate(-4deg)}}@keyframes hop{0%,to{transform:none}45%{transform:translateY(-.16em)scale(1.06)}}@keyframes peek{0%,to{transform:none}25%{transform:rotate(-6deg)}50%{transform:translateY(-.03em)rotate(3deg)}75%{transform:rotate(-2deg)}}@keyframes lens{0%,to{transform:none}50%{transform:rotate(-16deg)}}@keyframes tilt{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}@keyframes walk{0%{left:0;transform:scaleX(1)}47%{left:calc(100% - .3em);transform:scaleX(1)}50%{left:calc(100% - .3em);transform:scaleX(-1)}97%{left:0;transform:scaleX(-1)}to{left:0;transform:scaleX(1)}}@keyframes step{0%{transform:rotate(-16deg)}to{transform:rotate(16deg)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-1.5px)}}@keyframes wavearm{0%{transform:rotate(-12deg)}to{transform:rotate(26deg)}}.rise{animation:1.1s cubic-bezier(.2,.8,.2,1) backwards rise;display:block}.fade{animation:.9s cubic-bezier(.2,.8,.2,1) .55s backwards fade}.fade2{animation:.9s cubic-bezier(.2,.8,.2,1) .8s backwards fade}.ltr{animation:1s cubic-bezier(.2,.8,.2,1) backwards rise;animation-delay:calc(var(--i) * 45ms + 60ms);display:inline-block}.wv{cursor:default;animation:wave 7s ease-in-out calc(var(--i) * 70ms + 2.4s) infinite;transition:color .2s;display:inline-block}.wv:hover{color:var(--accent);animation:.55s cubic-bezier(.3,1.6,.5,1) hop}.rot{vertical-align:bottom;height:1.2em;display:inline-block;overflow:hidden}.rot-in{flex-direction:column;animation:10s cubic-bezier(.75,0,.2,1) infinite rot;display:flex}.rot-in span{height:1.2em;line-height:1.2em;display:block}.spin{animation:.8s linear infinite spin}.marquee{width:max-content;animation:40s linear infinite marq;display:flex}.icon-in{animation:.45s cubic-bezier(.2,.8,.2,1) iconin}.stick{flex-shrink:0;display:block;overflow:visible}.stick g,.stick line,.stick circle{transform-box:fill-box}.peek{transform-origin:50% 100%;animation:4.5s ease-in-out infinite peek}.lens{transform-origin:0 100%;animation:2.2s ease-in-out infinite lens}.lens2{transform-origin:0 20%;animation:.5s ease-in-out infinite alternate tilt}.walker{animation:11s linear infinite walk;position:absolute;bottom:calc(100% - .1em);left:0}.legA{transform-origin:100% 0;animation:.5s ease-in-out infinite alternate step}.legB{transform-origin:0 0;animation:.5s ease-in-out infinite alternate-reverse step}.armSwing{transform-origin:100% 0;animation:.5s ease-in-out infinite alternate-reverse step}.bob{animation:.5s ease-in-out infinite alternate bob}.wave-arm{transform-origin:0 100%;animation:.7s ease-in-out infinite alternate wavearm}@supports (animation-timeline:view()){.reveal{animation:linear backwards fade view();animation-range:entry cover 20%}}@media (width<=760px){.marquee{animation-duration:32s}.walker{animation-duration:9s}.bob{animation-name:bob-m}@keyframes bob-m{0%{transform:translateY(0)}to{transform:translateY(-1px)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}:root{--svh:1svh;--vw:1vw}@media (width>=761px){:root{--zoom:.85;--svh:calc(1svh / var(--zoom));--vw:calc(1vw / var(--zoom))}html{zoom:var(--zoom)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);margin:0;transition:background-color .45s,color .45s}:root{--nav-h:66px;--band-h:58px}a{color:inherit}h1,h2,p,ul{margin:0}ul{padding:0;list-style:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.contact :focus-visible,.site-footer :focus-visible{outline-color:#edebe3}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--fg);color:var(--bg);border-radius:10px;padding:12px 18px;text-decoration:none;position:absolute;top:-80px;left:16px}.skip:focus{top:16px}.tt{transition:background-color .45s,color .45s,border-color .45s}.label{font-family:var(--font-mono);color:var(--muted);font-size:13px}.mask{margin:-.22em 0 -.14em;padding:.22em 0 .14em;display:block;overflow:hidden}.gridbg{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:-1px -1px;background-size:56px 56px}.glow{pointer-events:none;background:radial-gradient(closest-side, var(--accent), transparent);width:60%;height:120%;opacity:var(--glow);transition:opacity .45s;position:absolute;bottom:-40%;right:-10%}.glass{background:var(--glass-bg);border:1px solid var(--glass-bd);box-shadow:var(--glass-sh);-webkit-backdrop-filter:blur(24px)saturate(1.8)}.btn{border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 24px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background-color .45s,color .45s,border-color .45s;display:inline-flex}.btn-solid{background:var(--btn-bg);color:var(--btn-fg)}.btn-line{border-color:var(--outline);background:var(--surface);color:var(--fg)}.btn-short{display:none}@media (hover:hover){.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px #0000008c}}.btn:active{transform:scale(.97)}.topnav{z-index:30;pointer-events:none;justify-content:center;padding:16px 16px 0;display:flex;position:sticky;top:0}.topnav nav{pointer-events:auto;align-items:center;gap:10px;display:flex}.dock{border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex}.dock-item{height:40px;color:var(--muted);letter-spacing:-.01em;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.dock-item svg{flex-shrink:0}.dock-item.is-active,.dock-item.is-active:hover{background:var(--dock-active);color:var(--dock-active-fg)}@media (hover:hover){.dock-item:hover{color:var(--fg);background:var(--dock-hover)}}.lbl{white-space:nowrap;opacity:0;max-width:0;margin-left:0;transition:max-width .3s cubic-bezier(.2,.8,.2,1),margin-left .3s cubic-bezier(.2,.8,.2,1),opacity .2s;overflow:hidden}.dock-item.is-active .lbl,.dock-item:focus-visible .lbl{opacity:1;max-width:120px;margin-left:8px}@media (hover:hover){.dock-item:hover .lbl{opacity:1;max-width:120px;margin-left:8px}}.themebtn{width:46px;height:46px;color:var(--fg);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid}.themebtn:hover{border-color:var(--fg)}.themebtn .sun{display:none}:root[data-theme=dark] .themebtn .sun{display:block}:root[data-theme=dark] .themebtn .moon{display:none}.hero{min-height:calc(calc(100 * var(--svh)) - var(--nav-h) - var(--band-h));padding:clamp(20px, calc(4 * var(--svh)), 64px) 32px;border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero-in{gap:clamp(16px, calc(3 * var(--svh)), 44px);flex-direction:column;width:100%;max-width:1320px;margin:0 auto;display:flex;position:relative}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.hey{font-size:clamp(18px, min(calc(2 * var(--vw)), calc(3 * var(--svh))), 26px);letter-spacing:-.01em;color:var(--muted);font-weight:500;line-height:1.3}.name .hey{display:none}.chips{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.chips li{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 12px}.chips-m{display:none}.name{letter-spacing:-.05em;font-weight:800;line-height:.92;font-size:clamp(64px, min(calc(12.6 * var(--vw)), calc(16.5 * var(--svh))), 188px);margin:-.14em 0 0}.name .line{align-items:flex-end;display:inline-flex}.name .dot{color:var(--accent);-webkit-text-stroke:var(--dot-stroke)}.hero-grid{gap:clamp(24px, calc(4 * var(--svh)), 48px);grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));align-items:end;display:grid}.hero-copy{gap:clamp(14px, calc(2.2 * var(--svh)), 28px);flex-direction:column;max-width:600px;display:flex}.focus{font-size:clamp(20px, min(calc(2.2 * var(--vw)), calc(3.6 * var(--svh))), 28px);letter-spacing:-.02em;font-weight:500;line-height:1.3}.focus .rot{background:var(--accent);color:#111110;border-radius:8px;padding:0 10px}.tagline{color:var(--muted);text-wrap:pretty;font-size:16px;line-height:1.6}.cta{flex-wrap:wrap;gap:12px;display:flex}.runner{background:var(--term);color:#edebe3;border:1px solid var(--term-border);font-family:var(--font-mono);border-radius:22px;padding:18px 22px;font-size:14px;transform:rotate(-1deg);box-shadow:0 40px 80px -40px #000000b3}.runner-head{color:#9a988f;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.runner-bar{background:#2a2a27;border-radius:4px;height:4px;margin-bottom:8px;overflow:hidden}.runner-bar i{background:var(--accent);width:0;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1);display:block}.runner li{border-bottom:1px solid #262624;align-items:center;gap:14px;padding:9px 0;transition:color .3s;display:flex}.runner li[data-state=idle],.runner li[data-state=idle] .tool{color:#8a8981}.runner .st{flex-shrink:0;align-items:center;width:48px;display:flex}.runner .st>*{display:none}.runner [data-state=running] .st .spin,.runner [data-state=done] .st .pass{display:inline-block}.runner [data-state=idle] .st .idle{display:inline}.runner .spin{border:2px solid #4a4944;border-top-color:var(--accent);border-radius:50%;width:14px;height:14px}.runner .pass{background:var(--accent);color:#111110;letter-spacing:.04em;border-radius:5px;padding:3px 7px;font-size:11px;font-weight:500}.runner .nm{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.runner .tool{color:#9a988f;white-space:nowrap;font-size:12px}.runner-sum{color:#9a988f;padding-top:10px}.runner-sum.ok{color:var(--accent)}.band{background:var(--band);color:var(--band-fg);padding:16px 0;overflow:hidden}.band li{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:22px;padding-right:22px;font-size:22px;font-weight:700;display:inline-flex}.band li:after{content:"";background:var(--band-dot);width:10px;height:10px;transform:rotate(45deg)}.projects{padding:100px 32px}.projects-in{flex-direction:column;gap:48px;max-width:1320px;margin:0 auto;display:flex}.projects-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.projects-title{flex-direction:column;gap:52px;display:flex}.h-big{font-size:clamp(48px, calc(6 * var(--vw)), 88px);letter-spacing:-.045em;font-weight:800;line-height:.95}.h-big .word{align-items:flex-end;display:inline-flex;position:relative}.h-big sup{letter-spacing:0;vertical-align:top;font-size:.3em;font-weight:500;font-family:var(--font-mono);margin-left:8px;position:relative;top:.4em}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{border:1.5px solid var(--border);background:var(--surface);min-height:40px;color:var(--fg);font:500 15px/1 var(--font-sans);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 18px;transition:border-color .2s,background-color .45s,color .45s;display:inline-flex}.tab:hover{border-color:var(--fg)}.tab .n{font-family:var(--font-mono);color:var(--muted);font-size:12px}.tab[aria-pressed=true]{border-color:var(--tab-bg);background:var(--tab-bg);color:var(--tab-fg);font-weight:600}.tab[aria-pressed=true] .n{color:var(--tab-count)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:20px;display:grid}.card{border:1px solid var(--card-border);background:var(--surface);min-height:250px;color:var(--fg);border-radius:20px;flex-direction:column;justify-content:space-between;gap:48px;padding:26px;text-decoration:none;transition:background-color .35s,color .35s,transform .45s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .45s;display:flex;overflow:hidden}.card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.card .muted{color:var(--muted);transition:color .35s}.card .num{font-family:var(--font-mono);font-size:13px;transition:transform .45s cubic-bezier(.2,.8,.2,1),color .35s;display:inline-block}.card .arrow{border:1px solid var(--border);width:44px;height:44px;color:var(--fg);border-radius:50%;flex-shrink:0;place-items:center;transition:transform .45s cubic-bezier(.2,.8,.2,1),background-color .3s,border-color .3s,color .3s;display:grid}.card-body{flex-direction:column;gap:10px;min-width:0;display:flex}.card .title{letter-spacing:-.035em;overflow-wrap:anywhere;font-size:28px;font-weight:700;line-height:1.02;transition:transform .45s cubic-bezier(.2,.8,.2,1);display:block}.card .kind{font-size:14px}.ticker{opacity:0;border-top:1px solid;max-height:0;margin-top:-10px;transition:max-height .45s cubic-bezier(.2,.8,.2,1),opacity .3s,margin-top .45s cubic-bezier(.2,.8,.2,1);overflow:hidden}.ticker-in{width:max-content;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding-top:12px;font-size:13px;animation:6s linear infinite paused marq;display:flex}.ticker-in span{padding-right:28px}@media (hover:hover){.card:hover{transform:translateY(-8px)rotate(-.6deg);box-shadow:0 30px 50px -30px #0000008c}.card:hover .title{transform:translate(8px)}.card:hover .num{transform:translate(4px)}.card:hover .ticker{opacity:1;max-height:48px;margin-top:6px}.card:hover .ticker-in{animation-play-state:running}}.card:hover,.card:active{background:var(--card-hover-bg);color:var(--card-hover-fg);border-color:var(--card-hover-bg)}.card:hover .muted,.card:active .muted{color:var(--card-hover-muted)}.card:hover .arrow,.card:active .arrow{background:var(--card-hover-arrow-bg);border-color:var(--card-hover-arrow-bg);color:var(--card-hover-arrow-fg);transform:rotate(-45deg)scale(1.08)}.about{border-top:1px solid var(--line);background:var(--bg2);padding:100px 32px}.about-in{grid-template-columns:repeat(auto-fit,minmax(min(480px,100%),1fr));align-items:start;gap:72px;max-width:1320px;margin:0 auto;display:grid}.photo-wrap{position:relative}.photo{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border);background:repeating-linear-gradient(135deg, var(--stripe-a) 0 2px, var(--stripe-b) 2px 16px);border-radius:28px;width:100%;height:auto;display:block}.badge{background:var(--accent);color:#111110;letter-spacing:-.01em;border-radius:14px;padding:12px 18px;font-size:16px;font-weight:700;position:absolute;bottom:36px;right:-12px;transform:rotate(4deg);box-shadow:0 18px 30px -16px #000000b3}.about-copy{flex-direction:column;gap:36px;display:flex}.quote{font-size:clamp(36px, calc(4 * var(--vw)), 58px);letter-spacing:-.04em;text-wrap:balance;font-weight:800;line-height:1}.prose{color:var(--fg2);flex-direction:column;gap:18px;max-width:620px;font-size:17px;line-height:1.65;display:flex}.prose p{text-wrap:pretty}.prose .small{color:var(--muted);font-size:.82em}.skills{flex-direction:column;gap:16px;display:flex}.skills ul{flex-wrap:wrap;gap:8px;display:flex}.skills li{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:9px 14px;font-size:14px;font-weight:500}.about-actions{flex-wrap:wrap;gap:12px;display:flex}.about-actions .btn-line{background:0 0}.contact,.site-footer{color:#edebe3;background:#0d0d0c}.contact{border-top:1px solid var(--contact-line);padding:100px 32px 64px}.contact-in{flex-direction:column;gap:72px;max-width:1320px;margin:0 auto;display:flex}.contact-head{flex-direction:column;gap:22px;display:flex}.contact .label{color:#9a988f}.talk{font-size:clamp(52px, calc(7.8 * var(--vw)), 120px);letter-spacing:-.05em;font-weight:800;line-height:.92}.talk .line{align-items:flex-end;display:inline-flex}.talk .dot{color:var(--accent)}.contact-lead{color:#b9b8b0;max-width:640px;font-size:18px;line-height:1.55}.mail{font-size:clamp(28px, calc(4.8 * var(--vw)), 72px);letter-spacing:-.04em;overflow-wrap:anywhere;color:var(--mail-color);background:linear-gradient(var(--accent), var(--accent)) no-repeat 0 0 / 0% 100%;padding:0 .08em;font-weight:700;line-height:1.1;text-decoration:none;transition:background-size .6s cubic-bezier(.2,.8,.2,1),color .3s;display:inline}.mail:hover,.mail:active{color:#111110;background-size:100% 100%}.rows{flex-direction:column;display:flex}.row{color:#edebe3;border-top:1px solid #2e2e2b;justify-content:space-between;align-items:center;gap:16px;min-height:64px;font-size:20px;font-weight:600;text-decoration:none;transition:color .2s,padding .3s;display:flex}.row:last-child{border-bottom:1px solid #2e2e2b}.row:hover{color:var(--accent);padding-left:8px}.row .k{font-family:var(--font-mono);color:#9a988f;flex-shrink:0;width:110px;font-size:13px;font-weight:400}.row .v{overflow-wrap:anywhere;flex:1;min-width:0}.site-footer{padding:0 32px 40px}.footer-in{border-top:1px solid #2e2e2b;flex-direction:column;gap:28px;max-width:1320px;margin:0 auto;padding-top:40px;display:flex}.ghost:before{content:attr(data-text)}.ghost{font-size:clamp(64px, calc(13 * var(--vw)), 196px);letter-spacing:-.06em;color:var(--ghost);white-space:nowrap;user-select:none;font-weight:800;line-height:.8;overflow:hidden}.footer-meta{color:#9a988f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;font-size:14px;display:flex}.footer-links{gap:24px;display:flex}.footer-links a{color:#edebe3}.notfound{min-height:calc(100 * var(--svh));text-align:center;place-content:center;gap:16px;padding:32px;display:grid}.notfound h1{font-size:clamp(40px, calc(8 * var(--vw)), 96px);letter-spacing:-.04em;font-weight:800}@media (width>=761px){.card.reveal{animation:none}}@media (width>=761px) and (height<=780px){.runner{padding:14px 20px}.runner-head{margin-bottom:8px}.runner li{padding:6px 0}.runner-sum{padding-top:8px}}@media (width<=760px){.label{font-size:12px}.btn{min-height:52px;font-size:15px}.btn-long{display:none}.btn-short{display:inline}.topnav{padding:12px 16px 0}.topnav nav{gap:6px}.dock{gap:0;padding:3px}.dock-item{height:44px;padding:0 16px;font-size:15px}.lbl{clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.themebtn{width:50px;height:50px}.hero{min-height:0;padding:32px 16px 44px;display:block}.hero-in{gap:28px}.hero-top{display:none}.name{margin:0;font-size:66px}.name .hey{margin-bottom:6px;font-size:20px;display:block}.glow{width:110%;height:70%;bottom:-20%;right:-30%}.gridbg{background-size:40px 40px}.hero-grid{flex-direction:column;gap:28px;display:flex}.hero-copy{gap:20px;max-width:none}.focus{font-size:21px}.focus .rot{border-radius:7px;padding:0 8px}.tagline{font-size:16px}.chips-m{display:flex}.chips{gap:6px;font-size:11px}.chips li{border-radius:7px;padding:6px 10px}.cta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.cta .btn{padding:0}.cta svg{display:none}.runner{border-radius:18px;padding:18px;font-size:12px;box-shadow:0 30px 60px -30px #000000b3}.runner-head{margin-bottom:12px;font-size:12px}.runner-bar{height:3px;margin-bottom:4px}.runner li{gap:10px;padding:11px 0}.runner .st{width:40px}.runner .spin{width:12px;height:12px}.runner .pass{letter-spacing:0;border-radius:4px;padding:2px 5px;font-size:10px}.runner .tool{font-size:11px}.runner-sum{padding-top:12px}.band{padding:16px 0}.band li{gap:18px;padding-right:18px;font-size:20px}.band li:after{width:8px;height:8px}.projects{padding:64px 0}.projects-in{gap:24px}.projects-head{display:contents}.projects-title{gap:32px;padding:0 16px}.h-big{font-size:56px}.tabs{scrollbar-width:none;flex-wrap:nowrap;padding:2px 16px 4px;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex-shrink:0;min-height:44px;padding:0 16px;font-size:14px}.tab .n{font-size:11px}.cards{flex-direction:column;gap:12px;padding:0 16px;display:flex}.card{border-radius:18px;gap:28px;min-height:0;padding:20px}.card .num{font-size:12px}.card .arrow{width:40px;height:40px}.card .title{font-size:27px;line-height:1.05}.card .kind{font-size:14px}.card:active{transform:scale(.98)}.ticker{display:none}.about{padding:64px 16px}.about-in{flex-direction:column;gap:28px;display:flex}.about-copy{display:contents}.about-copy>*{order:2}.about-copy>.label{order:0}.photo-wrap{order:1}.photo{border-radius:22px}.badge{border-radius:12px;padding:10px 14px;font-size:15px;bottom:20px;right:12px;box-shadow:0 14px 24px -14px #000000b3}.quote{font-size:38px;line-height:1.02}.prose{gap:14px;max-width:none;font-size:17px}.prose .small{font-size:.85em}.skills{gap:12px}.skills ul{gap:6px}.skills li{border-radius:9px;padding:7px 12px;font-size:14px}.about-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.about-actions .btn-solid{grid-column:1/-1;font-size:16px}.about-actions .btn{padding:0}.contact{padding:64px 16px 40px}.contact-in{gap:40px}.contact-head{gap:16px}.talk{font-size:58px}.contact-lead{font-size:17px}.mail{letter-spacing:-.035em;font-size:29px;line-height:1.2}.row{gap:12px;min-height:60px;font-size:17px}.row:hover{padding-left:0}.row .k{width:72px;font-size:11px}.site-footer{padding:0 16px 28px}.footer-in{border-top:0;gap:18px;padding-top:8px}.ghost{font-size:92px}.footer-meta{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;font-size:13px}.footer-meta>.role{order:1}.footer-meta>.footer-links{order:2;gap:20px}.footer-meta>.copy{order:3}.footer-meta>.by{order:4}.footer-links a{align-items:center;min-height:32px;display:inline-flex}}
