@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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}:root{--bg:#0c0c0d;--bg-elev:#131315;--border:#232326;--grid-dot:#1c1c1f;--fg:#e7e5e0;--fg-body:#c4c2bc;--muted:#8d8b85;--dim:#5c5b57;--accent:#d9a55b;--accent-soft:#d9a55b26;--teal:#6fb3b8;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--maxw:1280px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{background-color:var(--bg);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);color:var(--fg-body);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;background-size:22px 22px;margin:0;font-size:15px;line-height:1.75}::selection{background:var(--accent);color:var(--bg)}a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--dim);text-decoration-color:var(--dim);text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}a:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}p{margin:0 0 1rem}.page{max-width:var(--maxw);margin:0 auto;padding:0 24px;overflow:visible clip}.intro{padding:clamp(72px,14vh,140px) 0 24px}.content{flex-direction:column;justify-content:center;padding:24px 0 72px;display:flex}.section{width:100%}.section.leaving{animation:.34s step-end forwards glitch-out}.section.entering{animation:.46s step-end both glitch-in}@keyframes glitch-out{0%{opacity:1}8%{opacity:1;filter:brightness(1.9);text-shadow:6px 0 var(--accent), -6px 0 var(--teal), 0 0 12px var(--accent);transform:translate(-22px)skew(-8deg)}16%{opacity:.1}24%{opacity:.95;clip-path:inset(12% -40px 50%);text-shadow:-8px 0 var(--accent), 8px 0 var(--teal);transform:translate(28px)scaleY(1.06)}32%{opacity:1;clip-path:inset(55% -40px 8%);filter:brightness(2.4)saturate(1.6);transform:translate(-10px)}40%{opacity:.05}50%{opacity:.8;clip-path:inset(30% -40px 40%);text-shadow:10px 0 var(--teal), -4px 0 var(--accent), 0 0 16px var(--teal);transform:translate(16px)skew(10deg)}60%{opacity:0}68%{opacity:.5;clip-path:inset(70% -40px 5%);filter:brightness(3);transform:translate(-30px)scaleX(1.08)}78%,to{opacity:0}}@keyframes glitch-in{0%{opacity:0}10%{opacity:.6;clip-path:inset(8% -40px 60%);filter:brightness(2.6);text-shadow:-8px 0 var(--accent), 8px 0 var(--teal), 0 0 14px var(--accent);transform:translate(26px)skew(8deg)}18%{opacity:0}28%{opacity:.9;clip-path:inset(45% -40px 15%);text-shadow:6px 0 var(--teal), -6px 0 var(--accent);transform:translate(-18px)scaleY(1.05)}36%{opacity:.1}46%{opacity:1;filter:brightness(1.8);text-shadow:3px 0 var(--accent), -3px 0 var(--teal);transform:translate(10px)skew(-6deg)}54%{opacity:.25}64%{opacity:1;text-shadow:1px 0 var(--accent), -1px 0 var(--teal);transform:translate(-4px)}72%{opacity:.6}80%,to{opacity:1}}.artifacts{z-index:20;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;position:fixed;inset:0}.section[hidden]{display:none}@media (width>=1024px){.page{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(48px,6vw,112px);padding:0 clamp(32px,4vw,56px);display:grid}.intro{flex-direction:column;justify-content:center;height:100dvh;padding:48px 0;display:flex;position:sticky;top:0}.footer{padding:0;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.content{min-height:100dvh;padding:48px 0}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.accent{color:var(--accent)}.muted{color:var(--muted)}.idx{color:var(--dim);font-variant-numeric:tabular-nums;margin-right:8px;transition:color .2s}.tabs{border-bottom:1px solid var(--border);letter-spacing:.14em;text-transform:uppercase;scrollbar-width:none;gap:4px 28px;margin-bottom:32px;font-size:12px;font-weight:600;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{color:var(--muted);opacity:.45;flex:none;padding:0 0 12px;text-decoration:none;transition:opacity .2s,color .2s;position:relative}.tabs a:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .3s var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tabs a:hover{opacity:.8}.tabs a.active{color:var(--fg);opacity:1}.tabs a.active .idx{color:var(--accent)}.tabs a.active:after{transform:none}.hero{container-type:inline-size}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:22px;font-size:14px;font-weight:600;line-height:1.9}.eyebrow-name{color:var(--fg);font-size:16px;display:block}.eyebrow-line{white-space:nowrap;display:block}.headline{color:var(--fg);letter-spacing:-.02em;margin-bottom:24px;font-size:clamp(1.4rem,5.6cqi,2.6rem);font-weight:600;line-height:1.25}.nowrap{white-space:pre}.block{display:block}.cycle-word-wrapper{text-align:left;display:inline-block}.cycle-word{white-space:nowrap;color:var(--accent);display:inline-block}.lede{max-width:68ch;color:var(--fg-body)}@keyframes glitch{0%,14%{text-shadow:2px 0 0 #d9a55bbf, -2px 0 0 var(--teal)}15%,49%{text-shadow:-2px 0 0 #d9a55bbf, 2px 0 0 var(--teal)}50%,99%{text-shadow:2px 0 0 #d9a55bbf, -2px 0 0 var(--teal)}to{text-shadow:none}}.glitch-text:hover{animation:.3s linear glitch}@keyframes scrambleGlitch{0%{text-shadow:3px 0 0 var(--accent), -3px 0 0 var(--teal);color:var(--fg)}25%{text-shadow:-4px 0 0 var(--accent), 4px 0 0 var(--teal);color:var(--accent)}50%{text-shadow:2px 1px 0 var(--accent), -2px -1px 0 var(--teal);color:var(--fg)}75%{text-shadow:-3px 0 0 var(--teal), 3px 0 0 var(--accent);color:var(--teal)}to{text-shadow:4px -1px 0 var(--accent), -4px 1px 0 var(--teal);color:var(--fg)}}.scramble-glitch{animation:.15s steps(2,end) infinite scrambleGlitch}.section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--fg);margin:0 0 24px;font-size:11px;font-weight:600}.section-title .idx{color:var(--accent)}.timeline,.projects{margin:0;padding:0;list-style:none}.timeline li{grid-template-columns:150px 1fr;column-gap:16px;padding:10px 0;display:grid}.timeline li+li{border-top:1px dashed var(--border)}.when{color:var(--dim);font-variant-numeric:tabular-nums;font-size:13px}.what strong{color:var(--fg);font-weight:600}.stack{color:var(--muted);grid-column:2;font-size:12px}.projects{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.projects a{border:1px solid var(--border);background:var(--bg-elev);height:100%;transition:border-color .25s, transform .25s var(--ease-out);flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;display:flex}.projects a:hover{border-color:var(--accent);transform:translateY(-2px)}.p-name{color:var(--fg);font-weight:600}.p-name:after{content:" ↗";color:var(--dim);transition:color .2s}.projects a:hover .p-name:after{color:var(--accent)}.p-desc{color:var(--fg-body);font-size:13px;line-height:1.6}.p-tags{color:var(--dim);margin-top:auto;padding-top:8px;font-size:11px}.footer{text-align:center;padding:8px 0 32px}.contact li{align-items:baseline}.contact a{justify-self:start}.fineprint{color:var(--dim);letter-spacing:.08em;margin:0;font-size:13px}.magnet{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));z-index:30;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:border-color .2s,background-color .2s;display:grid;position:fixed}.magnet[hidden]{display:none}.magnet:hover{border-color:var(--dim)}.magnet:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}.magnet svg{fill:none;stroke-width:3.6px;filter:grayscale()brightness(.8);opacity:.6;width:22px;height:22px;transition:filter .25s, opacity .25s, transform .35s var(--ease-out);transform:rotate(-24deg)}.magnet-body{stroke:#e5484d}.magnet-tips{stroke:#d9d9de}.magnet[aria-pressed=true]{border-color:#e5484d55}.magnet[aria-pressed=true] svg{filter:drop-shadow(0 0 5px #e5484d99);opacity:1;transform:none}.pre .page{visibility:hidden}.asm-word{white-space:nowrap}.asm-ch{display:inline-block}.asm-ch.fly{color:var(--dim)}.asm-ch.fly:nth-child(7n+3){color:var(--accent)}.settling .timeline li+li,.settling .projects a,.settling .p-name:after{transition-property:transform,opacity,width,border-color,background-color;transition-duration:.9s;transition-timing-function:var(--ease-out)}.assembling .timeline li+li{border-top-color:#0000}.assembling .projects a{background-color:#0000;border-color:#0000}.assembling a{text-decoration-color:#0000}.assembling .p-name:after{opacity:0}@media (width<=600px){body{font-size:14px}.tabs{letter-spacing:.06em;justify-content:space-between;gap:4px 12px;font-size:11px}.tabs .idx{margin-right:5px}.cycle-word-wrapper{display:block}.headline{font-size:clamp(1.5rem,8cqi,2.2rem)}.page{padding:0 16px}.timeline li{grid-template-columns:1fr}.stack{grid-column:1}.projects{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scramble-glitch,.glitch-text:hover{animation:none}}
